water shading

recently i did some water rendering in Arnold renderer, which you can see here. the shading worked quite well on the water and whitewater.

after this started to sim a wave Tunnel in Houdini Flips. a huge wave where you actually could surf. But i run into some trouble for water shading and whitewater look, i needed some reference.


I went to beach and took trusty NikonV1 camera with me to shoot some reference Photos. This are tiny Waves (50cm in height), but easy to take some pictures and good enough as shading reference.

the nice shot of miniature breaking wave

a nice snapshot of translucent effects of the wave
here we can see droplets (whitewater) in close up

here we can see more Droplets / Whitewater with sun in out back. a good example for anisotropy effect on shading.

droplets turn white with sunlight, depending on the sun direction.

There multiple Ways to render realistic Water. The old school way is to render a polygon water surface and volume underneath to simulate the light scattering. we did similar things back in 2008 on the Avatar Movie with custom written shaders for Renderman. Sidefx added presets for Houdini for its Ocean setup’s. The render time of this method are modest but the shading can quite difficult depending on camera angle and light situation.

these Days in the age of Path tracers, there 2 ways, rendering it with Sub-Surface Scattering (SSS) or Transmission Depth.

Sub-Surface Scattering simulates the effect of light entering an object and scattering beneath its surface. Not all light reflects from a surface. Some of it will penetrate below the surface of an illuminated object. There it will be absorbed by the material and scattered internally. Some of this scattered light will make its way back out of the surface and become visible to the camera. This is known as ‘sub-surface scattering’ or ‘SSS’. SSS is necessary for the realistic rendering of materials such as marble, skin, leaves, wax, and milk. The SSS component in this shader is calculated using a brute-force raytracing method.

While the Transmission Depth attribute controls volumetric light absorption within the object (fog), the Scatter attribute controls what percentage of the light will be scattered instead of absorbed, effectively creating the murky effect of semi-transparent materials.

Depth Controls the depth into the volume at which the transmission color is realized. Increasing this value makes the volume thinner, which means less absorption and scattering. It is a scale factor so that you can set a transmission_color and then tweak the depth to be appropriate for the size of your object.

Scattering is very import if wanna shader deep Materials like Ocean water. For the scattering effect to work Scatter must have a dominant percentage value, and the Depth attribute must generally be much lower. also the Opaque attribute must be unchecked in the Arnold attributes of the object’s shape node for the light to be able to pass into the mesh and illuminate the volume.

Rendering with refraction Depth is more “physical correct” way, but it does account tiny organism (light blockers) in this case you add textures to simulate plankton in the water.

I choose go with SSS route. The tycial Surface Scattering shading model has a similar volume light scatter look. the look can be limited but it works in case deep Ocean water. the advantage: it full support with current Arnold GPU renderer (Depth transmission is not supported yet) and SSS shading model is also faster to render. In addition, I’ ve added an extra underwater bubble simulation with particles to increase the realism.

Alien fractal Landscape

I starting dig up old projects  and scenes i ‘ve finished.  the idea this Project was to take my Fractals and scatter it into a landscapes.  the goal is create a “real” alien landscape. I was looking into “alien landscape” art, but there much to find on the Internet. most alien landscape art is quite earth-like with uber-epics rocks formation or giant Mushroom. the closed thing i found was from games like “no Mans Sky”, Ratchet&Clank or Starlink.   

so, here we go here one attempt on alien landscape. the camera flight is rendered with 5000 splines primitives done in Arnold renderer.


quick and dirty work in progress!

Arnold toon shader test

I am starting to test Arnold Renderer in Houdini Solaris. it took me a while to figure how to makes it work in Solaris context. I’ve need to create beauty render pass and render product with contour sampling.

its work pretty good, there some crashes from Solaria. the live render navigation is difficult to navigate, because it take 2nd sample round to generate hatches.
the shading is yet quite simple, but i will start to generate more complex toon shadings.

marble rendertest

Inspired by great Marble renders and Shader hack by Lee Griggs. I’ve decided to recreate some tricks with different render engines, a little render Comparison.

The basic idea, using a glass shader for outter shell and an inner sphere with textured volume to fake depth. this way, you will save a lots of work with actually modeling the inner part of a marble. Spectral renderer don’t use this kind of trickery they can actully the inner part as real glass medium (using textures).

I’ve use Cycles (Blender), Renderman, Arnold, Octane and Indigo Renderer. I’ve tried to create a Marvel in Redshift, but i could make it work with single texture and 2 spheres. For Redshift you need actually model a marvel to get realistic rendering.

the spectral rendere engines was the fastest by far. that’s because with spectral render I used a medium instead of volume for interia, that’s saves a lot of render time.

here is quick test with single glass object with Indigo and Cycles :

this here are glass spheres with regular solid texture spheres inside:

Renderman Spline rendering

I’ve tested RenderMan with spline rendering. it’s much faster compared with baked Geometry. the spline primitives are very good in Renderman.

I’ve stopped the test with mantra after 10 minutes, it is super slow even with optimized render settings.


the Renderman images rendered for 3:20 on a 6 core Xeon
2.7ghz with pxr pathtracer. 4k resolution

geometry:

splines primitives:

rendering splines directly saves a lot disk space and meshing time. interactive rendering was super responsive.

Octane 2019.2 renderings is very fast, I’ve used the geo to render it. 2 minutes, as except its lot faster the CPU renderings. the spline rendering in octane does features custom width yet.

Octane gives physical correct shading out of the box. Renderman the shading is extreme flexible with NPR renderings, which is hard to get in Octane. the IPR responsibility was a little slow with shader tweaks.