- Home /
Albedo tinting reflections even when metallic set to 0
Using the standard shader, the albedo seems to always tint the color of the reflections, even when Metallic is set to 0. This is exacerbating the already troubling color clamping in high key scenes.
Is this the expected behavior in Unity? Does anyone know, off hand, where in the shader code the reflections are summed?
I couldn't find this topic by searching - if it's already been answered, please point me to it.
thanks,
Answer by sukotto1 · Apr 10, 2016 at 09:02 AM
Well - I found the place to make the modifications: UnityStandardBRDF.cginc
I added an icky hack to roll off the diffuse saturation by computing a mono version of the sample and lerping between them based on a smoothstep of the incoming specular intensity. The range is between "automagical numbers" chosen by eye. This effectively rolls off the albedo tint of the reflections.
By applying a similar effect to the diffuse based on the diffuse illumination component I can roll off the god awful, super saturated, RGB clamping in high key lighting.
It's definitely an old school VFX hack from the golden era of phong shading, but it works in a pinch, and gives a more "filmic" look :)
One weird thing is that I had to add it in two separate locations in the code because Unity keeps swapping back and forth between 2 different BRDF code paths. I have no idea what I'm doing to make it do this, and it confused the hell out of me, but what the heck.
Your answer
Follow this Question
Related Questions
How do I "unbake" a reflection probe? 1 Answer
Render realtime panorama (cylindrical equivalent, not spherical) 1 Answer
HTC Vive - Water Reflections in LWRP (single pass) appear far from source object 0 Answers
Deferred rendering and reflection probes 2 Answers
Rendering 1 million cubelets ?? Is it even possible ? 1 Answer