diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_AmiiboMode/8d24f32f18e6de47_0000000079249749_ps.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_AmiiboMode/8d24f32f18e6de47_0000000079249749_ps.txt new file mode 100644 index 00000000..e3d475aa --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_AmiiboMode/8d24f32f18e6de47_0000000079249749_ps.txt @@ -0,0 +1,675 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 8d24f32f18e6de47 +uniform ivec4 uf_remappedPS[10]; +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf45c6000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf494a800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0xf5054000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform sampler2D textureUnitPS7;// Tex7 addr 0xf5846000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 8) uniform samplerCubeArray textureUnitPS8;// Tex8 addr 0x3d0ea800 res 64x64x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x6) Sampler8 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 10) uniform sampler2DArray textureUnitPS10;// Tex10 addr 0xf5593000 res 640x360x2 dim 5 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x2) Sampler10 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 11) uniform sampler2D textureUnitPS11;// Tex11 addr 0xf575f800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler11 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 13) uniform sampler2D textureUnitPS13;// Tex13 addr 0xf5977800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler13 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex8 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem3); +R3i = floatBitsToInt(passParameterSem4); +R4i = floatBitsToInt(passParameterSem6); +R7i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R4i.zw)).xyzw); +R2i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x); +R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS6, intBitsToFloat(R0i.xy)).xyzw); +R6i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, intBitsToFloat(R0i.xy)).xyzw); +R8i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R4i.zw)).xyzw); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); +PV0i.y = R127i.y; +R126i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); +PV0i.z = R126i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R127i.w; +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.x)); +PS0i = R127i.z; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R9i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PS1i = R9i.z; +// 2 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(R127i.w)))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(R127i.w)))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(uf_remappedPS[2].y))); +R125i.w = floatBitsToInt(max(intBitsToFloat(R127i.z), -(intBitsToFloat(R127i.z)))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +R126i.y = floatBitsToInt(tempResultf); +PS0i = R126i.y; +// 3 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R4i.x; +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.y)); +R126i.w = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.z)); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +PS1i = R127i.w; +// 4 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R9i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +PS0i = R9i.x; +// 5 +backupReg0i = R127i.z; +backupReg0i = R127i.z; +R126i.x = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.w)); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(R0i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R127i.w))); +R127i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 6 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV0i.x = R127i.x; +PV0i.y = R127i.x; +PV0i.z = R127i.x; +PV0i.w = R127i.x; +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 7 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(PS0i))); +R12i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(PS0i))); +R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.x)); +R125i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.y)); +PS1i = R125i.x; +// 8 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(max(intBitsToFloat(R126i.w), -(intBitsToFloat(R126i.w)))); +PV0i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.w)); +R125i.z = floatBitsToInt(max(intBitsToFloat(R126i.x), -(intBitsToFloat(R126i.x)))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.z)); +PS0i = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w)))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 4.0); +// 9 +backupReg0i = R126i.z; +PV1i.x = floatBitsToInt(max(intBitsToFloat(R125i.x), -(intBitsToFloat(R125i.x)))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 4.0); +PV1i.y = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 4.0); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.w)) + intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.y))); +PS1i = R5i.z; +// 10 +backupReg0i = R127i.z; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R127i.z = floatBitsToInt(fract(intBitsToFloat(R3i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.w))); +PV0i.w = R123i.w; +R125i.x = floatBitsToInt(fract(intBitsToFloat(R3i.y))); +PS0i = R125i.x; +// 11 +R127i.x = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(PV0i.w))); +PV1i.x = R127i.x; +R126i.y = R4i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.y)); +PV1i.z = R126i.z; +R127i.w = R4i.y; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +R125i.w = R5i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0); +PS1i = R125i.w; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R12i.y),intBitsToFloat(R11i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +// 13 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R126i.y)) + intBitsToFloat(R5i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(backupReg0i))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(R12i.y))); +PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(R127i.z)); +PV1i.w = clampFI32(PV1i.w); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R11i.z))); +PS1i = R125i.z; +// 14 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R9i.x)) + intBitsToFloat(R1i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R125i.x)); +PV0i.y = clampFI32(PV0i.y); +R10i.z = floatBitsToInt(roundEven(0.0)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.w)); +R2i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PS0i = R2i.w; +// 15 +R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R0i.x))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R9i.y)) + intBitsToFloat(R1i.w))); +R1i.z = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(uf_remappedPS[3].x)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.y)); +R1i.y = floatBitsToInt(intBitsToFloat(R12i.y) + intBitsToFloat(uf_remappedPS[3].y)); +PS1i = R1i.y; +// 16 +// edit here +// desaturates shadow making it look metal (R127i.y))*.05 +R125i.x = floatBitsToInt(max(-(intBitsToFloat(R127i.y)), 0.0)); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R0i.y))); +// rlli.z and uf_remapedPS3 both alter shinyness +R3i.z = floatBitsToInt(intBitsToFloat(R11i.z) + intBitsToFloat(uf_remappedPS[3].z)); +// edit here +// kinda tone maping on character ? (R8i.w)*.05 +// low numbers = darker darks and brighter brights +R127i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(0x437f0000)); +// Edit here +// 7i.w carrying character shinyness reflectivity without map items +R6i.z = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0); +PS0i = R6i.z; +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R1i.w = 0; +PS1i = R1i.w; +// 18 rotates reflection world cube map? +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV0i.x = R124i.x; +PV0i.y = R124i.x; +PV0i.z = R124i.x; +PV0i.w = R124i.x; +R124i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +PS0i = R124i.z; +// 19 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.z),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = tempi.x; +R4i.z = int(intBitsToFloat(R127i.w)); +PS1i = R4i.z; +// 20 +redcCUBE(vec4(intBitsToFloat(R124i.z),intBitsToFloat(R124i.z),intBitsToFloat(R124i.x),intBitsToFloat(PV1i.x)),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(R124i.x),intBitsToFloat(R124i.z),intBitsToFloat(R124i.z)),cubeMapSTM,cubeMapFaceId); +R0i.x = floatBitsToInt(cubeMapSTM.x); +R0i.y = floatBitsToInt(cubeMapSTM.y); +R0i.z = floatBitsToInt(cubeMapSTM.z); +R0i.w = cubeMapFaceId; +PV0i.x = R0i.x; +PV0i.y = R0i.y; +PV0i.z = R0i.z; +PV0i.w = R0i.w; +// r125i. brightens shadows +R6i.y = floatBitsToInt(min(intBitsToFloat(R125i.x), 1.0)); +PS0i = R6i.y; +// 21 +R1i.x = 0; +R3i.y = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x437f0000)); +R2i.z = PV0i.w; +// tweak reflectivity of surfaces +R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(R6i.z)) + intBitsToFloat(R6i.z))); +R3i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z))); +PS1i = R3i.x; +// 0 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(uf_remappedPS[7].w))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(uf_remappedPS[7].w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R3i.x)) + 1.5)); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R3i.x)) + 1.5)); +PV0i.w = R123i.w; +R124i.y = R4i.z & 0x000000fc; +PS0i = R124i.y; +// 1 +R2i.x = PV0i.w; +R2i.y = PV0i.z; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(uf_remappedPS[7].w))); +// edit here for Plastic look +//(R3i.w)*.01 +// R3i.w how plastic a surface can look. Seems to change how much the bump mapping affects the surface .01 pure plastic - 65 nearly only the light grey cloud-ish texutre over top characters. +// Combine pure plastic with low specular further down in the file to make a more matte look +R127i.w = floatBitsToInt(intBitsToFloat(R3i.w)*$clarity + intBitsToFloat(0x3c23d70a)); +R127i.w = clampFI32(R127i.w); +R125i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + 1.0); +PS1i = R125i.w; +// 2 more sun +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R3i.z),-0.0),vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R3i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = int(intBitsToFloat(R3i.y)); +PS0i = R127i.y; +// 3 dot product makes brightness of sun on characters and land can totally knock out sun +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z)),vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R124i.z)),-(intBitsToFloat(R1i.x))))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.w = tempi.x; +// pv0i.x messes saturation of clothing +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +// edit here +// R127i.w seems to control how shiny stuff is and amount of bloom it gives off +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PS1i))); +R127i.x = floatBitsToInt(float(R124i.y)); +PS0i = R127i.x; +// 5 +backupReg0i = R125i.w; +backupReg0i = R125i.w; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.x = R124i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.y = R124i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[7].w))); +PV1i.z = R126i.z; +R125i.w = floatBitsToInt((intBitsToFloat(R6i.z) * 0.5 + 0.5)); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg0i))); +PS1i = R125i.z; +// 6 dot product makes specular highlight on charactes but not inverse. Lower is lower +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z)),vec4(-(intBitsToFloat(PV1i.x)),-(intBitsToFloat(PV1i.y)),-(intBitsToFloat(PV1i.z)),-(intBitsToFloat(R1i.w))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.x = R127i.y & int(1); +PS0i = R126i.x; +// 7 +// dot product is finding the specular on characters +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R124i.z)),-0.0),vec4(-(intBitsToFloat(R124i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(R126i.z)),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +// 8 r127i.x how bright metal is +R1i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3b820821)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R125i.w))); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) / 2.0); +// edit here Specular? +// charactr specular highlight intBitsToFloat(R127i.z)*3 +// higher number = less highlight less than 1 = more highlight. +// good combo with plastic to remove shiny 45 +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PS1i)) + -(intBitsToFloat(PS1i)))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(R125i.z)) + intBitsToFloat(R125i.z))); +PS0i = R122i.x; +// 9 +backupReg0i = R126i.x; +R126i.x = R126i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + 4.0)); +R124i.y = ((backupReg0i == 0)?(0):(0x3f800000)); +PS1i = R124i.y; +// 10 +backupReg0i = R127i.w; +R7i.x = R126i.w; +R7i.x = clampFI32(R7i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(R126i.z) + 1.0); +R124i.z = floatBitsToInt((-(intBitsToFloat(R1i.x)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R6i.y))); +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PS0i = R122i.x; +// 11 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS0i))); +// how shiny is metal rli.x +R7i.z = floatBitsToInt((intBitsToFloat(R1i.x) * 0.25 + 0.25)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(backupReg0i))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R125i.w)); +// 12 +backupReg0i = R124i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R127i.w)); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),-(intBitsToFloat(R127i.y))) + intBitsToFloat(R7i.x))); +PV0i.w = R123i.w; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.z))); +PS0i = R125i.x; +// 13 +backupReg0i = R127i.y; +backupReg1i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].w), intBitsToFloat(uf_remappedPS[7].w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.z))); +PV1i.y = R127i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(R124i.z))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.w)); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(backupReg1i)); +PS1i = R127i.w; +// 14 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PV1i.z))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),-(intBitsToFloat(R124i.y))) + intBitsToFloat(PV1i.z))); +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),-(intBitsToFloat(R125i.y))) + intBitsToFloat(R125i.x))); +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PV1i.y))); +R6i.y = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); +PS0i = R6i.y; +// 15 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),-(intBitsToFloat(R124i.y))) + intBitsToFloat(R125i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(R124i.y))) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R127i.w))); +R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg0i))); +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); +PS1i = R127i.z; +// 16 +backupReg0i = R127i.x; +backupReg1i = R126i.y; +R127i.x = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R125i.w)); +R126i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(backupReg0i)); +R5i.z = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(backupReg1i)); +R125i.w = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R124i.z)); +R6i.z = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(PV1i.y)); +PS0i = R6i.z; +// 17 +PV1i.x = floatBitsToInt(0.25 * intBitsToFloat(R6i.y)); +R6i.y = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(R126i.x)); +R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R126i.z))); +R3i.w = floatBitsToInt((intBitsToFloat(R8i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R3i.w = clampFI32(R3i.w); +R0i.w = floatBitsToInt((intBitsToFloat(R8i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R0i.w = clampFI32(R0i.w); +PS1i = R0i.w; +// 18 +R0i.x = floatBitsToInt((intBitsToFloat(R8i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R0i.x = clampFI32(R0i.x); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV1i.x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.x))); +PS0i = R4i.z & int(1); +// 19 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x), intBitsToFloat(PV0i.w))); +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z), intBitsToFloat(PV0i.y))); +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y), intBitsToFloat(PV0i.z))); +R3i.z = floatBitsToInt(float(PS0i)); +PS1i = R3i.z; +// 20 +R4i.x = R10i.x; +R4i.y = R10i.y; +R4i.z = floatBitsToInt(roundEven(1.0)); +R8i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R9i.xy)).x); +R12i.xzw = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R10i.xy)).xzw); +R13i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z))).xyz); +R4i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z))).xyz); +R2i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R2i.xy),R2i.z),cubeMapArrayIndex8),intBitsToFloat(R2i.w)).xyz); +R10i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R10i.xy)).xyz); +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.w),-(intBitsToFloat(R7i.z))) + intBitsToFloat(R12i.w))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R12i.w) * 0.5 + 0.5)); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(R8i.w)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(R7i.x))); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R12i.z))); +PS0i = R125i.x; +// 1 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV0i.y)); +PV1i.y = clampFI32(PV1i.y); +PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.z)), intBitsToFloat(R5i.y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.z)), intBitsToFloat(R6i.x))); +// r7i.z shadow brightness PV0i.x shadow highlight brightness +R126i.x = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(PV0i.x)); +PS1i = R126i.x; +// 2 more edge lights in shadow +R127i.x = floatBitsToInt(-(intBitsToFloat(R11i.x)) + intBitsToFloat(PV1i.w)); +PV0i.x = R127i.x; +R126i.y = floatBitsToInt(-(intBitsToFloat(R11i.y)) + intBitsToFloat(PV1i.z)); +PV0i.y = R126i.y; +// R9i.z tonemapping? brightnss of sun on bright surfaces vs nearby dark. Ratio of Rlli.xy above vs r9i.z below. Values tested (R11i.x and y)*.5) (R9i.z)*.1 +PV0i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV1i.x)); +// brightness of sun +R8i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV1i.y))); + +// uf_remappedps[9].x carries specular highlight of sun on shiny surfaces +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x), intBitsToFloat(R125i.w))); + + +PS0i = R124i.y; +// 3 produces edge highlights on the shadowed edge +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R12i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = tempi.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R5i.z))); +PS1i = R125i.y; +// 4 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R6i.z))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); +// 5 +backupReg0i = R125i.y; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R7i.w))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(backupReg0i)) + intBitsToFloat(R4i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R6i.y))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R1i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R126i.y)) + intBitsToFloat(R4i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(R4i.z))); +PV0i.w = R123i.w; +// 7 +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.w))); +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.z))); +R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.y))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); +PS1i = floatBitsToInt(tempResultf); +// 8 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R125i.x))); +PS0i = R4i.w; +// 9 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].z), intBitsToFloat(PV0i.w))); +// 10 +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3ced9168)); +PV0i.y = clampFI32(PV0i.y); +// 11 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.z)) + 1.0)); +PV1i.y = R123i.y; +// 12 PVli.y seems to be a scalar for ambient light in the shadows +backupReg0i = R1i.x; +R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +// 0 r3i.xyz ambient light in the shadows +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(R8i.w)) + intBitsToFloat(R13i.x))); +PV0i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z),intBitsToFloat(R8i.w)) + intBitsToFloat(R13i.z))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(R8i.w)) + intBitsToFloat(R13i.y))); +PV0i.w = R123i.w; +// 1 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R1i.x))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R1i.x))); +// 2 +backupReg0i = R0i.x; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R0i.w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(backupReg0i))); +// 3PV0i sun color/brightness on land +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.z = R123i.z; +// 4 R2i.xy r8i.z brightness of reflectd sky light on shadowed surfaces kinda like rimlighting PVli.xyz brightness of run on land +PV0i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(PV1i.x)); +PV0i.z = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV1i.z)); +// 5 PV0i.xyz color / brightness of sun Rl0i.xyz color / brightness of fog over land and sky +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R10i.x))); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R10i.y))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R10i.z))); +// export +passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_AmiiboMode/rules.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_AmiiboMode/rules.txt new file mode 100644 index 00000000..2e626d40 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_AmiiboMode/rules.txt @@ -0,0 +1,55 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = "Amiibo Mode" +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Cel-Shading Removal/Amiibo Mode" +description = Amiibo mode by Altros, add or remove that plastic look. Req Remove Links Cell Shading by SkalFate +version = 3 + + +[Preset] +name = Plastic %100 +$clarity = 0.05 + +[Preset] +name = Plastic %95 +$clarity = 0.15 + +[Preset] +name = Plastic %90 +$clarity = 0.30 + +[Preset] +name = Plastic %85 +$clarity = 0.37 + +[Preset] +name = Plastic %75 +$clarity = 0.43 + +[Preset] +name = Plastic %65 +$clarity = 0.50 + +[Preset] +name = Plastic %55 +$clarity = 0.57 + +[Preset] +name = Plastic %45 +$clarity = 0.65 + +[Preset] +name = Plastic %35 +$clarity = 0.75 + +[Preset] +name = Plastic %25 +$clarity = 0.95 + +[Preset] +name = Plastic %15 +$clarity = 1.15 + +[Preset] +name = Plastic %5 +$clarity = 1.35 diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/2f7ecb9f0022d8ca_0000000000000001_ps.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/2f7ecb9f0022d8ca_0000000000000001_ps.txt new file mode 100644 index 00000000..0df6a621 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/2f7ecb9f0022d8ca_0000000000000001_ps.txt @@ -0,0 +1,90 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 2f7ecb9f0022d8ca -- Pixel shader for Links Cel Shading World & Menu - Texture format 0x005d +#define mode $mode + +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4ccf000 res 1280x720x1 dim 1 tm: 4 format 0007 compSel: 0 0 0 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem0; +uniform vec2 uf_fragCoordScale; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; + +R0i = floatBitsToInt(passParameterSem0); // comes from 3 vertex shaders, one of them handles the lighting that glitches the sky(314b77349f0636db), so lets exclude it + +if (passParameterSem0.w == 4.0) +{ + R0i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); + + // 0 + PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) * intBitsToFloat(0x437f0000)); + R127i.y = int(uint(intBitsToFloat(R0i.z))); + PS0i = R127i.y; + + // 1 + if ( mode > 1) // if mode is greater than 1 then run our own code + { + // very interesting - Replace PS1i(which is integer) with any of these numbers, there are like 4 diff modes that repeat through diff integers, [4,6,7,8,10,11] [-5 -9 -10 -12 -18 -19 -25 -26 -28 -34 -40 -41 -42] + PS1i = int(mode); + } + else + { + PS1i = int(uint(intBitsToFloat(PV0i.x))); // orignal code + } + + // 2 + PV0i.z = R127i.y & PS1i; + + // 3 + PS1i = floatBitsToInt(float(uint(PV0i.z))); + + // 4 + R0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3b808081)); +} +else +{ + R0i.w = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R0i.xy)).x); + + // 0 + PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) * intBitsToFloat(0x437f0000)); + R127i.y = int(uint(intBitsToFloat(R0i.z))); + PS0i = R127i.y; + + // 1 + PS1i = int(uint(intBitsToFloat(PV0i.x))); // orignal code + + // 2 + PV0i.z = R127i.y & PS1i; + + // 3 + PS1i = floatBitsToInt(float(uint(PV0i.z))); + + // 4 + R0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3b808081)); +} + +// export +gl_FragDepth = vec4(intBitsToFloat(R0i.x), 0, 0, 0).x; +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b77345f06369b_0000000000000000_vs.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b77345f06369b_0000000000000000_vs.txt new file mode 100644 index 00000000..cd7e94a0 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b77345f06369b_0000000000000000_vs.txt @@ -0,0 +1,87 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable + +// shader 314b77345f06369b -- Vertex shader for Links Cel Shading - Texture format 0x005d + +uniform ivec4 uf_remappedVS[1]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0xf4ccf000 res 1280x720x1 dim 1 tm: 4 format 0007 compSel: 0 0 0 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler273 ClampX/Y/Z: 0 0 0 border: 0 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0)); +// 0 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = backupReg0i; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +R1i.y = backupReg1i; +R1i.y = floatBitsToInt(intBitsToFloat(R1i.y) * 2.0); +R1i.z = 0x3f800000; +R0i.w = 0; +R3i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].x) * intBitsToFloat(0x437f0000)); +PS0i = R3i.z; +R0i.xy = ivec4(textureSize(textureUnitVS0, 0),1,1).xy; +// export +gl_Position = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.z)); +// 0 +R127i.z = floatBitsToInt(float(R0i.x)); +PS0i = R127i.z; +// 1 +R127i.y = floatBitsToInt(float(R0i.y)); +PS1i = R127i.y; +// 2 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 3 +R3i.x = floatBitsToInt((-(intBitsToFloat(PS0i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 4 +R3i.y = floatBitsToInt((-(intBitsToFloat(PS1i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.y))); + +// export +passParameterSem0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), 4.0); // we change R3i.w to 4 and send to to FS to catch it +// Multiplying xy by 200 minimizes the overlay and removes cel-shading, and multiplying z by 2 makes light shading +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b77349f0636db_0000000000000000_vs.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b77349f0636db_0000000000000000_vs.txt new file mode 100644 index 00000000..0c4304e6 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b77349f0636db_0000000000000000_vs.txt @@ -0,0 +1,85 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable + +// shader 314b77349f0636db -- Vertex Shader -- Lights up Cel-Shade Link and NPCs but also messes up the sky in the new methods + +uniform ivec4 uf_remappedVS[1]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0xf4ccf000 res 1280x720x1 dim 1 tm: 4 format 0007 compSel: 0 0 0 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler273 ClampX/Y/Z: 0 0 0 border: 0 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0)); +// 0 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = backupReg0i; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +R1i.y = backupReg1i; +R1i.y = floatBitsToInt(intBitsToFloat(R1i.y) * 2.0); +R1i.z = 0x3f800000; +R0i.w = 0; +R3i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].y) * intBitsToFloat(0x437f0000)); +PS0i = R3i.z; +R0i.xy = ivec4(textureSize(textureUnitVS0, 0),1,1).xy; +// export +gl_Position = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.z)); +// 0 +R127i.z = floatBitsToInt(float(R0i.x)); +PS0i = R127i.z; +// 1 +R127i.y = floatBitsToInt(float(R0i.y)); +PS1i = R127i.y; +// 2 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 3 +R3i.x = floatBitsToInt((-(intBitsToFloat(PS0i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 4 +R3i.y = floatBitsToInt((-(intBitsToFloat(PS1i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.y))); +// export +passParameterSem0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.z)); // propety w is not set to 4.0 so it wont get processed the same way as the other 2 vertex shader +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b7734df06371b_0000000000000000_vs.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b7734df06371b_0000000000000000_vs.txt new file mode 100644 index 00000000..c550f725 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/314b7734df06371b_0000000000000000_vs.txt @@ -0,0 +1,91 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable + +// shader 314b7734df06371b -- Vertex Shader for Water/Magma and etc, one of the 3 vertex shaders involved with cel-shade removal + +uniform ivec4 uf_remappedVS[1]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +layout(binding = 32) uniform sampler2D textureUnitVS0;// Tex0 addr 0xf4ccf000 res 1280x720x1 dim 1 tm: 4 format 0007 compSel: 0 0 0 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler273 ClampX/Y/Z: 0 0 0 border: 0 +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); + +attrDecoder.xyz = attrDataSem0.xyz; +attrDecoder.xyz = (attrDecoder.xyz>>24)|((attrDecoder.xyz>>8)&0xFF00)|((attrDecoder.xyz<<8)&0xFF0000)|((attrDecoder.xyz<<24)); +attrDecoder.w = 0; +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), floatBitsToInt(1.0)); + +attrDecoder.xy = attrDataSem1.xy; +attrDecoder.xy = (attrDecoder.xy>>24)|((attrDecoder.xy>>8)&0xFF00)|((attrDecoder.xy<<8)&0xFF0000)|((attrDecoder.xy<<24)); +attrDecoder.z = 0; +attrDecoder.w = 0; +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), floatBitsToInt(0.0), floatBitsToInt(1.0)); + +// 0 +backupReg0i = R1i.x; +backupReg1i = R1i.y; +R1i.x = backupReg0i; +R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) * 2.0); +R1i.y = backupReg1i; +R1i.y = floatBitsToInt(intBitsToFloat(R1i.y) * 2.0); +R1i.z = 0x3f800000; +R0i.w = 0; +R3i.z = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x437f0000)); +PS0i = R3i.z; + +R0i.xy = ivec4(textureSize(textureUnitVS0, 0),1,1).xy; + +// export +gl_Position = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.z)); + +// 0 +R127i.z = floatBitsToInt(float(R0i.x)); +PS0i = R127i.z; +// 1 +R127i.y = floatBitsToInt(float(R0i.y)); +PS1i = R127i.y; +// 2 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z)); +// 3 +R3i.x = floatBitsToInt((-(intBitsToFloat(PS0i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.y)); +// 4 +R3i.y = floatBitsToInt((-(intBitsToFloat(PS1i)) * intBitsToFloat(0x3c23d70a) + intBitsToFloat(R2i.y))); +// export +passParameterSem0 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), 4.0); +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/rules.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/rules.txt new file mode 100644 index 00000000..90ba560c --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_CelShadingRemoval/rules.txt @@ -0,0 +1,28 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = All NPC No Cel-Shading Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Cel-Shading Removal/Cel-Shading - Main" +description = Changes the type of shading on Link and the world. +version = 3 + +[Preset] +name = Cel-Shading Disabled +$mode = 4 + +[Preset] +name = Light Shading +$mode = 6 + +[Preset] +name = Painting Shading (World) +$mode = 8 + +[Preset] +name = Painting Shading (World & Link) +$mode = 10 + +[Preset] +name = Normal Mode +$mode = 0 + +# Credits - SkalFate & Altros \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/57cecf2ed6c8e3f0_00000003c9249749_ps.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/57cecf2ed6c8e3f0_00000003c9249749_ps.txt new file mode 100644 index 00000000..84a05bdc --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/57cecf2ed6c8e3f0_00000003c9249749_ps.txt @@ -0,0 +1,952 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 57cecf2ed6c8e3f0 -- -- Fragment Shader where links gets drawn in the menu + +uniform ivec4 uf_remappedPS[29]; +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x37b40000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 3) uniform sampler2D textureUnitPS3;// Tex3 addr 0xf514c000 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 5) uniform sampler2D textureUnitPS5;// Tex5 addr 0xf55b2000 res 1280x720x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler5 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0x389a5800 res 4x4x1 dim 1 tm: 2 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform sampler2D textureUnitPS7;// Tex7 addr 0xf55b2000 res 1280x720x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 8) uniform sampler2D textureUnitPS8;// Tex8 addr 0x389a5800 res 4x4x1 dim 1 tm: 2 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler8 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 9) uniform samplerCubeArray textureUnitPS9;// Tex9 addr 0x389a4800 res 4x4x1 dim 3 tm: 2 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x6) Sampler9 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 10) uniform sampler2DArrayShadow textureUnitPS10;// Tex10 addr 0xf494a800 res 2048x2048x1 dim 5 tm: 4 format 0005 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler10 ClampX/Y/Z: 6 6 2 border: 2 +layout(binding = 12) uniform sampler2D textureUnitPS12;// Tex12 addr 0x389a5800 res 4x4x1 dim 1 tm: 2 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler12 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 17) uniform sampler2D textureUnitPS17;// Tex17 addr 0x389a3800 res 4x4x1 dim 1 tm: 2 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 0 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem4; +layout(location = 3) in vec4 passParameterSem5; +layout(location = 4) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R26i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex9 = 0.0; + +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem1); +R2i = floatBitsToInt(passParameterSem4); +R3i = floatBitsToInt(passParameterSem5); +R4i = floatBitsToInt(passParameterSem6); + +R5i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R8i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R4i.zw)).xyzw); +R6i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, intBitsToFloat(R0i.xy)).xyzw); +R7i.xyzw = floatBitsToInt(textureGather(textureUnitPS8, intBitsToFloat(R0i.xy)).xyzw); +R4i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R4i.zw)).xyzw); + +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R8i.x) * 2.0 + -(1.0))); +R127i.y = floatBitsToInt((intBitsToFloat(R8i.y) * 2.0 + -(1.0))); +R127i.z = floatBitsToInt((intBitsToFloat(R8i.z) * 2.0 + -(1.0))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R124i.w; +R125i.x = floatBitsToInt(-(intBitsToFloat(R5i.w)) + intBitsToFloat(R6i.x)); +PS0i = R125i.x; +// 1 +R20i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R20i.x; +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R9i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[2].y))); +R125i.w = floatBitsToInt(-(intBitsToFloat(R5i.w)) + intBitsToFloat(R6i.y)); +PS1i = R125i.w; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[3].x))); +PS0i = R126i.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R20i.x),intBitsToFloat(R10i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R20i.x),intBitsToFloat(R10i.y),intBitsToFloat(R9i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 4 +R21i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i))); +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R20i.x), intBitsToFloat(uf_remappedPS[4].x))); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 5 +R127i.x = floatBitsToInt(-(intBitsToFloat(R5i.w)) + intBitsToFloat(R6i.w)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R126i.z = floatBitsToInt(-(intBitsToFloat(R5i.w)) + intBitsToFloat(R6i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 6 +R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.w)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(PV1i.y))); +R12i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R20i.x), intBitsToFloat(PS1i))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.w)),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R12i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.y), intBitsToFloat(PS1i))); +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.z), intBitsToFloat(PS1i))); +PS0i = R10i.z; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.w = tempi.x; +R6i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[3].w) + intBitsToFloat(PV0i.z)); +PS1i = R6i.x; +// 8 +backupReg0i = R126i.x; +backupReg1i = R127i.w; +R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(R7i.x)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R20i.x), intBitsToFloat(uf_remappedPS[5].x))); +R6i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(backupReg0i)); +R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(R7i.y)); +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(backupReg1i)); +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +PS0i = R127i.z; +// 9 +R7i.x = floatBitsToInt(roundEven(0.0)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(R7i.w)); +R125i.z = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(R7i.z)); +R6i.w = 0; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(uf_remappedPS[5].y)) + intBitsToFloat(PV0i.y))); +PS1i = R124i.x; +// 10 +backupReg0i = R125i.w; +backupReg0i = R125i.w; +backupReg1i = R127i.x; +backupReg1i = R127i.x; +R127i.x = floatBitsToInt(max(intBitsToFloat(R125i.x), -(intBitsToFloat(R125i.x)))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R127i.z))); +R127i.z = floatBitsToInt(max(intBitsToFloat(R126i.z), -(intBitsToFloat(R126i.z)))); +R125i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +R125i.y = floatBitsToInt(max(intBitsToFloat(backupReg1i), -(intBitsToFloat(backupReg1i)))); +PS0i = R125i.y; +// 11 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg1i = R127i.y; +backupReg1i = R127i.y; +backupReg2i = R125i.z; +backupReg2i = R125i.z; +R126i.x = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 4.0); +R127i.y = floatBitsToInt(max(intBitsToFloat(backupReg1i), -(intBitsToFloat(backupReg1i)))); +R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 4.0); +R125i.z = floatBitsToInt(max(intBitsToFloat(backupReg2i), -(intBitsToFloat(backupReg2i)))); +R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) * 4.0); +PV1i.w = floatBitsToInt(max(intBitsToFloat(R127i.w), -(intBitsToFloat(R127i.w)))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); +R14i.z = R7i.x; +PS1i = R14i.z; +// 12 +backupReg0i = R125i.w; +R5i.x = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x38d1b717) + 0.5)); +R5i.y = floatBitsToInt((intBitsToFloat(R6i.z) * intBitsToFloat(0x3903126f) + 0.5)); +R15i.z = R7i.x; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.w)),intBitsToFloat(uf_remappedPS[5].z)) + intBitsToFloat(R124i.x))); +PV0i.w = R123i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV1i.w))); +PS0i = R125i.w; +// 13 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R127i.x)) + intBitsToFloat(R126i.x))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R125i.y)) + intBitsToFloat(R127i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(R125i.z))); +PV1i.z = R123i.z; +R7i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].w) + intBitsToFloat(PV0i.w)); +R16i.z = R7i.x; +PS1i = R16i.z; +// 14 +R127i.x = floatBitsToInt(-(intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.y)); +PV0i.x = R127i.x; +R7i.y = 0x3f800000; +R17i.z = R7i.x; +R125i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(PV1i.z))); +PV0i.w = R125i.w; +R11i.w = uf_remappedPS[6].z; +PS0i = R11i.w; +// 15 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R21i.x),intBitsToFloat(R13i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R12i.y),intBitsToFloat(R12i.w),intBitsToFloat(R10i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.z = tempi.x; +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +PS1i = R127i.z; +// 16 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(fract(intBitsToFloat(R2i.x))); +PV0i.x = R127i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R125i.w))); +R5i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[6].w))); +R125i.w = floatBitsToInt(fract(intBitsToFloat(R2i.y))); +PV0i.w = R125i.w; +PS0i = R21i.x; +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 2.0); +// 17 +PV1i.x = R12i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * 2.0); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(PV0i.w)); +PV1i.y = clampFI32(PV1i.y); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV0i.x)); +PV1i.z = clampFI32(PV1i.z); +PV1i.w = R13i.y; +PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0); +R7i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(PS0i)) + intBitsToFloat(R12i.y))); +PS1i = R7i.x; +// 18 +R10i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R10i.z))); +R6i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(PV1i.w)) + intBitsToFloat(R12i.w))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.y)); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.z)); +R9i.w = floatBitsToInt(-(intBitsToFloat(R9i.z)) * intBitsToFloat(0x3ba3d70a)); +PS0i = R9i.w; +// 19 +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R0i.x))); +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(PV0i.z)) + intBitsToFloat(R0i.y))); +R2i.z = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000)); +R18i.w = floatBitsToInt((-(intBitsToFloat(R8i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +R2i.w = floatBitsToInt(max(-(intBitsToFloat(R125i.z)), 0.0)); +PS1i = R2i.w; +// 20 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R10i.x),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R5i.w = floatBitsToInt(-(intBitsToFloat(R8i.w)) + 1.0); +PS0i = R5i.w; +// 21 +R11i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R10i.x),0.0))); +PV1i.x = R11i.x; +PV1i.y = R11i.x; +PV1i.z = R11i.x; +PV1i.w = R11i.x; +R11i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R11i.z; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R7i.w),intBitsToFloat(R6i.z),intBitsToFloat(R7i.y)),vec4(intBitsToFloat(uf_remappedPS[9].x),intBitsToFloat(uf_remappedPS[9].y),intBitsToFloat(uf_remappedPS[9].z),intBitsToFloat(uf_remappedPS[9].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.w = 0; +PS0i = R10i.w; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R7i.w),intBitsToFloat(R6i.z),intBitsToFloat(R7i.y)),vec4(intBitsToFloat(uf_remappedPS[10].x),intBitsToFloat(uf_remappedPS[10].y),intBitsToFloat(uf_remappedPS[10].z),intBitsToFloat(uf_remappedPS[10].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.y = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R127i.y; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R7i.w),intBitsToFloat(R6i.z),intBitsToFloat(R7i.y)),vec4(intBitsToFloat(uf_remappedPS[11].x),intBitsToFloat(uf_remappedPS[11].y),intBitsToFloat(uf_remappedPS[11].z),intBitsToFloat(uf_remappedPS[11].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R9i.x; +// 3 +R127i.x = floatBitsToInt(intBitsToFloat(R12i.y) + intBitsToFloat(uf_remappedPS[12].x)); +PV1i.x = R127i.x; +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.y))); +R125i.z = floatBitsToInt(intBitsToFloat(R12i.w) + intBitsToFloat(uf_remappedPS[12].y)); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R10i.z) + intBitsToFloat(uf_remappedPS[12].z)); +PV1i.w = R125i.w; +R127i.w = int(intBitsToFloat(R2i.z)); +PS1i = R127i.w; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.w),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.w),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.z = floatBitsToInt(min(intBitsToFloat(R2i.w), 1.0)); +PS0i = R127i.z; +// 5 +R126i.x = floatBitsToInt((intBitsToFloat(R5i.w) * 0.5 + 0.5)); +R127i.y = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.w)),intBitsToFloat(R5i.w)) + intBitsToFloat(R5i.w))); +PV1i.z = R123i.z; +R13i.w = 0; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 6 +R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +PV0i.y = R127i.w & 0x000000fc; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x3c23d70a)); +PS0i = clampFI32(PS0i); +// 7 +R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PS0i))); +R20i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R126i.x))); +R20i.y = floatBitsToInt(intBitsToFloat(R20i.y) / 2.0); +PV1i.y = R20i.y; +R123i.z = floatBitsToInt((-(intBitsToFloat(R8i.w)) * intBitsToFloat(0x40400000) + 4.0)); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R127i.y)) + intBitsToFloat(R127i.y))); +PV1i.w = R125i.w; +PS1i = floatBitsToInt(float(PV0i.y)); +// 8 +R24i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3b820821)); +PV0i.x = R24i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R127i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R2i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[13].x) + -(intBitsToFloat(uf_remappedPS[14].x))); +R124i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.z)); +PS0i = R124i.w; +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV0i.z))); +R123i.y = floatBitsToInt((-(intBitsToFloat(PV0i.x)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +PV1i.y = R123i.y; +R8i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.25 + 0.25)); +R7i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[13].y) + -(intBitsToFloat(uf_remappedPS[14].y))); +R125i.w = floatBitsToInt(intBitsToFloat(R20i.y) + intBitsToFloat(PV0i.y)); +PS1i = R125i.w; +// 10 +R13i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[13].z) + -(intBitsToFloat(uf_remappedPS[14].z))); +R21i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R24i.x)) + intBitsToFloat(PV1i.y))); +PV0i.y = R21i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R124i.w))); +PV0i.z = R127i.z; +R19i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R24i.x)) + intBitsToFloat(PV1i.y))); +PV0i.w = R19i.w; +R22i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R24i.x)) + intBitsToFloat(PV1i.y))); +PS0i = R22i.x; +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(PS0i))); +PV1i.x = R123i.x; +R22i.y = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R22i.y = clampFI32(R22i.y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(PV0i.y))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R125i.w)); +// 12 +R23i.x = floatBitsToInt(0.25 * intBitsToFloat(PS1i)); +R7i.y = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.w)); +R6i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.x)); +R8i.w = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.z)); +R13i.z = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R13i.z = clampFI32(R13i.z); +PS0i = R13i.z; +// 13 +R25i.x = floatBitsToInt((intBitsToFloat(R4i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R25i.x = clampFI32(R25i.x); +R4i.y = R0i.y; +R7i.z = 0; +PV1i.w = R127i.w & int(1); +R4i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(uf_remappedPS[6].z)); +PS1i = R4i.x; +// 14 +R8i.x = R0i.x; +R8i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(uf_remappedPS[6].w)); +R26i.w = floatBitsToInt(float(PV1i.w)); +PS0i = R26i.w; +R4i.z = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R4i.xy)).x); +R8i.y = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R8i.xy)).x); +R19i.xyz = floatBitsToInt(textureLod(textureUnitPS17, intBitsToFloat(R5i.xy),0.0).xyz); +R9i.w = floatBitsToInt(textureLod(textureUnitPS6, intBitsToFloat(R9i.xy),intBitsToFloat(R9i.w)).x); +R2i.x = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R2i.xy)).w); +// 0 +backupReg0i = R2i.x; +backupReg0i = R2i.x; +backupReg0i = R2i.x; +R2i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * 0.5 + 0.5)); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(R8i.y)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.y = R127i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(R4i.z)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R8i.z))) + intBitsToFloat(backupReg0i))); +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), -(intBitsToFloat(PV0i.z)))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), -(intBitsToFloat(PV0i.z)))); +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), -(intBitsToFloat(PV0i.y)))); +PS1i = R126i.x; +// 2 +backupReg0i = R127i.y; +R127i.xyz = floatBitsToInt(vec3(-(intBitsToFloat(R9i.z)),-(intBitsToFloat(R10i.y)),-(intBitsToFloat(R20i.x))) + vec3(intBitsToFloat(PV1i.z),intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x))); +PV0i.x = R127i.x; +PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i))); +R127i.w = floatBitsToInt(-(intBitsToFloat(R20i.x)) + intBitsToFloat(PV1i.y)); +PS0i = R127i.w; +// 3 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.w), intBitsToFloat(uf_remappedPS[15].w))); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.w)); +R125i.z = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(R126i.x)); +PV1i.z = R125i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedPS[15].w))); +PS1i = R3i.y; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.y))); +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.z))); +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(uf_remappedPS[15].w))); +R125i.x = uf_remappedPS[16].y; +PS0i = R125i.x; +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x))); +PV1i.x = R127i.x; +R125i.y = uf_remappedPS[17].y; +R125i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.y)) + intBitsToFloat(PV0i.z))); +PV1i.z = R125i.z; +R124i.w = uf_remappedPS[18].y; +R127i.w = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(R125i.w)); +PS1i = R127i.w; +// 6 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(PV1i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(PV1i.z)),-0.0),vec4(-(intBitsToFloat(PV1i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(PV1i.z)),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R6i.x = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(uf_remappedPS[19].z)); +R6i.x = clampFI32(R6i.x); +PS0i = R6i.x; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[20].x),intBitsToFloat(uf_remappedPS[20].y),intBitsToFloat(uf_remappedPS[20].z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R10i.x),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R11i.y = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].w), intBitsToFloat(uf_remappedPS[15].w))); +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R125i.z)), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R126i.y)), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(backupReg0i)), intBitsToFloat(PS1i))); +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R7i.y))); +PS0i = R8i.z; +// 9 +R126i.x = floatBitsToInt((intBitsToFloat(R21i.x) * 1.5 + intBitsToFloat(PV0i.w))); +PV1i.x = R126i.x; +R126i.y = floatBitsToInt((intBitsToFloat(R13i.y) * 1.5 + intBitsToFloat(PV0i.z))); +PV1i.y = R126i.y; +R125i.z = floatBitsToInt((intBitsToFloat(R12i.z) * 1.5 + intBitsToFloat(PV0i.y))); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R21i.x) + intBitsToFloat(PV0i.w)); +R127i.y = floatBitsToInt(intBitsToFloat(R13i.y) + intBitsToFloat(PV0i.z)); +PS1i = R127i.y; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R127i.x))); +PS0i = R8i.y; +// 11 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R127i.y),intBitsToFloat(R6i.w),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R127i.y),intBitsToFloat(R6i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 12 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R8i.w))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R6i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(0x3a83126f) * intBitsToFloat(PS1i)); +R6i.w = uf_remappedPS[21].x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 13 +backupReg0i = R125i.z; +backupReg1i = R127i.y; +R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(R20i.x))); +R7i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(R10i.y))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS0i))); +PV1i.z = R125i.z; +R8i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(backupReg0i)) + intBitsToFloat(R9i.z))); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PS0i))); +PS1i = R127i.y; +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R12i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), -(intBitsToFloat(R10i.w)))); +PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3dcccccd)); +PS0i = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(0x3f3504f3)); +// 15 +backupReg0i = R0i.x; +backupReg1i = R0i.y; +backupReg2i = R125i.z; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(backupReg0i))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(backupReg1i))); +R125i.z = floatBitsToInt((intBitsToFloat(backupReg2i) * intBitsToFloat(0xbf3504f3) + intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),-(intBitsToFloat(R5i.w))) + intBitsToFloat(PV0i.y))); +PV1i.w = R123i.w; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R13i.y)) + intBitsToFloat(PV0i.x))); +PS1i = R126i.x; +// 16 +redcCUBE(vec4(intBitsToFloat(R11i.z),intBitsToFloat(R11i.z),intBitsToFloat(R11i.x),intBitsToFloat(R11i.y)),vec4(intBitsToFloat(R11i.y),intBitsToFloat(R11i.x),intBitsToFloat(R11i.z),intBitsToFloat(R11i.z)),cubeMapSTM,cubeMapFaceId); +R124i.x = floatBitsToInt(cubeMapSTM.x); +R124i.y = floatBitsToInt(cubeMapSTM.y); +R124i.z = floatBitsToInt(cubeMapSTM.z); +R124i.w = cubeMapFaceId; +PV0i.x = R124i.x; +PV0i.y = R124i.y; +PV0i.z = R124i.z; +PV0i.w = R124i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.y),-(intBitsToFloat(R3i.y))) + intBitsToFloat(PV1i.w))); +PS0i = R122i.x; +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R21i.x),-(intBitsToFloat(R3i.x))) + intBitsToFloat(PS0i))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R11i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R1i.w))); +R18i.z = PV0i.w; +R123i.w = floatBitsToInt((intBitsToFloat(R127i.y) * intBitsToFloat(0x3f3504f3) + intBitsToFloat(R125i.z))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z))); +// 18 +backupReg0i = R1i.x; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.x)) + intBitsToFloat(R1i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PS1i)) + 1.5)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PS1i)) + 1.5)); +PV0i.w = R123i.w; +R1i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + -(0.5)); +R1i.z = clampFI32(R1i.z); +PS0i = R1i.z; +// 19 +R18i.x = PV0i.w; +R18i.y = PV0i.y; +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.x),intBitsToFloat(PV0i.z)) + -(intBitsToFloat(PV0i.z)))); +PV1i.w = R124i.w; +// 20 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(R21i.x)) + intBitsToFloat(R126i.x))/2.0); +PV0i.z = R123i.z; +// 21 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5); +// 22 +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); +// 23 +R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(PS0i))); +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(uf_remappedPS[22].x))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(uf_remappedPS[23].x))); +// 1 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(uf_remappedPS[23].y)) + intBitsToFloat(PV0i.z))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(uf_remappedPS[24].x))); +// 2 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(uf_remappedPS[22].y)) + intBitsToFloat(backupReg0i))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(uf_remappedPS[25].x))); +// 3 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(uf_remappedPS[24].y)) + intBitsToFloat(R124i.z))); +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(uf_remappedPS[23].z)) + intBitsToFloat(backupReg0i))); +// 4 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(uf_remappedPS[25].y)) + intBitsToFloat(R125i.z))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(uf_remappedPS[22].z)) + intBitsToFloat(backupReg0i))); +// 5 +backupReg0i = R124i.y; +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(uf_remappedPS[24].z)) + intBitsToFloat(R125i.x))); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[23].w) + intBitsToFloat(backupReg0i)); +// 6 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(uf_remappedPS[25].z)) + intBitsToFloat(R126i.x))); +PV0i.y = R123i.y; +PV0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[22].w) + intBitsToFloat(R127i.y)); +R125i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +PS0i = R125i.z; +// 7 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[25].w) + intBitsToFloat(PV0i.y)); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[24].w) + intBitsToFloat(R124i.y)); +// 8 +backupReg0i = R2i.w; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R125i.z))); +PV0i.x = R126i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R125i.z))); +PV0i.y = R124i.y; +R125i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xba83126f)); +R125i.z = clampFI32(R125i.z); +PV0i.z = R125i.z; +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R1i.y)) + intBitsToFloat(uf_remappedPS[14].x))); +R7i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(R1i.y)) + intBitsToFloat(uf_remappedPS[14].y))); +PS0i = R7i.y; +// 9 +R14i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x39800000)); +R14i.y = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0x39800000)); +R11i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.x),intBitsToFloat(R1i.y)) + intBitsToFloat(uf_remappedPS[14].z))); +R14i.w = PV0i.z; +R15i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x39800000)); +PS1i = R15i.x; +// 10 +R16i.x = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(0xb9800000)); +R15i.y = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(0xb9800000)); +R15i.w = R125i.z; +R16i.y = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(0x39800000)); +PS0i = R16i.y; +// 11 +R17i.x = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(0xb9800000)); +R17i.y = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(0xb9800000)); +R16i.w = R125i.z; +R17i.w = R125i.z; +PS1i = R17i.w; +R14i.w = floatBitsToInt(texture(textureUnitPS10, vec4(intBitsToFloat(R14i.x),intBitsToFloat(R14i.y),intBitsToFloat(R14i.z),intBitsToFloat(R14i.w)))); +R15i.z = floatBitsToInt(texture(textureUnitPS10, vec4(intBitsToFloat(R15i.x),intBitsToFloat(R15i.y),intBitsToFloat(R15i.z),intBitsToFloat(R15i.w)))); +R16i.y = floatBitsToInt(texture(textureUnitPS10, vec4(intBitsToFloat(R16i.x),intBitsToFloat(R16i.y),intBitsToFloat(R16i.z),intBitsToFloat(R16i.w)))); +R17i.x = floatBitsToInt(texture(textureUnitPS10, vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R17i.z),intBitsToFloat(R17i.w)))); +R0i.x = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x); +R18i.xyz = floatBitsToInt(textureLod(textureUnitPS9, vec4(redcCUBEReverse(intBitsToFloat(R18i.xy),R18i.z),cubeMapArrayIndex9),intBitsToFloat(R18i.w)).xyz); +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R19i.x),intBitsToFloat(R19i.y),intBitsToFloat(R19i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[26].x),intBitsToFloat(uf_remappedPS[26].y),intBitsToFloat(uf_remappedPS[26].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(R14i.w) + intBitsToFloat(R15i.z)); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0); +// 1 +backupReg0i = R0i.x; +backupReg1i = R8i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(backupReg0i)) + intBitsToFloat(uf_remappedPS[1].x))); +PV1i.y = R123i.y; +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.x), intBitsToFloat(backupReg1i))); +R123i.w = floatBitsToInt((intBitsToFloat(R16i.y) * 0.5 + intBitsToFloat(PS0i))); +PV1i.w = R123i.w; +R15i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.y), intBitsToFloat(R10i.x))); +PS1i = R15i.z; +// 2 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.y)), intBitsToFloat(R1i.x))); +R123i.z = floatBitsToInt((intBitsToFloat(R17i.x) * 0.5 + intBitsToFloat(PV1i.w))/2.0); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y))); +PS0i = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.y)), intBitsToFloat(R11i.y))); +// 3 +R125i.x = floatBitsToInt(-(intBitsToFloat(R20i.x)) + intBitsToFloat(PV0i.y)); +R124i.y = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PS0i)); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + -(intBitsToFloat(PV0i.x))); +R124i.w = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.w)); +PV1i.w = R124i.w; +R18i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.z), intBitsToFloat(R6i.y))); +PS1i = R18i.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PV1i.w))); +R6i.y = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV1i.z)); +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.y),intBitsToFloat(R12i.w),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R124i.y),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = tempi.x; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R125i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R12i.w)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R124i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.z)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R124i.w))); +PV0i.z = R123i.z; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +// 8 +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 9 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS0i))); +// 10 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x38d1b717)); +PV0i.x = clampFI32(PV0i.x); +// 11 +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R1i.z))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * 2.0); +// 12 +backupReg0i = R6i.w; +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(backupReg0i))); +// 0 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].x), intBitsToFloat(uf_remappedPS[15].w))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].y), intBitsToFloat(uf_remappedPS[15].w))); +// 1 +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].z), intBitsToFloat(uf_remappedPS[15].w))); +PV1i.z = R125i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(PV1i.z)),-0.0),vec4(-(intBitsToFloat(R3i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R5i.w)),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(uf_remappedPS[27].z)) + intBitsToFloat(uf_remappedPS[19].y))); +R122i.x = clampFI32(R122i.x); +PS0i = R122i.x; +// 3 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), -(intBitsToFloat(R13i.w)))); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),-(intBitsToFloat(R125i.z))) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R125i.w; +// 5 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R21i.x),intBitsToFloat(R13i.y),intBitsToFloat(PV0i.x),0.0),vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R124i.y)),1.0,0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PS1i = R122i.x; +// 6 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +PV0i.x = R126i.x; +PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R2i.x)); +PV0i.y = clampFI32(PV0i.y); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R20i.y))) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i))); +PV0i.w = R125i.w; +// 7 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.y))); +PV1i.y = floatBitsToInt(intBitsToFloat(R20i.y) + intBitsToFloat(PV0i.z)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R19i.w),-(intBitsToFloat(PV0i.x))) + intBitsToFloat(R19i.w))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R21i.y),-(intBitsToFloat(PV0i.x))) + intBitsToFloat(R21i.y))); +PV1i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R22i.x),-(intBitsToFloat(PV0i.x))) + intBitsToFloat(R22i.x))); +PS1i = R122i.x; +// 8 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg0i = R126i.x; +R126i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.z)); +R127i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.w)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].x), intBitsToFloat(R125i.w))); +R125i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PS1i)); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +// 9 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[28].x),intBitsToFloat(R125i.x)) + intBitsToFloat(R2i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[28].y),intBitsToFloat(R125i.x)) + intBitsToFloat(R7i.y))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R8i.y))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[28].z),intBitsToFloat(R125i.x)) + intBitsToFloat(R11i.z))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R1i.w))); +PS1i = R124i.z; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R24i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(R23i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R23i.x))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(R23i.x))); +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R24i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PS0i = R122i.x; +// 11 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R124i.z))); +PV1i.x = R126i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R24i.x)),intBitsToFloat(R124i.w)) + intBitsToFloat(R124i.w))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R22i.y))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R13i.z))); +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[28].x), intBitsToFloat(PV0i.y))); +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(PV1i.x)) + intBitsToFloat(R8i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[28].y), intBitsToFloat(R125i.w))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R25i.x))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[28].z), intBitsToFloat(R127i.z))); +R122i.x = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PS0i = R122i.x; +// 13 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R124i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(R18i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(R15i.z))); +PV1i.w = R123i.w; +R127i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PS0i)); +PS1i = R127i.z; +// 14 +R126i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.y)); +PV0i.x = R126i.x; +PV0i.z = floatBitsToInt(-(intBitsToFloat(PS1i)) + intBitsToFloat(0x3f7851ec)); +R124i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x)); +PV0i.w = R124i.w; +// 15 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + intBitsToFloat(0x3f11eb85)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3f547ae1)); +R26i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R6i.w)) + intBitsToFloat(R127i.z))); +PS1i = R26i.x; +// 16 +R26i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R6i.w)) + intBitsToFloat(R126i.x))); +R26i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(R124i.w))); +// export +passPixelColor0 = vec4(intBitsToFloat(R26i.x), intBitsToFloat(R26i.y), intBitsToFloat(R26i.z), intBitsToFloat(R26i.w)); +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/f4e1147ab34a1677_0000000000000000_vs.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/f4e1147ab34a1677_0000000000000000_vs.txt new file mode 100644 index 00000000..e1bfd638 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/f4e1147ab34a1677_0000000000000000_vs.txt @@ -0,0 +1,208 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +#extension GL_ARB_shading_language_packing : enable + +// shader f4e1147ab34a1677 -- Vertex Shader where links gets drawn in the menu + +uniform ivec4 uf_remappedVS[5]; +uniform vec2 uf_windowSpaceToClipSpaceTransform; +layout(location = 0) in uvec4 attrDataSem0; +layout(location = 1) in uvec4 attrDataSem1; +out gl_PerVertex +{ + vec4 gl_Position; + float gl_PointSize; +}; +layout(location = 0) out vec4 passParameterSem0; +layout(location = 2) out vec4 passParameterSem4; +layout(location = 3) out vec4 passParameterSem5; +layout(location = 1) out vec4 passParameterSem1; +layout(location = 4) out vec4 passParameterSem6; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +uvec4 attrDecoder; +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; + +R0i = ivec4(gl_VertexID, 0, 0, gl_InstanceID); + +attrDecoder.xyzw = attrDataSem0.xyzw; +attrDecoder = ((attrDecoder>>8)&0xFF)|((attrDecoder<<8)&0xFF00); +attrDecoder.xyzw = floatBitsToInt(vec4(unpackHalf2x16(attrDecoder.x|(attrDecoder.y<<16)),unpackHalf2x16(attrDecoder.z|(attrDecoder.w<<16)))); +R1i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); + +attrDecoder.x = attrDataSem1.x; +attrDecoder.x = (attrDecoder.x>>24)|((attrDecoder.x>>8)&0xFF00)|((attrDecoder.x<<8)&0xFF0000)|((attrDecoder.x<<24)); +attrDecoder.y = 0; +attrDecoder.z = 0; +attrDecoder.w = 0; +attrDecoder.xyzw = uvec4((attrDecoder.x>>0)&0x3FF,(attrDecoder.x>>10)&0x3FF,(attrDecoder.x>>20)&0x3FF,(attrDecoder.x>>30)&0x3); +if( (attrDecoder.x&0x200) != 0 ) attrDecoder.x |= 0xFFFFFC00; +if( (attrDecoder.y&0x200) != 0 ) attrDecoder.y |= 0xFFFFFC00; +if( (attrDecoder.z&0x200) != 0 ) attrDecoder.z |= 0xFFFFFC00; +attrDecoder.x = floatBitsToUint(max(float(int(attrDecoder.x))/511.0,-1.0)); +attrDecoder.y = floatBitsToUint(max(float(int(attrDecoder.y))/511.0,-1.0)); +attrDecoder.z = floatBitsToUint(max(float(int(attrDecoder.z))/511.0,-1.0)); +attrDecoder.w = floatBitsToUint(float(attrDecoder.w)); +R2i = ivec4(int(attrDecoder.x), int(attrDecoder.y), int(attrDecoder.z), int(attrDecoder.w)); + +// 0 +backupReg0i = R0i.x; +PV0i.x = (backupReg0i == int(1))?int(0xFFFFFFFF):int(0x0); +R127i.y = 0x3f800000; // subtracting brings the black box top side down +PV0i.z = 0x3f800000; // subtracting slants down diagonally +PV0i.w = 0x40400000; +R127i.z = 0xbf800000; // unnecssary left side, extends the black box +PS0i = R127i.z; + +// 1 +PV1i.x = floatBitsToInt(intBitsToFloat(uf_remappedVS[0].z) * intBitsToFloat(0x3b808081)); +R123i.y = ((PV0i.x == 0)?(PV0i.w):(0xbf800000)); +PV1i.y = R123i.y; +R126i.z = uf_remappedVS[1].z; +R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) / 2.0); +R123i.w = ((PV0i.x == 0)?(PV0i.z):(0xc0400000)); +PV1i.w = R123i.w; +R1i.w = 0x3f800000; +PS1i = R1i.w; + +// 2 +R1i.x = ((R0i.x == 0)?(R127i.z):(PV1i.y)); +PV0i.x = R1i.x; +R1i.y = ((R0i.x == 0)?(R127i.y):(PV1i.w)); +PV0i.y = R1i.y; +R1i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + -(0.5)); +R1i.z = floatBitsToInt(intBitsToFloat(R1i.z) * 2.0); +R125i.w = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[2].z))); +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) / 2.0); +R4i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedVS[3].x))); +R4i.x = floatBitsToInt(intBitsToFloat(R4i.x) * 2.0); +PS0i = R4i.x; + +// 3 -- links lighting +R2i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * 0.5 + 0.5)); +PV1i.x = R2i.x; +R4i.y = uf_remappedVS[3].y; +R4i.y = floatBitsToInt(intBitsToFloat(R4i.y) * 2.0); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R127i.w = PV0i.x; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) / 2.0); +R127i.x = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +PS1i = R127i.x; +// 4 -- links lighting +R126i.x = floatBitsToInt(intBitsToFloat(R125i.w) + -(0.5)); +R2i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * 0.5 + 0.5)); +PV0i.y = R2i.y; +R6i.z = PV1i.x; +PV0i.z = R6i.z; +R124i.w = floatBitsToInt(intBitsToFloat(R126i.z) + -(0.5)); +R126i.w = floatBitsToInt(-(intBitsToFloat(R4i.x))); +R126i.w = floatBitsToInt(intBitsToFloat(R126i.w) / 2.0); +PS0i = R126i.w; +// 5 -- links lighting +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R125i.w)); +PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R126i.z)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(R4i.y))); +PV1i.z = floatBitsToInt(intBitsToFloat(PV1i.z) / 2.0); +R6i.w = PV0i.y; +PV1i.w = R6i.w; +R127i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(uf_remappedVS[4].z)); +PS1i = R127i.y; + +// 6 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(uf_remappedVS[4].w)); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w))); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.z))); +R126i.w = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(R124i.w)); +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(PV1i.y))); +PS0i = R127i.w; +// 7 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(backupReg0i))); +R125i.y = uf_remappedVS[4].x; +R125i.y = floatBitsToInt(intBitsToFloat(R125i.y) / 2.0); +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(R126i.x)); +R125i.w = uf_remappedVS[4].y; +R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) / 2.0); +R0i.w = uf_remappedVS[4].z; +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +PS1i = R0i.w; +// 8 +backupReg0i = R126i.x; +backupReg1i = R127i.y; +backupReg2i = R126i.w; +R126i.x = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(backupReg0i)); +R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R124i.w)); +R127i.z = uf_remappedVS[4].w; +R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) * 2.0); +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(backupReg2i))); +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PV1i.z))); +PS0i = R125i.x; +// 9 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R125i.y)) + 0.5)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R125i.w)) + 0.5)); +R4i.z = R126i.y; +R5i.w = floatBitsToInt(1.0); +R4i.w = R126i.z; +PS1i = R4i.w; +// 10 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.x), intBitsToFloat(R127i.y))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(R126i.x))); +R2i.z = R127i.w; +R2i.w = R127i.x; +R3i.z = R0i.w; +PS0i = R3i.z; +// 11 +R0i.z = R126i.w; +R3i.w = R127i.z; +R0i.w = R125i.x; +PS1i = R0i.w; + +// export +gl_Position = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)) * 0; + +// export +passParameterSem0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +// export +passParameterSem4 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +// export +passParameterSem5 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +// export +passParameterSem1 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +// export +// skipped export to semanticId 255 +// export +passParameterSem6 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.x), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w)); // z= moves link left, w= moves link right, affects link cut out in menu +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/rules.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/rules.txt new file mode 100644 index 00000000..9a244de3 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_MenuWorkaround/rules.txt @@ -0,0 +1,9 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Cel-Shade Removal Start Menu Workaround Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Cel-Shading Removal/Cel-Shading - Start Menu Workaround" +description = Start Menu Workaround +version = 3 + +[Preset] +name = Start Menu Workaround \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_Altros/1c7db40ff5d693ab_001ffffe4924b249_ps.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_Altros/1c7db40ff5d693ab_001ffffe4924b249_ps.txt new file mode 100644 index 00000000..94bc1533 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_Altros/1c7db40ff5d693ab_001ffffe4924b249_ps.txt @@ -0,0 +1,1143 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable +// shader 1c7db40ff5d693ab +uniform ivec4 uf_remappedPS[33]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x30364000 res 64x64x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 2 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf45c6000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 3) uniform sampler2D textureUnitPS3;// Tex3 addr 0xf494a800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf5c7b800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 5) uniform sampler2D textureUnitPS5;// Tex5 addr 0x38da5800 res 4x4x1 dim 1 tm: 2 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler5 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0xf5371000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform samplerCubeArray textureUnitPS7;// Tex7 addr 0x3d0ea800 res 64x64x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x6) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 11) uniform sampler2D textureUnitPS11;// Tex11 addr 0xf4ccf000 res 1280x720x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler11 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 12) uniform sampler2D textureUnitPS12;// Tex12 addr 0x3cfaa000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler12 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 14) uniform sampler2D textureUnitPS14;// Tex14 addr 0xf528a800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler14 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 15) uniform sampler2D textureUnitPS15;// Tex15 addr 0xf5589800 res 160x90x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler15 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 Temp0i = ivec4(0); +ivec4 Temp1i = ivec4(0); +ivec4 High0i = ivec4(0); +ivec4 Low0i = ivec4(0); +ivec4 Left0i = ivec4(0); +ivec4 Right0i = ivec4(0); +ivec4 YHigh0i = ivec4(0); +ivec4 YLow0i = ivec4(0); +ivec4 YLeft0i = ivec4(0); +ivec4 YRight0i = ivec4(0); +ivec4 BHigh0i = ivec4(0); +ivec4 BLow0i = ivec4(0); +ivec4 BLeft0i = ivec4(0); +ivec4 BRight0i = ivec4(0); +ivec4 LtBlueShadow = ivec4(0); +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex7 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); // no cel shading +R2i = floatBitsToInt(passParameterSem6); +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R7i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R15i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xw); +R4i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R16i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +R14i.x = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R2i.zw)).x); +} +if( activeMaskStackC[1] == true ) { +// 0 +R124i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.y = R125i.y; +R3i.z = 0; +R5i.w = 0x3f800000; +R126i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); +PS0i = R126i.y; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[2].x)) + -(intBitsToFloat(uf_remappedPS[2].y)))); +R127i.w = clampFI32(R127i.w); +R126i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].w)) + 1.0); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[4].x))); +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[5].x))); +R10i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[5].y)) + intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[6].x))); +R125i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); +R127i.w = floatBitsToInt(max(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[6].y)) + intBitsToFloat(PV0i.y))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R0i.y; +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(backupReg0i))); +PV1i.w = R123i.w; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +PS1i = R3i.x; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +PV0i.x = R123i.x; +R6i.y = floatBitsToInt(max(intBitsToFloat(R15i.x), intBitsToFloat(R127i.w))); +R9i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(PV1i.w)); +PV0i.z = R9i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[5].z)) + intBitsToFloat(R125i.x))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R3i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.y = floatBitsToInt(tempResultf); +PS0i = R127i.y; +// 7 +R5i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].w) + intBitsToFloat(PV0i.w)); +PV1i.x = R5i.x; +R8i.y = PV0i.z; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[6].z)) + intBitsToFloat(R127i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R4i.z = floatBitsToInt(tempResultf); +PS1i = R4i.z; +// 8 +R9i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(R127i.y))); +R8i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[6].w) + intBitsToFloat(PV1i.z)); +PV0i.z = R8i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(R127i.y))); +R13i.x = floatBitsToInt(min(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y))); +PS0i = R13i.x; +// 9 +R127i.x = uf_remappedPS[7].y; +R9i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3a83126f)); +R127i.z = uf_remappedPS[8].y; +R125i.w = floatBitsToInt(min(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 10 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[3].w))/2.0); +PV0i.x = R123i.x; +R2i.y = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(0x2edbe6ff)); +R126i.z = uf_remappedPS[9].y; +R127i.w = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(0xbecccccd)); +R125i.x = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R125i.x; +// 11 +backupReg0i = R126i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[10].x)) + -(intBitsToFloat(uf_remappedPS[10].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R11i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(uf_remappedPS[11].y))); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40200001)); +R126i.w = clampFI32(R126i.w); +R14i.y = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R4i.y) + 1.0)); +PS1i = R14i.y; +// 12 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.z),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R127i.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 14 +R0i.x = floatBitsToInt(min(intBitsToFloat(R15i.x), intBitsToFloat(R125i.w))); +R12i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x41200000)); +R12i.y = clampFI32(R12i.y); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].z), intBitsToFloat(PS1i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),-(intBitsToFloat(R125i.x))) + intBitsToFloat(uf_remappedPS[3].z))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 15 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[13].x)) + intBitsToFloat(uf_remappedPS[14].w))); +R125i.x = clampFI32(R125i.x); +R127i.y = floatBitsToInt((intBitsToFloat(PS0i) * 4.0 + intBitsToFloat(0xc0400000))); +R127i.y = clampFI32(R127i.y); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R14i.y))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +R17i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R127i.w = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +tempResultf = log2(intBitsToFloat(R127i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 17 +R6i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3f4ccccd)); +R13i.y = floatBitsToInt(intBitsToFloat(R127i.y) + -(0.5)); +R13i.y = floatBitsToInt(intBitsToFloat(R13i.y) * 4.0); +R13i.y = clampFI32(R13i.y); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].x), intBitsToFloat(PS0i))); +R6i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3f4ccccd)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.z))); +// 18 +R8i.x = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3f4ccccd)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R2i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[12].w)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 19 +R12i.x = R1i.w; +R12i.x = clampFI32(R12i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R6i.z = floatBitsToInt((intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(intBitsToFloat(R13i.y) + intBitsToFloat(0x3f4ccccd)); +PV1i.w = clampFI32(PV1i.w); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 20 +R2i.x = floatBitsToInt((intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd) + 1.0)); +R5i.y = R6i.y; +R5i.y = clampFI32(R5i.y); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[15].w))); +R3i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -(1.0)); +tempResultf = log2(intBitsToFloat(R125i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R0i.w = floatBitsToInt(tempResultf); +PS0i = R0i.w; +} + +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].x), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].y), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.y = R125i.y; +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R14i.y))); +PV0i.z = R10i.z; +R4i.w = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x42960000)); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(R2i.y)); +PS0i = R126i.w; +// 1 +R125i.x = PV0i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(PS0i)) + 1.0)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].z), intBitsToFloat(uf_remappedPS[17].w))); +PV1i.z = R126i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.w = R123i.w; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R2i.z)) + intBitsToFloat(R2i.z))); +PS1i = R0i.z; +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y), intBitsToFloat(R0i.w))); +PV0i.y = PV1i.z; +R2i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].x) + -(intBitsToFloat(R6i.x))); +R0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].y) + -(intBitsToFloat(R6i.w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.w)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R3i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R4i.z))); +// 4 +backupReg0i = R127i.y; +backupReg1i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x2edbe6ff)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +R124i.z = backupReg0i; +R124i.z = clampFI32(R124i.z); +R8i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].z) + -(intBitsToFloat(R8i.x))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(backupReg1i))); +// 5 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[19].w))); +// 6 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PS1i))); +R126i.y = R4i.x; +R126i.y = clampFI32(R126i.y); +PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), 0.0)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 7 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(min(intBitsToFloat(PV0i.z), 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(0x437f0000)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R6i.z)) + 1.0); +PS1i = R127i.y; +// 8 +R127i.x = floatBitsToInt(intBitsToFloat(R15i.x) + -(intBitsToFloat(R6i.y))); +PV0i.y = floatBitsToInt(max(-(intBitsToFloat(PV1i.z)), intBitsToFloat(0xbf7d70a4))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40a00000)); +PV0i.z = clampFI32(PV0i.z); +R125i.w = floatBitsToInt(intBitsToFloat(R15i.y) + -(intBitsToFloat(R6i.y))); +R124i.w = floatBitsToInt(intBitsToFloat(R15i.z) + -(intBitsToFloat(R6i.y))); +PS0i = R124i.w; +// 9 +backupReg0i = R127i.y; +backupReg1i = R6i.z; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV0i.z)) + 1.0)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R5i.y))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.y)) + intBitsToFloat(backupReg1i))); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +PV1i.w = R126i.w; +R3i.w = 0; +PS1i = R3i.w; +// 10 +backupReg0i = R127i.x; +backupReg1i = R127i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.w = R123i.w; +R127i.w = int(intBitsToFloat(backupReg1i)); +PS0i = R127i.w; +// 11 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.y))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R124i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R124i.x))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.z))); +// 12 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R124i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +PV0i.z = floatBitsToInt(intBitsToFloat(0x3f895ef0) * intBitsToFloat(R127i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R127i.y = R127i.w & int(1); +PS0i = R127i.y; +// 13 +backupReg0i = R2i.w; +backupReg0i = R2i.w; +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.w))) + 1.0)); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(0xba0a8ec8))); +R5i.y = clampFI32(R5i.y); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(0xba0a8ec8))); +R5i.z = clampFI32(R5i.z); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R10i.z))) + intBitsToFloat(backupReg0i))); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.x)) + intBitsToFloat(0xba0a8ec8))); +R3i.z = clampFI32(R3i.z); +PS1i = R3i.z; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[16].x),intBitsToFloat(uf_remappedPS[16].y),intBitsToFloat(uf_remappedPS[16].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(float(R127i.y)); +// 15 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PS0i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +PS1i = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(0x3eaaaaab)); +// 16 +R123i.x = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), -(intBitsToFloat(R3i.w)))); +// 17 +backupReg0i = R7i.x; +R7i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),-(intBitsToFloat(R126i.z))) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.y),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R4i.w))); +R7i.z = clampFI32(R7i.z); +// 19 +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.x),-(intBitsToFloat(R126i.x))) + intBitsToFloat(PV0i.x))); +PV1i.z = R12i.z; +// 20 +PV0i.y = PV1i.z; +PV0i.y = clampFI32(PV0i.y); +// 21 +R14i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0xbecccccd)); +} +if( activeMaskStackC[1] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[20].x),intBitsToFloat(uf_remappedPS[20].y),intBitsToFloat(uf_remappedPS[20].z),intBitsToFloat(uf_remappedPS[20].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[21].x),intBitsToFloat(uf_remappedPS[21].y),intBitsToFloat(uf_remappedPS[21].z),intBitsToFloat(uf_remappedPS[21].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R10i.x; +// 3 +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.z))); + + +} +if( activeMaskStackC[1] == true ) { + R9i.y = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R9i.xy),0.0).x); + R10i.w = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R10i.xy),intBitsToFloat(R10i.w)).x); + R11i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R11i.xy)).xyz); +} + + +if( activeMaskStackC[1] == true ) { + // 0 + backupReg0i = R9i.y; + PV0i.x = floatBitsToInt(intBitsToFloat(R10i.w) + intBitsToFloat(uf_remappedPS[23].z)); + PV0i.x = clampFI32(PV0i.x); + R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(R6i.z))); + R123i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); + PV0i.z = R123i.z; + R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(R6i.z))); + R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(R6i.z))); + PS0i = R11i.y; + // 1 + R123i.x = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x41c80000) + intBitsToFloat(R9i.z))); + PV1i.x = R123i.x; + R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[24].z))); + PV1i.y = R3i.y; + // 2 + R4i.y = PV1i.y; + PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R12i.y))); + R10i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[25].x)); + // 3 + PV1i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.z)); + PV1i.z = clampFI32(PV1i.z); + PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0)); + // 4 + R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R8i.x))); + PV0i.x = R123i.x; + R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.w))); + PV0i.y = R123i.y; + R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.x))); + PV0i.z = R123i.z; + R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R12i.x)) + 1.0)); + PV0i.w = R123i.w; + // 5 + PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R7i.z))); + PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[26].z))); + PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[26].y))); + PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[26].x))); + // 6 + PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.y))); + PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.z))); + PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.w))); + PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.x))); + // 7 + R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R9i.w))); + PV1i.x = R123i.x; + R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); + PV1i.z = R123i.z; + R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R6i.y))); + PV1i.w = R123i.w; + // 8 + PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R5i.z))); + PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.y))); + PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R3i.z))); + // 9 + // setting RGB for link to use in shadow calculations + R0i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); + R0i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); + + R2i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +} + +if( activeMaskStackC[1] == true ) { + activeMaskStack[1] = activeMaskStack[0]; + activeMaskStackC[2] = activeMaskStackC[1]; + // 0 + R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedPS[27].x)) + intBitsToFloat(uf_remappedPS[28].w))); + R123i.y = clampFI32(R123i.y); + PV0i.y = R123i.y; + // 1 + PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[29].w))); + // 2 + PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R14i.y))); + // 3 + R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(R0i.z)) + intBitsToFloat(R0i.z))); + PV1i.x = R123i.x; + PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.z))); + // 4 + PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].y), intBitsToFloat(PV1i.y))); + PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].z), intBitsToFloat(PV1i.y))); + PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].x), intBitsToFloat(PV1i.y))); + PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV1i.x))); + R5i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); + PS0i = R5i.z; + // 5 + R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].z),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.y))); + PV1i.x = R123i.x; + R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].x),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.z))); + PV1i.y = R123i.y; + R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.x))); + PV1i.z = R123i.z; + R4i.w = 0; + // 6 + R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.y))); + PV0i.y = R123i.y; + R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z))); + PV0i.z = R123i.z; + R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.x))); + PV0i.w = R123i.w; + // 7 + R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.y))); + R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.z))); + R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.w))); + // 8 + predResult = (intBitsToFloat(R14i.x) != intBitsToFloat(0x3dc0c0c1)); + activeMaskStack[1] = predResult; + activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { + activeMaskStack[1] = false; + activeMaskStackC[2] = false; +} + + +// actually deals with all light. Current method just brightens all of link. +if( activeMaskStackC[2] == true ) { +// 0 +// r0i.x r0i.y, r2i.z carries RGB of ambient light on link +R3i.xyz = floatBitsToInt(vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R4i.z)) + vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R2i.z))); +R3i.w = 0x3f800000; +R0i.x = 0; +PS0i = R0i.x; +// 1 +//R0i.yzw = ivec3(0,0,0); +//R0i.xyz = R3i.xyz; + +// simple effective method previously in use +//R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R15i.x)*$Bright)+ intBitsToFloat(R1i.x)*$Bright); +//R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R15i.y)*$Bright)+ intBitsToFloat(R1i.y)*$Bright); +//R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R15i.z)*$Bright)+ intBitsToFloat(R1i.z)*$Bright); +// end simple method + +// *************************************************************** +// *************************************************************** +// *************************************************************** +// REFERENCE MATERIAL +// *************************************************************** +// *************************************************************** +// *************************************************************** + + +// R17i darkest shadows mask +// R7i meduim shadows mask +// R11i anything not very bright mask + + + +// *********************** +// when set as R0i.xyz output DAY REDO +// *********************** +// +//R0i.x = floatBitsToInt(intBitsToFloat(R15i.x)*$Bright); +//R0i.y = floatBitsToInt(intBitsToFloat(R15i.y)*$Bright); +//R0i.z = floatBitsToInt(intBitsToFloat(R15i.z)*$Bright); +// +// ********************************************************* +// skin colors +// R0i pale dark blue +// R1i base skin tone +// R2i some highlights on dark skin tone +// R3i some highlights on dark skin tone +// R4i green R5i blue R6i green highlights + +// glows +// R8i masive light blue glow +// R9i dark blue glow + +// skin tones +// R10i intense red skin +// R11i pink skin +// R12i dark brown skin +// R13i teal skin +// R14i green skin +// R15i neutral skin tone still a bit dark****** winner +// R16i dark tone +// R17i highlights green and red on dark skin tone +// R122i pretty much black +// R123i pretty much black +// R124i has pink +// R125i dark purple +// R126i dark has green night tones +// R127i dark purple + + +// *********************** +// when miultiplied by R15i unknown time +// *********************** +// skin colors +// R0i dark tone +// R1i dark tone +// R2i black shadow +// R3i reasonable but a touch dark skin tone +// R4i green overtone R5i dark shadows R6i darkens + +// glows +// R8i masive light blue skin less glow +// R8i dark blue skin less glow +// R7i nice warm skin tones + +// skin tones +// R10i intense red skin +// R11i black shadows +// R12i red to shadows and light red glow to skin +// R13i add teal to shadows +// R14i green skin all +// R15i adds some intensity to colors mostly in the reds of the shadows +// R16i dark tone +// R17i highlights green and red on dark skin tone +// R122i pretty much black +// R123i pretty much black +// R124i has pink +// R125i dark purple +// R126i dark has green night tones +// R127i dark purple + + + +// *********************** +// when miultiplied "mul_nonIEEE( R1i * R##i )" by R1i in DAYLIGHT +// *********************** +// skin colors +// R0i saturated shadows -- cel shaded +// R1i very neutral -- NO CEL SHADING WINNER +// R2i dark blue shadows -- cel shaded +// R3i dark warm skin tone -- cel shaded +// R4i green overtone R5i dark shadows R6i darkens -- no cel +// R7i blueish shadow -- cel shaded + +// glows +// R8i masive light blue skin less glow +// R9i dark blue skin less glow + + +// skin tones +// R10i intense red skin - no cel apparent +// R11i red sgadiws - no cel apparent +// R12i pinkish shadows possible combined with sky light color -- cel shaded +// R13i add teal shadows -- no cel +// R14i green skin all -- no cel +// R15i adds some intensity to colors mostly in the reds of the shadows -- NO CEL SHADING WINNER +// R16i desaturated highlights in shadows -- NO CEL SHADING WINNER for add highlights +// R17i highlights green and red on dark skin tone -- no cel +// R122i dark reds -- no cel +// R123i seems a reflective map -- no cel goldish tones since reflecting sun +// R124i has pink -- no cel +// R125i dark purple -- no cel +// R126i dark has green night tones -- no cel +// R127i dark red -- no cel + + + +// *********************** +// when set as R0i.xyz output at NIGHT +// *********************** +// +//R0i.x = floatBitsToInt(intBitsToFloat(R15i.x)*$Bright); +//R0i.y = floatBitsToInt(intBitsToFloat(R15i.y)*$Bright); +//R0i.z = floatBitsToInt(intBitsToFloat(R15i.z)*$Bright); +// +// ********************************************************* +// skin colors +// R0i skin tone with a bit too much pinks red +// R1i base skin tone flat neutral no highlights +// R2i some highlights on dark skin tone +// R3i dark tone may carry brightness of environmnt light +// R4i green R5i blue with base highlight R6i puke reen overtone + +// glows +// R8i masive light blue glow... when multiplied by x only provides a green ovetone +// R9i dark blue glow +// R7i pinkish on shadows on bright side greenish on dark side. Kinda like R17i with irs red green + +// skin tones +// R10i intense red all skin +// R11i very dark +// R12i dark red with clothes and lit side ignored +// R13i teal skin lit side ignored +// R14i green all skin +// R15i neutral skin tone still a bit dark****** winner +// R16i dark tone +// R17i highlights green and red on dark skin tone +// R122i dark red overtones +// R123i pretty much black +// R124i has pink overtone +// R125i dark blue purple overtone +// R126i dark has green overtone +// R127i dark red overtones + +// use with R15i for white +// use with R1i for sky tone mostly yellow +// + R17i.y shadows low +// - R17i.y shadows high +// + R17i.x shadows left +// - R17i.x shadows right + + +// *********************** +// when added to "floatBitsToInt( R1i + R##i )" by R1i in DAYLIGHT +// *********************** +// skin colors +// R0i saturated shadows -- cel shaded +// R1i very neutral -- NO CEL SHADING WINNER +// R2i dark blue shadows -- cel shaded +// R3i dark warm skin tone -- cel shaded +// R4i green overtone R5i blue overtones R6i yellow overtones -- no cel +// R7i add yellow to shadow and blue to light -- cel shaded? Shadow map + +// glows +// R8i masive light blue skin less glow +// R9i dark blue skin less glow + + +// skin tones +// R10i intense red skin - no cel apparent +// R11i red shadows - no cel apparent possible use shadow map +// R12i pinkish shadows possible combined with sky light color -- cel shaded +// R13i add teal shadows -- no cel +// R14i green skin all -- no cel +// R15i adds some intensity to colors mostly in the reds of the shadows -- NO CEL SHADING WINNER +// R16i desaturated highlights in shadows -- NO CEL SHADING WINNER for add highlights +// R17i highlights green and red on dark skin tone -- no cel Shadow mask +// R122i dark reds -- no cel +// R123i seems a reflective map -- no cel goldish tones since reflecting sun +// R124i has pink -- no cel +// R125i dark purple -- no cel +// R126i dark has green night tones -- no cel +// R127i dark red -- no cel + +// *************************************************************** +// *************************************************************** +// *************************************************************** +// END REFERENCE MATERIAL +// *************************************************************** +// *************************************************************** +// *************************************************************** + + +// The next sectiona make shadow masks using various base colors and directions of shadows + +// Section 1 r15 for white tone with shadow on side described +Left0i.x = floatBitsToInt(intBitsToFloat(R15i.x) + intBitsToFloat(R17i.x)); +Left0i.y = floatBitsToInt(intBitsToFloat(R15i.y) + intBitsToFloat(R17i.x)); +Left0i.z = floatBitsToInt(intBitsToFloat(R15i.z) + intBitsToFloat(R17i.x)); + +// Low0i.x = floatBitsToInt(intBitsToFloat(R15i.x) + intBitsToFloat(R17i.y)); +// Low0i.y = floatBitsToInt(intBitsToFloat(R15i.y) + intBitsToFloat(R17i.y)); +// Low0i.z = floatBitsToInt(intBitsToFloat(R15i.z) + intBitsToFloat(R17i.y)); + +Right0i.x = floatBitsToInt(intBitsToFloat(R15i.x) - intBitsToFloat(R17i.x)); +Right0i.y = floatBitsToInt(intBitsToFloat(R15i.y) - intBitsToFloat(R17i.x)); +Right0i.z = floatBitsToInt(intBitsToFloat(R15i.z) - intBitsToFloat(R17i.x)); + +High0i.x = floatBitsToInt(intBitsToFloat(R15i.x) - intBitsToFloat(R17i.y)); +High0i.y = floatBitsToInt(intBitsToFloat(R15i.y) - intBitsToFloat(R17i.y)); +High0i.z = floatBitsToInt(intBitsToFloat(R15i.z) - intBitsToFloat(R17i.y)); +//******************************************************** + + + +// Section 2 R1i for yellow tone with shoadow on side described +// YLeft0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R17i.x)); +// YLeft0i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R17i.x)); +// YLeft0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R17i.x)); + +// YLow0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(R17i.y)); +// YLow0i.y = floatBitsToInt(intBitsToFloat(R1i.y) + intBitsToFloat(R17i.y)); +// YLow0i.z = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(R17i.y)); + +YRight0i.x = floatBitsToInt(intBitsToFloat(R1i.x) - intBitsToFloat(R17i.x)); +YRight0i.y = floatBitsToInt(intBitsToFloat(R1i.y) - intBitsToFloat(R17i.x)); +YRight0i.z = floatBitsToInt(intBitsToFloat(R1i.z) - intBitsToFloat(R17i.x)); + +YHigh0i.x = floatBitsToInt(intBitsToFloat(R1i.x) - intBitsToFloat(R17i.y)); +YHigh0i.y = floatBitsToInt(intBitsToFloat(R1i.y) - intBitsToFloat(R17i.y)); +YHigh0i.z = floatBitsToInt(intBitsToFloat(R1i.z) - intBitsToFloat(R17i.y)); +//******************************************************** + + + +// Section 3 R123i Light on side described, blue light of sky or occluded (shines) becomes empty, night dark blue +// BLeft0i.x = floatBitsToInt(intBitsToFloat(R123i.x) - intBitsToFloat(R17i.x)); +// BLeft0i.y = floatBitsToInt(intBitsToFloat(R123i.y) - intBitsToFloat(R17i.x)); +// BLeft0i.z = floatBitsToInt(intBitsToFloat(R123i.z) - intBitsToFloat(R17i.x)); + +// BLow0i.x = floatBitsToInt(intBitsToFloat(R123i.x) - intBitsToFloat(R17i.y)); +// BLow0i.y = floatBitsToInt(intBitsToFloat(R123i.y) - intBitsToFloat(R17i.y)); +// BLow0i.z = floatBitsToInt(intBitsToFloat(R123i.z) - intBitsToFloat(R17i.y)); + +// BRight0i.x = floatBitsToInt(intBitsToFloat(R123i.x) + intBitsToFloat(R17i.x)); +// BRight0i.y = floatBitsToInt(intBitsToFloat(R123i.y) + intBitsToFloat(R17i.x)); +// BRight0i.z = floatBitsToInt(intBitsToFloat(R123i.z) + intBitsToFloat(R17i.x)); + +BHigh0i.x = floatBitsToInt(intBitsToFloat(R123i.x) + intBitsToFloat(R17i.y)); +BHigh0i.y = floatBitsToInt(intBitsToFloat(R123i.y) + intBitsToFloat(R17i.y)); +BHigh0i.z = floatBitsToInt(intBitsToFloat(R123i.z) + intBitsToFloat(R17i.y)); +//******************************************************** + + + +// Section 4 Blue over tone shadows with slight green rim light +LtBlueShadow.x = floatBitsToInt(intBitsToFloat(R13i.x)*.2 + intBitsToFloat(R7i.y)); +LtBlueShadow.y = floatBitsToInt(intBitsToFloat(R13i.y)*.2 + intBitsToFloat(R7i.y)); +LtBlueShadow.z = floatBitsToInt(intBitsToFloat(R13i.y)*.2 + intBitsToFloat(R7i.y)); +//******************************************************** + + +//Section 5 Darken shadows +// Temp0i.x = floatBitsToInt(intBitsToFloat(R16i.x) + intBitsToFloat(R11i.y)); +// Temp0i.y = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(R11i.y)); +// Temp0i.z = floatBitsToInt(intBitsToFloat(R16i.z) + intBitsToFloat(R11i.y)); +//******************************************************** + + +// subtract white left shadow from white base using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R1i.x), intBitsToFloat(Left0i.x)*$Bright)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R1i.y), intBitsToFloat(Left0i.y)*$Bright)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R1i.z), intBitsToFloat(Left0i.z)*$Bright)); + +// subtract white high shadow from above using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(High0i.x)*$Bright)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(High0i.y)*$Bright)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R0i.z), intBitsToFloat(High0i.z)*$Bright)); + +// subtract yellow high shadow from above using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(YHigh0i.x)*$Bright)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(YHigh0i.y)*$Bright)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R0i.z), intBitsToFloat(YHigh0i.z)*$Bright)); + +// subtract yellow right shadow from above using min +R0i.x = floatBitsToInt(min(intBitsToFloat(R0i.x), intBitsToFloat(Right0i.x)*$Bright*.7)); +R0i.y = floatBitsToInt(min(intBitsToFloat(R0i.y), intBitsToFloat(Right0i.y)*$Bright*.7)); +R0i.z = floatBitsToInt(min(intBitsToFloat(R0i.z), intBitsToFloat(Right0i.z)*$Bright*.7)); + +// make a base color by using mul_nonIEEE with the calculated shadow and the white base color. Add in the shadow, white, light blue masked over shadow, blue sky light masked over high locations, and what I think is a reflective map. +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(R1i.x))*$Bright + intBitsToFloat(R0i.x)*$Bright + intBitsToFloat(R1i.x)*$Bright + intBitsToFloat(LtBlueShadow.x)*$Bright + intBitsToFloat(BHigh0i.x)*$Bright + intBitsToFloat(R123i.x)*$Bright) ; + +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(R1i.y))*$Bright + intBitsToFloat(R0i.y)*$Bright + intBitsToFloat(R1i.y)*$Bright + intBitsToFloat(LtBlueShadow.y)*$Bright + intBitsToFloat(BHigh0i.y)*$Bright + intBitsToFloat(R123i.y)*$Bright) ; + +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R1i.z))*$Bright + intBitsToFloat(R0i.z)*$Bright + intBitsToFloat(R1i.z)*$Bright + intBitsToFloat(LtBlueShadow.z)*$Bright + intBitsToFloat(BHigh0i.z)*$Bright + intBitsToFloat(R123i.z)*$Bright) ; + + + +R0i.w = R3i.w; +// r0i our color output from the if statement passed on for furthur use +} + + +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; + +if( activeMaskStackC[2] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[30].x),intBitsToFloat(uf_remappedPS[30].y),intBitsToFloat(uf_remappedPS[30].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = 0x40400000; +PS0i = R0i.w; +// 1 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[31].x),intBitsToFloat(uf_remappedPS[31].y),intBitsToFloat(uf_remappedPS[31].z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(uf_remappedPS[32].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R13i.x))); +// 3 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +backupReg1i = R127i.z; +redcCUBE(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i))); +R2i.z = clampFI32(R2i.z); +PS1i = R2i.z; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R14i.z) * intBitsToFloat(0x42960000)); +PV0i.x = clampFI32(PV0i.x); +R0i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +backupReg0i = R1i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.x = R123i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.z))); +PS1i = R1i.x; +// 6 +R0i.x = PV1i.w; +R0i.y = PV1i.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PV1i.z))); +PS0i = R3i.x; +} +if( activeMaskStackC[2] == true ) { +// can increases texture lod in attempt to get higher res tetures at a distance on enemies + R0i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex7),intBitsToFloat(R0i.w)).xyz); +} + +if( activeMaskStackC[2] == true ) { + // 0 + R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.y))); + PV0i.x = R123i.x; + R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.x))); + PV0i.y = R123i.y; + R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(R1i.x))); + R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.z))); + PV0i.w = R123i.w; + R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(R1i.y))); + PS0i = R3i.y; + // 1 + R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R2i.x))); + R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.y))); + R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.z))); + R0i.w = 0; + R3i.w = 0x3f800000; + PS1i = R3i.w; +} + +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; +if( activeMaskStackC[1] == true ) { +// 0 +R1i.w = 0x3f800000; +// 1 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +backupReg2i = R3i.z; +backupReg3i = R3i.w; +R3i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R3i.w = backupReg3i; +// 2 +R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R2i.w = R0i.w; +// 3 +backupReg0i = R1i.w; +R1i.xyz = ivec3(R4i.x,R5i.y,R6i.z); +R1i.w = backupReg0i; +// 4 +R0i.xyz = ivec3(R13i.x,R4i.y,R5i.z); +R0i.w = R4i.w; +// 5 +R4i.xyz = ivec3(R7i.x,R7i.x,R7i.x); +R4i.w = R7i.x; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); +passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); +passPixelColor2 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor4 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_Altros/rules.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_Altros/rules.txt new file mode 100644 index 00000000..a6bf4c09 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_Altros/rules.txt @@ -0,0 +1,73 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = No Cel-Shading Links Shadow Brightness Fix v0.8 +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Cel-Shading Removal/Shadow Brightness Fix v08 - Altros" +description = Fixes the very dark shadows on Links back-side in No Cel-Shade mode. +version = 3 + + +[Preset] +name = Shadows 0.45% (Default) +$Bright = 0.45 + +[Preset] +name = Shadows 0.25% +$Bright = 0.25 + +[Preset] +name = Shadows 0.35% +$Bright = 0.35 + +[Preset] +name = Shadows 0.45% +$Bright = 0.45 + +[Preset] +name = Shadows 0.55% +$Bright = 0.55 + +[Preset] +name = Shadows 0.65% +$Bright = 0.65 + +[Preset] +name = Shadows 0.75% +$Bright = 0.75 + +[Preset] +name = Shadows 0.95% +$Bright = 0.95 + +[Preset] +name = Shadows 1.0% (Game Original) +$Bright = 1.0 + +[Preset] +name = Shadows 1.15% +$Bright = 1.15 + +[Preset] +name = Shadows 1.25% +$Bright = 1.25 + +[Preset] +name = Shadows 1.35% +$Bright = 1.35 + +[Preset] +name = Shadows 1.45% +$Bright = 1.45 + +[Preset] +name = Shadows 1.55% +$Bright = 1.55 + +[Preset] +name = Shadows 1.65% +$Bright = 1.65 + +[Preset] +name = Shadows 1.75% +$Bright = 1.75 + +# Credits - Altros Shadow Brightness Fix v0.8 \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_SkalFate/1c7db40ff5d693ab_001ffffe4924b249_ps.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_SkalFate/1c7db40ff5d693ab_001ffffe4924b249_ps.txt new file mode 100644 index 00000000..c5116211 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_SkalFate/1c7db40ff5d693ab_001ffffe4924b249_ps.txt @@ -0,0 +1,906 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 1c7db40ff5d693ab -- Link and all NPCs Shadows Renderer , NPC Distant Fog RGB Renderer , Body RGB renderer +#define smode $smode +#define shadowsbrightness $shadowsbrightness +#define sred $sred +#define sgreen $sgreen +#define sblue $sblue + +#ifndef smode + #define smode 0 +#endif +#ifndef shadowsbrightness + #define shadowsbrightness 1 +#endif +#ifndef sred + #define sred 1 +#endif +#ifndef sgreen + #define sgreen 1 +#endif +#ifndef sblue + #define sblue 1 +#endif + + +uniform ivec4 uf_remappedPS[33]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x30364000 res 64x64x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 2 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf45c6000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 3) uniform sampler2D textureUnitPS3;// Tex3 addr 0xf494a800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf5c7b800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 5) uniform sampler2D textureUnitPS5;// Tex5 addr 0x236b7000 res 1024x1024x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0xb) sliceView: 0x0 (num 0x1) Sampler5 ClampX/Y/Z: 0 0 0 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0xf5371000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform samplerCubeArray textureUnitPS7;// Tex7 addr 0x3ccea800 res 64x64x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x6) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 11) uniform sampler2D textureUnitPS11;// Tex11 addr 0xf4ccf000 res 1280x720x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler11 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 12) uniform sampler2D textureUnitPS12;// Tex12 addr 0x3cbaa000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler12 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 14) uniform sampler2D textureUnitPS14;// Tex14 addr 0xf528a800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler14 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 15) uniform sampler2D textureUnitPS15;// Tex15 addr 0xf5589800 res 160x90x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler15 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex7 = 0.0; +R0i = floatBitsToInt(passParameterSem0); // Links cutout comes from passparamsem0 +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem6); + +ivec4 Temp0i = ivec4(0); // initializes a temp vector for shadow mathe-magics + +// ------------------------------------------------------------------------------------------------------------- dynamic shadows on link +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); // seems to affect links head area +R7i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); // seems to affect shadows on link body +R15i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xw); +R4i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R16i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +R14i.x = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R2i.zw)).x); +} + +// ------------------------------------------------------------------------------------------------------------- false makes link grey +if( activeMaskStackC[1] == true ) { +// 0 +R124i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.y = R125i.y; +R3i.z = 0; +R5i.w = 0x3f800000; +R126i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); +PS0i = R126i.y; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[2].x)) + -(intBitsToFloat(uf_remappedPS[2].y)))); +R127i.w = clampFI32(R127i.w); +R126i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].w)) + 1.0); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[4].x))); +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[5].x))); +R10i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[5].y)) + intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[6].x))); +R125i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); +R127i.w = floatBitsToInt(max(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[6].y)) + intBitsToFloat(PV0i.y))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R0i.y; +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(backupReg0i))); +PV1i.w = R123i.w; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +PS1i = R3i.x; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +PV0i.x = R123i.x; +R6i.y = floatBitsToInt(max(intBitsToFloat(R15i.x), intBitsToFloat(R127i.w))); +R9i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(PV1i.w)); +PV0i.z = R9i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[5].z)) + intBitsToFloat(R125i.x))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R3i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.y = floatBitsToInt(tempResultf); +PS0i = R127i.y; +// 7 +R5i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].w) + intBitsToFloat(PV0i.w)); +PV1i.x = R5i.x; +R8i.y = PV0i.z; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[6].z)) + intBitsToFloat(R127i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R4i.z = floatBitsToInt(tempResultf); +PS1i = R4i.z; +// 8 +R9i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(R127i.y))); +R8i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[6].w) + intBitsToFloat(PV1i.z)); +PV0i.z = R8i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(R127i.y))); +R13i.x = floatBitsToInt(min(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y))); +PS0i = R13i.x; +// 9 +R127i.x = uf_remappedPS[7].y; +R9i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3a83126f)); +R127i.z = uf_remappedPS[8].y; +R125i.w = floatBitsToInt(min(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 10 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[3].w))/2.0); +PV0i.x = R123i.x; +R2i.y = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(0x2edbe6ff)); +R126i.z = uf_remappedPS[9].y; +R127i.w = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(0xbecccccd)); +R125i.x = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R125i.x; +// 11 +backupReg0i = R126i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[10].x)) + -(intBitsToFloat(uf_remappedPS[10].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R11i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(uf_remappedPS[11].y))); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40200001)); +R126i.w = clampFI32(R126i.w); +R14i.y = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R4i.y) + 1.0)); +PS1i = R14i.y; +// 12 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.z),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R127i.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 14 +R0i.x = floatBitsToInt(min(intBitsToFloat(R15i.x), intBitsToFloat(R125i.w))); +R12i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x41200000)); +R12i.y = clampFI32(R12i.y); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].z), intBitsToFloat(PS1i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),-(intBitsToFloat(R125i.x))) + intBitsToFloat(uf_remappedPS[3].z))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 15 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[13].x)) + intBitsToFloat(uf_remappedPS[14].w))); +R125i.x = clampFI32(R125i.x); +R127i.y = floatBitsToInt((intBitsToFloat(PS0i) * 4.0 + intBitsToFloat(0xc0400000))); +R127i.y = clampFI32(R127i.y); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R14i.y))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +R17i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R127i.w = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +tempResultf = log2(intBitsToFloat(R127i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 17 +R6i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3f4ccccd)); +R13i.y = floatBitsToInt(intBitsToFloat(R127i.y) + -(0.5)); +R13i.y = floatBitsToInt(intBitsToFloat(R13i.y) * 4.0); +R13i.y = clampFI32(R13i.y); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].x), intBitsToFloat(PS0i))); +R6i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3f4ccccd)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.z))); +// 18 +R8i.x = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3f4ccccd)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R2i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[12].w)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 19 +R12i.x = R1i.w; +R12i.x = clampFI32(R12i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R6i.z = floatBitsToInt((intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(intBitsToFloat(R13i.y) + intBitsToFloat(0x3f4ccccd)); +PV1i.w = clampFI32(PV1i.w); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 20 +R2i.x = floatBitsToInt((intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd) + 1.0)); +R5i.y = R6i.y; +R5i.y = clampFI32(R5i.y); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[15].w))); +R3i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -(1.0)); +tempResultf = log2(intBitsToFloat(R125i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R0i.w = floatBitsToInt(tempResultf); +PS0i = R0i.w; +} +// ------------------------------------------------------------------------------------------------------------- false turns link almost dark, lighting on link +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].x), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].y), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.y = R125i.y; +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R14i.y))); +PV0i.z = R10i.z; +R4i.w = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x42960000)); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(R2i.y)); +PS0i = R126i.w; +// 1 +R125i.x = PV0i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(PS0i)) + 1.0)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].z), intBitsToFloat(uf_remappedPS[17].w))); +PV1i.z = R126i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.w = R123i.w; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R2i.z)) + intBitsToFloat(R2i.z))); +PS1i = R0i.z; +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y), intBitsToFloat(R0i.w))); +PV0i.y = PV1i.z; +R2i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].x) + -(intBitsToFloat(R6i.x))); +R0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].y) + -(intBitsToFloat(R6i.w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.w)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R3i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R4i.z))); +// 4 +backupReg0i = R127i.y; +backupReg1i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x2edbe6ff)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +R124i.z = backupReg0i; +R124i.z = clampFI32(R124i.z); +R8i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].z) + -(intBitsToFloat(R8i.x))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(backupReg1i))); +// 5 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[19].w))); +// 6 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PS1i))); +R126i.y = R4i.x; +R126i.y = clampFI32(R126i.y); +PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), 0.0)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 7 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(min(intBitsToFloat(PV0i.z), 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(0x437f0000)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R6i.z)) + 1.0); +PS1i = R127i.y; +// 8 +R127i.x = floatBitsToInt(intBitsToFloat(R15i.x) + -(intBitsToFloat(R6i.y))); +PV0i.y = floatBitsToInt(max(-(intBitsToFloat(PV1i.z)), intBitsToFloat(0xbf7d70a4))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40a00000)); +PV0i.z = clampFI32(PV0i.z); +R125i.w = floatBitsToInt(intBitsToFloat(R15i.y) + -(intBitsToFloat(R6i.y))); +R124i.w = floatBitsToInt(intBitsToFloat(R15i.z) + -(intBitsToFloat(R6i.y))); +PS0i = R124i.w; +// 9 +backupReg0i = R127i.y; +backupReg1i = R6i.z; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV0i.z)) + 1.0)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R5i.y))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.y)) + intBitsToFloat(backupReg1i))); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +PV1i.w = R126i.w; +R3i.w = 0; +PS1i = R3i.w; +// 10 +backupReg0i = R127i.x; +backupReg1i = R127i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.w = R123i.w; +R127i.w = int(intBitsToFloat(backupReg1i)); +PS0i = R127i.w; +// 11 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.y))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R124i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R124i.x))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.z))); +// 12 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R124i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +PV0i.z = floatBitsToInt(intBitsToFloat(0x3f895ef0) * intBitsToFloat(R127i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R127i.y = R127i.w & int(1); +PS0i = R127i.y; +// 13 +backupReg0i = R2i.w; +backupReg0i = R2i.w; +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.w))) + 1.0)); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(0xba0a8ec8))); +R5i.y = clampFI32(R5i.y); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(0xba0a8ec8))); +R5i.z = clampFI32(R5i.z); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R10i.z))) + intBitsToFloat(backupReg0i))); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.x)) + intBitsToFloat(0xba0a8ec8))); +R3i.z = clampFI32(R3i.z); +PS1i = R3i.z; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[16].x),intBitsToFloat(uf_remappedPS[16].y),intBitsToFloat(uf_remappedPS[16].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(float(R127i.y)); +// 15 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PS0i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +PS1i = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(0x3eaaaaab)); +// 16 +R123i.x = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), -(intBitsToFloat(R3i.w)))); +// 17 +backupReg0i = R7i.x; +R7i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),-(intBitsToFloat(R126i.z))) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.y),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R4i.w))); +R7i.z = clampFI32(R7i.z); +// 19 +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.x),-(intBitsToFloat(R126i.x))) + intBitsToFloat(PV0i.x))); +PV1i.z = R12i.z; +// 20 +PV0i.y = PV1i.z; +PV0i.y = clampFI32(PV0i.y); +// 21 +R14i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0xbecccccd)); +} + +// ------------------------------------------------------------------------------------------------------------- +if( activeMaskStackC[1] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[20].x),intBitsToFloat(uf_remappedPS[20].y),intBitsToFloat(uf_remappedPS[20].z),intBitsToFloat(uf_remappedPS[20].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[21].x),intBitsToFloat(uf_remappedPS[21].y),intBitsToFloat(uf_remappedPS[21].z),intBitsToFloat(uf_remappedPS[21].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R10i.x; +// 3 +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.z))); +} + +// ------------------------------------------------------------------------------------------------------------- makes link yellower +if( activeMaskStackC[1] == true ) { +R9i.y = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R9i.xy),0.0).x); +R10i.w = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R10i.xy),intBitsToFloat(R10i.w)).x); +R11i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R11i.xy)).xyz); +} + +// ------------------------------------------------------------------------------------------------------------- makes link yellower +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R9i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(R10i.w) + intBitsToFloat(uf_remappedPS[23].z)); +PV0i.x = clampFI32(PV0i.x); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(R6i.z))); +R123i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PV0i.z = R123i.z; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(R6i.z))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(R6i.z))); +PS0i = R11i.y; +// 1 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x41c80000) + intBitsToFloat(R9i.z))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[24].z))); +PV1i.y = R3i.y; +// 2 +R4i.y = PV1i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R12i.y))); +R10i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[25].x)); +// 3 +PV1i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0)); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R8i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.x))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R12i.x)) + 1.0)); +PV0i.w = R123i.w; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R7i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[26].z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[26].y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[26].x))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.x))); +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R9i.w))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R6i.y))); +PV1i.w = R123i.w; +// 8 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R5i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R3i.z))); +// 9 +R0i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R0i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R2i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +} + +// ------------------------------------------------------------------------------------------------------------- makes whole link blue/pink +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedPS[27].x)) + intBitsToFloat(uf_remappedPS[28].w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +// 1 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[29].w))); +// 2 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R14i.y))); +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(R0i.z)) + intBitsToFloat(R0i.z))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.z))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].y), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].z), intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV1i.x))); +R5i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PS0i = R5i.z; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].z),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].x),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R4i.w = 0; +// 6 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; // links whole body red +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; // links whole body green +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; // links whole body blue +// 7 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.y))); // affects color of links back side +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.z))); // affects color of links back side +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.w))); // affects color of links back side +// 8 +predResult = (intBitsToFloat(R14i.x) != intBitsToFloat(0x3dc0c0c1)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} + +// ------------------------------------------------------------------------------------------------------------- false makes link back-side shadow blue, light entity behind link +if( activeMaskStackC[2] == true ) { +// 0 +R3i.xyz = floatBitsToInt(vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R4i.z)) + vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R2i.z))); +R3i.w = 0x3f800000; +R0i.x = 0; + +// 1 +if(smode == 1) // run custom code +{ + // -- 1. one way to do it + //R0i.yzw = ivec3(R3i.y,R3i.z,R3i.w); + + // -- 2. another way to do it , green and blue channels + // R1i=bright normal, R3i=normal, R15i=dark normal, R4i=red, R5i=blue look, R6i=green look, R7i=nocelshade R17i=nocelshade, R8i=glow, R9i= Solid blue, R11i=lightblue look, R13i=normal look with yellow outline shadows, R14i=lightgreen look + //R0i.yzw = R3i.yzw; // best choice R3i,R7i,R15i + + // -- 3. another way to do it - but mixing color channels + // R1i=bright normal, R3i=normal, R15i=normal with minor flickers, R11i=dark normal, R4i=blue, R6i=lightblue, R7i=no-celshade(looks good), R8i=blueglow, R10=BrightGreen, R12i=Green, R14i=blue, R17i=blue shadow highlights + //R0i.yzw = R15i.xyz; // best choice R7i.xyz and R15i.xyz + + // -- 4. another way to do it, seems best because uses all three color channels, has clay effect indoors + // R1i=bright normal, R3i=normal, R15i=normal, R11i=blue normal + // R4i=Green, R5i=Blue, R6i=Green, R7i=no-celshade(Orangish), R8i=blueglow, R9i=Solidblue, R10=Red, + // R13i=normal look with yellow outline shadows, R14i=Green, R16=weapon bloom, R17i=no-cel green shadow highlights + // R122i=red, + //R0i.xyz = R3i.xyz; // Best Choice R7i, R15i, R1i, R3i + + // -- 1. another way to do it + //R0i.yzw = ivec3(floatBitsToInt(1.4 * shadowsbrightness), floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0)); // controls the color and brightness of the backside shadows on all npcs + // -- 2. another way to do it + //R0i.xyzw = ivec4(floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0 * shadowsbrightness), floatBitsToInt(1.0)); + + + // -- 1. Best Mode R3i.xyz + R7i.y + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R7i.y) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R7i.y) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R7i.y) * shadowsbrightness); + + PS0i = R0i.x; +} +else if (smode == 2) +{ + // Mode R3i.xyz + R7i.x - Best mode 2 less shadow highlights + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R7i.x) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R7i.x) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R7i.x) * shadowsbrightness); +} +else if (smode == 3) +{ + // R3i.xyz + R17i.y - No enhancement ot the skin ,and very strong shadow higlights + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R17i.y) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R17i.y) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R17i.y) * shadowsbrightness); +} +else if (smode == 4) +{ + // R3i.xyz + R4i.y - Light Shaded Mode + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.y) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R4i.y) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R4i.y) * shadowsbrightness); +} +else if (smode == 5) +{ + // R3i.xyz + R15i.x - Cool mode with minor flickers in the wind + R0i.x = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R15i.x) * shadowsbrightness); + R0i.y = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(R15i.x) * shadowsbrightness); + R0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + intBitsToFloat(R15i.x) * shadowsbrightness); +} +else // run the original shader code +{ + // original shader code + PS0i = R0i.x; + R0i.yzw = ivec3(0,0,0); // orginal code +} + +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; + +// ------------------------------------------------------------------------------------------------------------- false changes links color to be more yellowish +if( activeMaskStackC[2] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[30].x),intBitsToFloat(uf_remappedPS[30].y),intBitsToFloat(uf_remappedPS[30].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = 0x40400000; +PS0i = R0i.w; +// 1 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[31].x),intBitsToFloat(uf_remappedPS[31].y),intBitsToFloat(uf_remappedPS[31].z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(uf_remappedPS[32].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R13i.x))); +// 3 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +backupReg1i = R127i.z; +redcCUBE(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i))); +R2i.z = clampFI32(R2i.z); +PS1i = R2i.z; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R14i.z) * intBitsToFloat(0x42960000)); +PV0i.x = clampFI32(PV0i.x); +R0i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +backupReg0i = R1i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.x = R123i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.z))); +PS1i = R1i.x; +// 6 +R0i.x = PV1i.w; +R0i.y = PV1i.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PV1i.z))); +PS0i = R3i.x; +} + +// ------------------------------------------------------------------------------------------------------------- false makes link back side brightened up and affected by light changes, front shadows and back affected. +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex7),intBitsToFloat(R0i.w)).xyz); +} + +// ------------------------------------------------------------------------------------------------------------- false makes link a bit brighter front and back +if( activeMaskStackC[2] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.x))); +PV0i.y = R123i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(R1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.z))); +PV0i.w = R123i.w; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(R1i.y))); +PS0i = R3i.y; +// 1 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R2i.x))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.y))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.z))); +R0i.w = 0; +R3i.w = 0x3f800000; +PS1i = R3i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; + +// ------------------------------------------------------------------------------------------------------------- false darkens links models curves shadows +if( activeMaskStackC[1] == true ) { +// 0 +R1i.w = 0x3f800000; +// 1 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +backupReg2i = R3i.z; +backupReg3i = R3i.w; +R3i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R3i.w = backupReg3i; +// 2 +R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R2i.w = R0i.w; +// 3 +backupReg0i = R1i.w; +R1i.xyz = ivec3(R4i.x,R5i.y,R6i.z); +R1i.w = backupReg0i; +// 4 +R0i.xyz = ivec3(R13i.x,R4i.y,R5i.z); +R0i.w = R4i.w; +// 5 +R4i.xyz = ivec3(R7i.x,R7i.x,R7i.x); +R4i.w = R7i.x; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); // light/shadows on link front side +passPixelColor1 = vec4(intBitsToFloat(R1i.x)*0, intBitsToFloat(R1i.y)*0, intBitsToFloat(R1i.z)*0, intBitsToFloat(R1i.w)); // links and all npcs fog rgb +passPixelColor2 = vec4(intBitsToFloat(R2i.x) * sred, intBitsToFloat(R2i.y) * sgreen, intBitsToFloat(R2i.z) * sblue, intBitsToFloat(R2i.w)) ; // Controls link RGB only in celshade mode and when original code is run (line 713). In no-celshade mode it changes the lighting on links back-side away from the sun +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor4 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_SkalFate/rules.txt b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_SkalFate/rules.txt new file mode 100644 index 00000000..f4a47819 --- /dev/null +++ b/Enhancements/BreathOfTheWild_CelShadingRemoval/Botw_ShadowFix_SkalFate/rules.txt @@ -0,0 +1,241 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Links Shadow Brightness for No Cel-Shading Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Cel-Shading Removal/Shadow Brightness Fix - SkalFate" +description = Changes the strength of shadows on Links body. Fixes the very dark link issue in no cel-shade mode. +version = 3 + + +[Preset] +name = Mode 1 - Shadows X1 (Best Mode) +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 2 - Shadows X1 (No Highlights) +$smode = 2 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 3 - Shadows X1 (Strong Highlights) +$smode = 3 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 4 - Shadows X1 (LightShade) +$smode = 4 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 5 - Shadows X1 (DarkShade) +$smode = 5 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 1 - Shadows X4 (Best Mode) +$smode = 1 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 2 - Shadows X4 (No Highlights) +$smode = 2 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 3 - Shadows X4 (Strong Highlights) +$smode = 3 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 4 - Shadows X4 (LightShade) +$smode = 4 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 5 - Shadows X4 (DarkShade) +$smode = 5 +$shadowsbrightness = 4 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 1 - Shadows X8 (Best Mode) +$smode = 1 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 2 - Shadows X8 (No Highlights) +$smode = 2 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 3 - Shadows X8 (Strong Highlights) +$smode = 3 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 4 - Shadows X8 (LightShade) +$smode = 4 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Mode 5 - Shadows X8 (DarkShade) +$smode = 5 +$shadowsbrightness = 8 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Red Link +$smode = 1 +$shadowsbrightness = 2 +$sred = 10 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Red Link X2 +$smode = 1 +$shadowsbrightness = 2 +$sred = 20 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Green Link +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 10 +$sblue = 1 + +[Preset] +name = Green Link X2 +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 20 +$sblue = 1 + +[Preset] +name = Blue Link +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 10 + +[Preset] +name = Blue Link X2 +$smode = 1 +$shadowsbrightness = 2 +$sred = 1 +$sgreen = 1 +$sblue = 20 + +[Preset] +name = ---------------------------------------- +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Orignal Game Mode +$smode = 0 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = ---------------------------------------- +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + +[Preset] +name = Custom Settings +$smode = 1 +$shadowsbrightness = 1 +$sred = 1 +$sgreen = 1 +$sblue = 1 + + +# Credits - SkalFate +# +# Shadow Mode (smode) -- Various visual styles can be achieved with mode 1-5 +# +# Shadow Brihtness (shadowbrightness) - Controls how brightened up link and his back side will be +# +# RGB - sred, sgreen, sblue - adjusting this will add more intensity of the specific color. +# ------ Values are multiplied, so if you want to lower values use [0.01 - 1.0], or if you want to raise then use [1.00 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/2e2543216c04766d_0000000079249749_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/2e2543216c04766d_0000000079249749_ps.txt new file mode 100644 index 00000000..50ced34e --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/2e2543216c04766d_0000000079249749_ps.txt @@ -0,0 +1,685 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 2e2543216c04766d -- Water RGB and edge clarity and Distant Water Fog +#define waterfogred $waterfogred +#define waterfoggreen $waterfoggreen +#define waterfogblue $waterfogblue + +uniform ivec4 uf_remappedPS[14]; +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0xf45c6000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf494a800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf4e91800 res 1280x720x1 dim 1 tm: 4 format 0806 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0xf5054000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform sampler2D textureUnitPS7;// Tex7 addr 0xf5846000 res 640x360x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 8) uniform samplerCubeArray textureUnitPS8;// Tex8 addr 0x3ccea800 res 64x64x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x6) Sampler8 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 10) uniform sampler2DArray textureUnitPS10;// Tex10 addr 0xf5593000 res 640x360x2 dim 5 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x2) Sampler10 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 11) uniform sampler2D textureUnitPS11;// Tex11 addr 0xf575f800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler11 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 13) uniform sampler2D textureUnitPS13;// Tex13 addr 0xf5977800 res 640x360x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler13 ClampX/Y/Z: 2 2 2 border: 1 + +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem4; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; + +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } + +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex8 = 0.0; + +R0i = floatBitsToInt(passParameterSem0); // messing with this turns all body of water milky +R1i = floatBitsToInt(passParameterSem4); // does something to close water +R2i = floatBitsToInt(passParameterSem6); // afects near water bodies, reflections frame? + +R3i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x); +R6i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); // water body world reflection frame R2izw +R4i.xyzw = floatBitsToInt(textureGather(textureUnitPS6, intBitsToFloat(R0i.xy)).xyzw); +R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, intBitsToFloat(R0i.xy)).xyzw); +R7i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).xyzw); // affects edge of bodies of water + +// 0 +R126i.x = floatBitsToInt((intBitsToFloat(R6i.x) * 2.0 + -(1.0))); // light reflections on water 2.0 defualt +R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * 2.0 + -(1.0))); // light reflections on water +R127i.z = floatBitsToInt((intBitsToFloat(R6i.z) * 2.0 + -(1.0))); // light reflections on water +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); // shiny ripples on water +PV0i.w = R123i.w; +R126i.z = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.x)); +PS0i = R126i.z; +// 1 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); // R0i how much light reflection light reflections +PV1i.x = R2i.x; +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); // R0i how much light reflection light reflections +PV1i.y = R2i.y; +R124i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); // light reflection rays going off from a center point +PV1i.z = R124i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[2].y))); // enlargens light ripples reflection on waves x200 to visually see +R125i.x = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.y)); +PS1i = R125i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0)));// turns water more solid color +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R2i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +PS0i = R2i.z; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); // (R126i.x) controls the amount of shiny waves +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.x = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +PS1i = R127i.x; +// 4 +R124i.x = floatBitsToInt(intBitsToFloat(R2i.x) + -(intBitsToFloat(uf_remappedPS[3].x))); +R126i.y = floatBitsToInt(intBitsToFloat(R2i.y) + -(intBitsToFloat(uf_remappedPS[3].y))); +R125i.z = floatBitsToInt(intBitsToFloat(R124i.z) + -(intBitsToFloat(uf_remappedPS[3].z))); +R125i.w = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x43480000)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +R11i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R127i.w = R2i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R127i.w) * 2.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 6 +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS1i))); +PV0i.x = R11i.x; +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS1i))); +PV0i.y = R11i.y; +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); +PV0i.z = R12i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.z)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.w)); +PS0i = R127i.y; +// 7 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +tempi.x = floatBitsToInt(intBitsToFloat(tempi.x) * 2.0); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R127i.w))); +PS1i = R125i.y; +// 8 +backupReg0i = R126i.z; +backupReg0i = R126i.z; +backupReg1i = R125i.x; +backupReg1i = R125i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R10i.x)) + intBitsToFloat(R11i.x))); +R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R10i.y)) + intBitsToFloat(R11i.y))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(R11i.z)) + intBitsToFloat(R12i.z))); +R127i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +R125i.x = floatBitsToInt(max(intBitsToFloat(backupReg1i), -(intBitsToFloat(backupReg1i)))); +PS0i = R125i.x; +// 9 +backupReg0i = R126i.w; +backupReg0i = R126i.w; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +PS1i = R126i.w; +// 10 +backupReg0i = R127i.y; +backupReg0i = R127i.y; +backupReg1i = R125i.w; +backupReg1i = R125i.w; +R126i.x = floatBitsToInt(fract(intBitsToFloat(R1i.y))); +R127i.y = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); +R127i.z = floatBitsToInt(fract(intBitsToFloat(R1i.x))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV1i.x))); +R8i.w = 0x40400000; +PS0i = R8i.w; +// 11 +backupReg0i = R126i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.y = tempi.x; +R3i.z = floatBitsToInt(roundEven(1.0)); +PS1i = R3i.z; +// 12 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R6i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.x)) + -(intBitsToFloat(R125i.w)))); +PS0i = R122i.x; +// 13 +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.y)); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.w)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.x)); +PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.z)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PS0i))); +// 14 +R124i.x = floatBitsToInt(-(intBitsToFloat(R126i.y)) + intBitsToFloat(PS1i)); +PV0i.x = R124i.x; +PV0i.y = floatBitsToInt(max(intBitsToFloat(PV1i.x), -(intBitsToFloat(PV1i.x)))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 4.0); +PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.z), -(intBitsToFloat(PV1i.z)))); +PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); +PV0i.w = floatBitsToInt(max(intBitsToFloat(PV1i.w), -(intBitsToFloat(PV1i.w)))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 4.0); +PS0i = floatBitsToInt(max(intBitsToFloat(PV1i.y), -(intBitsToFloat(PV1i.y)))); +PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 4.0); +// 15 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PS0i))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.x))); +PS1i = R122i.x; +// 16 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R124i.x)) + intBitsToFloat(R124i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(R124i.x)) + intBitsToFloat(R2i.y))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.z) + -(intBitsToFloat(PV1i.w))); +R2i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(PS1i)); +PS0i = R2i.x; +// 17 +R124i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(PV0i.w))); +R2i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(PV0i.z)); +PV1i.y = R2i.y; +R5i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(PV0i.y)); +PV1i.z = R5i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w)); +R9i.w = floatBitsToInt((-(intBitsToFloat(R6i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); +PS1i = R9i.w; +// 18 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.z)); +PS0i = clampFI32(PS0i); +// 19 +R5i.x = uf_remappedPS[4].y; +PV1i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(R126i.x)); +PV1i.y = clampFI32(PV1i.y); +R10i.z = uf_remappedPS[5].y; +R3i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PS0i)); // world reflections became visible in the distant body waters +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R5i.w = floatBitsToInt(tempResultf); +PS1i = R5i.w; +// 20 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.w = floatBitsToInt(-(intBitsToFloat(R126i.x)) + intBitsToFloat(PV1i.y)); +PS0i = R4i.w; +// 21 +R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),0.0))); +PV1i.x = R4i.x; +PV1i.y = R4i.x; +PV1i.z = R4i.x; +PV1i.w = R4i.x; +R4i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R4i.z; + +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R11i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.y = tempi.x; +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R5i.w))); +PS0i = R126i.x; +// 1 +R3i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R3i.w)) + intBitsToFloat(R0i.x))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R5i.w))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(R5i.w))); +R3i.w = uf_remappedPS[9].y; +PS1i = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x41c80000)); +PS1i = clampFI32(PS1i); +// 2 +R0i.x = floatBitsToInt(intBitsToFloat(R11i.x) + intBitsToFloat(uf_remappedPS[10].x)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.w),intBitsToFloat(R4i.w)) + intBitsToFloat(R0i.y))); +R0i.z = floatBitsToInt(intBitsToFloat(R11i.y) + intBitsToFloat(uf_remappedPS[10].y)); +R0i.w = floatBitsToInt((intBitsToFloat(PS1i) * 0.5 + 0.5)); +R1i.z = floatBitsToInt(intBitsToFloat(R12i.z) + intBitsToFloat(uf_remappedPS[10].z)); +PS0i = R1i.z; +// 3 +redcCUBE(vec4(intBitsToFloat(R4i.z),intBitsToFloat(R4i.z),intBitsToFloat(R4i.x),intBitsToFloat(R4i.y)),vec4(intBitsToFloat(R4i.y),intBitsToFloat(R4i.x),intBitsToFloat(R4i.z),intBitsToFloat(R4i.z)),cubeMapSTM,cubeMapFaceId); +R125i.x = floatBitsToInt(cubeMapSTM.x); +R125i.y = floatBitsToInt(cubeMapSTM.y); +R125i.z = floatBitsToInt(cubeMapSTM.z); +R125i.w = cubeMapFaceId; +PV1i.x = R125i.x; +PV1i.y = R125i.y; +PV1i.z = R125i.z; +PV1i.w = R125i.w; +R127i.w = floatBitsToInt(-(intBitsToFloat(R6i.w)) + 1.0); +PS1i = R127i.w; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R124i.x = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +PS0i = R124i.x; +// 5 +R4i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[7].x),intBitsToFloat(uf_remappedPS[7].y),intBitsToFloat(uf_remappedPS[7].z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = R4i.x; +PV1i.y = R4i.x; +PV1i.z = R4i.x; +PV1i.w = R4i.x; +R4i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R4i.z; +// 6 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R4i.y = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(R124i.x)) + 1.5)); +PS0i = R122i.x; +// 7 +backupReg0i = R125i.w; +R125i.x = floatBitsToInt((intBitsToFloat(R127i.w) * 0.5 + 0.5)); +R8i.y = PS0i; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.x)) + 1.5)); +PV1i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x437f0000)); +R8i.z = backupReg0i; +PS1i = R8i.z; +// 8 +redcCUBE(vec4(intBitsToFloat(R4i.z),intBitsToFloat(R4i.z),intBitsToFloat(R4i.x),intBitsToFloat(R4i.y)),vec4(intBitsToFloat(R4i.y),intBitsToFloat(R4i.x),intBitsToFloat(R4i.z),intBitsToFloat(R4i.z)),cubeMapSTM,cubeMapFaceId); // 2nd vec4 distant light reflections +R124i.x = floatBitsToInt(cubeMapSTM.x); +R124i.y = floatBitsToInt(cubeMapSTM.y); +R124i.z = floatBitsToInt(cubeMapSTM.z); +R124i.w = cubeMapFaceId; +PV0i.x = R124i.x; +PV0i.y = R124i.y; +PV0i.z = R124i.z; +PV0i.w = R124i.w; +R8i.x = PV1i.z; +PS0i = R8i.x; +// 9 +R6i.x = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R6i.x = clampFI32(R6i.x); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R125i.x))); +R6i.y = floatBitsToInt(intBitsToFloat(R6i.y) / 2.0); +R9i.z = PV0i.w; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z))); // great line to controld distance light/sun reflections on surface of water +// 10 +R7i.x = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R7i.x = clampFI32(R7i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PS1i)) + 1.5)); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x3c23d70a)); +PV0i.z = clampFI32(PV0i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PS1i)) + 1.5)); +PV0i.w = R123i.w; +R6i.z = floatBitsToInt((intBitsToFloat(R7i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R6i.z = clampFI32(R6i.z); +PS0i = R6i.z; +// 11 +R9i.x = PV0i.w; +R9i.y = PV0i.y; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); +R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(R11i.z))); +R7i.y = int(intBitsToFloat(R125i.w)); +PS1i = R7i.y; + +R2i.xzw = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R3i.xy)).xzw); // light reflections on water R3i frame +R8i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R8i.xy),R8i.z),cubeMapArrayIndex8),intBitsToFloat(R8i.w)).xyz); // level of detail for distant water +R9i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R9i.xy),R9i.z),cubeMapArrayIndex8),intBitsToFloat(R9i.w)).xyz); +R4i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z))).xyz); +R3i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R3i.xy)).xyz); //distant water looks like near water at x0 + +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R10i.z),intBitsToFloat(R7i.w),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),1.0,0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[10].x)), intBitsToFloat(uf_remappedPS[11].w))); +PS0i = R127i.x; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[10].y)), intBitsToFloat(uf_remappedPS[11].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.w)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R2i.w))); +PV1i.z = R125i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[11].w), intBitsToFloat(uf_remappedPS[11].w))); +R125i.x = R7i.y & int(1); +PS1i = R125i.x; +// 2 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R10i.x))); +PV0i.x = R124i.x; +R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R10i.y))); +PV0i.y = R124i.y; +R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),-(intBitsToFloat(PV1i.y))) + intBitsToFloat(R11i.z))); +PV0i.z = R124i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[10].z)), intBitsToFloat(uf_remappedPS[11].w))); +R10i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0x3f4ccccd)); +R10i.x = clampFI32(R10i.x); +PS0i = R10i.x; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); // reflections +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].x), intBitsToFloat(R125i.z))); +PS1i = R126i.y; +// 4 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.z),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R0i.z),intBitsToFloat(R1i.z),0.0))); // reflections +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +backupReg0i = R124i.z; +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS0i))); +PV1i.x = R5i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PS0i))); +PV1i.y = R127i.y; +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +PV1i.z = R124i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R125i.z) + 0.25); +R127i.w = clampFI32(R127i.w); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R125i.z = floatBitsToInt(tempResultf); +PS1i = R125i.z; +// 6 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +// 7 +backupReg0i = R0i.z; +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R125i.z))); +R124i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PS0i)), intBitsToFloat(uf_remappedPS[11].w))); +PV1i.z = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.z))); +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(R125i.w))); +PS1i = R0i.x; +// 8 +R124i.x = floatBitsToInt(min(intBitsToFloat(PV1i.z), 1.0)); +PV0i.x = R124i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.w)), intBitsToFloat(uf_remappedPS[11].w))); // affects water reflections +PV0i.y = R125i.y; +R125i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.x)), intBitsToFloat(uf_remappedPS[11].w))); // affects water reflections +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R2i.z))); +R127i.z = floatBitsToInt(float(R125i.x)); +PS0i = R127i.z; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R126i.x),intBitsToFloat(R124i.w),-0.0),vec4(intBitsToFloat(R124i.y),intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R125i.w = tempi.x; +R125i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R125i.x; +// 10 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.y),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R127i.y),intBitsToFloat(R124i.z),0.0))); // reflection glare on water surface +tempi.x = clampFI32(tempi.x); // will do the same as above line +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +// 11 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(R125i.x)) + intBitsToFloat(R125i.x))); +PV1i.y = R125i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R124i.z))); +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PS0i)) + intBitsToFloat(PS0i))); +PV1i.w = R124i.w; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),-(intBitsToFloat(R6i.y))) + intBitsToFloat(R124i.x))); +PS1i = R122i.x; +// 12 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(PV1i.x)) + -(intBitsToFloat(PV1i.x)))); +PV0i.w = R125i.w; +PS0i = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PS1i)); +// 13 +backupReg0i = R125i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.x))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PV0i.z))); +PV1i.y = R125i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) + 1.0); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.y))); +R124i.z = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +PS1i = R124i.z; +// 14 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R6i.y))) + intBitsToFloat(PV1i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((-(intBitsToFloat(PV1i.y)) * intBitsToFloat(0x3ca3d70a) + intBitsToFloat(0x3ca3d70a))); +PV0i.z = R123i.z; +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R10i.x))); +PV0i.w = R124i.w; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.x))); +PS0i = R125i.z; +// 15 +backupReg0i = R124i.z; +PV1i.x = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV0i.x)); +R126i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV0i.z)); +R124i.z = floatBitsToInt((-(intBitsToFloat(PV0i.w)) * intBitsToFloat(0x3ca3d70a) + intBitsToFloat(0x3ca3d70a))); +R125i.w = floatBitsToInt(0.25 * intBitsToFloat(backupReg0i)); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y)); // largens the area of light glitter from the sun on surface area +// 16 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),-(intBitsToFloat(R125i.y))) + intBitsToFloat(R127i.w))); +PV0i.x = R127i.x; +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),-(intBitsToFloat(R124i.w))) + intBitsToFloat(R8i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),-(intBitsToFloat(R124i.w))) + intBitsToFloat(R8i.x))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(PS1i))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.x)); // largens the area of light glitter from the sun on surface area +// 17 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),-(intBitsToFloat(R124i.w))) + intBitsToFloat(R8i.z))); +PV1i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R125i.w))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R0i.x))); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].x),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.z))); +PS1i = R122i.x; +// 18 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].z),intBitsToFloat(R127i.x)) + intBitsToFloat(PV1i.x))); // ufremapped makes water more solid pool color +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y),intBitsToFloat(R127i.x)) + intBitsToFloat(R125i.y))); // ufremapped makes water more solid pool color +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(R124i.z)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R6i.x))); +PS0i = R125i.y; +// 19 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.y))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R7i.x))); +R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.z))); +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R6i.z))); +PS1i = R125i.w; +// 20 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].x), intBitsToFloat(R126i.y))); +R4i.y = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].z), intBitsToFloat(R126i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y), intBitsToFloat(R126i.y))); +R8i.y = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PS0i = R8i.y; +// 21 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(R124i.w))); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(R127i.x))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(R127i.y))); +R3i.w = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R126i.w))); +PS1i = R6i.w; +// 22 +PV0i.y = floatBitsToInt(intBitsToFloat(R4i.x) + intBitsToFloat(R3i.w)); // blue color body water +PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(R8i.y)); // green color body water +PV0i.w = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R4i.y)); // red color body water +// 23 +R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R3i.x) * waterfogred )); // R3i is water fog color red +R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R3i.y) * waterfoggreen )); // R3i is water fog green +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R3i.z) * waterfogblue )); // R3i is water fog blue +// export +passPixelColor0 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w)); // xyz is RGB for water color, and w is edge see through clarity +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/bec68ec6f40a864f_00fffff249259249_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/bec68ec6f40a864f_00fffff249259249_ps.txt new file mode 100644 index 00000000..6f771432 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/bec68ec6f40a864f_00fffff249259249_ps.txt @@ -0,0 +1,968 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader bec68ec6f40a864f -- Affects distant area fog rgb, distance lighting, ground lighting +#define dli $distantlighting +#define dred $dred +#define dgreen $dgreen +#define dblue $dblue + +uniform ivec4 uf_remappedPS[33]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x30364000 res 64x64x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 2 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf45c6000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 3) uniform sampler2D textureUnitPS3;// Tex3 addr 0xf494a800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf5c7b800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 5) uniform sampler2D textureUnitPS5;// Tex5 addr 0x236b7000 res 1024x1024x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0xb) sliceView: 0x0 (num 0x1) Sampler5 ClampX/Y/Z: 0 0 0 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0xf5371000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform samplerCubeArray textureUnitPS7;// Tex7 addr 0x3ccea800 res 64x64x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x6) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 11) uniform sampler2D textureUnitPS11;// Tex11 addr 0x3cbaa000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler11 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 12) uniform sampler2D textureUnitPS12;// Tex12 addr 0x3ccc6800 res 96x96x1 dim 1 tm: 4 format 0005 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler12 ClampX/Y/Z: 6 6 6 border: 2 +layout(binding = 14) uniform sampler2D textureUnitPS14;// Tex14 addr 0xf528a800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler14 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 15) uniform sampler2D textureUnitPS15;// Tex15 addr 0xf5589800 res 160x90x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler15 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 17) uniform sampler2D textureUnitPS17;// Tex17 addr 0x3cd0f000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex7 = 0.0; + +R0i = floatBitsToInt(passParameterSem0); // affects lighting +R1i = floatBitsToInt(passParameterSem2); // affects shadows, though strange +R2i = floatBitsToInt(passParameterSem6); // affects shadow blur + +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R12i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R5i.xzw = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xzw); +R11i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R9i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R22i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R12i.x) * 2.0 + -(1.0))); +R127i.y = floatBitsToInt((intBitsToFloat(R12i.y) * 2.0 + -(1.0))); +R127i.z = floatBitsToInt((intBitsToFloat(R12i.z) * 2.0 + -(1.0))); +R6i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R6i.w; +R14i.w = 0x40400000; +PS0i = R14i.w; +// 1 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R124i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R125i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PV1i.z = R125i.z; +R3i.w = 0; +R8i.w = 0x3f800000; +PS1i = R8i.w; +// 2 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[2].x))); +R0i.y = floatBitsToInt((-(intBitsToFloat(R12i.w)) * 0.5 + 1.0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[3].x))); +R16i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * intBitsToFloat(0x3ba3d70a)); +R15i.y = 0; +PS0i = R15i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(PV0i.z))); +PS1i = R122i.x; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(uf_remappedPS[4].x))); +R126i.z = floatBitsToInt(intBitsToFloat(R12i.w) * intBitsToFloat(0x437f0000)); +R17i.w = floatBitsToInt(intBitsToFloat(R0i.y) * intBitsToFloat(0x40400000)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R8i.x; +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R5i.y; +R8i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +R18i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[3].w) + intBitsToFloat(PV0i.x)); +PS1i = R18i.z; +// 6 +R6i.x = PS1i; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R0i.z = PV1i.x; +R0i.z = floatBitsToInt(intBitsToFloat(R0i.z) * 2.0); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +R2i.z = PV1i.y; +R2i.z = floatBitsToInt(intBitsToFloat(R2i.z) * 2.0); +PS0i = R2i.z; +// 7 +backupReg0i = R126i.z; +R4i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].w) + intBitsToFloat(PV0i.y)); +PV1i.x = R4i.x; +R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(PV0i.w))); +R3i.z = R8i.z; +R3i.z = floatBitsToInt(intBitsToFloat(R3i.z) * 2.0); +R0i.w = floatBitsToInt((intBitsToFloat(R6i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R0i.w = clampFI32(R0i.w); +R126i.z = int(intBitsToFloat(backupReg0i)); +PS1i = R126i.z; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = tempi.x; +R15i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PS0i = R15i.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((-(intBitsToFloat(PV0i.x)) * 0.5 + 0.5)); +PS1i = R122i.x; +// 10 +backupReg0i = R126i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(uf_remappedPS[7].x)) + -(intBitsToFloat(uf_remappedPS[7].y)))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x40200000)); +R7i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(backupReg0i)); +R125i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +R127i.y = R126i.z & int(1); +PS0i = R127i.y; +// 11 +R125i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),0.0))); +PV1i.x = R125i.x; +PV1i.y = R125i.x; +PV1i.z = R125i.x; +PV1i.w = R125i.x; +R2i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R2i.y; +// 12 +R13i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].x)))); +R13i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].y)))); +R15i.z = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(0x3a83126f)); +R15i.w = floatBitsToInt(intBitsToFloat(R126i.y) * intBitsToFloat(0x3daaaaab)); +tempResultf = log2(intBitsToFloat(PS1i)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R0i.x = floatBitsToInt(tempResultf); +PS0i = R0i.x; +// 13 +redcCUBE(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R125i.w),intBitsToFloat(R125i.x),intBitsToFloat(R125i.y)),vec4(intBitsToFloat(R125i.y),intBitsToFloat(R125i.x),intBitsToFloat(R125i.w),intBitsToFloat(R125i.w)),cubeMapSTM,cubeMapFaceId); +R126i.x = floatBitsToInt(cubeMapSTM.x); +R126i.y = floatBitsToInt(cubeMapSTM.y); +R126i.z = floatBitsToInt(cubeMapSTM.z); +R126i.w = cubeMapFaceId; +PV1i.x = R126i.x; +PV1i.y = R126i.y; +PV1i.z = R126i.z; +PV1i.w = R126i.w; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].y), intBitsToFloat(PS0i))); +PS1i = R127i.w; +// 14 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt(-(intBitsToFloat(R6i.x)) + intBitsToFloat(uf_remappedPS[9].w)); +R127i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[10].w)) + 1.0); +R14i.z = PV1i.w; +R2i.w = ((backupReg0i == 0)?(0):(0x3f800000)); +PV0i.w = R2i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 15 +R123i.x = floatBitsToInt((intBitsToFloat(R125i.y) * 2.0 + -(1.0))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f4ccccd)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.w))); +// 16 +R14i.x = PV1i.w; +R14i.y = PV1i.y; +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.w)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[10].w))/2.0); +PV0i.w = R123i.w; +R19i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PS0i = R19i.y; +// 17 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R124i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R18i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PS1i = R18i.y; +// 18 +R2i.x = uf_remappedPS[11].y; +R3i.y = uf_remappedPS[12].y; +R16i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(0x3fa66666)); +R127i.w = floatBitsToInt(intBitsToFloat(R11i.w) * intBitsToFloat(0x437f0000)); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(uf_remappedPS[13].x)) + -(intBitsToFloat(uf_remappedPS[13].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R6i.y = 0; +R4i.z = uf_remappedPS[14].y; +R7i.w = 0; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 20 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PS1i))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R4i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R9i.w = int(intBitsToFloat(R127i.w)); +PS0i = R9i.w; +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.y = R125i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R4i.y)) + 1.0)); +PV0i.z = R123i.z; +R124i.w = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(uf_remappedPS[15].x)); +R127i.y = floatBitsToInt(intBitsToFloat(R4i.y) + intBitsToFloat(uf_remappedPS[15].y)); +PS0i = R127i.y; +// 1 +R124i.x = PV0i.x; +R126i.y = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedPS[15].z)); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.z = R127i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.w = R123i.w; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.z)); +R124i.y = floatBitsToInt(tempResultf); +PS1i = R124i.y; +// 2 +R19i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(uf_remappedPS[17].y)); +PV0i.y = PV1i.z; +R126i.z = R9i.w & 0x000000fc; +R10i.w = R1i.x; +R10i.w = floatBitsToInt(intBitsToFloat(R10i.w) / 2.0); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.w)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R6i.z),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R3i.w),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R124i.y))); +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R6i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = tempi.x; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +PS0i = R125i.z; +// 5 +backupReg0i = R0i.z; +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R10i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(backupReg0i)) + intBitsToFloat(R3i.x))); +PS1i = R10i.x; +// 6 +R7i.x = floatBitsToInt(min(intBitsToFloat(R5i.x), intBitsToFloat(R5i.w))); +PV0i.x = R7i.x; +R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R2i.z)) + intBitsToFloat(R4i.y))); +R13i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R3i.z)) + intBitsToFloat(R6i.z))); +PV0i.w = floatBitsToInt(max(-(intBitsToFloat(R127i.w)), 0.0)); +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(0x3c23d70a))); +R127i.w = clampFI32(R127i.w); +PS0i = R127i.w; +// 7 +backupReg0i = R124i.x; +R124i.x = floatBitsToInt(min(intBitsToFloat(PV0i.w), 1.0)); +R0i.y = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + -(intBitsToFloat(R125i.z))); +R2i.w = floatBitsToInt(intBitsToFloat(R5i.x) + -(intBitsToFloat(PV0i.x))); +tempResultf = log2(intBitsToFloat(R4i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 8 +backupReg0i = R0i.x; +backupReg1i = R126i.z; +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].x), intBitsToFloat(backupReg0i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R2i.y)) + intBitsToFloat(R125i.z))); +PV0i.y = R123i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x), intBitsToFloat(PS1i))); +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w))); +PS0i = floatBitsToInt(float(backupReg1i)); +// 9 +PV1i.x = floatBitsToInt(max(-(intBitsToFloat(PV0i.y)), intBitsToFloat(0xbf7d70a4))); +PV1i.x = floatBitsToInt(intBitsToFloat(PV1i.x) / 2.0); +PV1i.y = floatBitsToInt(-(intBitsToFloat(R124i.x)) + 1.0); +R19i.z = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3b820821)); +R127i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R126i.w = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +PS1i = R126i.w; +// 10 +backupReg0i = R126i.z; +R127i.x = R12i.w; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); +R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +R126i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + 0.5); +PV0i.z = R126i.z; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),intBitsToFloat(uf_remappedPS[19].x)) + intBitsToFloat(uf_remappedPS[20].w))); +R125i.w = clampFI32(R125i.w); +R5i.w = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R5i.w; +// 11 +R20i.x = floatBitsToInt((intBitsToFloat(R6i.w) * intBitsToFloat(0x3c23d70a) + -(0.5))); +R20i.x = clampFI32(R20i.x); +PV1i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0); +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV1i.z = R123i.z; +R3i.w = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x40200001)); +R3i.w = clampFI32(R3i.w); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].z),-(intBitsToFloat(R126i.w))) + intBitsToFloat(uf_remappedPS[10].z))); +PS1i = R125i.z; +// 12 +R21i.x = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R9i.y) + 1.0)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(0xbe593484))); +PV0i.y = R123i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(uf_remappedPS[21].w))); +R4i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].x) + -(1.0)); +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.y))); +// 13 +PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3f22f983)); +R2i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].y) + -(1.0)); +R2i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].z) + -(1.0)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(0x3fc90da4))); +PV1i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R125i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R5i.z = floatBitsToInt(tempResultf); +PS1i = R5i.z; +// 14 +R18i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.w))) + 1.0)); +R7i.y = floatBitsToInt((-(intBitsToFloat(R19i.z)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +R0i.z = floatBitsToInt((-(intBitsToFloat(R127i.x)) * intBitsToFloat(0x40400000) + 4.0)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(R124i.y)) + intBitsToFloat(R124i.y))); +PV0i.w = R123i.w; +R8i.y = floatBitsToInt(intBitsToFloat(R3i.w) * intBitsToFloat(0x3dcccccd)); +PS0i = R8i.y; +// 15 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.w),intBitsToFloat(R127i.y),intBitsToFloat(R126i.y),-0.0),vec4(intBitsToFloat(R124i.w),intBitsToFloat(R127i.y),intBitsToFloat(R126i.y),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.w))); +PS1i = R10i.z; +// 16 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R3i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R4i.y),intBitsToFloat(R6i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 17 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS0i))); +R9i.z = floatBitsToInt((intBitsToFloat(R6i.w) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 18 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[16].w))); +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_remappedPS[16].w))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z), intBitsToFloat(PS1i))); +R6i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(R21i.x))); +PS0i = R6i.w; +// 19 +R0i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.z)),vec4(-(intBitsToFloat(R126i.x)),-(intBitsToFloat(R125i.y)),-(intBitsToFloat(R127i.z)),-(intBitsToFloat(R7i.w))))); +PV1i.x = R0i.x; +PV1i.y = R0i.x; +PV1i.z = R0i.x; +PV1i.w = R0i.x; +R4i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.w))); +PS1i = R4i.z; +// 20 +backupReg0i = R0i.y; +R5i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R126i.x)),-(intBitsToFloat(R125i.y)),-(intBitsToFloat(R127i.z)),-0.0),vec4(-(intBitsToFloat(R3i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R6i.z)),0.0))); +R5i.x = clampFI32(R5i.x); +PV0i.x = R5i.x; +PV0i.y = R5i.x; +PV0i.z = R5i.x; +PV0i.w = R5i.x; +R2i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(backupReg0i)); +R2i.x = clampFI32(R2i.x); +PS0i = R2i.x; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R6i.x),intBitsToFloat(R7i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R125i.y = floatBitsToInt(-(intBitsToFloat(R5i.x)) + 1.0); +PS0i = R125i.y; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R6i.x),intBitsToFloat(R7i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_remappedPS[23].x),intBitsToFloat(uf_remappedPS[23].y),intBitsToFloat(uf_remappedPS[23].z),intBitsToFloat(uf_remappedPS[23].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.x = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.x; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R6i.x),intBitsToFloat(R7i.z),intBitsToFloat(R8i.w)),vec4(intBitsToFloat(uf_remappedPS[24].x),intBitsToFloat(uf_remappedPS[24].y),intBitsToFloat(uf_remappedPS[24].z),intBitsToFloat(uf_remappedPS[24].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R16i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R16i.x; +// 3 +backupReg0i = R2i.w; +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y), intBitsToFloat(R5i.z))); +R16i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[18].w)),intBitsToFloat(R4i.z)) + 1.0)); +PV1i.z = R123i.z; +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.x)) + intBitsToFloat(R7i.x))); +R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R3i.z)) + 1.0)); +PS1i = R2i.x; +// 4 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R5i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.z)),vec4(-(intBitsToFloat(R3i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(R6i.z)),-(intBitsToFloat(R6i.y))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.w)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PS0i = R122i.x; +// 5 +R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +PV1i.x = R126i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); +R6i.z = R0i.x; +R6i.z = clampFI32(R6i.z); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[25].w))); +R8i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R3i.z)) + 1.0)); +PS1i = R8i.z; +// 6 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV1i.y)) + -(intBitsToFloat(PV1i.y)))); +PV0i.x = R127i.x; +R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R3i.z)) + 1.0)); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(R19i.z)) + intBitsToFloat(R7i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; +R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R19i.z)) + intBitsToFloat(R7i.y))); +PS0i = R125i.w; +// 7 +backupReg0i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.z),intBitsToFloat(R19i.z)) + intBitsToFloat(R7i.y))); +R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R21i.x))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R0i.z)); +// 8 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(PS1i))); +R125i.y = floatBitsToInt(-(intBitsToFloat(R6i.w)) + 1.0); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.y)),intBitsToFloat(R9i.z)) + intBitsToFloat(R9i.z))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +R127i.x = floatBitsToInt(exp2(intBitsToFloat(R124i.x))); +PS0i = R127i.x; +// 9 +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R126i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R125i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R125i.z))); +PV1i.z = R123i.z; +R124i.w = floatBitsToInt((intBitsToFloat(R3i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.z)); +// 10 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PS1i))); +R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.y)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y))); +R10i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.z)); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[26].w))); +R0i.z = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(PV1i.y)); +PS0i = R0i.z; +// 11 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R125i.z))); +PV1i.x = R123i.x; +R8i.y = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R124i.x)); +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PV0i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R125i.w))); +PV1i.w = R123i.w; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R126i.x))); +PS1i = R127i.z; +// 12 +backupReg0i = R9i.x; +R9i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 0.25); +PV0i.y = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +R9i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x)); +PV0i.w = backupReg0i; +PV0i.w = clampFI32(PV0i.w); +R5i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.w)); +PS0i = R5i.x; +// 13 +backupReg0i = R11i.y; +backupReg1i = R11i.z; +R0i.x = floatBitsToInt((intBitsToFloat(R11i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R0i.x = clampFI32(R0i.x); +R11i.y = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R11i.y = clampFI32(R11i.y); +R11i.z = floatBitsToInt((intBitsToFloat(backupReg1i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R11i.z = clampFI32(R11i.z); +R11i.w = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R127i.z)); +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R124i.w))); +PS1i = R11i.x; +// 14 +PV0i.x = R9i.w & int(1); +R24i.y = 0; +R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.w),-(intBitsToFloat(R5i.y))) + intBitsToFloat(R6i.w))); +R25i.w = 0x3f800000; +R4i.w = 0x3f800000; +PS0i = R4i.w; +// 15 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R12i.w = tempi.x; +R6i.w = floatBitsToInt(float(PV0i.x)); +PS1i = R6i.w; +// 16 +R23i.w = 0x3f800000; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R13i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R13i.z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R13i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +// 3 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +backupReg1i = R127i.z; +redcCUBE(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].w), intBitsToFloat(uf_remappedPS[16].w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PS1i))); +R17i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +backupReg0i = R9i.x; +R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(backupReg0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +// 6 +R17i.x = PV1i.w; +R17i.y = PV1i.z; +R13i.z = floatBitsToInt(textureLod(textureUnitPS12, intBitsToFloat(R13i.xy),0.0).x); +R14i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R14i.xy),R14i.z),cubeMapArrayIndex7),intBitsToFloat(R14i.w)).xyz); +R15i.x = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R15i.xz),0.0).x); +R16i.y = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R16i.xy),intBitsToFloat(R16i.w)).x); +R7i.xyz = floatBitsToInt(texture(textureUnitPS17, intBitsToFloat(R15i.wy)).xyz); +R17i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R17i.xy),R17i.z),cubeMapArrayIndex7),intBitsToFloat(R17i.w)).xyz); +R12i.xyz = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R18i.xy)).xyz); +// export +passPixelColor4 = vec4(intBitsToFloat(R12i.w), intBitsToFloat(R12i.w), intBitsToFloat(R12i.w), intBitsToFloat(R12i.w)); +// 0 +PV0i.x = floatBitsToInt(max(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[9].w)),intBitsToFloat(R13i.z)) + intBitsToFloat(R16i.z))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(min(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +R123i.w = floatBitsToInt((intBitsToFloat(R15i.x) * 2.0 + -(1.0))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(intBitsToFloat(R16i.y) + intBitsToFloat(uf_remappedPS[27].z)); +PS0i = clampFI32(PS0i); +// 1 +R127i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * 0.25); +R127i.x = clampFI32(R127i.x); +PV1i.x = R127i.x; +R127i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x41c80000) + intBitsToFloat(R18i.z))); +R127i.z = floatBitsToInt(min(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.z))); +R125i.w = floatBitsToInt(max(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.x))); +PV1i.w = R125i.w; +R24i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R2i.w))); +PS1i = R24i.x; +// 2 +PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0x2edbe6ff)); +R126i.y = floatBitsToInt(intBitsToFloat(R14i.y) + -(intBitsToFloat(PV1i.w))); +R125i.z = floatBitsToInt(intBitsToFloat(R14i.x) + -(intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R124i.w = floatBitsToInt(intBitsToFloat(R14i.z) + -(intBitsToFloat(PV1i.w))); +PS0i = R124i.w; +// 3 +R14i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(uf_remappedPS[28].x)); +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(R24i.x))); +PV1i.y = R125i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.x)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.z = R123i.z; +R12i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R9i.z))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +// 4 +backupReg0i = R127i.x; +backupReg1i = R0i.z; +R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.x = R127i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R127i.y; +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R10i.z))); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(backupReg1i))); +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R8i.y))); +PS0i = R15i.x; +// 5 +backupReg0i = R5i.x; +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.z), intBitsToFloat(R11i.w))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x2edbe6ff)); +PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + 1.0); +R11i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.y), intBitsToFloat(backupReg0i))); +R17i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(R11i.x))); +PS1i = R17i.w; +// 6 +backupReg0i = R11i.x; +backupReg0i = R11i.x; +R11i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(backupReg0i))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R19i.x)) + intBitsToFloat(R127i.y))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R12i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.y), intBitsToFloat(backupReg0i))); +R127i.w = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y)); +PS0i = R127i.w; +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R10i.w)) + intBitsToFloat(R10i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.5 + 0.5)); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0xbdcccccd) + intBitsToFloat(0x3dcccccd))); +PV1i.z = R123i.z; +R24i.w = PV0i.y; +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(PV1i.y)); +PV0i.x = clampFI32(PV0i.x); +PV0i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(PV1i.z)); +PV0i.y = clampFI32(PV0i.y); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R19i.y))) + intBitsToFloat(PV1i.x))); +// 9 +PV1i.x = floatBitsToInt(intBitsToFloat(R19i.y) + intBitsToFloat(PV0i.y)); +PV1i.x = clampFI32(PV1i.x); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.x))); +// 10 +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 11 +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); +// 12 +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +// 13 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i))); +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R127i.w))); +// 15 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.w))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.w))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R125i.w))); +PV1i.z = R123i.z; +// 16 +backupReg0i = R126i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.z))); +PV0i.x = R127i.x; +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.y))); +PV0i.z = R125i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.x))); +PV0i.w = R126i.w; +// 17 +PV1i.x = floatBitsToInt(intBitsToFloat(R7i.z) + -(intBitsToFloat(PV0i.z))); +PV1i.y = floatBitsToInt(intBitsToFloat(R7i.x) + -(intBitsToFloat(PV0i.w))); +PV1i.w = floatBitsToInt(intBitsToFloat(R7i.y) + -(intBitsToFloat(PV0i.x))); +// 18 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R20i.x)) + intBitsToFloat(R127i.x))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R20i.x)) + intBitsToFloat(R126i.w))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R20i.x)) + intBitsToFloat(R125i.z))); +PV0i.w = R123i.w; +// 19 +R25i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.x))); +R25i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R8i.z))); +R25i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R2i.y))); +// 0 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R14i.x),intBitsToFloat(uf_remappedPS[29].x)) + intBitsToFloat(uf_remappedPS[30].w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[31].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(R6i.z)) + intBitsToFloat(R25i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(R6i.z)) + intBitsToFloat(R25i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x), intBitsToFloat(R0i.z))); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y), intBitsToFloat(R2i.w))); +PS1i = R125i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z),intBitsToFloat(R6i.z)) + intBitsToFloat(R25i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R19i.z)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R21i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R19i.z)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z), intBitsToFloat(R15i.x))); +PS0i = R126i.y; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R19i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R3i.y))); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.x))); +R124i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R3i.y)) + intBitsToFloat(R3i.y))); +PV1i.w = R124i.w; +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R11i.y))); +PS1i = R127i.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].x), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].y), intBitsToFloat(PV1i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV1i.w))); +PV0i.z = R127i.z; +R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R11i.z))); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].z), intBitsToFloat(PV1i.y))); +PS0i = R126i.z; +// 5 +backupReg0i = R126i.y; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(R9i.x)) + intBitsToFloat(R11i.w))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R9i.x)) + intBitsToFloat(R12i.w))); +R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].x),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.x))); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R9i.x)) + intBitsToFloat(R5i.x))); +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].y),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.y))); +PS1i = R125i.x; +// 6 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R123i.y = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R124i.z) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].z),intBitsToFloat(R127i.z)) + intBitsToFloat(R126i.z))); +PV0i.w = R123i.w; +// 7 +backupReg0i = R126i.y; +backupReg1i = R126i.x; +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(R125i.x))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.w),intBitsToFloat(R2i.z)) + intBitsToFloat(R125i.z))); +PV1i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.z)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.x),intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w))); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.y)); +// 8 +PV0i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R127i.x)); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R22i.y),intBitsToFloat(R6i.w)) + intBitsToFloat(PS1i))); +R23i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].z),intBitsToFloat(R5i.y)) + intBitsToFloat(PV1i.w))); +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R22i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(PV1i.z))); +PS0i = R4i.x; +// 9 +R23i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].x),intBitsToFloat(R5i.y)) + intBitsToFloat(R126i.y))); +R23i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].y),intBitsToFloat(R5i.y)) + intBitsToFloat(R126i.x))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R22i.z),intBitsToFloat(R6i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R4i.z; +R24i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.z)),intBitsToFloat(R124i.w)) + intBitsToFloat(R124i.w))); +PS1i = R24i.z; +// 10 +R3i.xyz = ivec3(R4i.x,R4i.y,PV1i.z); +R3i.w = R4i.w; +// 11 +R1i.xyz = ivec3(R23i.x,R23i.y,R23i.z); +R1i.w = R23i.w; +// 12 +R0i.xyz = ivec3(R24i.x,R24i.y,R24i.z); +R0i.w = R24i.w; +// 13 +R2i.xyz = ivec3(R25i.x,R25i.y,R25i.z); +R2i.w = R25i.w; +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z) * dli, intBitsToFloat(R0i.w)); // x affects shadows sharpness, and z affects distant area lighting brightness +passPixelColor1 = vec4(intBitsToFloat(R1i.x) * dred, intBitsToFloat(R1i.y) * dgreen, intBitsToFloat(R1i.z) * dblue, intBitsToFloat(R1i.w)); // x,y,z affects the color red,green,blue of the fog, w does nothing +passPixelColor2 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); // affects ground color rgb +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); // xyz - RGB for body of waters edge surfaces +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/fb2e18ae56397ca7_00fffff249259249_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/fb2e18ae56397ca7_00fffff249259249_ps.txt new file mode 100644 index 00000000..08260bcd --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/fb2e18ae56397ca7_00fffff249259249_ps.txt @@ -0,0 +1,960 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader fb2e18ae56397ca7 -- Affects Trees Bushes and Vines +#define gli $greenerylighting +#define gred $gred +#define ggreen $ggreen +#define gblue $gblue + +uniform ivec4 uf_remappedPS[33]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x30364000 res 64x64x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 2 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf45c6000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 3) uniform sampler2D textureUnitPS3;// Tex3 addr 0xf494a800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf5c7b800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 5) uniform sampler2D textureUnitPS5;// Tex5 addr 0x236b7000 res 1024x1024x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0xb) sliceView: 0x0 (num 0x1) Sampler5 ClampX/Y/Z: 0 0 0 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0xf5371000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform samplerCubeArray textureUnitPS7;// Tex7 addr 0x3ccea800 res 64x64x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x6) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 11) uniform sampler2D textureUnitPS11;// Tex11 addr 0x3cbaa000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler11 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 12) uniform sampler2D textureUnitPS12;// Tex12 addr 0x3ccc6800 res 96x96x1 dim 1 tm: 4 format 0005 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler12 ClampX/Y/Z: 6 6 6 border: 2 +layout(binding = 14) uniform sampler2D textureUnitPS14;// Tex14 addr 0xf528a800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler14 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 15) uniform sampler2D textureUnitPS15;// Tex15 addr 0xf5589800 res 160x90x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler15 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 16) uniform sampler2D textureUnitPS16;// Tex16 addr 0x3cd0f000 res 12x1x1 dim 1 tm: 2 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 2 border: 0 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R18i = ivec4(0); +ivec4 R19i = ivec4(0); +ivec4 R20i = ivec4(0); +ivec4 R21i = ivec4(0); +ivec4 R22i = ivec4(0); +ivec4 R23i = ivec4(0); +ivec4 R24i = ivec4(0); +ivec4 R25i = ivec4(0); +ivec4 R26i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex7 = 0.0; +R0i = floatBitsToInt(passParameterSem0); +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem6); +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); +R11i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); +R10i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xw); +R8i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R23i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +// 0 +R127i.x = floatBitsToInt((intBitsToFloat(R11i.x) * 2.0 + -(1.0))); +R127i.y = floatBitsToInt((intBitsToFloat(R11i.y) * 2.0 + -(1.0))); +R127i.z = floatBitsToInt((intBitsToFloat(R11i.z) * 2.0 + -(1.0))); +R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.w = R7i.w; +R14i.w = 0x40400000; +PS0i = R14i.w; +// 1 +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w)))); +PV1i.x = R0i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w)))); +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); +PV1i.z = R126i.z; +R6i.w = 0x3f800000; +R2i.z = 0; +PS1i = R2i.z; +// 2 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[2].x))); +R3i.y = floatBitsToInt((-(intBitsToFloat(R11i.w)) * 0.5 + 1.0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[3].x))); +R15i.w = floatBitsToInt(-(intBitsToFloat(PV1i.z)) * intBitsToFloat(0x3ba3d70a)); +R16i.y = 0; +PS0i = R16i.y; +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[3].y)) + intBitsToFloat(PV0i.z))); +PS1i = R122i.x; +// 4 +R125i.x = floatBitsToInt(intBitsToFloat(R11i.w) * intBitsToFloat(0x437f0000)); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(uf_remappedPS[4].x))); +R0i.z = floatBitsToInt((intBitsToFloat(R7i.w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(0xc0600000))); +R0i.z = clampFI32(R0i.z); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(uf_remappedPS[3].z)) + intBitsToFloat(PS1i))); +PV0i.w = R123i.w; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 5 +R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); +PV1i.x = R5i.x; +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R6i.y; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(R126i.x))); +PV1i.w = R123i.w; +R13i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[3].w) + intBitsToFloat(PV0i.w)); +PS1i = R13i.z; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(R126i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(PV1i.w))); +PV0i.y = R123i.y; +R8i.z = PS1i; +R0i.w = PV1i.x; +R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) * 2.0); +R3i.x = PV1i.y; +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) * 2.0); +PS0i = R3i.x; +// 7 +R6i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].w) + intBitsToFloat(PV0i.y)); +PV1i.x = R6i.x; +R0i.y = R7i.z; +R0i.y = floatBitsToInt(intBitsToFloat(R0i.y) * 2.0); +R125i.z = floatBitsToInt(intBitsToFloat(R10i.w) * intBitsToFloat(0x437f0000)); +R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(PV0i.x))); +R17i.w = floatBitsToInt(intBitsToFloat(R3i.y) * intBitsToFloat(0x40400000)); +PS1i = R17i.w; +// 8 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +R12i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PS0i = R12i.x; +// 9 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R124i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0); +PS1i = R124i.y; +// 10 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(uf_remappedPS[7].x)) + -(intBitsToFloat(uf_remappedPS[7].y)))); +R123i.x = clampFI32(R123i.x); +PV0i.x = R123i.x; +R126i.y = floatBitsToInt((-(intBitsToFloat(R127i.y)) * 0.5 + 0.5)); +R9i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(R127i.w)); +R124i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x))); +R127i.z = int(intBitsToFloat(R125i.x)); +PS0i = R127i.z; +// 11 +R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),0.0))); +PV1i.x = R124i.x; +PV1i.y = R124i.x; +PV1i.z = R124i.x; +PV1i.w = R124i.x; +R3i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R3i.z; +// 12 +R13i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.x),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].x)))); +R13i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),intBitsToFloat(uf_remappedPS[9].z)) + -(intBitsToFloat(uf_remappedPS[9].y)))); +R12i.z = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3a83126f)); +PV0i.w = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(0x40200000)); +tempResultf = log2(intBitsToFloat(PS1i)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R4i.y = floatBitsToInt(tempResultf); +PS0i = R4i.y; +// 13 +backupReg0i = R124i.x; +backupReg0i = R124i.x; +backupReg1i = R124i.y; +backupReg2i = R124i.w; +redcCUBE(vec4(intBitsToFloat(R124i.w),intBitsToFloat(R124i.w),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)),vec4(intBitsToFloat(R124i.y),intBitsToFloat(backupReg0i),intBitsToFloat(R124i.w),intBitsToFloat(backupReg2i)),cubeMapSTM,cubeMapFaceId); +R124i.x = floatBitsToInt(cubeMapSTM.x); +R124i.y = floatBitsToInt(cubeMapSTM.y); +R124i.z = floatBitsToInt(cubeMapSTM.z); +R124i.w = cubeMapFaceId; +PV1i.x = R124i.x; +PV1i.y = R124i.y; +PV1i.z = R124i.z; +PV1i.w = R124i.w; +R16i.x = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3daaaaab)); +PS1i = R16i.x; +// 14 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].y), intBitsToFloat(R4i.y))); +R126i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[10].w)) + 1.0); +R14i.z = PV1i.w; +PV0i.w = R127i.z & int(1); +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 15 +backupReg0i = R124i.x; +R124i.x = ((PV0i.w == 0)?(0):(0x3f800000)); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.y = R123i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(uf_remappedPS[9].w)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 16 +R14i.x = PV1i.y; +R14i.y = PV1i.w; +R124i.z = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + -(1.0))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[10].w))/2.0); +PV0i.w = R123i.w; +R4i.x = uf_remappedPS[11].y; +PS0i = R4i.x; +// 17 +backupReg0i = R0i.x; +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R18i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5); +PS1i = R18i.y; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R127i.z))); +PV0i.x = R123i.x; +R5i.y = uf_remappedPS[12].y; +R5i.z = uf_remappedPS[13].y; +R3i.w = floatBitsToInt(min(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y))); +PV0i.w = R3i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 19 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(uf_remappedPS[14].x)) + -(intBitsToFloat(uf_remappedPS[14].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R19i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0x3fa66666)); +R4i.z = floatBitsToInt(intBitsToFloat(R2i.y) + -(intBitsToFloat(PV0i.w))); +R5i.w = 0; +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 20 +backupReg0i = R0i.x; +R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i))); +R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i))); +R2i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R9i.y = int(intBitsToFloat(R125i.z)); +PS0i = R9i.y; +// 0 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.x = R127i.x; +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y), intBitsToFloat(uf_remappedPS[16].w))); +PV0i.y = R124i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R2i.y)) + 1.0)); +PV0i.z = R123i.z; +R125i.w = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(uf_remappedPS[15].x)); +R126i.y = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(uf_remappedPS[15].y)); +PS0i = R126i.y; +// 1 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.x = R123i.x; +R125i.y = PV0i.x; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.z = R127i.z; +R4i.w = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(uf_remappedPS[15].z)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.z)); +R127i.y = floatBitsToInt(tempResultf); +PS1i = R127i.y; +// 2 +backupReg0i = R0i.z; +R126i.x = 0; +PV0i.y = PV1i.z; +R0i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(uf_remappedPS[17].y)); +R124i.w = R9i.y & 0x00000002; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); +PS0i = floatBitsToInt(tempResultf); +// 3 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R6i.z),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R125i.y),intBitsToFloat(PV0i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R127i.y))); +// 4 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(R6i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.w = tempi.x; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +PS0i = R126i.w; +// 5 +backupReg0i = R0i.x; +backupReg1i = R0i.w; +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R2i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(backupReg1i)) + intBitsToFloat(backupReg0i))); +PS1i = R2i.x; +// 6 +backupReg0i = R124i.w; +PV0i.x = floatBitsToInt(max(-(intBitsToFloat(R127i.w)), 0.0)); +R12i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R3i.x)) + intBitsToFloat(R2i.y))); +R2i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R0i.y)) + intBitsToFloat(R6i.z))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R126i.w))); +R124i.w = floatBitsToInt(float(backupReg0i)); +R124i.w = floatBitsToInt(intBitsToFloat(R124i.w) / 2.0); +PS0i = R124i.w; +// 7 +PV1i.x = R9i.y & 0x000000fc; +R20i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R3i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.z)) + intBitsToFloat(R126i.w))); +PV1i.z = R123i.z; +R3i.w = floatBitsToInt(min(intBitsToFloat(PV0i.x), 1.0)); +tempResultf = log2(intBitsToFloat(R2i.w)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R126i.z = floatBitsToInt(tempResultf); +PS1i = R126i.z; +// 8 +PV0i.x = floatBitsToInt(max(-(intBitsToFloat(PV1i.z)), intBitsToFloat(0xbf7d70a4))); +PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) / 2.0); +R21i.y = R1i.x; +R21i.y = floatBitsToInt(intBitsToFloat(R21i.y) / 2.0); +R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].x), intBitsToFloat(R4i.y))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(0x3c23d70a))); +R123i.w = clampFI32(R123i.w); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(float(PV1i.x)); +// 9 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x), intBitsToFloat(R126i.z))); +R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w))); +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +PV1i.z = R126i.z; +R126i.w = floatBitsToInt(-(intBitsToFloat(R3i.w)) + 1.0); +R7i.x = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3b820821)); +PS1i = R7i.x; +// 10 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(uf_remappedPS[19].x)) + intBitsToFloat(uf_remappedPS[20].w))); +R125i.x = clampFI32(R125i.x); +PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R123i.z = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.z = R123i.z; +PV0i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +R127i.w = floatBitsToInt(exp2(intBitsToFloat(R125i.z))); +PS0i = R127i.w; +// 11 +R3i.x = R11i.w; +R3i.x = floatBitsToInt(intBitsToFloat(R3i.x) / 2.0); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(0xbe593484))); +PV1i.y = R123i.y; +R15i.z = floatBitsToInt((intBitsToFloat(R7i.w) * intBitsToFloat(0x3c23d70a) + -(0.5))); +R15i.z = clampFI32(R15i.z); +R8i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x40200001)); +R8i.w = clampFI32(R8i.w); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.y))); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +R22i.y = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R8i.y) + 1.0)); +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R126i.w)) + intBitsToFloat(R126i.w))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R2i.w = floatBitsToInt(exp2(intBitsToFloat(R124i.x))); +PS0i = R2i.w; +// 13 +R18i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(PV0i.w))) + 1.0)); +R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[10].z),-(intBitsToFloat(R127i.w))) + intBitsToFloat(uf_remappedPS[10].z))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(uf_remappedPS[21].w))); +R0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].z) + -(1.0)); +tempResultf = log2(intBitsToFloat(R125i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R3i.y = floatBitsToInt(tempResultf); +PS1i = R3i.y; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R4i.w),-0.0),vec4(intBitsToFloat(R125i.w),intBitsToFloat(R126i.y),intBitsToFloat(R4i.w),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].x) + -(1.0)); +PS0i = R0i.y; +// 15 +backupReg0i = R0i.x; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.y),intBitsToFloat(R6i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +PS1i = floatBitsToInt(tempResultf); +// 16 +R0i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[21].y) + -(1.0)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS1i))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +tempResultf = log2(intBitsToFloat(PV1i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 17 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.x = R125i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.y = R126i.y; +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[16].w))); +PV1i.z = R126i.z; +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z), intBitsToFloat(PS0i))); +R4i.w = floatBitsToInt(intBitsToFloat(R124i.w) * intBitsToFloat(0x3e19999a)); +PS1i = R4i.w; +// 18 +tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R127i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(R127i.z)),-0.0),vec4(-(intBitsToFloat(PV1i.x)),-(intBitsToFloat(PV1i.y)),-(intBitsToFloat(PV1i.z)),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R6i.z = tempi.x; +R5i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w))); +PS0i = R5i.z; +// 19 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.z)),vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R126i.z)),-(intBitsToFloat(R5i.w))))); +tempi.x = clampFI32(tempi.x); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R5i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); +PS1i = R5i.w; +// 20 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R6i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.z)),vec4(-(intBitsToFloat(R127i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(R127i.z)),-(intBitsToFloat(R126i.x))))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R9i.w = tempi.x; +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); +PS0i = R6i.y; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R8i.z),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.y),intBitsToFloat(R6i.y)) + -(intBitsToFloat(R6i.y)))); +PS0i = R127i.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R8i.z),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedPS[23].x),intBitsToFloat(uf_remappedPS[23].y),intBitsToFloat(uf_remappedPS[23].z),intBitsToFloat(uf_remappedPS[23].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R8i.z),intBitsToFloat(R9i.z),intBitsToFloat(R6i.w)),vec4(intBitsToFloat(uf_remappedPS[24].x),intBitsToFloat(uf_remappedPS[24].y),intBitsToFloat(uf_remappedPS[24].z),intBitsToFloat(uf_remappedPS[24].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R15i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R15i.x; +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[18].w)),intBitsToFloat(R5i.z)) + 1.0)); +PV1i.x = R123i.x; +R15i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R127i.z))); +R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.z)),intBitsToFloat(R5i.w)) + intBitsToFloat(R5i.w))); +PV1i.z = R127i.z; +PV1i.w = floatBitsToInt(intBitsToFloat(R127i.x) + 1.0); +R124i.y = floatBitsToInt((-(intBitsToFloat(R7i.x)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); +PS1i = R124i.y; +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.z))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.z)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.w)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PV0i.z = R123i.z; +R124i.w = floatBitsToInt((-(intBitsToFloat(R3i.x)) * intBitsToFloat(0x40400000) + 4.0)); +R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.w))); +PS0i = R126i.z; +// 5 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.y))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.x))); +R127i.z = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(0x3dcccccd)); +R125i.w = floatBitsToInt((intBitsToFloat(R7i.w) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[25].w))); +PS1i = R127i.x; +// 6 +backupReg0i = R0i.x; +backupReg1i = R3i.y; +backupReg2i = R124i.w; +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R4i.z)) + 1.0)); +R3i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R4i.z)) + 1.0)); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y), intBitsToFloat(backupReg1i))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(R22i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(backupReg2i)); +// 7 +backupReg0i = R126i.y; +backupReg1i = R4i.z; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(R7i.x)) + intBitsToFloat(R124i.y))); +PV1i.x = R124i.x; +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(backupReg1i)) + 1.0)); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.z)),intBitsToFloat(R125i.w)) + intBitsToFloat(R125i.w))); +R123i.w = clampFI32(R123i.w); +PV1i.w = R123i.w; +R125i.x = floatBitsToInt(exp2(intBitsToFloat(PV0i.z))); +PS1i = R125i.x; +// 8 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(R22i.y))); +PV0i.x = R3i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R126i.x))) + intBitsToFloat(PV1i.x))); +PV0i.y = R123i.y; +PV0i.z = floatBitsToInt(-(intBitsToFloat(R124i.w)) + 1.0); +R125i.w = floatBitsToInt((intBitsToFloat(R8i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV1i.w))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R126i.z)); +// 9 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(uf_remappedPS[26].w))); +R3i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z))); +R0i.w = floatBitsToInt(intBitsToFloat(R126i.x) + intBitsToFloat(PV0i.y)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),-(intBitsToFloat(R126i.y))) + intBitsToFloat(R124i.x))); +PS1i = R122i.x; +// 10 +backupReg0i = R8i.y; +backupReg1i = R8i.x; +R8i.x = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS1i)); +R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y))); +PV0i.z = backupReg1i; +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(-(intBitsToFloat(R125i.w)) + 1.0); +R8i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * 0.25); +PS0i = R8i.w; +// 11 +backupReg0i = R10i.x; +backupReg1i = R10i.z; +backupReg2i = R9i.y; +R10i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R10i.x = clampFI32(R10i.x); +R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.z)) + intBitsToFloat(R125i.w))); +R10i.z = floatBitsToInt((intBitsToFloat(backupReg1i) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R10i.z = clampFI32(R10i.z); +R10i.w = floatBitsToInt((intBitsToFloat(R10i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); +R10i.w = clampFI32(R10i.w); +PS1i = backupReg2i & int(1); +// 12 +PV0i.x = floatBitsToInt(intBitsToFloat(R11i.z) * intBitsToFloat(0x3eaaaaab)); +R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),-(intBitsToFloat(R3i.x))) + intBitsToFloat(R124i.w))); +R26i.w = 0x3f800000; +R6i.z = floatBitsToInt(float(PS1i)); +PS0i = R6i.z; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),1.0,0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R11i.w = tempi.x; +R25i.y = 0; +PS1i = R25i.y; +// 14 +R5i.w = 0x3f800000; +R24i.w = 0x3f800000; +PS0i = R24i.w; +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[6].x),intBitsToFloat(uf_remappedPS[6].y),intBitsToFloat(uf_remappedPS[6].z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(uf_remappedPS[8].z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),0.0))); +PV1i.x = R126i.x; +PV1i.y = R126i.x; +PV1i.z = R126i.x; +PV1i.w = R126i.x; +R126i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R2i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R126i.y = tempi.x; +// 3 +backupReg0i = R126i.x; +backupReg0i = R126i.x; +backupReg1i = R126i.z; +backupReg1i = R126i.z; +redcCUBE(vec4(intBitsToFloat(R126i.z),intBitsToFloat(R126i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R126i.x = floatBitsToInt(cubeMapSTM.x); +R126i.y = floatBitsToInt(cubeMapSTM.y); +R126i.z = floatBitsToInt(cubeMapSTM.z); +R126i.w = cubeMapFaceId; +PV1i.x = R126i.x; +PV1i.y = R126i.y; +PV1i.z = R126i.z; +PV1i.w = R126i.w; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].w), intBitsToFloat(uf_remappedPS[16].w))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PS1i))); +R17i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R8i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +// 6 +R17i.x = PV1i.w; +R17i.y = PV1i.z; +R2i.z = floatBitsToInt(textureLod(textureUnitPS12, intBitsToFloat(R13i.xy),0.0).x); +R14i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R14i.xy),R14i.z),cubeMapArrayIndex7),intBitsToFloat(R14i.w)).xyz); +R15i.y = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R15i.xy),intBitsToFloat(R15i.w)).x); +R12i.x = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R12i.xz),0.0).x); +R16i.xyz = floatBitsToInt(texture(textureUnitPS16, intBitsToFloat(R16i.xy)).xyz); +R17i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R17i.xy),R17i.z),cubeMapArrayIndex7),intBitsToFloat(R17i.w)).xyz); +R18i.xyz = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R18i.xy)).xyz); +// export +passPixelColor4 = vec4(intBitsToFloat(R11i.w), intBitsToFloat(R11i.w), intBitsToFloat(R11i.w), intBitsToFloat(R11i.w)); +// 0 +PV0i.x = floatBitsToInt(min(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +PV0i.y = floatBitsToInt(intBitsToFloat(R15i.y) + intBitsToFloat(uf_remappedPS[27].z)); +PV0i.y = clampFI32(PV0i.y); +PV0i.z = floatBitsToInt(max(intBitsToFloat(R14i.y), intBitsToFloat(R14i.z))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[9].w)),intBitsToFloat(R2i.z)) + intBitsToFloat(R19i.y))); +PV0i.w = R123i.w; +R122i.x = floatBitsToInt((intBitsToFloat(R12i.x) * 2.0 + -(1.0))); +PS0i = R122i.x; +// 1 +R126i.x = floatBitsToInt(min(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.x))); +R127i.y = floatBitsToInt(max(intBitsToFloat(R14i.x), intBitsToFloat(PV0i.z))); +PV1i.y = R127i.y; +R126i.z = floatBitsToInt(intBitsToFloat(PV0i.w) * 0.25); +R126i.z = clampFI32(R126i.z); +PV1i.z = R126i.z; +R126i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x41c80000) + intBitsToFloat(R13i.z))); +R25i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R20i.y))); +PS1i = R25i.x; +// 2 +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0); +R124i.y = floatBitsToInt(intBitsToFloat(R14i.x) + -(intBitsToFloat(PV1i.y))); +R127i.z = floatBitsToInt(intBitsToFloat(R14i.y) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0x2edbe6ff)); +R124i.x = floatBitsToInt(intBitsToFloat(R14i.z) + -(intBitsToFloat(PV1i.y))); +PS0i = R124i.x; +// 3 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.w), intBitsToFloat(R25i.x))); +PV1i.x = R125i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +R14i.z = floatBitsToInt(-(intBitsToFloat(R126i.w)) + intBitsToFloat(uf_remappedPS[28].x)); +R11i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R8i.x))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); +// 4 +backupReg0i = R126i.z; +PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +R14i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R0i.w))); +R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.z = R126i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.w = R126i.w; +R0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.y), intBitsToFloat(R8i.x))); +PS0i = R0i.w; +// 5 +backupReg0i = R17i.z; +PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R4i.w)) + intBitsToFloat(R125i.x))); +R17i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R8i.x))); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0x2edbe6ff)); +R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.x), intBitsToFloat(R9i.y))); +PS1i = R4i.w; +// 6 +backupReg0i = R18i.z; +R18i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R18i.y), intBitsToFloat(R9i.y))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R0i.z)) + intBitsToFloat(R126i.w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R18i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R9i.y))); +R125i.x = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); +PS0i = R125i.x; +// 7 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0xbdcccccd) + intBitsToFloat(0x3dcccccd))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.5 + 0.5)); +PV1i.y = R123i.y; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R21i.y)) + intBitsToFloat(R21i.y))); +R25i.w = PV0i.y; +PS1i = R25i.w; +// 8 +PV0i.z = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV1i.x)); +PV0i.z = clampFI32(PV0i.z); +PV0i.w = floatBitsToInt(intBitsToFloat(R9i.w) + intBitsToFloat(PV1i.y)); +PV0i.w = clampFI32(PV0i.w); +// 9 +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV0i.w))); +tempResultf = log2(intBitsToFloat(PV0i.z)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 10 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); +// 11 +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.x))); +// 12 +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); +// 13 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R125i.x))); +// 14 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R127i.y))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PV1i.z)) + intBitsToFloat(R127i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(R127i.y))); +PV0i.w = R123i.w; +// 15 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.z))); +PV1i.x = R124i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.w))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.y))); +PV1i.z = R127i.z; +// 16 +PV0i.x = floatBitsToInt(intBitsToFloat(R16i.y) + -(intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(intBitsToFloat(R16i.z) + -(intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(intBitsToFloat(R16i.x) + -(intBitsToFloat(PV1i.x))); +// 17 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R15i.z)) + intBitsToFloat(R127i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R15i.z)) + intBitsToFloat(R124i.x))); +PV1i.y = R123i.y; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R15i.z)) + intBitsToFloat(R127i.z))); +PV1i.w = R123i.w; +// 18 +R26i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R4i.z))); +R26i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.y))); +R26i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R0i.x))); +// 0 +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R14i.z),intBitsToFloat(uf_remappedPS[29].x)) + intBitsToFloat(uf_remappedPS[30].w))); +R123i.z = clampFI32(R123i.z); +PV0i.z = R123i.z; +// 1 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[31].w))); +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(R0i.z)) + intBitsToFloat(R26i.y))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(R0i.z)) + intBitsToFloat(R26i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].x), intBitsToFloat(R14i.y))); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].y), intBitsToFloat(R14i.y))); +PS1i = R127i.z; +// 2 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z),intBitsToFloat(R0i.z)) + intBitsToFloat(R26i.z))); +PV0i.x = R123i.x; +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R22i.y))); +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.z))); +PV0i.w = R123i.w; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[32].z), intBitsToFloat(R14i.y))); +PS0i = R127i.y; +// 3 +R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R10i.x))); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); +PV1i.y = R123i.y; +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R3i.z))); +R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(R3i.z))); +PV1i.w = R125i.w; +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R10i.w))); +PS1i = R125i.x; +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].x), intBitsToFloat(PV1i.z))); +R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV1i.w))); +PV0i.y = R124i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].y), intBitsToFloat(PV1i.z))); +R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R10i.z))); +R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[31].z), intBitsToFloat(PV1i.z))); +PS0i = R126i.y; +// 5 +backupReg0i = R127i.y; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R2i.x)) + intBitsToFloat(R0i.w))); +R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R2i.x)) + intBitsToFloat(R11i.w))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].x),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R2i.x)) + intBitsToFloat(R17i.z))); +R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].y),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.z))); +PS1i = R126i.x; +// 6 +R123i.x = floatBitsToInt((intBitsToFloat(R124i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((intBitsToFloat(R124i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[26].z),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.y))); +PV0i.w = R123i.w; +R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.w),intBitsToFloat(R10i.y)) + intBitsToFloat(PV1i.z))); +PS0i = R127i.z; +// 7 +backupReg0i = R127i.x; +backupReg1i = R126i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R18i.x),intBitsToFloat(R10i.y)) + intBitsToFloat(R126i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); +PV1i.z = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(PV0i.z)); +R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R18i.z),intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.w))); +PS1i = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.x)); +// 8 +R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.x),intBitsToFloat(R6i.z)) + intBitsToFloat(PV1i.z))); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.y),intBitsToFloat(R6i.z)) + intBitsToFloat(PV1i.y))); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R23i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PS1i))); +R24i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].x),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.z))); +PS0i = R24i.x; +// 9 +R24i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].y),intBitsToFloat(R3i.x)) + intBitsToFloat(R127i.x))); +R24i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[25].z),intBitsToFloat(R3i.x)) + intBitsToFloat(R126i.w))); +R25i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.y)),intBitsToFloat(R125i.w)) + intBitsToFloat(R125i.w))); +PS1i = R25i.z; +// 10 +R3i.xyz = ivec3(R5i.x,R5i.y,R5i.z); +R3i.w = R5i.w; +// 11 +R1i.xyz = ivec3(R24i.x,R24i.y,R24i.z); +R1i.w = R24i.w; +// 12 +R0i.xyz = ivec3(R25i.x,R25i.y,R25i.z); +R0i.w = R25i.w; +// 13 +R2i.xyz = ivec3(R26i.x,R26i.y,R26i.z); +R2i.w = R26i.w; +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z) * gli, intBitsToFloat(R0i.w)); // x affects shadows, z affects lighting of trees,bushes,flowers,vines +passPixelColor1 = vec4(intBitsToFloat(R1i.x) * gred, intBitsToFloat(R1i.y) * ggreen, intBitsToFloat(R1i.z) * gblue, intBitsToFloat(R1i.w)); // rgb fog for distant trees +passPixelColor2 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); // xyz - RGB Bloom/Glowness - to tress and bushes and vines multiply by 20 to see +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); // xyz - RGB Bloom for on water objects like korok rings +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/rules.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/rules.txt new file mode 100644 index 00000000..6cbd7212 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_DistantFog/rules.txt @@ -0,0 +1,338 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Distant Area Fog Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Distant Fog Removal/Distant Fog - Main" +description = Can Remove Distant Fog Haze from the world. Change its RGB color. Light up the Distance. +version = 3 + + +[Preset] +name = Fog 0% Light x1 +$distantlighting = 1 +$dred = 0 +$dgreen = 0 +$dblue = 0 + +$greenerylighting = 1 +$gred = 0 +$ggreen = 0 +$gblue = 0 + +$waterfogred = 0 +$waterfoggreen = 0 +$waterfogblue = 0 + +[Preset] +name = Fog 0% Light x2 +$distantlighting = 2 +$dred = 0 +$dgreen = 0 +$dblue = 0 + +$greenerylighting = 2 +$gred = 0 +$ggreen = 0 +$gblue = 0 + +$waterfogred = 0 +$waterfoggreen = 0 +$waterfogblue = 0 + +[Preset] +name = Fog 0% Light x4 +$distantlighting = 4 +$dred = 0 +$dgreen = 0 +$dblue = 0 + +$greenerylighting = 4 +$gred = 0 +$ggreen = 0 +$gblue = 0 + +$waterfogred = 0 +$waterfoggreen = 0 +$waterfogblue = 0 + +[Preset] +name = Fog 0% Light x8 +$distantlighting = 8 +$dred = 0 +$dgreen = 0 +$dblue = 0 + +$greenerylighting = 8 +$gred = 0 +$ggreen = 0 +$gblue = 0 + +$waterfogred = 0 +$waterfoggreen = 0 +$waterfogblue = 0 + +[Preset] +name = ---------------------------------------- +$distantlighting = 1 +$dred = 1 +$dgreen = 1 +$dblue = 1 +$greenerylighting = 1 +$gred = 1 +$ggreen = 1 +$gblue = 1 +$waterfogred = 1 +$waterfoggreen = 1 +$waterfogblue = 1 + +[Preset] +name = Fog 10% Light x1 +$distantlighting = 1 +$dred = 0.1 +$dgreen = 0.1 +$dblue = 0.1 + +$greenerylighting = 1 +$gred = 0.1 +$ggreen = 0.1 +$gblue = 0.1 + +$waterfogred = 0.1 +$waterfoggreen = 0.1 +$waterfogblue = 0.1 + + +[Preset] +name = Fog 10% Light x2 +$distantlighting = 2 +$dred = 0.1 +$dgreen = 0.1 +$dblue = 0.1 + +$greenerylighting = 2 +$gred = 0.1 +$ggreen = 0.1 +$gblue = 0.1 + +$waterfogred = 0.1 +$waterfoggreen = 0.1 +$waterfogblue = 0.1 + + +[Preset] +name = Fog 10% Light x4 +$distantlighting = 4 +$dred = 0.1 +$dgreen = 0.1 +$dblue = 0.1 + +$greenerylighting = 4 +$gred = 0.1 +$ggreen = 0.1 +$gblue = 0.1 + +$waterfogred = 0.1 +$waterfoggreen = 0.1 +$waterfogblue = 0.1 + + +[Preset] +name = Fog 10% Light x8 +$distantlighting = 8 +$dred = 0.1 +$dgreen = 0.1 +$dblue = 0.1 + +$greenerylighting = 8 +$gred = 0.1 +$ggreen = 0.1 +$gblue = 0.1 + +$waterfogred = 0.1 +$waterfoggreen = 0.1 +$waterfogblue = 0.1 + +[Preset] +name = ---------------------------------------- +$distantlighting = 1 +$dred = 1 +$dgreen = 1 +$dblue = 1 +$greenerylighting = 1 +$gred = 1 +$ggreen = 1 +$gblue = 1 +$waterfogred = 1 +$waterfoggreen = 1 +$waterfogblue = 1 + +[Preset] +name = Fog 30% Light x1 +$distantlighting = 1 +$dred = 0.3 +$dgreen = 0.3 +$dblue = 0.3 + +$greenerylighting = 1 +$gred = 0.3 +$ggreen = 0.3 +$gblue = 0.3 + +$waterfogred = 0.3 +$waterfoggreen = 0.3 +$waterfogblue = 0.3 + + +[Preset] +name = Fog 30% Light x2 +$distantlighting = 2 +$dred = 0.3 +$dgreen = 0.3 +$dblue = 0.3 + +$greenerylighting = 2 +$gred = 0.3 +$ggreen = 0.3 +$gblue = 0.3 + +$waterfogred = 0.3 +$waterfoggreen = 0.3 +$waterfogblue = 0.3 + + +[Preset] +name = Fog 30% Light x4 +$distantlighting = 4 +$dred = 0.3 +$dgreen = 0.3 +$dblue = 0.3 + +$greenerylighting = 4 +$gred = 0.3 +$ggreen = 0.3 +$gblue = 0.3 + +$waterfogred = 0.3 +$waterfoggreen = 0.3 +$waterfogblue = 0.3 + + +[Preset] +name = Fog 30% Light x8 +$distantlighting = 8 +$dred = 0.3 +$dgreen = 0.3 +$dblue = 0.3 + +$greenerylighting = 8 +$gred = 0.3 +$ggreen = 0.3 +$gblue = 0.3 + +$waterfogred = 0.3 +$waterfoggreen = 0.3 +$waterfogblue = 0.3 + + +[Preset] +name = ---------------------------------------- +$distantlighting = 1 +$dred = 1 +$dgreen = 1 +$dblue = 1 +$greenerylighting = 1 +$gred = 1 +$ggreen = 1 +$gblue = 1 +$waterfogred = 1 +$waterfoggreen = 1 +$waterfogblue = 1 + +[Preset] +name = Fog Red x4 Light x4 +$distantlighting = 4 +$dred = 4 +$dgreen = 0 +$dblue = 0 + +$greenerylighting = 1 +$gred = 0 +$ggreen = 0 +$gblue = 0 + +$waterfogred = 0 +$waterfoggreen = 0 +$waterfogblue = 0 + +[Preset] +name = Fog Blue x4 Light x4 +$distantlighting = 4 +$dred = 0 +$dgreen = 0 +$dblue = 4 + +$greenerylighting = 4 +$gred = 0 +$ggreen = 0 +$gblue = 0 + +$waterfogred = 0 +$waterfoggreen = 0 +$waterfogblue = 0 + +[Preset] +name = ---------------------------------------- +$distantlighting = 1 +$dred = 1 +$dgreen = 1 +$dblue = 1 +$greenerylighting = 1 +$gred = 1 +$ggreen = 1 +$gblue = 1 +$waterfogred = 1 +$waterfoggreen = 1 +$waterfogblue = 1 + +[Preset] +name = Original +$distantlighting = 1 +$dred = 1 +$dgreen = 1 +$dblue = 1 + +$greenerylighting = 1 +$gred = 1 +$ggreen = 1 +$gblue = 1 + +$waterfogred = 1 +$waterfoggreen = 1 +$waterfogblue = 1 + +[Preset] +name = Custom Preset +$distantlighting = 2 +$dred = 0.1 +$dgreen = 0.1 +$dblue = 0.1 + +$greenerylighting = 2 +$gred = 0 +$ggreen = 0 +$gblue = 0 + +$waterfogred = 0 +$waterfoggreen = 0 +$waterfogblue = 0 + +# Information +# by SkalFate +# ---------------------- +# Distant lighting - is for distant area lighting of the land and how far in the distance everything is lit up +# ------ Values are multiplied, so if you want to lower use 0.01-1.0, or if you want to go higher go from 1.0-X.X + +# Greenery lighting - is the same as above but for trees vines, bushes +# ------ Values are multiplied, so if you want to lower use 0.01-1.0, or if you want to go higher go from 1.0-X.X + +# RGB - Red, Green, Blue - is self explanatory for the color of the fog, trees, water. +# ------ Values are multiplied so if you want to lower use 0.01-1.0, or if you want to go higher go from 1.0-X.X \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/29c30aaa023dc7e6_0000000000000709_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/29c30aaa023dc7e6_0000000000000709_ps.txt new file mode 100644 index 00000000..125ddb21 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/29c30aaa023dc7e6_0000000000000709_ps.txt @@ -0,0 +1,180 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 29c30aaa023dc7e6 -- Ganons middle and bottom big swirl +#define aurafog $aurafog +#define aurared $aurared +#define auragreen $auragreen +#define aurablue $aurablue +#define auraopacity $auraopacity + +#ifndef aurafog + #define aurafog 1 +#endif +#ifndef aurared + #define aurared 1 +#endif +#ifndef auragreen + #define auragreen 1 +#endif +#ifndef aurablue + #define aurablue 1 +#endif +#ifndef auraopacity + #define auraopacity 1 +#endif + +uniform ivec4 uf_remappedPS[2]; +uniform float uf_alphaTestRef; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x20265000 res 128x128x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 0 border: 0 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x202df000 res 256x256x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 0 0 0 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x1bf70000 res 256x256x1 dim 1 tm: 4 format 0035 compSel: 0 0 0 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 0 0 0 border: 0 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem4; +layout(location = 3) in vec4 passParameterSem5; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem9; +layout(location = 7) in vec4 passParameterSem14; +layout(location = 8) in vec4 passParameterSem15; +layout(location = 9) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; + +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem4; +R3f = passParameterSem5; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem9; +R7f = passParameterSem14; +R8f = passParameterSem15; +R9f = passParameterSem16; +R3f.xw = (texture(textureUnitPS0, R5f.xy).xw); + +// 0 +R123f.z = (R3f.w * 2.0 + -(1.0)); +PV0f.z = R123f.z; +R123f.w = (R3f.x * 2.0 + -(1.0)); +PV0f.w = R123f.w; +// 1 +PV1f.y = mul_nonIEEE(R2f.y, PV0f.w); +PV1f.w = mul_nonIEEE(R3f.y, PV0f.z); +// 2 +backupReg0f = R3f.z; +backupReg0f = R3f.z; +R3f.x = R5f.z + PV1f.y; +R3f.y = R5f.w + PV1f.w; +R3f.z = (mul_nonIEEE(backupReg0f,PV1f.y) + R6f.x); +R3f.w = (mul_nonIEEE(backupReg0f,PV1f.w) + R6f.y); +R3f.x = (texture(textureUnitPS1, R3f.xy).w); +R5f.xw = (texture(textureUnitPS2, R3f.zw).xw); // how shiny ganons spirit + +// 0 +R127f.x = mul_nonIEEE(R5f.x, R5f.x); +R123f.z = (mul_nonIEEE(R4f.w,R3f.x) + -(R0f.w)); +PV0f.z = R123f.z; +R127f.w = mul_nonIEEE(R5f.w, R5f.w); +// 1 +PV1f.y = mul_nonIEEE(R1f.w, PV0f.z); +PV1f.y = clamp(PV1f.y, 0.0, 1.0); +// 2 +backupReg0f = R127f.x; +R127f.x = mul_nonIEEE(backupReg0f, PV1f.y); +PV0f.y = PV1f.y; +PV0f.y = clamp(PV0f.y, 0.0, 1.0); +PV0f.w = mul_nonIEEE(R127f.w, PV1f.y); +// 3 +R123f.x = (mul_nonIEEE(R0f.z,PV0f.w) + intBitsToFloat(0x3d23d70a)); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R0f.y,PV0f.w) + intBitsToFloat(0x3c75c28f)); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(R0f.x,PV0f.w) + intBitsToFloat(0x3c75c28f)); +PV1f.z = R123f.z; +PV1f.w = mul_nonIEEE(R2f.x, PV0f.y); +// 4 +R127f.y = (mul_nonIEEE(R1f.z,R127f.x) + PV1f.x); +PV0f.y = R127f.y; +R127f.z = (mul_nonIEEE(R1f.y,R127f.x) + PV1f.y); +PV0f.z = R127f.z; +R127f.w = (mul_nonIEEE(R1f.x,R127f.x) + PV1f.z); +PV0f.w = R127f.w; +R1f.w = mul_nonIEEE(R7f.w, PV1f.w); +PS0f = R1f.w; +// 5 +PV1f.x = -(PV0f.y) + intBitsToFloat(uf_remappedPS[0].z); +PV1f.y = -(PV0f.z) + intBitsToFloat(uf_remappedPS[0].y); +PV1f.z = -(PV0f.w) + intBitsToFloat(uf_remappedPS[0].x); +// 6 +backupReg0f = R127f.y; +backupReg1f = R127f.z; +backupReg2f = R127f.w; +R127f.y = (mul_nonIEEE(PV1f.x,R9f.y) + backupReg0f); +PV0f.y = R127f.y; +R127f.z = (mul_nonIEEE(PV1f.y,R9f.y) + backupReg1f); +PV0f.z = R127f.z; +R127f.w = (mul_nonIEEE(PV1f.z,R9f.y) + backupReg2f); +PV0f.w = R127f.w; + +// 7 +R8f = vec4(aurafog); // custom code to set fog to 0 ------------------------------<<<< +PV1f.x = R8f.x + -(PV0f.w); // R8f looks like to be the fog +PV1f.z = R8f.z + -(PV0f.y); // R8f looks like to be the fog +PV1f.w = R8f.y + -(PV0f.z); // R8f looks like to be the fog + +// 8 +backupReg0f = R127f.y; +R127f.x = (mul_nonIEEE(PV1f.w,R8f.w) + R127f.z); +PV0f.x = R127f.x; +R127f.y = (mul_nonIEEE(PV1f.x,R8f.w) + R127f.w); +PV0f.y = R127f.y; +R127f.w = (mul_nonIEEE(PV1f.z,R8f.w) + backupReg0f); +PV0f.w = R127f.w; +// 9 +PV1f.x = -(PV0f.w) + intBitsToFloat(uf_remappedPS[1].z); // blue rgb +PV1f.y = -(PV0f.x) + intBitsToFloat(uf_remappedPS[1].y); // green rgb +PV1f.z = -(PV0f.y) + intBitsToFloat(uf_remappedPS[1].x); // red rgb +// 10 +R1f.x = (mul_nonIEEE(PV1f.z,R9f.x) + R127f.y); // red rgb +R1f.y = (mul_nonIEEE(PV1f.y,R9f.x) + R127f.x); // green rgb +R1f.z = (mul_nonIEEE(PV1f.x,R9f.x) + R127f.w); // blue rgb +// export +if( ((vec4(R1f.x, R1f.y, R1f.z, R1f.w)).a > uf_alphaTestRef) == false) discard; +passPixelColor0 = vec4(R1f.x * aurared, R1f.y * auragreen, R1f.z * aurablue, R1f.w * auraopacity); // rgb color and opacity for the middle swirl effect +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/397f3d8521c96e30_0000000000000709_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/397f3d8521c96e30_0000000000000709_ps.txt new file mode 100644 index 00000000..d500d886 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/397f3d8521c96e30_0000000000000709_ps.txt @@ -0,0 +1,203 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 397f3d8521c96e30 -- ganons castle swirl shader +#define aurafog $aurafog +#define aurared $aurared +#define auragreen $auragreen +#define aurablue $aurablue +#define auraopacity $auraopacity + +#ifndef aurafog + #define aurafog 1 +#endif +#ifndef aurared + #define aurared 1 +#endif +#ifndef auragreen + #define auragreen 1 +#endif +#ifndef aurablue + #define aurablue 1 +#endif +#ifndef auraopacity + #define auraopacity 1 +#endif + +uniform ivec4 uf_remappedPS[3]; +uniform float uf_alphaTestRef; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x20265000 res 128x128x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 0 border: 0 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x202df000 res 256x256x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 0 0 0 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x1bf70000 res 256x256x1 dim 1 tm: 4 format 0035 compSel: 0 0 0 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 0 0 0 border: 0 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem4; +layout(location = 3) in vec4 passParameterSem5; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem9; +layout(location = 7) in vec4 passParameterSem12; +layout(location = 8) in vec4 passParameterSem14; +layout(location = 9) in vec4 passParameterSem15; +layout(location = 10) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; + +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem4; +R3f = passParameterSem5; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem9; +R7f = passParameterSem12; +R8f = passParameterSem14; +R9f = passParameterSem15; +R10f = passParameterSem16; +R3f.xw = (texture(textureUnitPS0, R5f.xy).xw); + +// 0 +R123f.x = (R3f.x * 2.0 + -(1.0)); +PV0f.x = R123f.x; +PV0f.y = 1.0; +R123f.w = (R3f.w * 2.0 + -(1.0)); +PV0f.w = R123f.w; +// 1 +PV1f.x = mul_nonIEEE(PV0f.y, intBitsToFloat(uf_remappedPS[0].w)); +PV1f.y = mul_nonIEEE(R3f.y, PV0f.w); +PV1f.z = mul_nonIEEE(R2f.y, PV0f.x); +// 2 +R3f.x = (mul_nonIEEE(R3f.z,PV1f.z) + R6f.x); +R3f.y = (mul_nonIEEE(R3f.z,PV1f.y) + R6f.y); +R3f.z = R5f.z + PV1f.z; +R3f.w = R5f.w + PV1f.y; +R5f.x = (mul_nonIEEE(R7f.z,intBitsToFloat(uf_remappedPS[0].z)) + PV1f.x); +PS0f = R5f.x; +R6f.xw = (texture(textureUnitPS2, R3f.xy).xw); // how shiny ganons spirit +R3f.x = (texture(textureUnitPS1, R3f.zw).w); +// 0 +tempf.x = dot(vec4(R7f.x,R7f.y,R5f.x,0.0),vec4(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(uf_remappedPS[0].y),1.0,0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +PS0f = mul_nonIEEE(R6f.w, R6f.w); +// 1 +PV1f.x = mul_nonIEEE(R6f.x, R6f.x); +R127f.y = mul_nonIEEE(R4f.w, R3f.x); +PV1f.y = R127f.y; +PV1f.z = mul_nonIEEE(R4f.w, PS0f); +PV1f.w = -(PV0f.x) + intBitsToFloat(0xc2c80000); +// 2 +R127f.x = mul_nonIEEE(PV1f.z, PV1f.y); +R126f.y = -(R0f.w) + PV1f.y; +R126f.y = clamp(R126f.y, 0.0, 1.0); +R127f.z = PV1f.w * intBitsToFloat(0x3ba3d70a); +R127f.z = clamp(R127f.z, 0.0, 1.0); +PV0f.z = R127f.z; +PV0f.w = mul_nonIEEE(R4f.w, PV1f.x); +// 3 +backupReg0f = R0f.x; +backupReg1f = R0f.y; +PV1f.x = mul_nonIEEE(R0f.z, PV0f.z); +PV1f.y = mul_nonIEEE(backupReg0f, PV0f.z); +PV1f.z = mul_nonIEEE(backupReg1f, PV0f.z); +R126f.w = mul_nonIEEE(PV0f.w, R127f.y); +R127f.w = mul_nonIEEE(R1f.x, PV0f.z); +PS1f = R127f.w; +// 4 +R123f.x = (mul_nonIEEE(PV1f.x,R127f.x) + intBitsToFloat(0x3d23d70a)); +PV0f.x = R123f.x; +R123f.y = (mul_nonIEEE(PV1f.z,R127f.x) + intBitsToFloat(0x3c75c28f)); +PV0f.y = R123f.y; +R123f.z = (mul_nonIEEE(PV1f.y,R127f.x) + intBitsToFloat(0x3c75c28f)); +PV0f.z = R123f.z; +PV0f.w = mul_nonIEEE(R1f.y, R127f.z); +PS0f = mul_nonIEEE(R1f.z, R127f.z); +// 5 +R127f.x = (mul_nonIEEE(R126f.w,R127f.w) + PV0f.z); +PV1f.x = R127f.x; +PV1f.y = mul_nonIEEE(R1f.w, R126f.y); +PV1f.y = clamp(PV1f.y, 0.0, 1.0); +R127f.z = (mul_nonIEEE(R126f.w,PS0f) + PV0f.x); +PV1f.z = R127f.z; +R127f.w = (mul_nonIEEE(R126f.w,PV0f.w) + PV0f.y); +PV1f.w = R127f.w; +// 6 +PV0f.x = -(PV1f.z) + intBitsToFloat(uf_remappedPS[1].z); +PV0f.y = -(PV1f.w) + intBitsToFloat(uf_remappedPS[1].y); +PV0f.z = -(PV1f.x) + intBitsToFloat(uf_remappedPS[1].x); +PV0f.w = mul_nonIEEE(R2f.x, PV1f.y); +// 7 +backupReg0f = R8f.w; +R126f.y = (mul_nonIEEE(PV0f.x,R10f.y) + R127f.z); +PV1f.y = R126f.y; +R127f.z = (mul_nonIEEE(PV0f.y,R10f.y) + R127f.w); +PV1f.z = R127f.z; +R127f.w = (mul_nonIEEE(PV0f.z,R10f.y) + R127f.x); +PV1f.w = R127f.w; +R8f.w = mul_nonIEEE(backupReg0f, PV0f.w); +PS1f = R8f.w; + +// 8 +R9f = vec4(aurafog); // custom code - reinitilize the vector to set fog to 0 ------------------------------<<<< +PV0f.x = R9f.x + -(PV1f.w); // R9f looks like to be the fog +PV0f.z = R9f.z + -(PV1f.y); // R9f looks like to be the fog +PV0f.w = R9f.y + -(PV1f.z); // R9f looks like to be the fog + +// 9 +backupReg0f = R126f.y; +R127f.x = (mul_nonIEEE(PV0f.w,R9f.w) + R127f.z); +PV1f.x = R127f.x; +R126f.y = (mul_nonIEEE(PV0f.x,R9f.w) + R127f.w); +PV1f.y = R126f.y; +R127f.w = (mul_nonIEEE(PV0f.z,R9f.w) + backupReg0f); +PV1f.w = R127f.w; +// 10 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[2].z); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[2].y); +PV0f.z = -(PV1f.y) + intBitsToFloat(uf_remappedPS[2].x); +// 11 +R8f.x = (mul_nonIEEE(PV0f.z,R10f.x) + R126f.y); +R8f.y = (mul_nonIEEE(PV0f.y,R10f.x) + R127f.x); +R8f.z = (mul_nonIEEE(PV0f.x,R10f.x) + R127f.w); +// export +if( ((vec4(R8f.x, R8f.y, R8f.z, R8f.w)).a > uf_alphaTestRef) == false) discard; +passPixelColor0 = vec4(R8f.x * aurared, R8f.y * auragreen, R8f.z * aurablue, R8f.w * auraopacity); // rgb color for the top swirls effect +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/ReadMe.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/ReadMe.txt new file mode 100644 index 00000000..6bb7e542 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/ReadMe.txt @@ -0,0 +1,24 @@ +# Information +# by SkalFate +# ---------------------- + +Example Preset : + +// Changing it here doesn't do anything, this is for demonstration. Change it in rules.txt file instead. + +[Preset] +name = Custom Preset +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + + +# (aurafog) -- Fog over Ganons Aura. +# ------------ 0 = disabled , 1 = Enabled + +# (auraopacity) -- How opaque do you want the color strenght to be. +# ---------------- 0 = Transparent , Values from 1x to 100x + +# (aurared, auragreen, aurablue ) = RGB - Red, Green, Blue - allows for chaning the color of the Aura. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/rules.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/rules.txt new file mode 100644 index 00000000..b0a6bf13 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleAura/rules.txt @@ -0,0 +1,132 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Castle Ganons Aura Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Distant Fog Removal/Hyrule Castle Ganons Aura" +description = Can Remove the Fog on Ganons Aura on Hyrule castle. Change its RGB color. +version = 3 + + +[Preset] +name = Ganons Aura Fog Disabled +$aurafog = 0 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Fog 10% +$aurafog = 0.1 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Fog 30% +$aurafog = 0.3 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Fog Enabled +$aurafog = 1 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = ---------------------------------------- +$aurafog = 1 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Opacity 3x +$aurafog = 0 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 3 + +[Preset] +name = ---------------------------------------- +$aurafog = 1 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Black +$aurafog = 0 +$aurared = 0 +$auragreen = 0 +$aurablue = 0 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Navy +$aurafog = 0 +$aurared = 0 +$auragreen = 0 +$aurablue = 0.5 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Red +$aurafog = 0 +$aurared = 1 +$auragreen = 0 +$aurablue = 0 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Green +$aurafog = 0 +$aurared = 0 +$auragreen = 1 +$aurablue = 0 +$auraopacity = 1 + +[Preset] +name = Ganons Aura Blue +$aurafog = 0 +$aurared = 0 +$auragreen = 0 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = ---------------------------------------- +$aurafog = 0 +$aurared = 1 +$auragreen = 1 +$aurablue = 1 +$auraopacity = 1 + +[Preset] +name = Custom Preset +$aurafog = 0 +$aurared = 2 +$auragreen = 1 +$aurablue = 2 +$auraopacity = 1 + +# Information +# by SkalFate +# ---------------------- + +# (aurafog) -- Fog over Ganons Aura. +# ------------ 0 = disabled , 1 = Enabled + +# (auraopacity) -- How opaque do you want the color strenght to be. +# ---------------- 0 = Transparent , Values from 1x to 100x + +# (aurared, auragreen, aurablue ) = RGB - Red, Green, Blue - allows for chaning the color of the Aura. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/699b238ae15d113b_00000000000000e1_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/699b238ae15d113b_00000000000000e1_ps.txt new file mode 100644 index 00000000..ff2d2e6b --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/699b238ae15d113b_00000000000000e1_ps.txt @@ -0,0 +1,189 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 699b238ae15d113b -- Ganons Castle Moat Fog Fragment Shader +#define basefogred $basefogred +#define basefoggreen $basefoggreen +#define basefogblue $basefogblue +#define basefogopacity $basefogopacity + +#ifndef basefogred + #define basefogred 1 +#endif +#ifndef basefoggreen + #define basefoggreen 1 +#endif +#ifndef basefogblue + #define basefogblue 1 +#endif +#ifndef basefogopacity + #define basefogopacity 1 +#endif + +uniform ivec4 uf_remappedPS[5]; +uniform float uf_alphaTestRef; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x2003b000 res 4x64x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 0 border: 0 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf5054000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem11; +layout(location = 7) in vec4 passParameterSem14; +layout(location = 8) in vec4 passParameterSem15; +layout(location = 9) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +R0f = passParameterSem0; +R1f = passParameterSem2; +R2f = passParameterSem3; +R3f = passParameterSem4; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem11; +R7f = passParameterSem14; +R8f = passParameterSem15; +R9f = passParameterSem16; +R1f.w = (texture(textureUnitPS0, R5f.xy).w); +// 0 +tempf.x = dot(vec4(R1f.x,R1f.y,R1f.z,-0.0),vec4(R1f.x,R1f.y,R1f.z,0.0)); +PV0f.x = tempf.x; +PV0f.y = tempf.x; +PV0f.z = tempf.x; +PV0f.w = tempf.x; +R127f.z = tempf.x; +PS0f = 1.0 / R2f.w; +// 1 +R5f.x = mul_nonIEEE(R2f.x, PS0f); +R5f.y = mul_nonIEEE(R2f.y, PS0f); +R3f.z = -(intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[0].w); +R3f.w = mul_nonIEEE(R0f.x, R4f.x); +PV1f.w = R3f.w; +PS1f = 1.0 / R2f.w; +// 2 +R2f.x = R2f.z * PS1f; +R2f.y = mul_nonIEEE(R0f.y, R4f.y); +R5f.z = -(PV1f.w) + intBitsToFloat(uf_remappedPS[1].x); +R2f.w = mul_nonIEEE(R4f.w, R1f.w); +tempResultf = 1.0 / sqrt(R127f.z); +R1f.w = tempResultf; +PS0f = R1f.w; +R2f.z = (texture(textureUnitPS4, R5f.xy).x); +// 0 +backupReg0f = R0f.z; +PV0f.x = mul_nonIEEE(R1f.x, R1f.w); +PV0f.y = mul_nonIEEE(R1f.y, R1f.w); +PV0f.z = mul_nonIEEE(R1f.z, R1f.w); +R123f.w = (mul_nonIEEE(R2f.x,intBitsToFloat(uf_remappedPS[2].w)) + -(intBitsToFloat(uf_remappedPS[2].y))); +PV0f.w = R123f.w; +R1f.x = mul_nonIEEE(backupReg0f, R4f.z); +PS0f = R1f.x; +// 1 +tempf.x = dot(vec4(R6f.x,R6f.y,R6f.z,-0.0),vec4(PV0f.x,PV0f.y,PV0f.z,0.0)); +PV1f.x = tempf.x; +PV1f.y = tempf.x; +PV1f.z = tempf.x; +PV1f.w = tempf.x; +PS1f = 1.0 / PV0f.w; +// 2 +PV0f.x = max(PV1f.x, -(PV1f.x)); +PV0f.y = -(intBitsToFloat(uf_remappedPS[2].z)) * PS1f; +R127f.z = mul_nonIEEE(R0f.w, R2f.w); +R127f.z = clamp(R127f.z, 0.0, 1.0); +R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].w),R2f.z) + intBitsToFloat(uf_remappedPS[2].x)); +PV0f.w = R123f.w; +R127f.y = 1.0 / R3f.z; +PS0f = R127f.y; +// 3 +R127f.x = (mul_nonIEEE(R5f.z,R9f.y) + R3f.w); +PV1f.x = R127f.x; +PV1f.z = -(PV0f.y) + PV0f.w; +PV1f.w = PV0f.x + -(intBitsToFloat(uf_remappedPS[0].z)); +PS1f = 1.0 / intBitsToFloat(uf_remappedPS[3].y); +// 4 +PV0f.x = PV1f.w * R127f.y; +PV0f.x = clamp(PV0f.x, 0.0, 1.0); +PV0f.y = PV1f.z * PS1f; +PV0f.y = clamp(PV0f.y, 0.0, 1.0); +PV0f.z = R8f.x + -(PV1f.x); +// 5 +backupReg0f = R127f.x; +R127f.x = mul_nonIEEE(R127f.z, PV0f.y); +R0f.y = (mul_nonIEEE(PV0f.z,R8f.w) + backupReg0f); +R123f.z = (intBitsToFloat(0xc0000000) * PV0f.x + intBitsToFloat(0x40400000)); +PV1f.z = R123f.z; +PV1f.w = mul_nonIEEE(PV0f.x, PV0f.x); +// 6 +PV0f.y = mul_nonIEEE(PV1f.w, PV1f.z); +// 7 +PV1f.x = mul_nonIEEE(R127f.x, PV0f.y); +// 8 +PV0f.w = mul_nonIEEE(R3f.x, PV1f.x); +// 9 +backupReg0f = R7f.w; +R7f.w = mul_nonIEEE(backupReg0f, PV0f.w); +// 0 +PV0f.x = -(R1f.x) + intBitsToFloat(uf_remappedPS[1].z); +PV0f.y = -(R2f.y) + intBitsToFloat(uf_remappedPS[1].y); +// 1 +PV1f.x = -(R0f.y) + intBitsToFloat(uf_remappedPS[4].x); +R127f.y = (mul_nonIEEE(PV0f.x,R9f.y) + R1f.x); +PV1f.y = R127f.y; +R127f.z = (mul_nonIEEE(PV0f.y,R9f.y) + R2f.y); +PV1f.z = R127f.z; +// 2 +R7f.x = (mul_nonIEEE(PV1f.x,R9f.x) + R0f.y); +PV0f.z = R8f.z + -(PV1f.y); +PV0f.w = R8f.y + -(PV1f.z); +// 3 +R127f.x = (mul_nonIEEE(PV0f.w,R8f.w) + R127f.z); +PV1f.x = R127f.x; +R127f.w = (mul_nonIEEE(PV0f.z,R8f.w) + R127f.y); +PV1f.w = R127f.w; +// 4 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].z); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].y); +// 5 +R7f.y = (mul_nonIEEE(PV0f.y,R9f.x) + R127f.x); +R7f.z = (mul_nonIEEE(PV0f.x,R9f.x) + R127f.w); + +// export +if( ((vec4(R7f.x, R7f.y, R7f.z, R7f.w)).a > uf_alphaTestRef) == false) discard; +passPixelColor0 = vec4(R7f.x * basefogred, R7f.y * basefoggreen, R7f.z * basefogblue, R7f.w * basefogopacity); // rgb and opacity +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/ReadMe.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/ReadMe.txt new file mode 100644 index 00000000..4f35931b --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/ReadMe.txt @@ -0,0 +1,21 @@ +# Information +# by SkalFate +# ---------------------- + +Example Preset : + +// Changing it here doesn't do anything, this is for demonstration. Change it in rules.txt file instead. + +[Preset] +name = Custom Preset +$basefogopacity = 1 +$basefogred = 3 +$basefoggreen = 1 +$basefogblue = 2 + + +# (basefogopacity) = Fog Transparency/Opacity - how thick you want the Hyrule Castle Base Fog to look +# ------ Values are multiplied, so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] + +# (basefogred, basefoggreen, basefogblue ) = RGB - Red, Green, Blue - Changes the color of the Hyrule Base Fog. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/rules.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/rules.txt new file mode 100644 index 00000000..7118a55d --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_HyruleCastleBaseFog/rules.txt @@ -0,0 +1,100 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Hyrule Castle Base Fog Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Distant Fog Removal/Hyrule Castle Base Fog" +description = Can Remove the Fog glow at the Base of Hyrule Castle. Can Change its RGB color. +version = 3 + + +[Preset] +name = Castle Base Fog Disabled +$basefogopacity = 0 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = Castle Base Fog 30% +$basefogopacity = 0.3 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = Castle Base Fog 50% +$basefogopacity = 0.5 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = Castle Base Fog Enabled +$basefogopacity = 1 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = ---------------------------------------- +$basefogopacity = 1 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = Castle Base Fog Opacity 3X +$basefogopacity = 3 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = ---------------------------------------- +$basefogopacity = 1 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = Castle Base Fog Red +$basefogopacity = 1.4 +$basefogred = 2 +$basefoggreen = 0 +$basefogblue = 0 + +[Preset] +name = Castle Base Fog Green +$basefogopacity = 1 +$basefogred = 0 +$basefoggreen = 1 +$basefogblue = 0 + +[Preset] +name = Castle Base Fog Blue +$basefogopacity = 1 +$basefogred = 0 +$basefoggreen = 0 +$basefogblue = 1 + +[Preset] +name = ---------------------------------------- +$basefogopacity = 1 +$basefogred = 1 +$basefoggreen = 1 +$basefogblue = 1 + +[Preset] +name = Custom Preset +$basefogopacity = 1 +$basefogred = 4 +$basefoggreen = 1.0 +$basefogblue = 1.5 + +# Information +# by SkalFate +# ---------------------- +# (basefogopacity) = Fog Transparency/Opacity - how thick you want the Hyrule Castle Base Fog to look +# ------ Values are multiplied, so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] + +# (basefogred, basefoggreen, basefogblue ) = RGB - Red, Green, Blue - Changes the color of the Hyrule Base Fog. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/1c7db40ff5d693ab_001ffffe4924b249_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/1c7db40ff5d693ab_001ffffe4924b249_ps.txt new file mode 100644 index 00000000..97db14b6 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/1c7db40ff5d693ab_001ffffe4924b249_ps.txt @@ -0,0 +1,819 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 1c7db40ff5d693ab -- Links and all NPCs RGb renderer, all npcs fog rgb renderer, sun-side facing brightness +#define npcfogred $npcfogred +#define npcfoggreen $npcfoggreen +#define npcfogblue $npcfogblue + +uniform ivec4 uf_remappedPS[33]; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x30364000 res 64x64x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0x7) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 2 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0xf45c6000 res 1280x720x1 dim 1 tm: 4 format 041a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 3) uniform sampler2D textureUnitPS3;// Tex3 addr 0xf494a800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler3 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf5c7b800 res 1280x720x1 dim 1 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 5) uniform sampler2D textureUnitPS5;// Tex5 addr 0x236b7000 res 1024x1024x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 5 mipView: 0x0 (num 0xb) sliceView: 0x0 (num 0x1) Sampler5 ClampX/Y/Z: 0 0 0 border: 1 +layout(binding = 6) uniform sampler2D textureUnitPS6;// Tex6 addr 0xf5371000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler6 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 7) uniform samplerCubeArray textureUnitPS7;// Tex7 addr 0x3ccea800 res 64x64x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x4) sliceView: 0x0 (num 0x6) Sampler7 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 11) uniform sampler2D textureUnitPS11;// Tex11 addr 0xf4ccf000 res 1280x720x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler11 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 12) uniform sampler2D textureUnitPS12;// Tex12 addr 0x3cbaa000 res 256x256x1 dim 1 tm: 4 format 0820 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler12 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 14) uniform sampler2D textureUnitPS14;// Tex14 addr 0xf528a800 res 640x360x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler14 ClampX/Y/Z: 2 2 2 border: 1 +layout(binding = 15) uniform sampler2D textureUnitPS15;// Tex15 addr 0xf5589800 res 160x90x1 dim 1 tm: 4 format 0007 compSel: 0 1 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler15 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem2; +layout(location = 2) in vec4 passParameterSem6; +layout(location = 0) out vec4 passPixelColor0; +layout(location = 1) out vec4 passPixelColor1; +layout(location = 2) out vec4 passPixelColor2; +layout(location = 3) out vec4 passPixelColor3; +layout(location = 4) out vec4 passPixelColor4; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +ivec4 R0i = ivec4(0); +ivec4 R1i = ivec4(0); +ivec4 R2i = ivec4(0); +ivec4 R3i = ivec4(0); +ivec4 R4i = ivec4(0); +ivec4 R5i = ivec4(0); +ivec4 R6i = ivec4(0); +ivec4 R7i = ivec4(0); +ivec4 R8i = ivec4(0); +ivec4 R9i = ivec4(0); +ivec4 R10i = ivec4(0); +ivec4 R11i = ivec4(0); +ivec4 R12i = ivec4(0); +ivec4 R13i = ivec4(0); +ivec4 R14i = ivec4(0); +ivec4 R15i = ivec4(0); +ivec4 R16i = ivec4(0); +ivec4 R17i = ivec4(0); +ivec4 R122i = ivec4(0); +ivec4 R123i = ivec4(0); +ivec4 R124i = ivec4(0); +ivec4 R125i = ivec4(0); +ivec4 R126i = ivec4(0); +ivec4 R127i = ivec4(0); +int backupReg0i, backupReg1i, backupReg2i, backupReg3i, backupReg4i; +ivec4 PV0i = ivec4(0), PV1i = ivec4(0); +int PS0i = 0, PS1i = 0; +ivec4 tempi = ivec4(0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +bool activeMaskStack[2]; +bool activeMaskStackC[3]; +activeMaskStack[0] = false; +activeMaskStackC[0] = false; +activeMaskStackC[1] = false; +activeMaskStack[0] = true; +activeMaskStackC[0] = true; +activeMaskStackC[1] = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex7 = 0.0; +R0i = floatBitsToInt(passParameterSem0); // Links cutout comes from passparamsem0 +R1i = floatBitsToInt(passParameterSem2); +R2i = floatBitsToInt(passParameterSem6); + +// ------------------------------------------------------------------------------------------------------------- Extra dynamic shadows on link +if( activeMaskStackC[1] == true ) { +R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x); // seems to affect links head area +R7i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw); // seems to affect shadows on link body +R15i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); +R2i.xy = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R0i.xy)).xw); +R4i.xy = floatBitsToInt(texture(textureUnitPS15, intBitsToFloat(R0i.xy)).xy); +R16i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R2i.zw)).xyz); +R14i.x = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R2i.zw)).x); +} + +// ------------------------------------------------------------------------------------------------------------- false makes link grey +if( activeMaskStackC[1] == true ) { +// 0 +R124i.x = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); +R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); +PV0i.y = R125i.y; +R3i.z = 0; +R5i.w = 0x3f800000; +R126i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); +PS0i = R126i.y; +// 1 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.y)))); +PV1i.x = R126i.x; +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.y)))); +PV1i.y = R127i.y; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y))); +PV1i.z = R127i.z; +R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(uf_remappedPS[2].x)) + -(intBitsToFloat(uf_remappedPS[2].y)))); +R127i.w = clampFI32(R127i.w); +R126i.z = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].w)) + 1.0); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),-0.0),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[4].x))); +// 3 +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[4].y)) + intBitsToFloat(PS0i))); +R3i.y = floatBitsToInt(-(intBitsToFloat(R127i.w)) + 1.0); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[5].x))); +R10i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) * intBitsToFloat(0x3ba3d70a)); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); +// 4 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[5].y)) + intBitsToFloat(PV1i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(uf_remappedPS[6].x))); +R125i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); +R127i.w = floatBitsToInt(max(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); +// 5 +backupReg0i = R127i.x; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(uf_remappedPS[6].y)) + intBitsToFloat(PV0i.y))); +R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); +PV1i.y = R0i.y; +R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[4].z)) + intBitsToFloat(backupReg0i))); +PV1i.w = R123i.w; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i))); +PS1i = R3i.x; +// 6 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0)); +PV0i.x = R123i.x; +R6i.y = floatBitsToInt(max(intBitsToFloat(R15i.x), intBitsToFloat(R127i.w))); +R9i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].w) + intBitsToFloat(PV1i.w)); +PV0i.z = R9i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[5].z)) + intBitsToFloat(R125i.x))); +PV0i.w = R123i.w; +tempResultf = log2(intBitsToFloat(R3i.y)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R127i.y = floatBitsToInt(tempResultf); +PS0i = R127i.y; +// 7 +R5i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].w) + intBitsToFloat(PV0i.w)); +PV1i.x = R5i.x; +R8i.y = PV0i.z; +R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.y)),intBitsToFloat(uf_remappedPS[6].z)) + intBitsToFloat(R127i.x))); +PV1i.z = R123i.z; +R126i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(0xbe99999a)); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); +R4i.z = floatBitsToInt(tempResultf); +PS1i = R4i.z; +// 8 +R9i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3a83126f)); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(R127i.y))); +R8i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[6].w) + intBitsToFloat(PV1i.z)); +PV0i.z = R8i.z; +R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(R127i.y))); +R13i.x = floatBitsToInt(min(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y))); +PS0i = R13i.x; +// 9 +R127i.x = uf_remappedPS[7].y; +R9i.y = floatBitsToInt(intBitsToFloat(PV0i.z) * intBitsToFloat(0x3a83126f)); +R127i.z = uf_remappedPS[8].y; +R125i.w = floatBitsToInt(min(intBitsToFloat(R15i.y), intBitsToFloat(R15i.z))); +PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y))); +// 10 +backupReg0i = R127i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS1i)) + intBitsToFloat(uf_remappedPS[3].w))/2.0); +PV0i.x = R123i.x; +R2i.y = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(0x2edbe6ff)); +R126i.z = uf_remappedPS[9].y; +R127i.w = floatBitsToInt(intBitsToFloat(R13i.x) + intBitsToFloat(0xbecccccd)); +R125i.x = floatBitsToInt(exp2(intBitsToFloat(backupReg0i))); +PS0i = R125i.x; +// 11 +backupReg0i = R126i.w; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[10].x)) + -(intBitsToFloat(uf_remappedPS[10].y)))); +R123i.x = clampFI32(R123i.x); +PV1i.x = R123i.x; +R11i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + 0.5); +R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(uf_remappedPS[11].y))); +R126i.w = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40200001)); +R126i.w = clampFI32(R126i.w); +R14i.y = floatBitsToInt((intBitsToFloat(0xbf59999a) * intBitsToFloat(R4i.y) + 1.0)); +PS1i = R14i.y; +// 12 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.z),intBitsToFloat(R126i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),0.0))); +tempi.x = clampFI32(tempi.x); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); +PS0i = R127i.x; +// 13 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R124i.x),intBitsToFloat(R126i.y),intBitsToFloat(R125i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +tempResultf = log2(intBitsToFloat(PV0i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS1i = floatBitsToInt(tempResultf); +// 14 +R0i.x = floatBitsToInt(min(intBitsToFloat(R15i.x), intBitsToFloat(R125i.w))); +R12i.y = floatBitsToInt(intBitsToFloat(R127i.w) * intBitsToFloat(0x41200000)); +R12i.y = clampFI32(R12i.y); +R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].z), intBitsToFloat(PS1i))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z),-(intBitsToFloat(R125i.x))) + intBitsToFloat(uf_remappedPS[3].z))); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.x))); +// 15 +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(uf_remappedPS[13].x)) + intBitsToFloat(uf_remappedPS[14].w))); +R125i.x = clampFI32(R125i.x); +R127i.y = floatBitsToInt((intBitsToFloat(PS0i) * 4.0 + intBitsToFloat(0xc0400000))); +R127i.y = clampFI32(R127i.y); +R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd)); +R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R14i.y))); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(PS0i)); +// 16 +R17i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.x), intBitsToFloat(PS1i))); +R17i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PS1i))); +R13i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PS1i))); +R127i.w = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3ba3d70a) + intBitsToFloat(0xbfe66666))); +tempResultf = log2(intBitsToFloat(R127i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +PS0i = floatBitsToInt(tempResultf); +// 17 +R6i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3f4ccccd)); +R13i.y = floatBitsToInt(intBitsToFloat(R127i.y) + -(0.5)); +R13i.y = floatBitsToInt(intBitsToFloat(R13i.y) * 4.0); +R13i.y = clampFI32(R13i.y); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[12].x), intBitsToFloat(PS0i))); +R6i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3f4ccccd)); +PS1i = floatBitsToInt(exp2(intBitsToFloat(R127i.z))); +// 18 +R8i.x = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3f4ccccd)); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.z)),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +R2i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + 1.0); +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(uf_remappedPS[12].w)),intBitsToFloat(PS1i)) + 1.0)); +PV0i.w = R123i.w; +PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z))); +// 19 +R12i.x = R1i.w; +R12i.x = clampFI32(R12i.x); +R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.w))); +PV1i.y = R123i.y; +R6i.z = floatBitsToInt((intBitsToFloat(R126i.w) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(PV0i.y))); +PV1i.w = floatBitsToInt(intBitsToFloat(R13i.y) + intBitsToFloat(0x3f4ccccd)); +PV1i.w = clampFI32(PV1i.w); +PS1i = floatBitsToInt(1.0 / intBitsToFloat(R124i.z)); +// 20 +R2i.x = floatBitsToInt((intBitsToFloat(PS1i) * intBitsToFloat(0x3dcccccd) + 1.0)); +R5i.y = R6i.y; +R5i.y = clampFI32(R5i.y); +R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[15].w))); +R3i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + -(1.0)); +tempResultf = log2(intBitsToFloat(R125i.x)); +if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F; +R0i.w = floatBitsToInt(tempResultf); +PS0i = R0i.w; +} +// ------------------------------------------------------------------------------------------------------------- false turns link almost dark, lighting on link +if( activeMaskStackC[1] == true ) { +// 0 +R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].x), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.x = R126i.x; +R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].y), intBitsToFloat(uf_remappedPS[17].w))); +PV0i.y = R125i.y; +R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(R14i.y))); +PV0i.z = R10i.z; +R4i.w = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x42960000)); +R126i.w = floatBitsToInt(1.0 / intBitsToFloat(R2i.y)); +PS0i = R126i.w; +// 1 +R125i.x = PV0i.x; +R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(PS0i)) + 1.0)); +R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[16].z), intBitsToFloat(uf_remappedPS[17].w))); +PV1i.z = R126i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.y)),intBitsToFloat(PV0i.y)) + 1.0)); +PV1i.w = R123i.w; +R0i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.z)),intBitsToFloat(R2i.z)) + intBitsToFloat(R2i.z))); +PS1i = R0i.z; +// 2 +R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y), intBitsToFloat(R0i.w))); +PV0i.y = PV1i.z; +R2i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].x) + -(intBitsToFloat(R6i.x))); +R0i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].y) + -(intBitsToFloat(R6i.w))); +tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.w)); +PS0i = floatBitsToInt(tempResultf); +// 3 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(PV0i.y),intBitsToFloat(R3i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(R4i.z))); +// 4 +backupReg0i = R127i.y; +backupReg1i = R127i.x; +R127i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x2edbe6ff)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(PV1i.x))); +R124i.z = backupReg0i; +R124i.z = clampFI32(R124i.z); +R8i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[18].z) + -(intBitsToFloat(R8i.x))); +PS0i = floatBitsToInt(exp2(intBitsToFloat(backupReg1i))); +// 5 +backupReg0i = R0i.y; +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(backupReg0i),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.z),0.0))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(uf_remappedPS[19].w))); +// 6 +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.y), intBitsToFloat(PS1i))); +R126i.y = R4i.x; +R126i.y = clampFI32(R126i.y); +PV0i.z = floatBitsToInt(max(-(intBitsToFloat(PV1i.x)), 0.0)); +PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + -(intBitsToFloat(R127i.y))); +PS0i = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); +// 7 +R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS0i))); +PV1i.y = floatBitsToInt(min(intBitsToFloat(PV0i.z), 1.0)); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R3i.y)) + intBitsToFloat(R127i.y))); +PV1i.z = R123i.z; +R127i.w = floatBitsToInt(intBitsToFloat(R15i.w) * intBitsToFloat(0x437f0000)); +R127i.y = floatBitsToInt(-(intBitsToFloat(R6i.z)) + 1.0); +PS1i = R127i.y; +// 8 +R127i.x = floatBitsToInt(intBitsToFloat(R15i.x) + -(intBitsToFloat(R6i.y))); +PV0i.y = floatBitsToInt(max(-(intBitsToFloat(PV1i.z)), intBitsToFloat(0xbf7d70a4))); +PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0); +PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40a00000)); +PV0i.z = clampFI32(PV0i.z); +R125i.w = floatBitsToInt(intBitsToFloat(R15i.y) + -(intBitsToFloat(R6i.y))); +R124i.w = floatBitsToInt(intBitsToFloat(R15i.z) + -(intBitsToFloat(R6i.y))); +PS0i = R124i.w; +// 9 +backupReg0i = R127i.y; +backupReg1i = R6i.z; +R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV0i.z)) + 1.0)); +R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R5i.y))); +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.y)) + intBitsToFloat(backupReg1i))); +R126i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5); +PV1i.w = R126i.w; +R3i.w = 0; +PS1i = R3i.w; +// 10 +backupReg0i = R127i.x; +backupReg1i = R127i.w; +R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.x)) + intBitsToFloat(R6i.y))); +PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 1.0); +R123i.w = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0xbc996e30) + intBitsToFloat(0x3d981626))); +PV0i.w = R123i.w; +R127i.w = int(intBitsToFloat(backupReg1i)); +PS0i = R127i.w; +// 11 +backupReg0i = R125i.x; +R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(backupReg0i)) + intBitsToFloat(R6i.y))); +R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R124i.x))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV0i.w)) + intBitsToFloat(0xbe593484))); +PV1i.z = R123i.z; +R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R124i.x))); +PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.z))); +// 12 +R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R124i.x))); +PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3f22f983)); +PV0i.z = floatBitsToInt(intBitsToFloat(0x3f895ef0) * intBitsToFloat(R127i.y)); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(0x3fc90da4))); +PV0i.w = R123i.w; +R127i.y = R127i.w & int(1); +PS0i = R127i.y; +// 13 +backupReg0i = R2i.w; +backupReg0i = R2i.w; +R11i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),-(intBitsToFloat(PV0i.w))) + 1.0)); +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(0xba0a8ec8))); +R5i.y = clampFI32(R5i.y); +R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.y)) + intBitsToFloat(0xba0a8ec8))); +R5i.z = clampFI32(R5i.z); +R2i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R10i.z))) + intBitsToFloat(backupReg0i))); +R3i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.x)) + intBitsToFloat(0xba0a8ec8))); +R3i.z = clampFI32(R3i.z); +PS1i = R3i.z; +// 14 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[16].x),intBitsToFloat(uf_remappedPS[16].y),intBitsToFloat(uf_remappedPS[16].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +PS0i = floatBitsToInt(float(R127i.y)); +// 15 +R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PS0i))); +R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(PS0i))); +R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(PS0i))); +PV1i.w = floatBitsToInt(max(-(intBitsToFloat(PV0i.x)), 0.0)); +PS1i = floatBitsToInt(intBitsToFloat(R7i.z) * intBitsToFloat(0x3eaaaaab)); +// 16 +R123i.x = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +PV0i.z = floatBitsToInt(min(intBitsToFloat(PV1i.w), 1.0)); +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), -(intBitsToFloat(R3i.w)))); +// 17 +backupReg0i = R7i.x; +R7i.x = floatBitsToInt((intBitsToFloat(backupReg0i) * intBitsToFloat(0x3eaaaaab) + intBitsToFloat(PV0i.x))); +PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(0xbecccccd)); +R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),-(intBitsToFloat(R126i.z))) + intBitsToFloat(PS0i))); +PS1i = R122i.x; +// 18 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.y),-(intBitsToFloat(R125i.y))) + intBitsToFloat(PS1i))); +PV0i.x = R123i.x; +R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R4i.w))); +R7i.z = clampFI32(R7i.z); +// 19 +R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R17i.x),-(intBitsToFloat(R126i.x))) + intBitsToFloat(PV0i.x))); +PV1i.z = R12i.z; +// 20 +PV0i.y = PV1i.z; +PV0i.y = clampFI32(PV0i.y); +// 21 +R14i.z = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(0xbecccccd)); +} + +// ------------------------------------------------------------------------------------------------------------- +if( activeMaskStackC[1] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[20].x),intBitsToFloat(uf_remappedPS[20].y),intBitsToFloat(uf_remappedPS[20].z),intBitsToFloat(uf_remappedPS[20].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +// 1 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[21].x),intBitsToFloat(uf_remappedPS[21].y),intBitsToFloat(uf_remappedPS[21].z),intBitsToFloat(uf_remappedPS[21].w)))); +PV1i.x = tempi.x; +PV1i.y = tempi.x; +PV1i.z = tempi.x; +PV1i.w = tempi.x; +R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.x)); +PS1i = R126i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R5i.w)),vec4(intBitsToFloat(uf_remappedPS[22].x),intBitsToFloat(uf_remappedPS[22].y),intBitsToFloat(uf_remappedPS[22].z),intBitsToFloat(uf_remappedPS[22].w)))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i))); +PS0i = R10i.x; +// 3 +R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R126i.z))); +} + +// ------------------------------------------------------------------------------------------------------------- makes link yellower +if( activeMaskStackC[1] == true ) { +R9i.y = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R9i.xy),0.0).x); +R10i.w = floatBitsToInt(textureLod(textureUnitPS5, intBitsToFloat(R10i.xy),intBitsToFloat(R10i.w)).x); +R11i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R11i.xy)).xyz); +} + +// ------------------------------------------------------------------------------------------------------------- makes link yellower +if( activeMaskStackC[1] == true ) { +// 0 +backupReg0i = R9i.y; +PV0i.x = floatBitsToInt(intBitsToFloat(R10i.w) + intBitsToFloat(uf_remappedPS[23].z)); +PV0i.x = clampFI32(PV0i.x); +R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.x), intBitsToFloat(R6i.z))); +R123i.z = floatBitsToInt((intBitsToFloat(backupReg0i) * 2.0 + -(1.0))); +PV0i.z = R123i.z; +R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.y), intBitsToFloat(R6i.z))); +R11i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R11i.z), intBitsToFloat(R6i.z))); +PS0i = R11i.y; +// 1 +R123i.x = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x41c80000) + intBitsToFloat(R9i.z))); +PV1i.x = R123i.x; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[24].z))); +PV1i.y = R3i.y; +// 2 +R4i.y = PV1i.y; +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R12i.y))); +R10i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[25].x)); +// 3 +PV1i.z = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.z)); +PV1i.z = clampFI32(PV1i.z); +PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0)); +// 4 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R8i.x))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.w))); +PV0i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R6i.x))); +PV0i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(R12i.x)) + 1.0)); +PV0i.w = R123i.w; +// 5 +PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R7i.z))); +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[26].z))); +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[26].y))); +PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[26].x))); +// 6 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.z))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[17].w), intBitsToFloat(PV1i.w))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.y), intBitsToFloat(PV1i.x))); +// 7 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R9i.w))); +PV1i.x = R123i.x; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R6i.y))); +PV1i.w = R123i.w; +// 8 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R5i.z))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R3i.z))); +// 9 +R0i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R0i.y = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +R2i.z = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); +} + +// ------------------------------------------------------------------------------------------------------------- makes whole link blue/pink +if( activeMaskStackC[1] == true ) { +activeMaskStack[1] = activeMaskStack[0]; +activeMaskStackC[2] = activeMaskStackC[1]; +// 0 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.w),intBitsToFloat(uf_remappedPS[27].x)) + intBitsToFloat(uf_remappedPS[28].w))); +R123i.y = clampFI32(R123i.y); +PV0i.y = R123i.y; +// 1 +PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[29].w))); +// 2 +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R14i.y))); +// 3 +R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.w)),intBitsToFloat(R0i.z)) + intBitsToFloat(R0i.z))); +PV1i.x = R123i.x; +PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.z))); +// 4 +PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].y), intBitsToFloat(PV1i.y))); +PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].z), intBitsToFloat(PV1i.y))); +PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[29].x), intBitsToFloat(PV1i.y))); +PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PV1i.x))); +R5i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); +PS0i = R5i.z; +// 5 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].z),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.y))); +PV1i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].x),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.z))); +PV1i.y = R123i.y; +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[19].y),intBitsToFloat(PV0i.w)) + intBitsToFloat(PV0i.x))); +PV1i.z = R123i.z; +R4i.w = 0; +// 6 +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.y))); +PV0i.y = R123i.y; // links whole body red +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.w),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.z))); +PV0i.z = R123i.z; // links whole body green +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R11i.y),intBitsToFloat(R2i.w)) + intBitsToFloat(PV1i.x))); +PV0i.w = R123i.w; // links whole body blue +// 7 +R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].x),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.y))); // affects color of links back side +R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].y),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.z))); // affects color of links back side +R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[15].z),intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.w))); // affects color of links back side +// 8 +predResult = (intBitsToFloat(R14i.x) != intBitsToFloat(0x3dc0c0c1)); +activeMaskStack[1] = predResult; +activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true; +} +else { +activeMaskStack[1] = false; +activeMaskStackC[2] = false; +} + +// ------------------------------------------------------------------------------------------------------------- false makes link back-side shadow blue +if( activeMaskStackC[2] == true ) { +// 0 +R3i.xyz = floatBitsToInt(vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R4i.z)) + vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R2i.z))); +R3i.w = 0x3f800000; +R0i.x = 0; +PS0i = R0i.x; +// 1 +R0i.yzw = ivec3(0,0,0); // orginal code +//R0i.yzw = ivec3(floatBitsToInt(1.0),floatBitsToInt(1.0),floatBitsToInt(1.0)); // controls the color and brightness of the backside shadows on all npcs +} +activeMaskStack[1] = activeMaskStack[1] == false; +activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true; + +// ------------------------------------------------------------------------------------------------------------- false changes links color to be more yellowish +if( activeMaskStackC[2] == true ) { +// 0 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[30].x),intBitsToFloat(uf_remappedPS[30].y),intBitsToFloat(uf_remappedPS[30].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R0i.w = 0x40400000; +PS0i = R0i.w; +// 1 +R127i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[31].x),intBitsToFloat(uf_remappedPS[31].y),intBitsToFloat(uf_remappedPS[31].z),0.0))); +PV1i.x = R127i.x; +PV1i.y = R127i.x; +PV1i.z = R127i.x; +PV1i.w = R127i.x; +R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); +PS1i = R127i.z; +// 2 +tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R17i.x),intBitsToFloat(R17i.y),intBitsToFloat(R13i.z),-0.0),vec4(intBitsToFloat(uf_remappedPS[32].x),intBitsToFloat(uf_remappedPS[32].y),intBitsToFloat(uf_remappedPS[32].z),0.0))); +PV0i.x = tempi.x; +PV0i.y = tempi.x; +PV0i.z = tempi.x; +PV0i.w = tempi.x; +R127i.y = tempi.x; +PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(R13i.x))); +// 3 +backupReg0i = R127i.x; +backupReg0i = R127i.x; +backupReg1i = R127i.z; +backupReg1i = R127i.z; +redcCUBE(vec4(intBitsToFloat(R127i.z),intBitsToFloat(R127i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),cubeMapSTM,cubeMapFaceId); +R127i.x = floatBitsToInt(cubeMapSTM.x); +R127i.y = floatBitsToInt(cubeMapSTM.y); +R127i.z = floatBitsToInt(cubeMapSTM.z); +R127i.w = cubeMapFaceId; +PV1i.x = R127i.x; +PV1i.y = R127i.y; +PV1i.z = R127i.z; +PV1i.w = R127i.w; +R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i))); +R2i.z = clampFI32(R2i.z); +PS1i = R2i.z; +// 4 +PV0i.x = floatBitsToInt(intBitsToFloat(R14i.z) * intBitsToFloat(0x42960000)); +PV0i.x = clampFI32(PV0i.x); +R0i.z = PV1i.w; +PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); +// 5 +backupReg0i = R1i.y; +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PS0i)) + 1.5)); +PV1i.x = R123i.x; +R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i))); +R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.x))); +PV1i.z = R123i.z; +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + 1.5)); +PV1i.w = R123i.w; +R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(PV0i.x)) + intBitsToFloat(R1i.z))); +PS1i = R1i.x; +// 6 +R0i.x = PV1i.w; +R0i.y = PV1i.x; +R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(PV1i.z))); +PS0i = R3i.x; +} + +// ------------------------------------------------------------------------------------------------------------- false makes link back side brightened up +if( activeMaskStackC[2] == true ) { +R0i.xyz = floatBitsToInt(textureLod(textureUnitPS7, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex7),intBitsToFloat(R0i.w)).xyz); // R0i.z controls links back side , it britghens it up +} + +// ------------------------------------------------------------------------------------------------------------- false makes link a bit brighter front and back +if( activeMaskStackC[2] == true ) { +// 0 +R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].y),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.y))); +PV0i.x = R123i.x; +R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].x),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.x))); +PV0i.y = R123i.y; +R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.z), intBitsToFloat(R1i.x))); +R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[18].z),intBitsToFloat(R2i.z)) + intBitsToFloat(R0i.z))); +PV0i.w = R123i.w; +R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.y), intBitsToFloat(R1i.y))); +PS0i = R3i.y; +// 1 +R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R2i.x))); +R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.y))); +R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R15i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R4i.z))); +R0i.w = 0; +R3i.w = 0x3f800000; +PS1i = R3i.w; +} +activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true; + +// ------------------------------------------------------------------------------------------------------------- false darkens links models curves shadows +if( activeMaskStackC[1] == true ) { +// 0 +R1i.w = 0x3f800000; +// 1 +backupReg0i = R3i.x; +backupReg1i = R3i.y; +backupReg2i = R3i.z; +backupReg3i = R3i.w; +R3i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i); +R3i.w = backupReg3i; +// 2 +R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z); +R2i.w = R0i.w; +// 3 +backupReg0i = R1i.w; +R1i.xyz = ivec3(R4i.x,R5i.y,R6i.z); +R1i.w = backupReg0i; +// 4 +R0i.xyz = ivec3(R13i.x,R4i.y,R5i.z); +R0i.w = R4i.w; +// 5 +R4i.xyz = ivec3(R7i.x,R7i.x,R7i.x); +R4i.w = R7i.x; +} +// export +passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), intBitsToFloat(R0i.w)); // light/shadows on link when sun face side +passPixelColor1 = vec4(intBitsToFloat(R1i.x) * npcfogred, intBitsToFloat(R1i.y) * npcfoggreen, intBitsToFloat(R1i.z) * npcfogblue, intBitsToFloat(R1i.w)); // links and all npcs fog rgb +passPixelColor2 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w)); // link rgb only in celshade removal mode +passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w)); +passPixelColor4 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w)); +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/ReadMe.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/ReadMe.txt new file mode 100644 index 00000000..7f027eb8 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/ReadMe.txt @@ -0,0 +1,16 @@ +# Information +# by SkalFate +# ---------------------- + +Example Preset : + +// Changing it here doesn't do anything, this is for demonstration. Change it in rules.txt file instead. + +[Preset] +name = Custom Preset +$npcfogred = 1 +$npcfoggreen = 1 +$npcfogblue = 1 + +# (npcfogred, npcfoggreen, npcblue ) = RGB - Red, Green, Blue - Changes the color of distant npcs fog. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/rules.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/rules.txt new file mode 100644 index 00000000..2c373c50 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_NPCFog/rules.txt @@ -0,0 +1,74 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Distant NPCs Fog Removal Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Distant Fog Removal/NPC Fog Removal" +description = Can Remove Fog from Distant NPCs. Conflicts with Cel-Shade ShadowFix Packs. +version = 3 + + +[Preset] +name = Distant NPC Fog Disabled +$npcfogred = 0 +$npcfoggreen = 0 +$npcfogblue = 0 + +[Preset] +name = Distant NPC Fog 10% +$npcfogred = 0.1 +$npcfoggreen = 0.1 +$npcfogblue = 0.1 + +[Preset] +name = Distant NPC Fog 30% +$npcfogred = 0.3 +$npcfoggreen = 0.3 +$npcfogblue = 0.3 + +[Preset] +name = Distant NPC Fog Enabled +$npcfogred = 1 +$npcfoggreen = 1 +$npcfogblue = 1 + +[Preset] +name = ---------------------------------------- +$npcfogred = 1 +$npcfoggreen = 1 +$npcfogblue = 1 + +[Preset] +name = Distant NPC Fog Red +$npcfogred = 2 +$npcfoggreen = 0 +$npcfogblue = 0 + +[Preset] +name = Distant NPC Fog Green +$npcfogred = 0 +$npcfoggreen = 1 +$npcfogblue = 0 + +[Preset] +name = Distant NPC Fog Blue +$npcfogred = 0 +$npcfoggreen = 0 +$npcfogblue = 1 + +[Preset] +name = ---------------------------------------- +$npcfogred = 1 +$npcfoggreen = 1 +$npcfogblue = 1 + +[Preset] +name = Custom Preset +$npcfogred = 1 +$npcfoggreen = 1 +$npcfogblue = 1 + +# Information +# by SkalFate +# ---------------------- + +# (npcfogred, npcfoggreen, npcblue ) = RGB - Red, Green, Blue - Changes the color of distant npcs fog. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/527591781440691a_000000000001c24b_ps.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/527591781440691a_000000000001c24b_ps.txt new file mode 100644 index 00000000..da78fd94 --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/527591781440691a_000000000001c24b_ps.txt @@ -0,0 +1,328 @@ +#version 420 +#extension GL_ARB_texture_gather : enable +#extension GL_ARB_separate_shader_objects : enable + +// shader 527591781440691a -- Controls RGb of the Fog Fields in the distance ans their opacity +#define ffopacity $ffopacity +#define ffred $ffred +#define ffgreen $ffgreen +#define ffblue $ffblue + +uniform ivec4 uf_remappedPS[7]; +uniform float uf_alphaTestRef; +layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0x2022c000 res 128x128x1 dim 1 tm: 4 format 0035 compSel: 0 0 0 1 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 0 0 0 border: 0 +layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x20234000 res 256x64x1 dim 1 tm: 4 format 0035 compSel: 0 0 0 1 mipView: 0x0 (num 0x9) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 0 2 0 border: 0 +layout(binding = 2) uniform sampler2D textureUnitPS2;// Tex2 addr 0x200c2000 res 128x128x1 dim 1 tm: 4 format 0034 compSel: 0 0 0 0 mipView: 0x0 (num 0x8) sliceView: 0x0 (num 0x1) Sampler2 ClampX/Y/Z: 2 2 0 border: 0 +layout(binding = 4) uniform sampler2D textureUnitPS4;// Tex4 addr 0xf5054000 res 640x360x1 dim 1 tm: 4 format 080e compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler4 ClampX/Y/Z: 2 2 0 border: 0 +layout(binding = 10) uniform samplerCubeArray textureUnitPS10;// Tex10 addr 0x3c6ee800 res 16x16x1 dim 3 tm: 4 format 0816 compSel: 0 1 2 5 mipView: 0x0 (num 0x2) sliceView: 0x0 (num 0x6) Sampler10 ClampX/Y/Z: 2 2 2 border: 1 +layout(location = 0) in vec4 passParameterSem0; +layout(location = 1) in vec4 passParameterSem1; +layout(location = 2) in vec4 passParameterSem3; +layout(location = 3) in vec4 passParameterSem4; +layout(location = 4) in vec4 passParameterSem7; +layout(location = 5) in vec4 passParameterSem8; +layout(location = 6) in vec4 passParameterSem9; +layout(location = 7) in vec4 passParameterSem11; +layout(location = 8) in vec4 passParameterSem14; +layout(location = 9) in vec4 passParameterSem15; +layout(location = 10) in vec4 passParameterSem16; +layout(location = 0) out vec4 passPixelColor0; +uniform vec2 uf_fragCoordScale; +void redcCUBE(vec4 src0, vec4 src1, out vec3 stm, out int faceId) +{ +// stm -> x .. s, y .. t, z .. MajorAxis*2.0 +vec3 inputCoord = normalize(vec3(src1.y, src1.x, src0.x)); +float rx = inputCoord.x; +float ry = inputCoord.y; +float rz = inputCoord.z; +if( abs(rx) > abs(ry) && abs(rx) > abs(rz) ) +{ +stm.z = rx*2.0; +stm.xy = vec2(ry,rz); +if( rx >= 0.0 ) +{ +faceId = 0; +} +else +{ +faceId = 1; +} +} +else if( abs(ry) > abs(rx) && abs(ry) > abs(rz) ) +{ +stm.z = ry*2.0; +stm.xy = vec2(rx,rz); +if( ry >= 0.0 ) +{ +faceId = 2; +} +else +{ +faceId = 3; +} +} +else //if( abs(rz) > abs(ry) && abs(rz) > abs(rx) ) +{ +stm.z = rz*2.0; +stm.xy = vec2(rx,ry); +if( rz >= 0.0 ) +{ +faceId = 4; +} +else +{ +faceId = 5; +} +} +} +vec3 redcCUBEReverse(vec2 st, int faceId) +{ +st.yx = st.xy; +vec3 v; +float majorAxis = 1.0; +if( faceId == 0 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = 1.0; +} +else if( faceId == 1 ) +{ +v.yz = (st-vec2(1.5))*(majorAxis*2.0); +v.x = -1.0; +} +else if( faceId == 2 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = 1.0; +} +else if( faceId == 3 ) +{ +v.xz = (st-vec2(1.5))*(majorAxis*2.0); +v.y = -1.0; +} +else if( faceId == 4 ) +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = 1.0; +} +else +{ +v.xy = (st-vec2(1.5))*(majorAxis*2.0); +v.z = -1.0; +} +return v; +} +int clampFI32(int v) +{ +if( v == 0x7FFFFFFF ) + return floatBitsToInt(1.0); +else if( v == 0xFFFFFFFF ) + return floatBitsToInt(0.0); +return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0)); +} +float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; } +void main() +{ +vec4 R0f = vec4(0.0); +vec4 R1f = vec4(0.0); +vec4 R2f = vec4(0.0); +vec4 R3f = vec4(0.0); +vec4 R4f = vec4(0.0); +vec4 R5f = vec4(0.0); +vec4 R6f = vec4(0.0); +vec4 R7f = vec4(0.0); +vec4 R8f = vec4(0.0); +vec4 R9f = vec4(0.0); +vec4 R10f = vec4(0.0); +vec4 R11f = vec4(0.0); +vec4 R12f = vec4(0.0); +vec4 R13f = vec4(0.0); +vec4 R122f = vec4(0.0); +vec4 R123f = vec4(0.0); +vec4 R125f = vec4(0.0); +vec4 R126f = vec4(0.0); +vec4 R127f = vec4(0.0); +float backupReg0f, backupReg1f, backupReg2f, backupReg3f, backupReg4f; +vec4 PV0f = vec4(0.0), PV1f = vec4(0.0); +float PS0f = 0.0, PS1f = 0.0; +vec4 tempf = vec4(0.0); +float tempResultf; +int tempResulti; +ivec4 ARi = ivec4(0); +bool predResult = true; +vec3 cubeMapSTM; +int cubeMapFaceId; +float cubeMapArrayIndex10 = 0.0; +R0f = passParameterSem0; +R1f = passParameterSem1; +R2f = passParameterSem3; +R3f = passParameterSem4; +R4f = passParameterSem7; +R5f = passParameterSem8; +R6f = passParameterSem9; +R7f = passParameterSem11; +R8f = passParameterSem14; +R9f = passParameterSem15; +R10f = passParameterSem16; +R11f.xw = (texture(textureUnitPS0, R5f.xy).xw); +R13f.x = (texture(textureUnitPS2, R6f.xy).w); +// 0 +backupReg0f = R7f.z; +R127f.x = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].y)); +PV0f.y = mul_nonIEEE(R3f.y, intBitsToFloat(uf_remappedPS[0].x)); +R7f.z = -(backupReg0f); +PV0f.z = R7f.z; +R123f.w = (R11f.x * 2.0 + -(1.0)); +PV0f.w = R123f.w; +R127f.z = (R11f.w * 2.0 + -(1.0)); +PS0f = R127f.z; +// 1 +redcCUBE(vec4(PV0f.z,PV0f.z,R7f.x,R7f.y),vec4(R7f.y,R7f.x,PV0f.z,PV0f.z),cubeMapSTM,cubeMapFaceId); +R126f.x = cubeMapSTM.x; +R126f.y = cubeMapSTM.y; +R126f.z = cubeMapSTM.z; +R126f.w = intBitsToFloat(cubeMapFaceId); +PV1f.x = R126f.x; +PV1f.y = R126f.y; +PV1f.z = R126f.z; +PV1f.w = R126f.w; +R7f.x = (mul_nonIEEE(PV0f.y,PV0f.w) + R5f.z); +PS1f = R7f.x; +// 2 +R11f.x = R0f.x + -(R1f.x); +R7f.y = (mul_nonIEEE(R127f.x,R127f.z) + R5f.w); +R5f.z = PV1f.w; +R5f.w = intBitsToFloat(uf_remappedPS[1].x); +PS0f = 1.0 / abs(PV1f.z); +// 3 +R6f.x = R0f.z + -(R1f.z); +R6f.y = R0f.y + -(R1f.y); +R123f.z = (mul_nonIEEE(R126f.y,PS0f) + 1.5); +PV1f.z = R123f.z; +R123f.w = (mul_nonIEEE(R126f.x,PS0f) + 1.5); +PV1f.w = R123f.w; +PS1f = 1.0 / R2f.w; +// 4 +R5f.x = PV1f.z; +R5f.y = PV1f.w; +R7f.z = mul_nonIEEE(R2f.x, PS1f); +R7f.w = mul_nonIEEE(R2f.y, PS1f); +R11f.w = 1.0 / R2f.w; +PS0f = R11f.w; +R12f.xyzw = (texture(textureUnitPS1, R7f.xy).xyzw); +R5f.xyz = (textureLod(textureUnitPS10, vec4(redcCUBEReverse(R5f.xy,floatBitsToInt(R5f.z)),cubeMapArrayIndex10),R5f.w).xyz); +R7f.x = (texture(textureUnitPS4, R7f.zw).x); +// 0 +PV0f.x = mul_nonIEEE(R12f.y, R12f.y); +PV0f.y = mul_nonIEEE(R12f.x, R12f.x); +R126f.z = R5f.x * 1.0; +PV0f.w = mul_nonIEEE(R12f.z, R12f.z); +R126f.x = R5f.y * 1.0; +PS0f = R126f.x; +// 1 +PV1f.x = PV0f.w * 1.0; +PV1f.y = PV0f.x * 1.0; +PV1f.z = PV0f.y * 1.0; +R126f.w = R5f.z * 1.0; +R127f.w = R8f.x + 0.0; +PS1f = R127f.w; +// 2 +R127f.x = R8f.y + 0.0; +R126f.y = (mul_nonIEEE(R6f.x,PV1f.x) + R1f.z); +R123f.z = (mul_nonIEEE(R6f.y,PV1f.y) + R1f.y); +PV0f.z = R123f.z; +R123f.w = (mul_nonIEEE(R11f.x,PV1f.z) + R1f.x); +PV0f.w = R123f.w; +R127f.y = R8f.z + 0.0; +PS0f = R127f.y; +// 3 +R123f.x = (mul_nonIEEE(R126f.w,intBitsToFloat(uf_remappedPS[2].y)) + 0.0); +PV1f.x = R123f.x; +R123f.y = (mul_nonIEEE(R126f.x,intBitsToFloat(uf_remappedPS[2].y)) + 0.0); +PV1f.y = R123f.y; +R123f.z = (mul_nonIEEE(R126f.z,intBitsToFloat(uf_remappedPS[2].y)) + 0.0); +PV1f.z = R123f.z; +R126f.w = mul_nonIEEE(R4f.x, PV0f.w); +R125f.w = mul_nonIEEE(R4f.y, PV0f.z); +PS1f = R125f.w; +// 4 +R2f.x = R2f.z * R11f.w; +R123f.y = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.y) + R127f.x); +PV0f.y = R123f.y; +PV0f.z = mul_nonIEEE(R4f.z, R126f.y); +R123f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.z) + R127f.w); +PV0f.w = R123f.w; +R122f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),PV1f.x) + R127f.y); +PS0f = R122f.x; +// 5 +R127f.x = mul_nonIEEE(R126f.w, PV0f.w); +PV1f.x = R127f.x; +PV1f.y = mul_nonIEEE(R12f.w, R13f.x); +R126f.z = mul_nonIEEE(PV0f.z, PS0f); +PV1f.z = R126f.z; +R126f.w = mul_nonIEEE(R125f.w, PV0f.y); +PV1f.w = R126f.w; +// 6 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[3].y); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[3].x); +R123f.z = (mul_nonIEEE(R4f.w,PV1f.y) + -(R0f.w))*4.0; +R123f.z = clamp(R123f.z, 0.0, 1.0); +PV0f.z = R123f.z; +PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[3].z); +// 7 +backupReg0f = R127f.x; +backupReg1f = R1f.w; +R127f.x = (mul_nonIEEE(PV0f.w,R10f.y) + R126f.z); +PV1f.x = R127f.x; +R127f.y = (mul_nonIEEE(PV0f.x,R10f.y) + R126f.w); +PV1f.y = R127f.y; +R126f.z = (mul_nonIEEE(PV0f.y,R10f.y) + backupReg0f); +PV1f.z = R126f.z; +R1f.w = mul_nonIEEE(backupReg1f, PV0f.z); +R1f.w = clamp(R1f.w, 0.0, 1.0); +// 8 +PV0f.y = R9f.z + -(PV1f.x); +PV0f.z = R9f.y + -(PV1f.y); +PV0f.w = R9f.x + -(PV1f.z); +// 9 +backupReg0f = R127f.x; +R127f.x = (mul_nonIEEE(PV0f.w,R9f.w) + R126f.z); +PV1f.x = R127f.x; +R126f.z = (mul_nonIEEE(PV0f.y,R9f.w) + backupReg0f); +PV1f.z = R126f.z; +R126f.w = (mul_nonIEEE(PV0f.z,R9f.w) + R127f.y); +PV1f.w = R126f.w; +// 10 +PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].y); +PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].x); +PV0f.w = -(PV1f.z) + intBitsToFloat(uf_remappedPS[4].z); +// 11 +backupReg0f = R10f.x; +backupReg0f = R10f.x; +backupReg0f = R10f.x; +R10f.x = (mul_nonIEEE(PV0f.y,backupReg0f) + R127f.x); +R10f.y = (mul_nonIEEE(PV0f.x,backupReg0f) + R126f.w); +R10f.z = (mul_nonIEEE(PV0f.w,backupReg0f) + R126f.z); +// 0 +R127f.x = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].w),R7f.x) + intBitsToFloat(uf_remappedPS[5].x)); +R123f.y = (mul_nonIEEE(R2f.x,intBitsToFloat(uf_remappedPS[5].w)) + -(intBitsToFloat(uf_remappedPS[5].y))); +PV0f.y = R123f.y; +// 1 +PS1f = 1.0 / PV0f.y; +// 2 +PV0f.z = -(intBitsToFloat(uf_remappedPS[5].z)) * PS1f; +R126f.z = 1.0 / intBitsToFloat(uf_remappedPS[6].y); +PS0f = R126f.z; +// 3 +PV1f.w = -(PV0f.z) + R127f.x; +// 4 +PV0f.y = PV1f.w * R126f.z; +PV0f.y = clamp(PV0f.y, 0.0, 1.0); +// 5 +PV1f.x = mul_nonIEEE(R1f.w, PV0f.y); +// 6 +R10f.w = mul_nonIEEE(R3f.x, PV1f.x); +// export +if( ((vec4(R10f.x, R10f.y, R10f.z, R10f.w)).a > uf_alphaTestRef) == false) discard; +passPixelColor0 = vec4(R10f.x * ffred, R10f.y * ffgreen, R10f.z * ffblue, R10f.w * ffopacity); // RGB for fog fields in the distance +} diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/ReadMe.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/ReadMe.txt new file mode 100644 index 00000000..7f169d7d --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/ReadMe.txt @@ -0,0 +1,21 @@ +# Information +# by SkalFate +# ---------------------- + +Example Preset : + +// Changing it here doesn't do anything, this is for demonstration. Change it in rules.txt file instead. + +[Preset] +name = Custom Preset +$ffopacity = 1 +$ffred = 2 +$ffgreen = 1 +$ffblue = 2 + +# (ffopacity) = Fog Transparency/Opacity - how thick you want the fog fields to look +# 0 = transparent +# ------ Values are multiplied, so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] + +# (ffred, ffgreen, ffblue ) = RGB - Red, Green, Blue - Changes the color of the fog fields. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file diff --git a/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/rules.txt b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/rules.txt new file mode 100644 index 00000000..7c10c31b --- /dev/null +++ b/Enhancements/BreathOfTheWild_DistantFogRemoval/Botw_WorldFogFields/rules.txt @@ -0,0 +1,100 @@ +[Definition] +titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 +name = Fog Fields Pack +path = "The Legend of Zelda: Breath of the Wild/Enhancements/Distant Fog Removal/World Fog Fields" +description = Can Remove Fog Fields from the whole world. Change its RGB color. +version = 3 + + +[Preset] +name = Fog Fields Disabled +$ffopacity = 0 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = Fog Fields Enabled +$ffopacity = 1 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = ---------------------------------------- +$ffopacity = 1 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = Fog Fields Opacity 50% +$ffopacity = 0.5 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = Fog Fields Opacity 2x +$ffopacity = 2 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = Fog Fields Opacity 3x +$ffopacity = 3 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = ---------------------------------------- +$ffopacity = 1 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = Fog Fields Red +$ffopacity = 1 +$ffred = 1 +$ffgreen = 0 +$ffblue = 0 + +[Preset] +name = Fog Fields Green +$ffopacity = 1 +$ffred = 0 +$ffgreen = 1 +$ffblue = 0 + +[Preset] +name = Fog Fields Blue +$ffopacity = 1 +$ffred = 0 +$ffgreen = 0 +$ffblue = 1 + +[Preset] +name = ---------------------------------------- +$ffopacity = 1 +$ffred = 1 +$ffgreen = 1 +$ffblue = 1 + +[Preset] +name = Custom Preset +$ffopacity = 1 +$ffred = 2 +$ffgreen = 1 +$ffblue = 2 + +# Information +# by SkalFate +# ---------------------- +# (ffopacity) = Fog Transparency/Opacity - how thick or thin you want the fog fields to look +# ------ Values are multiplied, so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] + +# (ffred, ffgreen, ffblue ) = RGB - Red, Green, Blue - Changes the color of the fog fields. +# ------ Values are multiplied so if you want to lower use [0.01 - 1.0], or if you want to go higher go from [1.0 - X.X] \ No newline at end of file