Poser 5 Nodes 101 - Reflective Water

Thanks to Ajax for taking the time to explain the basics of nodes in Poser 5 and for allowing me to post this information here!

And here's what it looks like rendered. This water material is still a work in progress. I was putting together a refractive materials pack for freestuff, but I had to put it aside for a while to do other things.

(First the settings, then the explanation.)

(In case you missed the download for the materials, here it is again.)

OK, let's have a look at what's going on with the nodes. For a start, I'm trying to duplicate the look of clear clean water in a bathtub, so I'm following the physical characteristics that sort of water has.

Water refracts light - i.e. light passes through the surface but changes the direction it's going in, which is to say the light gets "bent" at the surface of the water. Refraction requires raytracing, so I've turned on raytracing in the render options. When light strikes real water, some of the light is refracted and some of the light is reflected. After this process, the total amount of light should be exactly the same, so the refraction value and the reflection value in the root node have to add up to 1. You'll notice I have a reflection value of 0.4, meaning that 40% of light is reflected from the surface, and a refraction value of 0.6 meaning that the remaining 60% of light passes through the surface and gets bent.

But how much does it bend? In physics we measure this with a refractive index. The refractive index of water is 1.3333 (roughly). To control the light bending I have created a raytrace refract node and set it's refractive index to 1.3333. The information created in the refract node is output to the refraction colour of the root node.

I have left the base refraction colour in the root node set to white, because I want crystal clear water, not water with blue food colouring in it for example, which I would mimic by setting the base refraction colour to blue. Notice there is a background colour in the refract node itself which I HAVE coloured blue. This is the colour that will be used if Poser can't figure out what would actually be seen through the surface of the water at that point - if there were only empty grey space behind the water for example.

That's taken care of the 60% refraction, but what about the reflection? We need a raytrace reflect node to make sure we're getting true reflections of the objects around the water. I've created one and plugged it into the reflection colour. Again the background parameter tells poser what to show if it winds up reflecting empty space or doesn't have enough raytrace bounces to get to the origin of the reflected light. Since there's a lot of grey space facing the water from behind the camera, I need to be a bit more concerned about what gets shown this time. The three nodes supplying information to the background parameter of the reflect node are just the same three nodes that make up the tiled surface of the walls and floor. I've effectively told Poser that if it doesn't know what to reflect, it should reflect my bathroom tiles by default.

My water object is actually just a flat square prop from the prop library. I want a rippled surface, not a mirror smooth flat one. To get the ripples, I've set up some displacement. I've set the root node's displacement to 1 and I'm driving it with an fBm fractal node. That means that wherever the fBm is black the displacement will be zero, but wherever the fBm is white the displacement will be 1. In between shades give in between displacements. There are lots of parameters to play with in the fBm. I just mucked about with them until I had something that looked a bit like water ripples.

Finally, water has small, bright, shiny highlights. I can't trust the default Poser highlighting to give me that, so I've set the normal specular colour to black and value to zero. Then I've set up an alternate specular setting with a phong shading node. This gives me a bit more control over how the highlights will look. I can use the parameters of the node to make the highlights small but bright.

There are other ways you could approach this problem but the key points here are that if you want realistic water you need a reflect and a refract node, your reflective and refractive values must add up to one and you must have the refraction index in the refract node set to 1.3333 or thereabouts.

Troubleshooting notes:

1) Make sure you are using Firefly rendering, with "Use displacement maps," "Raytracing On," and Cast Shadows" on or it won't render properly.

2) Make sure you have something behind the water. Because I have that tiled texture feeding into the background for both the reflect and the refract node, you'll see that tiled texture show up on the water wherever Poser can't figure out what to show at that point on the water surface or doesn't have anything to reflect there. That could look pretty strange if you aren't surrounding your water with objects that are covered in that tiled texture. Make sure you use a fairly large flat plane for your water - something about the size of the ground plane or just a little smaller. If you get too small, the ripples will look too small.

Crescent's note: I tried using different textures on the walls and the water still came out nicely.

Back to the Intro.  

Onto the ground.

Or the sky.

Or to the magnifying lens.

Please note - if you'd like to post a copy of this tutorial elsewhere, you'll need to contact Ajax directly. Ajax retains all rights to this work - I only have permission to post it on my site.

Whenever I feel blue, I start breathing again.

Back to Top