Bubble Soup Rendering with Arnold

I’ve picked up an idea from my social media stream, rendering a bubble soup. for this example, I used the idea from Entagma’s tutorial using a flip simulation for bubble soup movement.  

the Flip simulation is quite simple and needs fixes to get correct with UV Distortion, but focused on the rendering part. the idea is quite simple using Fluids Dynamics to distort the UV on a sphere. a texture mapped on a sphere the UV’s to drive the thickness of thin-film shader. I used the default ThinFilm feature of regular Arnold Shader. This makes the setup super simple, all you need is Spheres is distorted UV’s.

the rendering from Arnold GPU is a little slow for GPU rendering but the Arnold CPU is extremely fast, the render time for HD was 12 seconds on superslow Xeon CPU. it’s by far the fastest thin-film rendering on the CPU, I’ve seen so far. 

raw rendering. I need only AA sample of 1. below is transmission albedo, it quite graphics look on its own.

it almost looks like infrared images from Nasa of Jupiter. 

for the next iteration is will great the type animation / noised structure within the shader only. it should be easy to re-recreate the dynamics with noise fields.

The following Standard Surface shader settings were used to create a soap bubble.

Base: 0
Specular: 1
Specular Color: 1 1 1
Specular Roughness: 0
Specular IOR: 1.0
Transmission: 1
Transmission Color: 1 1 1
Coat: 1
Coat IOR: 1.5
Thin Film: IOR 1.4
Thin Film Thickness: 500 [nm]


the thickness values will be replaced by the thickness attribute multiplied by 500.

Arnold operators tricks

if use Arnold operators you can change shading and geometry without any delay in IPR rendering. Operators toegther which Houdini node graph and you have simpler version of Solaris, Katana or Gaffer. the Arnold operators are around for years when even Katana and Gaffer was quite new and long before the idea of Solaris.

Operators allow advanced users to override any part of an Arnold scene and modify the Arnold universe at render time. Probably one of the most common use cases is to override parameters (e.g. shaders) inside a procedural (USD, ASS or Alembic).Here is quite test with 600GB caches file during  Arnold GPU interactive rendering.

as you can see its quite fast to update the interactive rendering. you can the Kick command which used to query possible target node parameter names of a set_parameter node. For example: kick -info or kick -info polymesh. a more detailed tutorial i will do in future posts.

i’ve used a set parameter to change the radius of the foam particles. radius *= 1.3  or change the particle to ‘disc’‘sphere’ or ‘quad’, o change the shader like shader == ‘purple_shader’ .

here more detail talk about usage of arnold operators from autodesk and The Mill. 

video link

Buy Me A Coffee

water rendering with arnold GPU

i am starting to look into water effecst shading, this 1st simualtion with Houdini solvers. the foam is a little over-the-top. but i think the shading itself start to come together. with the new Arnold GPU updates its getting really fast., specifically when i am using Arnold Operators.

i’ve created underwater bubbles in extra simulation to make the side view nicer.

all this above was done in Houdini and regular Anrold htoA plug in.

here i am testing the scene in Gaffer, the IPR is quite fast in here. the next thing i wanna try to use Solaris.