Setting up Whitewater shader in MaterialX?

   3987   24   5
User Avatar
Member
5 posts
Joined: June 2022
Offline
Hey guys, I'm trying to set up a whitewater shader to render my ww inside of Karma XPU since Karma CPU is taking too long, as I have over 20 million ww particles. The pyro shader works pretty well as a uniform volume shader, but I can't get the reflections you get from the default ww shader that has the PBR reflect node. Has anyone had any experience setting up the reflectivity node inside materialX? Or maybe a workaround?
User Avatar
Member
1 posts
Joined: Feb. 2023
Offline
I would bring this question again, as Houdini 20 got some pretty big changes in volume shader on XPU. Unfortunatelly haven't found answer in HIVE talks, anyone?
User Avatar
Member
16 posts
Joined: March 2017
Offline
Any news or solutions for this yet? I'm trying to achieve the same.
User Avatar
Member
67 posts
Joined: June 2022
Online
Lucaroe
Any news or solutions for this yet? I'm trying to achieve the same.
From this silence I assume there isnt. I've got idea worth trying. Creating second render with whitewater as particles with low roughness and use specular pass from this in comp on top. I will try this in few days
User Avatar
Member
7770 posts
Joined: Sept. 2011
Offline
Have you tried the new pointcloud reader mtlx shader? Traditionally, whitewater was done using pointclouds rather than volume shaders, that's a more recent thing.
User Avatar
Member
948 posts
Joined: April 2008
Online
Did anyone manage to add specular on a uniform volume shader in Karma like the VEX whitewater shader?
I could not find a proper way to do it, I wish I would not have to render 2nd pass just for that.

Thanks in advance.
Edited by mzigaib - Jan. 4, 2024 23:30:55
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
948 posts
Joined: April 2008
Online
No one?
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
11 posts
Joined: Feb. 2020
Offline
Is there any content anywhere on this? I'm hard stuck trying to make a bubble volume and foam/spray particles that will render in xpu. The materialx stuff is completely alien to me and looking through every node of the oceanprocedural materials so far seems to be the only clue what so ever about rendering anything to do with water in xpu.
User Avatar
Member
948 posts
Joined: April 2008
Online
The new Karma builder node is very similar to the principle shader unless you need something more specific which you can use also very similar to VEX shader, there ara a lot tutorials with bits of information on the Sidefx site, I hope that helps.

The thing that I could not find is how to mix volumes to standard shading like I could in the VEX version so I could have specular on the white water shader volume in XPU.
Edited by mzigaib - Jan. 28, 2024 21:14:46
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
11 posts
Joined: Feb. 2020
Offline
mzigaib
The new Karma builder node is very similar to the principle shader unless you need something more specific which you can use also very similar to VEX shader, there ara a lot tutorials with bits of information on the Sidefx site, I hope that helps.

The thing that I could not find is how to mix volumes to standard shading like I could in the VEX version so I could have specular on the white water shader volume in XPU.
Ya I've managed to get things going with karma material builder and brute force instancing a disc on to millions of points since for some reason we can't render points as discs. It is extremely heavy and I'm having to sit around waiting for karma renderer to cook somewhere beetween 1 and 20 frames before it just silently stops rendering. Then I change the start frame up to however far it got and render again.

I wish I'd have known how experimental and unstable and undeveloped all this was before I invested so much. I should have just gone with redshift and the old working rendering methods.
User Avatar
Member
948 posts
Joined: April 2008
Online
Don't despair!
You can render discs by the way, as for instancing anything make sure you cache your instances on disk, better yet if you cache as USD there is no faster read cache than this also make sure to import pack primitives as "point instancer".
Edited by mzigaib - Feb. 18, 2024 12:00:46

Attachments:
Screenshot from 2024-02-18 13-51-54.png (2.0 MB)
Screenshot from 2024-02-18 13-59-19.png (1.3 MB)

