SL-18190 Reduce banding.

meow-7.2.2
Dave Parks 2022-09-23 17:48:45 -05:00
parent 75de4d3276
commit f4d49f887e
2 changed files with 19 additions and 2 deletions

View File

@ -41,12 +41,29 @@ uniform float display_gamma;
vec3 linear_to_srgb(vec3 cl);
//=================================
// borrowed noise from:
// <https://www.shadertoy.com/view/4dS3Wd>
// By Morgan McGuire @morgan3d, http://graphicscodex.com
//
float hash(float n) { return fract(sin(n) * 1e4); }
float noise(float x) {
float i = floor(x);
float f = fract(x);
float u = f * f * (3.0 - 2.0 * f);
return mix(hash(i), hash(i + 1.0), u);
}
//=============================
void main()
{
//this is the one of the rare spots where diffuseRect contains linear color values (not sRGB)
vec4 diff = texture2DRect(diffuseRect, vary_fragcoord);
//diff.rgb = pow(diff.rgb, vec3(display_gamma));
diff.rgb = linear_to_srgb(diff.rgb);
vec3 seed = diff.rgb*vec3(vary_fragcoord.xy, vary_fragcoord.x+vary_fragcoord.y)*2048;
vec3 nz = vec3(noise(seed.r), noise(seed.g), noise(seed.b));
diff.rgb += nz*0.008;
frag_color = diff;
}

View File

@ -7731,7 +7731,7 @@ void LLPipeline::renderFinalize()
RenderDepthOfField &&
!gCubeSnapshot;
bool multisample = RenderFSAASamples > 1 && mRT->fxaaBuffer.isComplete();
bool multisample = RenderFSAASamples > 1 && mRT->fxaaBuffer.isComplete() && !gCubeSnapshot;
gViewerWindow->setup3DViewport();