#ºu  _DITHERING _FILM_GRAIN_LINEAR_TO_SRGB_CONVERSION_RCASç #ifdef VERTEX #version 310 es #define HLSLCC_ENABLE_UNIFORM_BUFFERS 1 #if HLSLCC_ENABLE_UNIFORM_BUFFERS #define UNITY_UNIFORM #else #define UNITY_UNIFORM uniform #endif #define UNITY_SUPPORTS_UNIFORM_LOCATION 1 #if UNITY_SUPPORTS_UNIFORM_LOCATION #define UNITY_LOCATION(x) layout(location = x) #define UNITY_BINDING(x) layout(binding = x, std140) #else #define UNITY_LOCATION(x) #define UNITY_BINDING(x) layout(std140) #endif uniform vec4 _BlitScaleBias; layout(location = 0) out highp vec2 vs_TEXCOORD0; vec2 u_xlat0; uvec3 u_xlatu0; void main() { u_xlatu0.x = uint(int(bitfieldInsert(0, gl_VertexID, 1 & int(0x1F), 1))); u_xlatu0.z = uint(gl_VertexID) & 2u; u_xlat0.xy = vec2(u_xlatu0.xz); gl_Position.xy = u_xlat0.xy * vec2(2.0, 2.0) + vec2(-1.0, -1.0); vs_TEXCOORD0.xy = u_xlat0.xy * _BlitScaleBias.xy + _BlitScaleBias.zw; gl_Position.zw = vec2(-1.0, 1.0); return; } #endif #ifdef FRAGMENT #version 310 es precision highp float; precision highp int; #define HLSLCC_ENABLE_UNIFORM_BUFFERS 1 #if HLSLCC_ENABLE_UNIFORM_BUFFERS #define UNITY_UNIFORM #else #define UNITY_UNIFORM uniform #endif #define UNITY_SUPPORTS_UNIFORM_LOCATION 1 #if UNITY_SUPPORTS_UNIFORM_LOCATION #define UNITY_LOCATION(x) layout(location = x) #define UNITY_BINDING(x) layout(binding = x, std140) #else #define UNITY_LOCATION(x) #define UNITY_BINDING(x) layout(std140) #endif uniform vec2 _GlobalMipBias; uniform vec4 _SourceSize; uniform vec2 _Grain_Params; uniform vec4 _Grain_TilingParams; uniform vec4 _Dithering_Params; uniform vec4 _FsrRcasConstants; UNITY_LOCATION(0) uniform mediump sampler2D _BlitTexture; UNITY_LOCATION(1) uniform mediump sampler2D _Grain_Texture; UNITY_LOCATION(2) uniform mediump sampler2D _BlueNoise_Texture; layout(location = 0) in highp vec2 vs_TEXCOORD0; layout(location = 0) out mediump vec4 SV_Target0; mediump ivec4 u_xlati16_0; vec3 u_xlat1; mediump float u_xlat16_1; uvec4 u_xlatu1; bvec3 u_xlatb1; mediump ivec4 u_xlati16_2; vec3 u_xlat3; mediump ivec4 u_xlati16_4; vec3 u_xlat5; bvec3 u_xlatb5; mediump vec3 u_xlat16_6; vec3 u_xlat7; vec3 u_xlat8; mediump vec3 u_xlat16_9; mediump vec3 u_xlat16_10; mediump vec3 u_xlat16_11; mediump uint u_xlatu16_12; mediump vec3 u_xlat16_19; float u_xlat40; mediump float u_xlat16_40; uint u_xlatu40; bool u_xlatb40; mediump float u_xlat16_45; void main() { u_xlati16_0.z = int(0); u_xlati16_0.w = int(0); u_xlat1.xy = vs_TEXCOORD0.xy * _SourceSize.xy; u_xlatu1.xy = uvec2(ivec2(u_xlat1.xy)); u_xlati16_2 = ivec4(u_xlatu1.xyxy) + ivec4(0, int(0xFFFFFFFFu), int(0xFFFFFFFFu), 0); u_xlati16_0.xy = u_xlati16_2.zw; u_xlat3.xyz = texelFetch(_BlitTexture, u_xlati16_0.xy, u_xlati16_0.w).xyz; u_xlati16_0 = ivec4(u_xlatu1.xyxy) + ivec4(0, 1, 1, 0); u_xlati16_4.xy = u_xlati16_0.zw; u_xlati16_4.z = int(0); u_xlati16_4.w = int(0); u_xlat5.xyz = texelFetch(_BlitTexture, u_xlati16_4.xy, u_xlati16_4.w).xyz; u_xlat16_6.xyz = max(u_xlat3.xyz, u_xlat5.xyz); u_xlati16_2.z = int(0); u_xlati16_2.w = int(0); u_xlat7.xyz = texelFetch(_BlitTexture, u_xlati16_2.xy, u_xlati16_2.w).xyz; u_xlat16_6.xyz = max(u_xlat16_6.xyz, u_xlat7.xyz); u_xlati16_0.z = int(0); u_xlati16_0.w = int(0); u_xlat8.xyz = texelFetch(_BlitTexture, u_xlati16_0.xy, u_xlati16_0.w).xyz; u_xlat16_6.xyz = max(u_xlat16_6.xyz, u_xlat8.xyz); u_xlatu1.z = uint(0u); u_xlatu1.w = uint(0u); u_xlat1.xyz = texelFetch(_BlitTexture, ivec2(u_xlatu1.xy), int(u_xlatu1.w)).xyz; u_xlat16_9.xyz = max(u_xlat1.xyz, u_xlat16_6.xyz); u_xlat16_6.xyz = u_xlat16_6.xyz * vec3(4.0, 4.0, 4.0); u_xlat16_6.xyz = vec3(1.0) / vec3(u_xlat16_6.xyz); u_xlat16_9.xyz = (-u_xlat16_9.xyz) + vec3(1.0, 1.0, 1.0); u_xlat16_10.xyz = min(u_xlat3.xyz, u_xlat5.xyz); u_xlat16_10.xyz = min(u_xlat7.xyz, u_xlat16_10.xyz); u_xlat16_10.xyz = min(u_xlat8.xyz, u_xlat16_10.xyz); u_xlat16_11.xyz = u_xlat16_10.xyz * vec3(4.0, 4.0, 4.0) + vec3(-4.0, -4.0, -4.0); u_xlat16_10.xyz = min(u_xlat1.xyz, u_xlat16_10.xyz); u_xlat16_6.xyz = u_xlat16_6.xyz * u_xlat16_10.xyz; u_xlat16_10.xyz = vec3(1.0) / vec3(u_xlat16_11.xyz); u_xlat16_9.xyz = u_xlat16_9.xyz * u_xlat16_10.xyz; u_xlat16_6.xyz = max((-u_xlat16_6.xyz), u_xlat16_9.xyz); u_xlat16_19.x = max(u_xlat16_6.z, u_xlat16_6.y); u_xlat16_6.x = max(u_xlat16_19.x, u_xlat16_6.x); u_xlat16_6.x = min(u_xlat16_6.x, 0.0); u_xlat16_6.x = max(u_xlat16_6.x, -0.1875); u_xlatu40 = uint(floatBitsToUint(_FsrRcasConstants.y)) & 65535u; u_xlat40 = unpackHalf2x16(u_xlatu40).x; u_xlat16_6.x = u_xlat40 * u_xlat16_6.x; u_xlat16_19.xyz = u_xlat3.xyz * u_xlat16_6.xxx; u_xlat16_19.xyz = u_xlat16_6.xxx * u_xlat7.xyz + u_xlat16_19.xyz; u_xlat16_19.xyz = u_xlat16_6.xxx * u_xlat8.xyz + u_xlat16_19.xyz; u_xlat16_19.xyz = u_xlat16_6.xxx * u_xlat5.xyz + u_xlat16_19.xyz; u_xlat16_6.x = u_xlat16_6.x * 4.0 + 1.0; u_xlat16_19.xyz = u_xlat1.xyz + u_xlat16_19.xyz; u_xlatu1.x = packHalf2x16(vec2(u_xlat16_6.x, 0.0)); u_xlatu16_12 = uint((-int(u_xlatu1.x)) + 30605); u_xlat1.x = unpackHalf2x16(u_xlatu16_12).x; u_xlat16_6.x = (-u_xlat1.x) * u_xlat16_6.x + 2.0; u_xlat16_6.x = u_xlat1.x * u_xlat16_6.x; u_xlat16_6.xyz = u_xlat16_6.xxx * u_xlat16_19.xyz; u_xlat1.xy = vs_TEXCOORD0.xy * _Grain_TilingParams.xy + _Grain_TilingParams.zw; u_xlat16_1 = texture(_Grain_Texture, u_xlat1.xy, _GlobalMipBias.x).w; u_xlat16_45 = u_xlat16_1 + -0.5; u_xlat16_45 = u_xlat16_45 + u_xlat16_45; u_xlat16_9.xyz = vec3(u_xlat16_45) * u_xlat16_6.xyz; u_xlat1.xyz = u_xlat16_9.xyz * _Grain_Params.xxx; u_xlat16_45 = dot(u_xlat16_6.xyz, vec3(0.212672904, 0.715152204, 0.0721750036)); u_xlat40 = sqrt(u_xlat16_45); u_xlat40 = _Grain_Params.y * (-u_xlat40) + 1.0; u_xlat1.xyz = u_xlat1.xyz * vec3(u_xlat40) + u_xlat16_6.xyz; u_xlat3.xyz = log2(abs(u_xlat1.xyz)); u_xlat3.xyz = u_xlat3.xyz * vec3(0.416666657, 0.416666657, 0.416666657); u_xlat3.xyz = exp2(u_xlat3.xyz); u_xlat3.xyz = u_xlat3.xyz * vec3(1.05499995, 1.05499995, 1.05499995) + vec3(-0.0549999997, -0.0549999997, -0.0549999997); u_xlatb5.xyz = greaterThanEqual(vec4(0.00313080009, 0.00313080009, 0.00313080009, 0.0), u_xlat1.xyzx).xyz; u_xlat16_6.xyz = u_xlat1.xyz * vec3(12.9232101, 12.9232101, 12.9232101); u_xlat1.x = (u_xlatb5.x) ? u_xlat16_6.x : u_xlat3.x; u_xlat1.y = (u_xlatb5.y) ? u_xlat16_6.y : u_xlat3.y; u_xlat1.z = (u_xlatb5.z) ? u_xlat16_6.z : u_xlat3.z; u_xlat3.xyz = log2(abs(u_xlat1.xyz)); u_xlat3.xyz = u_xlat3.xyz * vec3(0.416666657, 0.416666657, 0.416666657); u_xlat3.xyz = exp2(u_xlat3.xyz); u_xlat3.xyz = u_xlat3.xyz * vec3(1.05499995, 1.05499995, 1.05499995) + vec3(-0.0549999997, -0.0549999997, -0.0549999997); u_xlatb5.xyz = greaterThanEqual(vec4(0.00313080009, 0.00313080009, 0.00313080009, 0.0), u_xlat1.xyzx).xyz; u_xlat16_6.xyz = u_xlat1.xyz * vec3(12.9232101, 12.9232101, 12.9232101); u_xlat1.x = (u_xlatb5.x) ? u_xlat16_6.x : u_xlat3.x; u_xlat1.y = (u_xlatb5.y) ? u_xlat16_6.y : u_xlat3.y; u_xlat1.z = (u_xlatb5.z) ? u_xlat16_6.z : u_xlat3.z; u_xlat3.xy = vs_TEXCOORD0.xy * _Dithering_Params.xy + _Dithering_Params.zw; u_xlat16_40 = texture(_BlueNoise_Texture, u_xlat3.xy, _GlobalMipBias.x).w; u_xlat40 = u_xlat16_40 * 2.0 + -1.0; u_xlat3.x = -abs(u_xlat40) + 1.0; u_xlatb40 = u_xlat40>=0.0; u_xlat40 = (u_xlatb40) ? 1.0 : -1.0; u_xlat3.x = sqrt(u_xlat3.x); u_xlat3.x = (-u_xlat3.x) + 1.0; u_xlat40 = u_xlat40 * u_xlat3.x; u_xlat1.xyz = vec3(u_xlat40) * vec3(0.00392156886, 0.00392156886, 0.00392156886) + u_xlat1.xyz; u_xlat16_6.xyz = u_xlat1.xyz + vec3(0.0549999997, 0.0549999997, 0.0549999997); u_xlat16_6.xyz = u_xlat16_6.xyz * vec3(0.947867334, 0.947867334, 0.947867334); u_xlat3.xyz = log2(abs(u_xlat16_6.xyz)); u_xlat3.xyz = u_xlat3.xyz * vec3(2.4000001, 2.4000001, 2.4000001); u_xlat3.xyz = exp2(u_xlat3.xyz); u_xlat16_6.xyz = u_xlat1.xyz * vec3(0.0773993805, 0.0773993805, 0.0773993805); u_xlatb1.xyz = greaterThanEqual(vec4(0.0404499993, 0.0404499993, 0.0404499993, 0.0), u_xlat1.xyzx).xyz; SV_Target0.x = (u_xlatb1.x) ? u_xlat16_6.x : u_xlat3.x; SV_Target0.y = (u_xlatb1.y) ? u_xlat16_6.y : u_xlat3.y; SV_Target0.z = (u_xlatb1.z) ? u_xlat16_6.z : u_xlat3.z; SV_Target0.w = 1.0; return; } #endif $Globals`_GlobalMipBias _SourceSize _Grain_Params _Grain_TilingParams0_Dithering_Params@_FsrRcasConstantsP _BlitTexture_Grain_Texture_BlueNoise_Texture$Globals