| 1234567891011121314151617181920212223 |
- #ifndef UNITY_POSTFX_DITHERING
- #define UNITY_POSTFX_DITHERING
- TEXTURE2D_SAMPLER2D(_DitheringTex, sampler_DitheringTex);
- float4 _Dithering_Coords;
- float3 Dither(float3 color, float2 uv)
- {
- // Final pass dithering
- // Symmetric triangular distribution on [-1,1] with maximal density at 0
- float noise = SAMPLE_TEXTURE2D(_DitheringTex, sampler_DitheringTex, uv * _Dithering_Coords.xy + _Dithering_Coords.zw).a * 2.0 - 1.0;
- noise = FastSign(noise) * (1.0 - sqrt(1.0 - abs(noise)));
- #if UNITY_COLORSPACE_GAMMA
- color += noise / 255.0;
- #else
- color = SRGBToLinear(LinearToSRGB(color) + noise / 255.0);
- #endif
- return color;
- }
- #endif // UNITY_POSTFX_DITHERING
|