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
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]
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.
[ame]https://www.youtube.com/watch?v=wRsprwNpSbE[/ame]
If you guys want to read more about colour science i highly recommend this website. http://www.webexhibits.org/causesofcolor/index.html
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
https://dl.dropboxusercontent.com/u/499159/toolbag2eyes01.zip
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.
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.
Looking down at wet asphalt:
From this angle, wet asphalt is not exceptionally reflective. However, if we look at it from a grazing angle:
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]https://www.youtube.com/watch?v=dO2rM-l-vdQ[/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.
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:
Wet:
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.
Here will Fresnel at 1 and 0, you can see how important it is to making a surface like road look wet.
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.
[ame]https://www.youtube.com/watch?v=NspsuKvveH8[/ame]
Nailed the wetness