lerState __s0 : register(s0); #line 30 static const __sampler2D V__NV__ColorInput = { __V__NV__ColorInputTex, __s0 }; #line 31 static const __sampler2D V__NV__DepthInput = { __V__NV__DepthInputTex, __s0 }; #line 71 float F__NV__GetLuma( #line 71 in float3 color) { #line 74 float _13 = dot(float3(2.98999995e-01, 5.87000012e-01, 1.14000000e-01), color); return _13; } #line 78 struct S__VSOut { float4 pos : SV_POSITION; float2 uv : TEXCOORD0; }; #line 84 S__VSOut F__VSMain( #line 84 in uint vid : SV_VERTEXID) { #line 86 S__VSOut o = (S__VSOut)0; #line 87 bool _21 = vid == 2; #line 87 float _24 = _21 ? 2.00000000e+00 : 0.00000000e+00; #line 87 o.uv[0] = _24; #line 88 bool _26 = vid == 1; #line 88 float _29 = _26 ? 2.00000000e+00 : 0.00000000e+00; #line 88 o.uv[1] = _29; #line 89 float2 _32 = o.uv * float2(2.00000000e+00, -2.00000000e+00); #line 89 float2 _34 = _32 + float2(-1.00000000e+00, 1.00000000e+00); #line 89 float4 _39 = float4(_34.x, _34.y, 0.00000000e+00, 1.00000000e+00); #line 89 o.pos = _39; return o; } #line 93 void F__VSMainOut( #line 93 in uint vid : SV_VERTEXID, #line 93 out float4 position : SV_POSITION, #line 93 out float2 texcoord : TEXCOORD0) { #line 95 uint _45; #line 95 _45 = vid; #line 95 S__VSOut _46 = F__VSMain(_45); #line 95 S__VSOut o_47 = _46; #line 96 position = o_47.pos; #line 97 texcoord = o_47.uv; return; } #line 40 "Colorblind.fx" void F__PSMain( #line 40 in S__VSOut i, #line 40 out float4 color : SV_TARGET) { #line 42 float4 _55 = V__NV__ColorInput.t.Sample(V__NV__ColorInput.s, i.uv); #line 42 color = _55; #line 43 float3 RGB = color.xyz; #line 45 float _59 = dot(RGB, float3(1.78824005e+01, 4.35161018e+01, 4.11934996e+00)); #line 46 float _61 = dot(RGB, float3(3.45565009e+00, 2.71553993e+01, 3.86714005e+00)); #line 47 float _63 = dot(RGB, float3(2.99565997e-02, 1.84309006e-01, 1.46709001e+00)); #line 45 float3 _64 = float3(_59, _61, _63); #line 45 float3 LMS = _64; #line 49 float3 LMS_daltonized = LMS; #line 51 float _68 = dot(LMS, float3(0.00000000e+00, 2.02343988e+00, -2.52581000e+00)); #line 51 float _70 = lerp(LMS_daltonized.x, _68, g_sldProtanopia); #line 51 LMS_daltonized[0] = _70; #line 53 float _72 = dot(LMS, float3(4.94206995e-01, 0.00000000e+00, 1.24827003e+00)); #line 53 float _74 = lerp(LMS_daltonized.y, _72, g_sldDeuteranopia); #line 53 LMS_daltonized[1] = _74; #line 55 float _76 = dot(LMS, float3(-3.95913005e-01, 8.01109016e-01, 0.00000000e+00)); #line 55 float _78 = lerp(LMS_daltonized.z, _76, g_sldTritanopia); #line 55 LMS_daltonized[2] = _78; #line 57 float _80 = dot(LMS_daltonized, float3(8.09444487e-02, -1.30504414e-01, 1.16721064e-01)); #line 58 float _82 = dot(LMS_daltonized, float3(-1.02485335e-02, 5.40193282e-02, -1.13614701e-01)); #line 59 float _84 = dot(LMS_daltonized, float3(-3.65296932e-04, -4.12161462e-03, 6.93511426e-01)); #line 57 float3 _85 = float3(_80, _82, _84); #line 57 float3 RGB_daltonized = _85; #line 61 float3 RGB_corrected = RGB; #line 62 float2 _90 = RGB.xy - RGB_daltonized.xy; #line 62 float _92 = dot(_90, float2(6.99999988e-01, 1.00000000e+00)); #line 62 float _94 = RGB_corrected.y + _92; #line 62 RGB_corrected[1] = _94; #line 63 float2 _97 = RGB.xz - RGB_daltonized.xz; #line 63 float _99 = dot(_97, float2(6.99999988e-01, 1.00000000e+00)); #line 63 float _101 = RGB_corrected.z + _99; #line 63 RGB_corrected[2] = _101; #line 65 float4 _106 = float4(RGB_corrected.x, RGB_corrected.y, RGB_corrected.z, 1.00000000e+00); #line 65 color = _106; return; }