## FRAGEMENT SHADER ## #version 450 core // ps_5_0 // Checksum: 1c13145e-55c0a658-5670dc4b-232a8d14 // Name: _1_of_4\translucent\additive_distort_soft.fxo in idx_Varying2 { vec4 v; } v2; in idx_Varying3 { vec4 v; } v3; in idx_Varying5 { vec4 v; } v5; in idx_Varying7 { vec4 v; } v7; in idx_Varying8 { vec4 v; } v8; layout(location = 0) out vec4 o0; vec4 r0, r1; // Uniform buffer declarations (dcl_constant_buffer) layout (std140) uniform cb_ps0 { vec4 cb_psl0[35]; } idx_uniforms0_ps; // Sampler/resource pairs uniform sampler2D resourceSamplerPair_0_ps; // res2, s2 uniform sampler2D resourceSamplerPair_1_ps; // res1, s1 uniform sampler2D resourceSamplerPair_2_ps; // res0, s0 void Initialise() { } #define mod_sat(rhs) clamp(rhs, float(0), float(1)) void main() { Initialise(); r0.xy = mix(v3.v.xy/v3.v.ww, vec2(uintBitsToFloat(uint(0x70000000))) * sign(v3.v.xy), equal(v3.v.ww, vec2(0.0))); r0.x = ((texture(resourceSamplerPair_0_ps, r0.xy))).x; r0.x = -r0.x + v3.v.w; r0.x = mod_sat((idx_uniforms0_ps.cb_psl0[15].z != 0.0) ? abs(r0.x)/idx_uniforms0_ps.cb_psl0[15].z : uintBitsToFloat(uint(0x70000000)) * sign(abs(r0.x))); r0.x = -r0.x + float(1.00000000f); r0.x = log2(r0.x); r0.x = r0.x * idx_uniforms0_ps.cb_psl0[15].w; r0.x = exp2(r0.x); r0.x = -r0.x + float(1.00000000f); r0.yz = fma(v2.v.xy, idx_uniforms0_ps.cb_psl0[18].xy, idx_uniforms0_ps.cb_psl0[16].xy); r0.yz = fma(idx_uniforms0_ps.cb_psl0[19].ww, idx_uniforms0_ps.cb_psl0[16].zw, r0.yz); r0.yz = ((texture(resourceSamplerPair_1_ps, r0.yz)).xywz).yz; r1.xy = fma(r0.yz, vec2(2.00000000f, 2.00000000f), vec2(-1.00000000f, -1.00000000f)); r1.z = -1 * r1.y; r0.yz = r1.xz * idx_uniforms0_ps.cb_psl0[19].xy; r0.yz = fma(v2.v.xy, idx_uniforms0_ps.cb_psl0[17].xy, r0.yz); r1 = (texture(resourceSamplerPair_2_ps, r0.yz)); r1.w = r0.x * r1.w; r0 = r1 * v8.v; r0 = r0 * v5.v; r0.xyz = r0.xyz * v7.v.www; r0.xyz = r0.www * r0.xyz; o0.w = dot(r0.xyz, idx_uniforms0_ps.cb_psl0[34].xyz); o0.xyz = r0.xyz; return; } ## VERTEX SHADER ## #version 450 core // vs_5_0 // Checksum: 416c7c43-b25dcd1f-f057fad3-76fb874d // Name: _0_of_4\translucent\additive_distort_soft.fxo layout(location = 0) in vec4 v0; layout(location = 1) in vec4 v1; layout(location = 2) in vec4 v2; layout(location = 5) in vec4 v5; // gl_Position out idx_Varying1 { vec4 v; } o1; out idx_Varying2 { vec4 v; } o2; out idx_Varying3 { vec4 v; } o3; out idx_Varying4 { vec4 v; } o4; out idx_Varying5 { vec4 v; } o5; out idx_Varying6 { vec4 v; } o6; out idx_Varying7 { vec4 v; } o7; out idx_Varying8 { vec4 v; } o8; vec4 r0, r1, r2, r3; // Uniform buffer declarations (dcl_constant_buffer) layout (std140) uniform cb_vs0 { vec4 cb_vsl0[39]; } idx_uniforms0_vs; uniform vec4 idx_Viewport_vs; vec4 D3DtoGL(in vec4 pos) { pos.xy += idx_Viewport_vs.xy * vec2(pos.w, -pos.w); return pos; } vec4 GLtoD3D(in vec4 pos) { pos.xy -= idx_Viewport_vs.xy * vec2(pos.w, -pos.w); return pos; } void Initialise() { } void VertexEpilog() { gl_Position = D3DtoGL(gl_Position); } #define mod_sat(rhs) clamp(rhs, float(0), float(1)) void main() { Initialise(); r0.xyz = v0.xyz; r0.w = uintBitsToFloat(uint(0x3f800000)); r1.x = dot(idx_uniforms0_vs.cb_vsl0[20], r0); r1.y = dot(idx_uniforms0_vs.cb_vsl0[21], r0); r1.z = dot(idx_uniforms0_vs.cb_vsl0[22], r0); r1.w = dot(idx_uniforms0_vs.cb_vsl0[23], r0); r0.x = dot(idx_uniforms0_vs.cb_vsl0[25], r0); r0.x = r0.x + idx_uniforms0_vs.cb_vsl0[31].w; gl_Position = r1; o1.v.xyz = v1.xyz; o2.v.xy = v2.xy; r0.yz = idx_uniforms0_vs.cb_vsl0[38].xy * vec2(1.00000000f, -1.00000000f); r2.xy = r1.ww * idx_uniforms0_vs.cb_vsl0[38].xy; o3.v.xy = fma(r1.xy, r0.yz, r2.xy); o6.v.xyz = r1.xyz; o3.v.zw = r1.zw; r0.yzw = -v0.xyz + idx_uniforms0_vs.cb_vsl0[37].xyz; o4.v.xyz = r0.yzw; o5.v.xyz = idx_uniforms0_vs.cb_vsl0[35].xyz * idx_uniforms0_vs.cb_vsl0[36].xyz; o5.v.w = idx_uniforms0_vs.cb_vsl0[35].w; r1.x = dot(idx_uniforms0_vs.cb_vsl0[24].xyz, r0.yzw); r1.z = dot(idx_uniforms0_vs.cb_vsl0[26].xyz, r0.yzw); r1.y = dot(idx_uniforms0_vs.cb_vsl0[25].xyz, r0.yzw); r0.y = dot(r1.xyz, r1.xyz); r0.y = inversesqrt(r0.y); r2.xyz = r0.yyy * r1.xyz; r0.y = fma(-r1.y, r0.y, float(-0.150000006f)); r0.y = mod_sat(-r0.y + float(1.00000000f)); r0.y = r0.y * r0.y; r0.z = dot(-r2.xyz, idx_uniforms0_vs.cb_vsl0[33].xyz); r0.w = fma(-idx_uniforms0_vs.cb_vsl0[28].y, r0.z, idx_uniforms0_vs.cb_vsl0[28].x); r0.z = fma(r0.z, r0.z, float(1.00000000f)); r0.w = log2(abs(r0.w)); r0.zw = r0.zw * vec2(0.0596831031f, -1.50000000f); r0.w = exp2(r0.w); r1.x = fma(idx_uniforms0_vs.cb_vsl0[28].z, r0.w, -idx_uniforms0_vs.cb_vsl0[27].z); r0.w = r0.w * idx_uniforms0_vs.cb_vsl0[28].z; r1.x = max(r1.x, float(0.00000000f)); r1.y = abs(r1.w) * float(1.99999995e-05f); r1.y = min(r1.y, float(1.00000000f)); r1.y = -r1.y + float(1.00000000f); r0.w = fma(-r1.x, r1.y, r0.w); r0.w = max(r0.w, idx_uniforms0_vs.cb_vsl0[32].w); r1.x = (idx_uniforms0_vs.cb_vsl0[27].x != 0.0) ? -r0.x/idx_uniforms0_vs.cb_vsl0[27].x : uintBitsToFloat(uint(0x70000000)) * sign(-r0.x); r1.x = r1.x * float(1.44269502f); r1.x = exp2(r1.x); r1.x = r1.x + idx_uniforms0_vs.cb_vsl0[28].w; r1.x = r1.x * idx_uniforms0_vs.cb_vsl0[29].y; r1.x = r1.x * float(0.500000000f); r0.y = r0.y * r1.x; r0.y = min(r0.y, idx_uniforms0_vs.cb_vsl0[27].w); r0.y = max(r0.y, idx_uniforms0_vs.cb_vsl0[29].x); r0.w = r0.y * r0.w; r1.x = (idx_uniforms0_vs.cb_vsl0[30].w != 0.0) ? -r0.x/idx_uniforms0_vs.cb_vsl0[30].w : uintBitsToFloat(uint(0x70000000)) * sign(-r0.x); r0.x = -r0.x + idx_uniforms0_vs.cb_vsl0[31].z; r0.x = (idx_uniforms0_vs.cb_vsl0[27].y != 0.0) ? r0.x/idx_uniforms0_vs.cb_vsl0[27].y : uintBitsToFloat(uint(0x70000000)) * sign(r0.x); r1.x = r1.x * float(1.44269502f); r1.x = exp2(r1.x); r2.xyz = r1.xxx * idx_uniforms0_vs.cb_vsl0[30].xyz; r1.xyz = fma(idx_uniforms0_vs.cb_vsl0[30].xyz, r1.xxx, r0.yyy); r0.yzw = fma(r2.xyz, r0.zzz, r0.www); r0.yzw = mix(r0.yzw/r1.xyz, vec3(uintBitsToFloat(uint(0x70000000))) * sign(r0.yzw), equal(r1.xyz, vec3(0.0))); r2.xyz = r0.xxx * -r1.xyz; r1.xyz = abs(r1.www) * -r1.xyz; r1.xyz = r1.xyz * vec3(1.44269502f, 1.44269502f, 1.44269502f); r1.xyz = exp2(r1.xyz); r2.xyz = r2.xyz * vec3(1.44269502f, 1.44269502f, 1.44269502f); r2.xyz = exp2(r2.xyz); r3.xyz = log2(idx_uniforms0_vs.cb_vsl0[32].xyz); r3.xyz = r3.xyz * vec3(0.454545468f, 0.454545468f, 0.454545468f); r3.xyz = exp2(r3.xyz); r2.xyz = r2.xyz * r3.xyz; r0.xyz = r0.yzw * r2.xyz; r1.yzw = -r1.xyz + vec3(1.00000000f, 1.00000000f, 1.00000000f); o7.v.w = r1.x; r0.xyz = fma(r0.xyz, r1.yzw, vec3(-0.00400000019f, -0.00400000019f, -0.00400000019f)); r0.xyz = max(r0.xyz, vec3(0.00000000f, 0.00000000f, 0.00000000f)); r1.xyz = fma(r0.xyz, vec3(6.19999981f, 6.19999981f, 6.19999981f), vec3(0.500000000f, 0.500000000f, 0.500000000f)); r1.xyz = r0.xyz * r1.xyz; r2.xyz = fma(r0.xyz, vec3(6.19999981f, 6.19999981f, 6.19999981f), vec3(1.70000005f, 1.70000005f, 1.70000005f)); r0.xyz = fma(r0.xyz, r2.xyz, vec3(0.0599999987f, 0.0599999987f, 0.0599999987f)); o7.v.xyz = mix(r1.xyz/r0.xyz, vec3(uintBitsToFloat(uint(0x70000000))) * sign(r1.xyz), equal(r0.xyz, vec3(0.0))); o8.v = v5; VertexEpilog(); return; }