Hi!
I found out that the issue I am having might have to do with the standard fresnel that gets applied to an object when using the standard Unity shader.
Using the standard Unity shader, even when setting Smoothness/Metallicness to 0, there will still be a kind of reflective effect added to the material that is dependent on the POV from the camera.
I would like to not have that effect in my game, as I am going for a low poly minimalistic look. The only built-in material I have found in Unity which doesn’t have this fresnel effect, is a VertexLit (only directional lights) mobile shader. But that means I can’t make use of cookies (and probably other functionalities).
Is there something I can change in the code of the shader to disable this effect? Or should I write my own shader?
I appreciate any and all suggestions!
EDIT: The effect I am talking about is the one you can see in this screenshot. The plane gets some kind of reflective gradient and moves with the camera. Maybe I was using the wrong term and this isn’t fresnel after all?
Fresnel shading is an integral part of physically-based BRDFs (including the standard shader). No other shader in Unity takes fresnel into account, however, so you should be able to use the legacy diffuse/specular shaders in its place.
i Found Answer
Go to the Unity inestall folder and open this folder : Editor \ Data \ CGIncludes
Open the " UnityStandardBRDF.cginc " file with any text editor (Make a backup of it first)
go to the line 311: + surfaceReduction * gi.specular * FresnelLerp (specColor, grazingTerm, nv);
Replace it with this line: + surfaceReduction * gi.specular * specColor;
Open or Restart the Unity
As you can see, now Fresnel is not processed, Now you can set and controll the fresnel in the your standard material
you must connect the fresnel to the metallic or specular in the standard material
also you can delete the lines from 84 to 88 (Because it is probably possible to process it in the game)
this lines:
inline half3 FresnelLerp (half3 F0, half3 F90, half cosA)
{
half t = Pow5 (1 - cosA); // ala Schlick interpoliation
return lerp (F0, F90, t);
}