What is the best way to render whitewater in Cycles?



I have simulated this in Houdini and exported it with alembic to Blender.
In Blender, I have converted the vertices into points (point cloud) with geometry nodes.

Since there isn’t any custom alembic attribute support I couldn’t use the velocity, particle age, density,… data in the shader. There also isn’t any motion blur because it doesn’t work on the point cloud.

I like my results but it is not just quite there. Is there a standard way of shading whitewater in Blender? I think that having some sub-surface scattering would help but it isn’t supported for point clouds.

https://youtube.com/shorts/ddh1t0jK2lk (sorry for it being a YT short. It made it that by default.)

2 Likes

This is something I am currently struggling with aswell. The way is used to do this was to render each point as a icosphere. But i dont know if that is possible with bigger sims.

1 Like

Putting real geometry might not, but instancing on every point might be worth trying.
I assume there are millions of particles here?

1 Like

I feel your pain, as I’m doing a lot of Houdini ↔ Blender interaction, mostly simulating in Houdini and rendering in Cycles. So the missing (custom) attributes on point clouds and polygons in Alembics can be a real challenge sometimes.

Depending on what I need I have several workarounds:

  • If there are several thousands of similar objects that can be instanced but you need to transfer scale and rotations to Blender (e.g. for coffee beans falling into a bowl) I usually use a “Copy to points” and instantiate simple triangles in Houdini instead of exporting the “real” coffee bean geometry.
    Then I export the triangle cloud as an Alembic and in Blender use the oldskool “Instancing > Faces” workflow formerly called “Duplifaces”.
    This way I can instance the coffee beans in Blender, the size, rotation and motion blur is kept and I can even write vertex colors to the triangles before export, in case I need to transfer custom attributes. These are transferred as well.
    A bit clunky but it works.
    The easiest way is to just use a circle SOP and set the divisions to 3 to get triangles. Oh, and don’t use “Pack and instance” in the copy to points SOP before the Alembic export because otherwise Blender imports all the triangles as separate objects :wink:

  • If you need a lot of simple points just like in your whitewater case but need to also transfer attributes like velocity and color/density, you should take a look at this nice tutorial by Entagma:
    https://youtu.be/SYz3Pz0m2XM
    Very well explained as always. Also a bit tedious but it gets the job done.

  • Depending on how close you are to your foam / whitewater it might also be a possibility to convert the particles to a VDB volume in Houdini and then render that in Blender. Density comes in automatically and the newer version of Blender can also deal with velocity volumes for motion blur.

2 Likes

Even with instancing it gets very slow at 8 million particles :smiley:

1 Like

Interesting info.

Well I sure hope that in the near future point clouds and custom attributes get support in Blender.

The only thing that bothers me with rendering whitewater as volumes is that you can loose the glossy wet look.

Also expanding on what @SteffenD said you can try to use particle position as field on volume cube?
but that will probably be much slower than using imported VDB from Houdini.

That’s my wild guess.

1 Like

Relevant diff to follow:

https://developer.blender.org/D14483

1 Like

Hi there,

I know it is not the answer but has some tips at the end, and he shows great water shading tips as well, worth watching :blush:

1 Like

I’m not sure about best way but I did this using dynamic paint and ocean sim found from Blender. I used shader where color was measured from water foam, I used noise pattern and add some AO to give details.

It is fast to simulate, works in animation and surface reacts with objects and collision, can be adjusted easily and it is just two dimensional bitmap. You may try to do something more advanced using millions of particles…

1 Like