Water drops on a surface - suggestions appreciated



  • I would like to find a way to put realistic (as much as possible) water drops on object surfaces and character skin. It would be nice if this could be done entirely within Poser Pro 11. The targeted render engine is Superfly.

    The physically correct way of creating drops on a surface would of course be placing drop objects on that surface and apply a water material to them. This seems to be fairly easy in Blender using the hair emitter. But in Poser - as far as I know - there is no way to grow anything else but strands in the hair simulator. Duh!

    Stepping back a little from the realism, it would still be okay if we had a way of applying a water drops Poser material to an object - preferrably, if we could overlay the already existing material. It would be even nicer if we could use a procedural material to avoid using image maps and the resulting repeating patterns and deformations.

    To create random blobs, I used a NoiseTexture and added a threshold of 0.6 to it. Then I used the result for the specular, reflection and bump values.
    0_1495706925173_Waterdrops material.PNG
    This is what it looks like on an object:
    0_1495706904656_Tube Test Waterdrops.jpg

    Looks okay from a distance, but the edges of the blobs are too hard, as the threshold function cuts the values and leaves just black and white. You can see this in the close-up:
    0_1495707256448_Tube Test Waterdrops closeup.jpg
    The next step would be to apply a Gaussian blur filter to this, but there is no way to do this with the available material nodes. Any suggestions on this one?

    Finding myself in a dead end here, I created a seamless droplet bump texture using a filter in an image program. Notice the soft edges that were missing in my procedural material. You can use this map for free if you like.
    0_1495707609882_Droplets_seamless_01_bump.jpg

    The material looks like this, similar to the one used above:
    0_1495707437203_Droplets many material.PNG

    And here is the render:
    0_1495707400478_Tube Test Droplets many.jpg

    And the close-up:
    0_1495708088774_Tube Test Droplets closeup.jpg

    Already a bit nicer, but it still looks like the tube has smallpox.

    Do you have any ideas how to improve the results?



  • Have you thought of trying a tangent-space normal map (apply it to the Gradient_Bump and set Gradient_Mode to Tangent_Space) rather than a bump map ? With a bump/displacement map you can't really get surface normals more than 40/50/60ish degrees (rough guess) off perpendicular, whereas with a normal map you can easily get 90 degrees off perpendicular (don't think you'd want to go over that).

    P.S. I've not tried this.



  • @3dcheapskate I was wondering the same. However, in this case, the bumps are being flattened on the caps for some reason. Maybe use a higher bit depth bit map, or use the Poser bubbles node to generate a high octave image.



  • The 'droplets' in oldenburg's texture image don't seem to have flattened tops, at least not in PP2014 when I plug it into the displacement channel (instead of bump) and render. Note: Poser applied GC=2.2 to the texture image, but I don't think bump maps should have any GC applied to them?
    0_1495774332133_disp.jpg

    Snarlygribbly's EZMat freebie (https://www.cgbytes.com/store/sku/54073_EZMat) has a water droplets FX option for skin shaders. I think that uses a procedural to create the droplets, but also suffers from the blister-like appearance.

    Iirc (from one/several of bagginsbill's shaders) specular highlight size and reflection softness (I think?) should have corresponding values related by a simple formula - can't recall what it is (or find a post URL) offhand. Since oldenburg's mat room screenshots show the background colour of the reflect node to be black then I'd guess that the white on the water droplets is either specular (but highlight size is only 0.05, so the specular highlights should be very small) or the reflection of a white background ? What sort of light's being used ?



  • With GC=1.0 the droplets are definitely more rounded, but the tops still don't seem flattened enough to be the cause of the large white highlights to me
    0_1495775782303_gc1.jpg


  • Poser Ambassadors

    Your droplet image map is pretty good - better than any "simple" procedural. I believe I can make a procedural droplet that would be as good, but it would be from scratch and involve a very large number of math nodes.

    Yes, bump map gamma should always be 1. Anything that isn't a color map is data and should be gamma = 1.

    Important features of small droplets include the obvious smooth vs. rough change, the shape, the reflections (which MUST use Fresnel modulation or it's junk) and the caustics. The droplets focus and amplify light on their interior surface!

    I am making a shader for you using SuperFly abilities I've never had access to before. Note, however, that in the absence of two surfaces, the caustics have to be faked and it's very finicky to get right, involving three different numbers that have to be carefully balanced. I'm working out how best to transfer my knowledge of this into nodes.

    Here's a preliminary render, using your bump map.
    0_1495821764343_Prelim Droplets.jpg



  • @3dcheapskate The setup is quite straightforward: Just one area light and one spot light, no ground, background colour is black.
    0_1495822746169_Lighting.PNG



  • @bagginsbill Wow! That already looks pretty amazing! It's hard to believe that you used my humble bump map for this.



  • @3dcheapskate @bagginsbill That may sound stupid, but: where can I set the gamma value for an image_map node?



  • 0_1495825738855_gamma button.jpg

    On the Image node, click as if you were going to load a texture, and when the dialog to browse for a texture comes up, you can select the custom gamma value button.



  • @raven Thanks a lot! I knew I had seen it somewhere, but it is well hidden.


  • Poser Ambassadors

    I rendered this while at dinner - a closeup view of the droplets, this time with a red base. It has a vaseline quality to it that I did not intend. I will attempt to fix that.
    0_1495844851793_Prelim Droplets Close.jpg



  • @bagginsbill Oh those look pretty darn realistic BB, even with the vaseline look to the water.


  • Poser Ambassadors

    I believe I have most of the problems solved now. Skin tone is a difficult test case and I think this is a fair approximation.

    0_1495902335870_Skin Tone.jpg



  • @bagginsbill Absolutely brilliant! I reckon it can't get any better with just one material. I can't wait to do some renders!


  • Poser Ambassadors

    Bravo, BB.



  • @bagginsbill very cool!



  • @bagginsbill Please share the material image for this baggins.


  • Poser Ambassadors

    Sorry about the delay - it's a holiday weekend here.

    So I'm going to show this in a series because I think this kind of material offers opportunities to learn some intermediate to advanced material room techniques.


  • Poser Ambassadors

    The first step is to create the base material. Any number of base material shaders will be applicable, but I'm going to work with a simple glossy + diffuse combination. (Scatter is the obvious next variation.)

    There might be a need for some background here.

    Shaders generally deal with surface and subsurface effects separately, and then combine them. There are some nodes that already do both for you, but we can't use any of those. The reason we can't is because those nodes always assume the surface normals for the "surface" are the same as the surface normals for the subsurface, and with water droplets that is not correct.

    As with any material, we need to combine the surface (gloss) with the subsurface (diffuse or scatter) in the correct proportions, according to the behavior of light described by the Fresnel effect.

    I won't go into that in any detail here as really that is "basic" stuff and we have a lot of ground to cover with this shader in the "intermediate" category.