Download

PBR - Wet Textures

Hey there,

I’m working on a beach that has both dry and wet sand. But I have a few questions for a while like a splinter into my mind.

A) For the dry sand, I’m keeping the median at 166 according to the charts, a roughness value of 0.9 (or 1), leaving specular and metallic slots blank. However, to achieve true PBR I assume I have to give sand a specular value. But since it’s a 0 to 1 and not a 0 to 255 range I’m a little confused. (I used to give sand 53,53,53 in cryengine, but yet it wasn’t accurate, eye was the judge).

B) What other parameters I’d have to take care of when trying to achieve an all PBR accurate environment. I mean, is the sun/sky/auto exposure/etc. intensities involved with this? because sun doesn’t shed light on earth with random intensities. It’s the outer parameters affecting the intensity like the atmosphere, clouds etc. So the sun intensity itself has to have it’s own physically correct value range? I used to follow some guide in CRYENGINE for setting up a PBR friendly lighting but in UE4 I’m not doing anything particular.

C) When creating a wet version of the same sand, other than reducing the roughness the specular has to be modified too since water has a different specular itself (but still I’m not sure where the correct values stand in a 0 to 1 range). What I could do is to pick the values from charts, create a specular map and feed it to the specular slot but I just don’t want to do that when I can do the same thing using a constant. So I need to know how to quickly find out where for example 61,61,61 stands in a 0 to 1 range.

D) Because wet sand is darker than dry sand, we’d have to darken the texture in material, or is there a better way to achieve that?

You should check out this blog post, Water drop 1 – Observe rainy world | Sébastien Lagarde It’s a 7 part look at wet surfaces and PBR.

Thanks for the link. Been through that before but not quite getting my answers there.

A) Specular shouldn’t need to change, UE4 uses metallic workslow, and the default value applies to most materials, look at the mud example with water here https://www.marmoset.co/toolbag/learn/pbr-theory

B) I haven’t see it officially listed anywhere, but I’ve seen some forum posts suggesting accurate sky and sun values, like https://forums.unrealengine.com/showthread.php?69719-PBR-lighting-questions&p=290468&viewfull=1#post290468

C) I don’t think you need to modify the specular looking at the marmoset post from A)

D) I would just multiply the basecolor with itself, since wet materials are typically darker and more saturated, you might have to compensate a bit to stop it from becoming over saturated.

You may want to use the Clear Coat shader if you want to simulate a surface so saturated with water that it’s starting to puddle.

We don’t change the specular for non metals because the values are close, you are right. But values are “close”. My goal is to give each material it’s own unique value I gather from PBR charts. And the values I gather are within a range of 0 to 255. As you know, specular for non metals falls in the range of 43,43,43 (Water) to ~94,94,94 (Skin) sRGB. That’s quite a difference. And here I have problem translating them to the 0 to 1 range.
The Epic themselves have specular maps for their Kite Demo assets too so I no longer feel comfortable ignoring the little differences.

Thanks for the link.

Can’t you just divide the values by 255 to get the 0-1 value or do the scales not match up?

CryEngine uses a “Diffuse Color/Specular Color” PBR workflow while Unreal uses “Base Color/Metalness” PBR workflow. Unity can use both and so they have documentation regarding the differences of both approaches:

@ZacD, I was dividing 255 by the values for half an hour… I need to sleep I guess ^^
Thanks anyway ^^

@OCASM, Well, what’s your point? that we should take advantage of specular in UE4? :stuck_out_tongue:

Rather that CE’s method is outdated and not as user friendly or intuitive as UE4’s.