Hello everyone, recently I tried out Unreal 4 shader in Mari, where I noticed weird stuff going on…
To avoid any more confusion, this is how I think real physics behave, please correct me if I am wrong.
Photons travel to surface of material, they either get into material, bounce in random directions and eventually fly of material in random direction (essentialy it is subsufrace scattering, with really low depth) this is what I call DIFFUSE/ALBEDO/COLOR OF MATERIAL or they bounce of material, either on same angle which is caused by low roughness or high glossines or they bounce in more random direction again by increasing rougness/reducing glossines (glossiness is inverted roughness right?)
factors that decide whether photon travels into material or bounces of material are:
Reflectivity of material,
Fresnel IOR of material
Angle of photon path and surface
Angle is set by geometry and light positions…
But 1. reflectivity and 2. IOR is set independently in Vray for example…
however in Unreal engine there is only one parameter that changes both reflectivity and IOR (I guess) and it is called Metalness
This is my problem I encountered
in this example I wanted material 100% reflective like a chrome…
so I bumped metalness to max/white
then I set glossines to max/roughness to minimum
so all photons that get to surface should bounce off like mirror
however this did not happen… always…
when I set diffuse to white, it worked, however when I set diffuse to black, material got also black…
Why does this happen?
when all photon are supposed to bounce off, not get into material at all, why does diffuse affect material appearance at all?
If there are no photons supposed to get into material, but material doesnt reflect anything where do photons go? this breaks law of energy conservation…
At first I though this is MARI bug/bad shader but similar thing happened when I tested out metalness in marmoset 2 where I cant even achieve chrome material with metalness parameter…
Can anyone tell me what Metalness actually does? how does it control both reflectivity and IOR?
First theory is that unreal merged IOR and Reflectivity parameters them into one parameter to make it easy on artist and renderers like VRAY are better for having both parametrs
Second Theory is that Reflectivity parameter shouldnt even exist, and only thing we set to make material look reflective or not is actual IOR this parameter is called metalness in UE4
After I did some research, I noticed pixar/disney material has both specular (reflectivity I guess) and metalness, but on figure 16 you can see it has fresnel even on 0 specular value. https://disney-animation.s3.amazonaws.com/library/s2012_pbs_disney_brdf_notes_v2.pdf
or is it in reality even more complex?
Sorry for long complicated post, but I really want to solve this once for all thanks for all answers