https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
11 posts
Joined: Feb. 2020
Offline
mzigaib
Don't despair!
You can render discs by the way, as for instancing anything make sure you cache your instances on disk, better yet if you cache as USD there is no faster read cache than this also make sure to import pack primitives as "point instancer".
Why is it necessary to cache the instances?
The option you show for points as discs does not work in Karma XPU, unless they changed it in the last couple weeks. That only works in Karma XPU.
I'm also confused because you are talking about instancing but also showing render points as discs. You only need instancer if you can't use render points as discs.
"import pack primitives as "point instancer"" - Where is this? What does it do?
Edited by physixtential - Feb. 19, 2024 08:19:15
User Avatar
Member
948 posts
Joined: April 2008
Online
-Why is it necessary to cache the instances?
It is not but it is always more efficient not just for instances, my suggestion for best efficiency on Solaris with USD is to have everything cached in USD before going to render specially if it is a heavy scene, doing so you wont have unnecessary extra calculations on render time and USD caches are much faster than bgeos besides other benefits.

-The option you show for points as discs does not work in Karma XPU.
It does I just showed you and for some time now.

-I'm also confused because you are talking about instancing but also showing render points as discs.
I am not instancing anything it is just points rendered in XPU as discs

-"import pack primitives as "point instancer" - Where is this? What does it do?
It makes Solaris see your packed as real instances on points so it is much more efficient than have USD native instances that is a kind of different concept, so if your objects are blue on the graph tree they are individual instanced objects not point instances, I hope that makes sense.

Summarizing: native instance != point instancer.
Edited by mzigaib - Feb. 19, 2024 16:19:52
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
7770 posts
Joined: Sept. 2011
Offline
mzigaib
-The option you show for points as discs does not work in Karma XPU.
It does I just showed you and for some time now.

-I'm also confused because you are talking about instancing but also showing render points as discs.
I am not instancing anything it is just points rendered in XPU as discs

Points as discs is not supported by XPU--it's not possible with the way the ray tracing engine works to have discs that always face the incoming ray. I could see oriented discs being supported but not camera/ray facing discs.
User Avatar
Member
11 posts
Joined: Feb. 2020
Offline
mzigaib
-Why is it necessary to cache the instances?
It is not but it is always more efficient not just for instances, my suggestion for best efficiency on Solaris with USD is to have everything cached in USD before going to render specially if it is a heavy scene, doing so you wont have unnecessary extra calculations on render time and USD caches are much faster than bgeos besides other benefits.

-The option you show for points as discs does not work in Karma XPU.
It does I just showed you and for some time now.

-I'm also confused because you are talking about instancing but also showing render points as discs.
I am not instancing anything it is just points rendered in XPU as discs

-"import pack primitives as "point instancer" - Where is this? What does it do?
It makes Solaris see your packed as real instances on points so it is much more efficient than have USD native instances that is a kind of different concept, so if your objects are blue on the graph tree they are individual instanced objects not point instances, I hope that makes sense.

Summarizing: native instance != point instancer.
You can happily set points as discs, but it won't do it.

Attachments:
no.png (2.5 MB)

User Avatar
Member
948 posts
Joined: April 2008
Online
In the geometry settings LOP node are you pointing to the right primitive?
Edited by mzigaib - Feb. 19, 2024 23:57:35
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Member
11 posts
Joined: Feb. 2020
Offline
mzigaib
In the geometry settings LOP node are you pointing to the right primitive?
Yes. For example, they all get motion blur if I set motion blur on the very same geometry settings. Discs just simply don't work in xpu. I think you are using cpu.
User Avatar
Staff
469 posts
Joined: May 2019
Offline
Hi all

Sorry for the lack of replies on this thread. I'm not a whitewater expert, so I'll ask a few at SideFX who are and get back to you.

regarding disks, XPU cannot render points as disks but we plan to add this capability soon.
Hopefully we can get view-facing as well as oriented. It is conceptually possible to orient the disk to be facing the incoming ray, but I'm not sure what happens with things like reflection or shadow rays. Some hackery might be needed in that regard.
User Avatar
Member
948 posts
Joined: April 2008
Online
physixtential
mzigaib
In the geometry settings LOP node are you pointing to the right primitive?
Yes. For example, they all get motion blur if I set motion blur on the very same geometry settings. Discs just simply don't work in xpu. I think you are using cpu.

Yes you are correct I was using CPU my mistake.
But instancing circles on points should not be that heavy try to use point instancer.
https://vimeo.com/user2163076 [vimeo.com]
User Avatar
Staff
469 posts
Joined: May 2019
Offline
I can also say that we're looking into supporting level-sets for the next major release of Houdini. These are implicit surfaces defined by a volume and provide a possible whitewater solution.
  • Quick Links