Home Technical Talk

Why do things look darker when wet? Translate to PBR?

polycounter lvl 9
Offline / Send Message
Clark Coots polycounter lvl 9
So, I spilled water on my grey shirt. And my shirt became a darker grey in that spot.

Why does this happen???

If water is clear and the albedo of my shirt is grey, why does it get darker?

Why is wet sand darker than dry sand? Wet asphalt darker than dry? etc etc etc??

Is this something to do with water refracting light on a rough material thus making it more rough? Materials like a plastic rubber ducky can get wet and not look darker, because it doesn't absorb water and it retains it's material properties. So how would you translate this effect on materials that do absorb water like cotton, or dirt to PBR? Does the albedo change? Does the material have more roughness/less reflection because of micro refraction or something? Whats the deal?!?

Replies

  • Muzzoid
    Offline / Send Message
    Muzzoid polycounter lvl 10
    [FONT=arial, helvetica, sans-serif]"One very perceptive question that came in on the Morning Show was, "Why does cloth get darker when it's wet?"

    A wet cloth looks darker because less light is reflected from a wet cloth. Any cloth is woven from a yarn or fibre. That fibre is in turn made of smaller micro-fibres. Light comes from the room lights, or from the Sun, and lands on the cloth. Some of the photons of light are absorbed, but some are reflected and land on your retina - and that gives you the sensation of seeing the cloth as having a certain level of brightness. But when the cloth gets wet, the water fills in the gaps between each individual strand of fibre, and also between each individual micro-fibre. When light falls on the wet cloth, some of it is now more likely to enter the water, and be bent away from your eyes. So some of the light that would have previously been reflected off the cloth back to your eyes, is now bent away.

    Fewer photons of light get back to your eyeball, and so the wet cloth "appears" darker than the dry cloth. But as the water gradually evaporates, more and more light is reflected back to your eyeball, and you see the brighter colour of the fabric again."

    Source
    http://www.abc.net.au/science/k2/homework/s95587.htm


    Now the complicated question is, Why do some metals have a coloured specular? (i'll provide the answer if you can't work it out).
    [/FONT]
  • rogelio
    Offline / Send Message
    rogelio greentooth
    Yes albedo changes aswell as the roughness values but depending on the material that the wetness is added on to. The albedo also can get more saturation so it is not just a darkening effect, but also a saturation increase. Plastics if non dusty completly clean only show the roughness change, since plastic lacks the absorption nature of other materials the albedo in theory should not change.

    Also for shirts dropping water can add to the translucency so if you are doing a character for example you would be affecting roughness values, Albedo, and translucency... and if your shader is super robust settings like fuzz, and micro wrinkle clumping.

    Dirt is the easiest to make into mud instantly. Usually for my own crazy sanity I start with the purest of the material say I want to make a rad mud well I start with dirt and layer into water and deformation qualities to make the dirt transition to mud. Eventually you start to work in more layered workflow when figuring out how to construct complex materials.

    Oh yeah Muzz hit the actual science reason. :)
  • JedTheKrampus
    Offline / Send Message
    JedTheKrampus polycounter lvl 6
    That's what the "porosity" parameter that you see on S
  • CapableWizard
    Offline / Send Message
    CapableWizard polycounter lvl 7
    I think Muzz nailed it but this video does a pretty good job of explaining it!

    [ame]
  • Muzzoid
    Offline / Send Message
    Muzzoid polycounter lvl 10
    Nice video!

    If you guys want to read more about colour science i highly recommend this website. http://www.webexhibits.org/causesofcolor/index.html
  • Clark Coots
    Offline / Send Message
    Clark Coots polycounter lvl 9
    Thanks everyone for the information. Actually makes some sense now!
  • gnoop
    Offline / Send Message
    gnoop interpolator
    I never tried a shader with porosity , just a usual PBR roughness/metallic ones and they do have problems with making nice looking wet surface and imo old not energy conserving non-PBR method allows to fix it easily .

    I mean that many pretty rough and grainy surfaces when getting wet starts to reflect very intense highlight into still pretty wide angle and until you have a very hi res normal map you can't recreate it very well with typical PBR where it works other way around : more intense highlight with narrower angles only (polished surfaces)

    While wet grainy surface keeps to be polished on micro level and pretty rough on macro one
  • EarthQuake
    If you want to represent the roughness of the lower layer and the smoothness of the water covering it, the best way to do that would be to use a shader that allows a second layer of additive reflectivity. Bonus points if your shader allows you to use a separate normal map as well. Here's an example scene showing just that for the wetness pass on eyeballs in Toolbag 2:

    https://dl.dropboxusercontent.com/u/499159/toolbag2eyes01.zip

    eyes06.jpg

    This uses two meshes, and two materials, the second set to additive blend mode, but this should be possible to do in a single pass material as well, and is generally how car paint shaders work.

    In a PBR shader, glossier surfaces will naturally reflect a tighter, brighter highlight, so theres nothing special you really need to do (other than darkening the diffuse for surfaces that absorb water), and there isn't anything magic you could do with an old-school shader that you can't with a PBR shader.
  • gnoop
    Offline / Send Message
    gnoop interpolator
    I meant not exactly this. Rather a surface of grainy and wet asphalt , not puddles, just a very thin water cover above a very grainy surface where each grain reflects very intense highlight in slightly varying direction.

    Altogether it produces a pretty opposite result of what PBR imply for water surface or just polished ones - tiny and bright highlight spot .

    In such case you see blinding bright and still pretty huge highlight spot . You could see that in wet edges of puddles sometimes.

    I agree that with PBR you also can make something like that with not so polished pixels but since they are making weaker highlight you would want to get rid of the energy conservation to make the effect truly realistic.
  • EarthQuake
    When it comes to something like asphalt, you notice the bright reflections because of Fresnel, at grazing angles even rough surfaces approach 100% reflectivity. Fresnel is a fundamental concept built into PBR systems and you don't have to alter your art content specifically to account for it, it just works. When you look at an asphalt road, you're frequently looking at it from a grazing angle, unless you're looking down at it, in which case it most certainly does not have higher than normal reflectivity.

    Looking down at wet asphalt:
    stock-photo-wet-asphalt-texture-53890690.jpg
    depositphotos_2107987-Wet-asphalt-road-covering.jpg

    From this angle, wet asphalt is not exceptionally reflective. However, if we look at it from a grazing angle:

    58353-stock-photo-sun-street-lanes-trails-rain-wet-asphalt.jpg
    6596222179_54fa34cd2c_z.jpg

    We see a much more reflective surface, due to Fresnel. This is also why when driving on the highway, at certain angles the road will appear to glow with an almost mirror like reflection, again this is Fresnel at work.

    If you watch the Infiltrator UE4 demo, you'll see the same effect on the wet floor panels:
    [ame]

    more references:
    http://filmicgames.com/archives/557
    http://www.marmoset.co/toolbag/learn/pbr-theory

    Water helps to smooth out the rough surface of asphalt, which means there is less reflection micro-occlusion at grazing angles, so the Fresnel effect tends to be more visible and thus the reflections appear brighter, however, the reflectivity is not any higher, and again all of this simply works out as you would expect in a PBR shader. The base reflectivity of both water and asphalt are around 4%, there isn't something special that happens when you combine them that increases the reflectivity.
  • Drew++
    Offline / Send Message
    Drew++ polycounter lvl 10
  • alanfatfish
  • gnoop
    Offline / Send Message
    gnoop interpolator
    EathQuake, I am talking about highlight reflection, not fresnel environment one.

    You are not always see much dimmer highlight on rougher surface if that rough surface is constructed of very reflective wet grains.

    So that energy conservation being right in theory , in practice just doesn't allow to compensate enough for not precise enough surface representation.

    I bet that night photo would be pretty hard to recreate in typical i game PBR without special anisotropic highlights and rather specular/glossiness than metallic/roughness approach
  • EarthQuake
    gnoop wrote: »
    EathQuake, I am talking about highlight reflection, not fresnel environment one.

    You are not always see much dimmer highlight on rougher surface if that rough surface is constructed of very reflective wet grains.

    So that energy conservation being right in theory , in practice just doesn't allow to compensate enough for not precise enough surface representation.

    I bet that night photo would be pretty hard to recreate in typical i game PBR without special anisotropic highlights and rather specular/glossiness than metallic/roughness approach

    Sorry it's taken a while for me to get back to this, but I made a quick example.

    The reflections in those night photos are extremely easy to replicate as long as you have a modern reflectivity BRDF like Blinn-Phong or GGX. Phong might not work very well. You certainly don't need to use an anisotropic shader.

    Energy conservation/metalness maps/etc are also not in any way a limiting factor here either. Wet surfaces don't magically become more reflective, they just get a bit darker (albedo) and smoother as the water fills in all the pores/cracks/etc.

    Dry:
    wet01.jpg

    Wet:
    wet02.jpg

    The only difference between the wet and dry materials is the wet has a slightly darkened albedo, and the gloss map has been edited to be glossier(brighter). Both materials use a fixed 0.04 reflectivity value, the same that you would find in a metalness PBR workflow, and fresnel of 1 (typically a locked value in PBR systems).

    Fresnel is very important for this type of material, because you're likely to see it at a grazing angle. That's why it looks so reflective. It's not because it's wet, it's because of the gloss value and fresnel.

    To illustrate how Fresnel works, look at an object at various angles. You'll notice that as you shift from a grazing angle to a straight on angle, the material looks less reflective.

    wet03.jpg

    Here will Fresnel at 1 and 0, you can see how important it is to making a surface like road look wet.

    wet04.jpg

    Again, no tricks, no breaking the PBR system, no special shaders, just a couple simple parametric changes to the material gives you the difference between wet and dry.
  • EarthQuake
    Short youtube, as it looks better in motion:

    [ame]
  • tungerz
    Offline / Send Message
    tungerz polygon
    Looks great Joe,
    Nailed the wetness :)
Sign In or Register to comment.