From faccacb0484f0572f7476b7820aaf75e9293debc Mon Sep 17 00:00:00 2001 From: JoelAlone Date: Fri, 6 Oct 2017 14:47:56 +0200 Subject: [PATCH] [BOTW] Remove FXAA pack --- .../0f2b9ee517917425_00000000000003c9_ps.txt | 224 ------ .../81bbc347eb4b6dbc_0000000079249749_ps.txt | 580 ---------------- .../eabf1e8268c0acf2_0000000079249749_ps.txt | 651 ------------------ .../f14bb57cd5c9cb77_00000000000003c9_ps.txt | 254 ------- Enhancement/BreathOfTheWild_0FXAA/rules.txt | 4 - 5 files changed, 1713 deletions(-) delete mode 100644 Enhancement/BreathOfTheWild_0FXAA/0f2b9ee517917425_00000000000003c9_ps.txt delete mode 100644 Enhancement/BreathOfTheWild_0FXAA/81bbc347eb4b6dbc_0000000079249749_ps.txt delete mode 100644 Enhancement/BreathOfTheWild_0FXAA/eabf1e8268c0acf2_0000000079249749_ps.txt delete mode 100644 Enhancement/BreathOfTheWild_0FXAA/f14bb57cd5c9cb77_00000000000003c9_ps.txt delete mode 100644 Enhancement/BreathOfTheWild_0FXAA/rules.txt diff --git a/Enhancement/BreathOfTheWild_0FXAA/0f2b9ee517917425_00000000000003c9_ps.txt b/Enhancement/BreathOfTheWild_0FXAA/0f2b9ee517917425_00000000000003c9_ps.txt deleted file mode 100644 index f7796635..00000000 --- a/Enhancement/BreathOfTheWild_0FXAA/0f2b9ee517917425_00000000000003c9_ps.txt +++ /dev/null @@ -1,224 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -// shader 0f2b9ee517917425 -//replaces broken aa in inventory screen with fxaa. -//original shader dumped using cemu 1.9.1, BotW 1.3.1 -//credit for fxaa implementation http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html - -#define ENABLE_FXAA 1 - -const float EDGE_THRESHOLD_MIN = 0.04; -const float EDGE_THRESHOLD_MAX = 0.125; -const float SUBPIXEL_QUALITY = 0.5; -const float[] QUALITY = {1.5, 2.0, 2.0, 2.0, 2.0, 4.0, 8.0, 8.0, 8.0, 8.0, 8.0, 8.0}; -const int ITERATIONS = 12; - -uniform ivec4 uf_remappedPS[2]; -layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf49b1800 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 -layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x38784000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 -layout(location = 0) in vec4 passParameterSem2; -layout(location = 0) out vec4 passPixelColor0; -uniform vec2 uf_fragCoordScale; - -float rgb2luma(vec3 rgb) { - return sqrt(dot(rgb, vec3(0.299, 0.587, 0.114))); -} - -void main(void) { - vec2 texCoords = passParameterSem2.xy; - vec3 colorCenter = texture(textureUnitPS0, texCoords).rgb; - passPixelColor0.rgb = colorCenter; - -#if (ENABLE_FXAA == 1) - ivec2 texSize = textureSize(textureUnitPS0, 0); - vec2 framebufferSize = vec2(float(texSize.x), float(texSize.y)); - vec2 invFramebufferSize = vec2(1.0 / framebufferSize.x, 1.0 / framebufferSize.y); - - // Luma at the current fragment - float lumaCenter = rgb2luma(colorCenter); - - // Luma at the four direct neighbours of the current fragment. - float lumaDown = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(0, -1)).rgb); - float lumaUp = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(0, 1)).rgb); - float lumaLeft = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(-1, 0)).rgb); - float lumaRight = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(1, 0)).rgb); - - // Find the maximum and minimum luma around the current fragment. - float lumaMin = min(lumaCenter, min(min(lumaDown, lumaUp), min(lumaLeft, lumaRight))); - float lumaMax = max(lumaCenter, max(max(lumaDown, lumaUp), max(lumaLeft, lumaRight))); - - // Compute the delta. - float lumaRange = lumaMax - lumaMin; - - // If the luma variation is lower that a threshold (or if we are in a really dark area), we are not on an edge, don't perform any AA. - if (lumaRange > max(EDGE_THRESHOLD_MIN, lumaMax*EDGE_THRESHOLD_MAX)) { - // Query the 4 remaining corners lumas. - float lumaDownLeft = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(-1, -1)).rgb); - float lumaUpRight = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(1, 1)).rgb); - float lumaUpLeft = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(-1, 1)).rgb); - float lumaDownRight = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(1, -1)).rgb); - - // Combine the four edges lumas (using intermediary variables for future computations with the same values). - float lumaDownUp = lumaDown + lumaUp; - float lumaLeftRight = lumaLeft + lumaRight; - - // Same for corners - float lumaLeftCorners = lumaDownLeft + lumaUpLeft; - float lumaDownCorners = lumaDownLeft + lumaDownRight; - float lumaRightCorners = lumaDownRight + lumaUpRight; - float lumaUpCorners = lumaUpRight + lumaUpLeft; - - // Compute an estimation of the gradient along the horizontal and vertical axis. - float edgeHorizontal = abs(-2.0 * lumaLeft + lumaLeftCorners) + abs(-2.0 * lumaCenter + lumaDownUp) * 2.0 + abs(-2.0 * lumaRight + lumaRightCorners); - float edgeVertical = abs(-2.0 * lumaUp + lumaUpCorners) + abs(-2.0 * lumaCenter + lumaLeftRight) * 2.0 + abs(-2.0 * lumaDown + lumaDownCorners); - - // Is the local edge horizontal or vertical ? - bool isHorizontal = (edgeHorizontal >= edgeVertical); - - // Select the two neighboring texels lumas in the opposite direction to the local edge. - float luma1 = isHorizontal ? lumaDown : lumaLeft; - float luma2 = isHorizontal ? lumaUp : lumaRight; - // Compute gradients in this direction. - float gradient1 = luma1 - lumaCenter; - float gradient2 = luma2 - lumaCenter; - - // Which direction is the steepest ? - bool is1Steepest = abs(gradient1) >= abs(gradient2); - - // Gradient in the corresponding direction, normalized. - float gradientScaled = 0.25*max(abs(gradient1), abs(gradient2)); - - // Choose the step size (one pixel) according to the edge direction. - float stepLength = isHorizontal ? invFramebufferSize.y : invFramebufferSize.x; - - // Average luma in the correct direction. - float lumaLocalAverage = 0.0; - - if (is1Steepest) { - // Switch the direction - stepLength = -stepLength; - lumaLocalAverage = 0.5*(luma1 + lumaCenter); - } - else { - lumaLocalAverage = 0.5*(luma2 + lumaCenter); - } - - // Shift UV in the correct direction by half a pixel. - vec2 currentUv = texCoords; - if (isHorizontal) { - currentUv.y += stepLength * 0.5; - } - else { - currentUv.x += stepLength * 0.5; - } - - // Compute offset (for each iteration step) in the right direction. - vec2 offset = isHorizontal ? vec2(invFramebufferSize.x, 0.0) : vec2(0.0, invFramebufferSize.y); - // Compute UVs to explore on each side of the edge, orthogonally. The QUALITY allows us to step faster. - vec2 uv1 = currentUv - offset; - vec2 uv2 = currentUv + offset; - - // Read the lumas at both current extremities of the exploration segment, and compute the delta wrt to the local average luma. - float lumaEnd1 = rgb2luma(texture(textureUnitPS0, uv1).rgb); - float lumaEnd2 = rgb2luma(texture(textureUnitPS0, uv2).rgb); - lumaEnd1 -= lumaLocalAverage; - lumaEnd2 -= lumaLocalAverage; - - // If the luma deltas at the current extremities are larger than the local gradient, we have reached the side of the edge. - bool reached1 = abs(lumaEnd1) >= gradientScaled; - bool reached2 = abs(lumaEnd2) >= gradientScaled; - bool reachedBoth = reached1 && reached2; - - // If the side is not reached, we continue to explore in this direction. - if (!reached1) { - uv1 -= offset; - } - if (!reached2) { - uv2 += offset; - } - - // If both sides have not been reached, continue to explore. - if (!reachedBoth) { - for (int i = 2; i < ITERATIONS; i++) { - // If needed, read luma in 1st direction, compute delta. - if (!reached1) { - lumaEnd1 = rgb2luma(texture(textureUnitPS0, uv1).rgb); - lumaEnd1 = lumaEnd1 - lumaLocalAverage; - } - // If needed, read luma in opposite direction, compute delta. - if (!reached2) { - lumaEnd2 = rgb2luma(texture(textureUnitPS0, uv2).rgb); - lumaEnd2 = lumaEnd2 - lumaLocalAverage; - } - // If the luma deltas at the current extremities is larger than the local gradient, we have reached the side of the edge. - reached1 = abs(lumaEnd1) >= gradientScaled; - reached2 = abs(lumaEnd2) >= gradientScaled; - reachedBoth = reached1 && reached2; - - // If the side is not reached, we continue to explore in this direction, with a variable quality. - if (!reached1) { - uv1 -= offset * QUALITY[i]; - } - if (!reached2) { - uv2 += offset * QUALITY[i]; - } - - // If both sides have been reached, stop the exploration. - if (reachedBoth) { break; } - } - } - - // Compute the distances to each extremity of the edge. - float distance1 = isHorizontal ? (texCoords.x - uv1.x) : (texCoords.y - uv1.y); - float distance2 = isHorizontal ? (uv2.x - texCoords.x) : (uv2.y - texCoords.y); - - // In which direction is the extremity of the edge closer ? - bool isDirection1 = distance1 < distance2; - float distanceFinal = min(distance1, distance2); - - // Length of the edge. - float edgeThickness = (distance1 + distance2); - - // UV offset: read in the direction of the closest side of the edge. - float pixelOffset = -distanceFinal / edgeThickness + 0.5; - - // Is the luma at center smaller than the local average ? - bool isLumaCenterSmaller = lumaCenter < lumaLocalAverage; - - // If the luma at center is smaller than at its neighbour, the delta luma at each end should be positive (same variation). - // (in the direction of the closer side of the edge.) - bool correctVariation = ((isDirection1 ? lumaEnd1 : lumaEnd2) < 0.0) != isLumaCenterSmaller; - - // If the luma variation is incorrect, do not offset. - float finalOffset = correctVariation ? pixelOffset : 0.0; - - // Sub-pixel shifting - // Full weighted average of the luma over the 3x3 neighborhood. - float lumaAverage = (1.0 / 12.0) * (2.0 * (lumaDownUp + lumaLeftRight) + lumaLeftCorners + lumaRightCorners); - // Ratio of the delta between the global average and the center luma, over the luma range in the 3x3 neighborhood. - float subPixelOffset1 = clamp(abs(lumaAverage - lumaCenter) / lumaRange, 0.0, 1.0); - float subPixelOffset2 = (-2.0 * subPixelOffset1 + 3.0) * subPixelOffset1 * subPixelOffset1; - // Compute a sub-pixel offset based on this delta. - float subPixelOffsetFinal = subPixelOffset2 * subPixelOffset2 * SUBPIXEL_QUALITY; - - // Pick the biggest of the two offsets. - finalOffset = max(finalOffset, subPixelOffsetFinal); - - // Compute the final UV coordinates. - vec2 finalUv = texCoords; - if (isHorizontal) { - finalUv.y += finalOffset * stepLength; - } - else { - finalUv.x += finalOffset * stepLength; - } - - // Read the color at the new UV coordinates, and use it. - vec3 finalColor = texture(textureUnitPS0, finalUv).rgb; - passPixelColor0.rgb = finalColor; - } -#endif - - passPixelColor0.a = 1.0; -} - diff --git a/Enhancement/BreathOfTheWild_0FXAA/81bbc347eb4b6dbc_0000000079249749_ps.txt b/Enhancement/BreathOfTheWild_0FXAA/81bbc347eb4b6dbc_0000000079249749_ps.txt deleted file mode 100644 index 337b67e4..00000000 --- a/Enhancement/BreathOfTheWild_0FXAA/81bbc347eb4b6dbc_0000000079249749_ps.txt +++ /dev/null @@ -1,580 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -// shader 81bbc347eb4b6dbc // black leaf. Cemu 1.9.1 -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 0x3db66800 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){ return min(a*b,min(abs(a)*3.40282347E+38F,abs(b)*3.40282347E+38F)); } -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 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(passParameterSem4); -R2i = floatBitsToInt(passParameterSem6); -R3i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x); -R7i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw); -//R4i.xyzw = floatBitsToInt(textureGather(textureUnitPS6, intBitsToFloat(R0i.xy)).xyzw);// 80e -//R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, intBitsToFloat(R0i.xy)).xyzw);//0001 -R9i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).xyzw); -// 0 -R127i.x = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.y)); -R127i.y = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.w)); -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); -PV0i.z = R123i.z; -R124i.w = floatBitsToInt((intBitsToFloat(R7i.x) * 2.0 + -(1.0))); -R2i.y = floatBitsToInt((intBitsToFloat(R7i.y) * 2.0 + -(1.0))); -PS0i = R2i.y; -// 1 -R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.z)))); -PV1i.x = R125i.x; -R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.z)))); -PV1i.y = R124i.y; -R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.z))); -PV1i.z = R127i.z; -PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[2].y))); -R124i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); -PS1i = R124i.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; -R126i.y = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w)); -PS0i = R126i.y; -// 3 -R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),-0.0),vec4(intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),intBitsToFloat(0x3eaaaaab),0.0))); -PV1i.x = R126i.x; -PV1i.y = R126i.x; -PV1i.z = R126i.x; -PV1i.w = R126i.x; -PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); -// 4 -R124i.x = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.x)); -R125i.y = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(R5i.y)); -R125i.z = floatBitsToInt(-(intBitsToFloat(R3i.w)) + intBitsToFloat(R4i.z)); -R127i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(R5i.w)); -R126i.w = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); -PS0i = R126i.w; -// 5 -backupReg0i = R127i.x; -backupReg0i = R127i.x; -backupReg1i = R126i.x; -R127i.x = floatBitsToInt(max(intBitsToFloat(R127i.y), -(intBitsToFloat(R127i.y)))); -R127i.y = floatBitsToInt(-(intBitsToFloat(R126i.x)) + intBitsToFloat(R5i.x)); -R126i.z = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); -R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R126i.y))); -R126i.x = floatBitsToInt(-(intBitsToFloat(backupReg1i)) + intBitsToFloat(R5i.z)); -PS1i = R126i.x; -// 6 -backupReg0i = R125i.x; -backupReg1i = R127i.z; -R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.w))); -PV0i.y = floatBitsToInt(max(intBitsToFloat(R125i.y), -(intBitsToFloat(R125i.y)))); -PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) * 4.0); -R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R126i.w))); -PV0i.w = floatBitsToInt(max(intBitsToFloat(R127i.w), -(intBitsToFloat(R127i.w)))); -PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 4.0); -R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R126i.w))); -PS0i = R5i.z; -// 7 -backupReg0i = R125i.z; -backupReg0i = R125i.z; -backupReg1i = R127i.x; -backupReg2i = R127i.y; -backupReg2i = R127i.y; -R127i.x = floatBitsToInt(max(intBitsToFloat(R124i.x), -(intBitsToFloat(R124i.x)))); -R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.y))); -R125i.z = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); -R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.w))); -R126i.z = floatBitsToInt(max(intBitsToFloat(backupReg2i), -(intBitsToFloat(backupReg2i)))); -R126i.z = floatBitsToInt(intBitsToFloat(R126i.z) * 4.0); -PS1i = R126i.z; -// 8 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R124i.w),intBitsToFloat(R2i.y),intBitsToFloat(R124i.z),-0.0),vec4(intBitsToFloat(R124i.w),intBitsToFloat(R2i.y),intBitsToFloat(R124i.z),0.0))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -PS0i = floatBitsToInt(max(intBitsToFloat(R126i.x), -(intBitsToFloat(R126i.x)))); -PS0i = floatBitsToInt(intBitsToFloat(PS0i) * 4.0); -// 9 -backupReg0i = R127i.x; -backupReg1i = R126i.z; -R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(R125i.w)) + intBitsToFloat(PS0i))); -PV1i.x = R127i.x; -PV1i.y = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(R127i.w)); -R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.w)) + intBitsToFloat(backupReg1i))); -PV1i.z = R126i.z; -R127i.w = floatBitsToInt(floor(intBitsToFloat(R1i.x))); -tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); -PS1i = floatBitsToInt(tempResultf); -// 10 -R6i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(PS1i))); -R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS1i))); -R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PS1i))); -PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y)); -PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.y)); -// 11 -backupReg0i = R127i.x; -backupReg1i = R126i.z; -backupReg2i = R127i.w; -R127i.x = floatBitsToInt(floor(intBitsToFloat(R1i.y))); -PV1i.x = R127i.x; -R127i.y = floatBitsToInt(intBitsToFloat(R1i.x) + -(intBitsToFloat(R127i.w))); -R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PS0i)); -R127i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.w)); -R124i.w = floatBitsToInt(intBitsToFloat(backupReg2i) + -(0.5)); -PS1i = R124i.w; -// 12 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R127i.z),intBitsToFloat(R5i.z),0.0))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R125i.w = tempi.x; -PS0i = floatBitsToInt(intBitsToFloat(R1i.y) + -(intBitsToFloat(PV1i.x))); -// 13 -PV1i.x = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PS0i)); -PV1i.x = clampFI32(PV1i.x); -PV1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R127i.y)); -PV1i.y = clampFI32(PV1i.y); -PV1i.z = floatBitsToInt(intBitsToFloat(R127i.x) + -(0.5)); -PV1i.w = R6i.x; -PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 2.0); -PS1i = R4i.y; -PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); -// 14 -PV0i.x = R4i.z; -PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); -PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R124i.w)); -R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PV1i.w)) + intBitsToFloat(R125i.x))); -PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(PV1i.z)); -R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PS1i)) + intBitsToFloat(R127i.z))); -PS0i = R127i.y; -// 15 -R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PV0i.y))); -R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PV0i.w))); -R124i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R5i.z))); -PV1i.z = R124i.z; -R3i.w = floatBitsToInt(roundEven(0.0)); -R2i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); -PS1i = R2i.w; -// 16 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[3].x),intBitsToFloat(uf_remappedPS[3].y),intBitsToFloat(uf_remappedPS[3].z),-0.0),vec4(intBitsToFloat(R126i.z),intBitsToFloat(R127i.y),intBitsToFloat(PV1i.z),0.0))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R125i.z = floatBitsToInt(intBitsToFloat(R9i.w) * intBitsToFloat(0x437f0000)); -PS0i = R125i.z; -// 17 -R1i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[4].x),intBitsToFloat(uf_remappedPS[4].y),intBitsToFloat(uf_remappedPS[4].z),-0.0),vec4(intBitsToFloat(R126i.z),intBitsToFloat(R127i.y),intBitsToFloat(R124i.z),0.0))); -PV1i.x = R1i.x; -PV1i.y = R1i.x; -PV1i.z = R1i.x; -PV1i.w = R1i.x; -R1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x))); -PS1i = R1i.z; -// 18 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R126i.z),intBitsToFloat(R127i.y),intBitsToFloat(R124i.z),0.0))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R1i.y = tempi.x; -R6i.y = int(intBitsToFloat(R125i.z)); -PS0i = R6i.y; -// 19 -redcCUBE(vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.z),intBitsToFloat(R1i.x),intBitsToFloat(PV0i.x)),vec4(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.z)),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; -R1i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(uf_remappedPS[6].x)); -PS1i = R1i.x; -// 20 -R5i.x = floatBitsToInt(intBitsToFloat(R5i.z) + intBitsToFloat(uf_remappedPS[6].z)); -R1i.y = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(uf_remappedPS[6].y)); -R2i.z = PV1i.w; -R5i.w = floatBitsToInt(max(-(intBitsToFloat(R125i.w)), 0.0)); -PS0i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV1i.z))); -// 21 -R0i.x = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0); -R5i.y = 0; -R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PS0i)) + 1.5)); -R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),intBitsToFloat(PS0i)) + 1.5)); -R4i.x = R6i.y & 0x000000fc; -PS1i = R4i.x; -// 0 -R2i.x = R1i.w; -R2i.y = R5i.z; -R5i.z = floatBitsToInt(min(intBitsToFloat(R5i.w), 1.0)); -R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[6].x), intBitsToFloat(uf_remappedPS[7].w))); -R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[6].y), intBitsToFloat(uf_remappedPS[7].w))); -PS0i = R0i.y; -R10i.xyz = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R3i.xy)).xyz); -R8i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.w))).xyz); -R2i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R2i.xy),R2i.z),cubeMapArrayIndex8),intBitsToFloat(R2i.w)).xyz); -R3i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R3i.xy)).xyz); -// 0 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R5i.x),-0.0),vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R5i.x),0.0))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[6].z), intBitsToFloat(uf_remappedPS[7].w))); -PS0i = R127i.z; -// 1 -R125i.x = floatBitsToInt(-(intBitsToFloat(R5i.z)) + 1.0); -R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(R0i.x)) + intBitsToFloat(R0i.x))); -PV1i.y = R123i.y; -R125i.z = R6i.y & 0x00000002; -R126i.w = 0; -tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x)); -PS1i = floatBitsToInt(tempResultf); -// 2 -PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS1i))); -PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i))); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0x3c23d70a)); -PV0i.z = clampFI32(PV0i.z); -PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i))); -PS0i = floatBitsToInt(float(R4i.x)); -// 3 -R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[7].w))); -PV1i.x = R126i.x; -R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[7].w))); -PV1i.y = R126i.y; -R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[7].w))); -PV1i.z = R126i.z; -R127i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3b820821)); -R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z))); -PS1i = R1i.x; -// 4 -backupReg0i = R0i.y; -backupReg1i = R0i.x; -tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.w)),-(intBitsToFloat(backupReg0i)),-(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; -R124i.z = tempi.x; -R127i.y = floatBitsToInt((intBitsToFloat(backupReg1i) * 0.5 + 0.5)); -PS0i = R127i.y; -// 5 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.z)),vec4(-(intBitsToFloat(R126i.x)),-(intBitsToFloat(R126i.y)),-(intBitsToFloat(R126i.z)),-(intBitsToFloat(R5i.y))))); -tempi.x = clampFI32(tempi.x); -PV1i.x = tempi.x; -PV1i.y = tempi.x; -PV1i.z = tempi.x; -PV1i.w = tempi.x; -R126i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0); -PS1i = R126i.y; -// 6 -backupReg0i = R0i.y; -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R6i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.z)),vec4(-(intBitsToFloat(R1i.w)),-(intBitsToFloat(backupReg0i)),-(intBitsToFloat(R127i.z)),-(intBitsToFloat(R126i.w))))); -tempi.x = clampFI32(tempi.x); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R124i.w = tempi.x; -R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x))); -PS0i = R126i.w; -// 7 -backupReg0i = R125i.x; -backupReg0i = R125i.x; -backupReg1i = R127i.y; -backupReg1i = R127i.y; -R125i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg0i))); -PV1i.x = R125i.x; -R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PV0i.x))); -R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(backupReg1i))); -R4i.z = floatBitsToInt(intBitsToFloat(R4i.z) / 2.0); -R125i.w = floatBitsToInt((intBitsToFloat(R127i.w) * 0.25 + 0.25)); -PV1i.w = R125i.w; -R127i.x = floatBitsToInt(float(R125i.z)); -R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) / 2.0); -PS1i = R127i.x; -// 8 -R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.z)),intBitsToFloat(R126i.y)) + intBitsToFloat(R126i.y))); -R126i.y = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + 4.0)); -R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R126i.w)) + -(intBitsToFloat(R126i.w)))); -PV0i.z = R127i.z; -R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.x))); -PV0i.w = R123i.w; -R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),-(intBitsToFloat(PV1i.w))) + intBitsToFloat(R10i.y))); -PS0i = R125i.z; -// 9 -PV1i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e19999a)); -R124i.y = floatBitsToInt((intBitsToFloat(R10i.y) * 0.5 + 0.5)); -R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(PV0i.w))); -PV1i.w = floatBitsToInt(-(intBitsToFloat(R127i.y)) + 1.0); -R125i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 1.0); -PS1i = R125i.y; -// 10 -backupReg0i = R127i.y; -backupReg1i = R5i.z; -backupReg1i = R5i.z; -R123i.x = floatBitsToInt((-(intBitsToFloat(R127i.w)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); -PV0i.x = R123i.x; -R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(uf_remappedPS[8].x))); -R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); -R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),-(intBitsToFloat(R4i.z))) + intBitsToFloat(backupReg1i))); -R125i.x = floatBitsToInt(1.0 / intBitsToFloat(R126i.y)); -PS0i = R125i.x; -// 11 -backupReg0i = R125i.y; -backupReg0i = R125i.y; -R124i.x = floatBitsToInt(intBitsToFloat(R125i.w) + intBitsToFloat(R125i.z)); -R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg0i))); -R127i.z = floatBitsToInt(intBitsToFloat(R124i.w) + intBitsToFloat(R124i.y)); -R127i.z = clampFI32(R127i.z); -R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R124i.z)),intBitsToFloat(R126i.x)) + intBitsToFloat(R126i.x))); -PV1i.w = R123i.w; -R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.x))); -PS1i = R125i.z; -// 12 -backupReg0i = R126i.x; -backupReg1i = R126i.z; -R126i.x = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R126i.w)); -R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),-(intBitsToFloat(R4i.z))) + intBitsToFloat(R124i.w))); -PV0i.y = R123i.y; -R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w))); -R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R125i.x))); -R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(R127i.x))) + intBitsToFloat(R127i.y))); -PS0i = R125i.x; -// 13 -backupReg0i = R127i.x; -backupReg1i = R127i.z; -backupReg2i = R125i.y; -R127i.x = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(PV0i.y)); -R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),-(intBitsToFloat(backupReg0i))) + intBitsToFloat(R124i.x))); -R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].w), intBitsToFloat(uf_remappedPS[7].w))); -R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(backupReg1i))); -PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg2i)); -// 14 -R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R125i.z))); -PV0i.x = R123i.x; -R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.w), intBitsToFloat(R125i.x))); -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(R126i.z))) + intBitsToFloat(R125i.z))); -PV0i.z = R123i.z; -R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS1i))); -R127i.y = floatBitsToInt(1.0 / intBitsToFloat(R126i.x)); -PS0i = R127i.y; -// 15 -backupReg0i = R125i.y; -backupReg1i = R126i.w; -PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R127i.z))); -R125i.y = floatBitsToInt(intBitsToFloat(R126i.z) + intBitsToFloat(PV0i.z)); -R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x3f400000)); -R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.x)); -R127i.z = floatBitsToInt(1.0 / intBitsToFloat(R127i.x)); -PS1i = R127i.z; -// 16 -backupReg0i = R125i.w; -R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x),intBitsToFloat(R125i.w)) + intBitsToFloat(R8i.x))); -PV0i.x = R123i.x; -R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].y),intBitsToFloat(R125i.w)) + intBitsToFloat(R8i.y))); -PV0i.y = R123i.y; -PV0i.z = floatBitsToInt(0.25 * intBitsToFloat(R127i.y)); -R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].z),intBitsToFloat(backupReg0i)) + intBitsToFloat(R8i.z))); -R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV1i.x))); -PS0i = R125i.z; -// 17 -backupReg0i = R126i.z; -R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV0i.z))); -PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(R124i.w))); -R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R126i.w))); -R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.x))); -R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); -PS1i = R127i.z; -// 18 -R123i.x = floatBitsToInt((intBitsToFloat(R9i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); -R123i.x = clampFI32(R123i.x); -PV0i.x = R123i.x; -R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R125i.w)) + intBitsToFloat(R125i.w))); -PV0i.y = R123i.y; -R123i.z = floatBitsToInt((intBitsToFloat(R9i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); -R123i.z = clampFI32(R123i.z); -PV0i.z = R123i.z; -R123i.w = floatBitsToInt((intBitsToFloat(R9i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); -R123i.w = clampFI32(R123i.w); -PV0i.w = R123i.w; -R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), intBitsToFloat(PV1i.y))); -PS0i = R126i.x; -// 19 -R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV0i.w))); -R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV0i.x))); -R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x), intBitsToFloat(R127i.x))); -R9i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z))); -R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].y), intBitsToFloat(R127i.x))); -PS1i = R126i.w; -// 20 -PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(R126i.z))); -PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(R126i.z))); -PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].z), intBitsToFloat(R127i.x))); -PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(R126i.z))); -R9i.x = R6i.y & int(1); -PS0i = R9i.x; -// 21 -R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.w))); -R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.x))); -R2i.z = floatBitsToInt((intBitsToFloat(R125i.y) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); -R7i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.y))); -R6i.y = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); -PS1i = R6i.y; -// 0 -R123i.x = floatBitsToInt((intBitsToFloat(R9i.w) * intBitsToFloat(0x3f6e896b) + intBitsToFloat(0x3a011b1e))); -PV0i.x = R123i.x; -PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.z), intBitsToFloat(R10i.z))); -PV0i.z = floatBitsToInt(intBitsToFloat(R2i.x) + intBitsToFloat(R6i.y)); -PV0i.w = floatBitsToInt(intBitsToFloat(R2i.y) + intBitsToFloat(R2i.z)); -PS0i = floatBitsToInt(float(R9i.x)); -// 1 -R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R3i.x))); -PV1i.y = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV0i.x)); -R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS0i), intBitsToFloat(PV0i.y))); -R7i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R3i.y))); -PS1i = R7i.y; -// 2 -R7i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(R3i.z))); -// export -passPixelColor0 = vec4(intBitsToFloat(R7i.x), intBitsToFloat(R7i.y), intBitsToFloat(R7i.z), intBitsToFloat(R7i.w)); -} diff --git a/Enhancement/BreathOfTheWild_0FXAA/eabf1e8268c0acf2_0000000079249749_ps.txt b/Enhancement/BreathOfTheWild_0FXAA/eabf1e8268c0acf2_0000000079249749_ps.txt deleted file mode 100644 index 53e8ecc8..00000000 --- a/Enhancement/BreathOfTheWild_0FXAA/eabf1e8268c0acf2_0000000079249749_ps.txt +++ /dev/null @@ -1,651 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -// shader eabf1e8268c0acf2 // AA removal cemu 1.9.1 Github version -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 0x3db66800 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); -R4i.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; -R124i.z = floatBitsToInt((intBitsToFloat(R7i.z) * 2.0 + -(1.0))); -PV0i.z = R124i.z; -R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x))); -PV0i.w = R127i.w; -R126i.w = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.y)); -PS0i = R126i.w; -// 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; -R8i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w))); -PS1i = R8i.z; -// 2 -R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(R127i.w)))); -R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(R127i.w)))); -R125i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.x)); -PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(uf_remappedPS[2].y))); -tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); -R125i.x = floatBitsToInt(tempResultf); -PS0i = R125i.x; -// 3 -R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i))); -PV1i.x = R5i.x; -R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i))); -R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.w)); -R127i.w = floatBitsToInt(-(intBitsToFloat(R2i.w)) + intBitsToFloat(R5i.z)); -R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w)); -PS1i = R126i.z; -// 4 -backupReg0i = R0i.x; -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R9i.y),intBitsToFloat(R8i.z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R9i.y),intBitsToFloat(R8i.z),0.0))); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R8i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); -PS0i = R8i.x; -// 5 -backupReg0i = R126i.w; -backupReg0i = R126i.w; -R127i.x = floatBitsToInt(max(intBitsToFloat(R127i.z), -(intBitsToFloat(R127i.z)))); -R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(R0i.y))); -R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x), intBitsToFloat(R126i.z))); -R126i.w = floatBitsToInt(max(intBitsToFloat(backupReg0i), -(intBitsToFloat(backupReg0i)))); -PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x))); -// 6 -tempi.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 = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R127i.y = tempi.x; -PS0i = floatBitsToInt(1.0 / intBitsToFloat(PS1i)); -// 7 -PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.w)); -R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R10i.x), intBitsToFloat(PS0i))); -PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(R6i.y)); -R2i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.y), intBitsToFloat(PS0i))); -R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS0i))); -PS1i = R9i.z; -// 8 -PV0i.x = floatBitsToInt(max(intBitsToFloat(PV1i.x), -(intBitsToFloat(PV1i.x)))); -PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 4.0); -PV0i.y = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(R6i.z)); -PV0i.z = floatBitsToInt(max(intBitsToFloat(PV1i.z), -(intBitsToFloat(PV1i.z)))); -PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0); -PV0i.w = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(R6i.x)); -R126i.x = floatBitsToInt(max(intBitsToFloat(R125i.z), -(intBitsToFloat(R125i.z)))); -PS0i = R126i.x; -// 9 -R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x))); -PV1i.x = R123i.x; -PV1i.y = floatBitsToInt(max(intBitsToFloat(R127i.w), -(intBitsToFloat(R127i.w)))); -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z))); -PV1i.z = R123i.z; -PV1i.w = floatBitsToInt(max(intBitsToFloat(PV0i.w), -(intBitsToFloat(PV0i.w)))); -PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * 4.0); -PS1i = floatBitsToInt(max(intBitsToFloat(PV0i.y), -(intBitsToFloat(PV0i.y)))); -PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 4.0); -// 10 -backupReg0i = R126i.x; -R126i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(PV1i.x)); -PV0i.x = R126i.x; -R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PS1i))); -PV0i.y = R127i.y; -R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R125i.x))); -PV0i.z = R6i.z; -R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.w))); -R127i.z = floatBitsToInt(floor(intBitsToFloat(R3i.x))); -PS0i = R127i.z; -// 11 -R125i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(PV0i.z),-0.0),vec4(intBitsToFloat(R10i.y),intBitsToFloat(R2i.w),intBitsToFloat(R9i.z),0.0))); -PV1i.x = R125i.x; -PV1i.y = R125i.x; -PV1i.z = R125i.x; -PV1i.w = R125i.x; -PS1i = floatBitsToInt(-(intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.x)); -// 12 -PV0i.x = floatBitsToInt(floor(intBitsToFloat(R3i.y))); -PV0i.y = floatBitsToInt(-(intBitsToFloat(R127i.w)) + intBitsToFloat(R126i.x)); -PV0i.z = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PS1i)); -PV0i.w = floatBitsToInt(intBitsToFloat(R3i.x) + -(intBitsToFloat(R127i.z))); -R126i.x = floatBitsToInt(intBitsToFloat(R127i.z) + -(0.5)); -PS0i = R126i.x; -// 13 -backupReg0i = R127i.y; -PV1i.x = floatBitsToInt(intBitsToFloat(R3i.y) + -(intBitsToFloat(PV0i.x))); -R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(0.5)); -PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(PV0i.w)); -PV1i.z = clampFI32(PV1i.z); -PV1i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y)); -PS1i = R5i.x; -PS1i = floatBitsToInt(intBitsToFloat(PS1i) * 2.0); -// 14 -PV0i.x = R5i.y; -PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0); -PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x)); -PV0i.y = clampFI32(PV0i.y); -PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R126i.x)); -PV0i.w = R6i.z; -PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0); -R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.x)),intBitsToFloat(PS1i)) + intBitsToFloat(R10i.y))); -PS0i = R126i.x; -// 15 -backupReg0i = R127i.y; -R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.z))); -R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R2i.w))); -R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.x)),intBitsToFloat(PV0i.w)) + intBitsToFloat(R9i.z))); -PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + intBitsToFloat(backupReg0i)); -R2i.z = floatBitsToInt(roundEven(0.0)); -PS1i = R2i.z; -// 16 -R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R8i.x)) + intBitsToFloat(R1i.z))); -R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.w), intBitsToFloat(PV1i.w))); -R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R8i.y)) + intBitsToFloat(R1i.w))); -R0i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000))); -R3i.x = floatBitsToInt(intBitsToFloat(R10i.y) + intBitsToFloat(uf_remappedPS[3].x)); -PS0i = R3i.x; -// 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(R126i.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; -R127i.w = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000)); -PS1i = R127i.w; -// 18 -R124i.x = floatBitsToInt(dot(vec4(intBitsToFloat(uf_remappedPS[5].x),intBitsToFloat(uf_remappedPS[5].y),intBitsToFloat(uf_remappedPS[5].z),-0.0),vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.y),intBitsToFloat(R127i.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(R126i.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; -R124i.y = tempi.x; -R127i.z = floatBitsToInt(max(-(intBitsToFloat(R125i.x)), 0.0)); -PS1i = R127i.z; -// 20 -backupReg0i = R124i.x; -backupReg0i = R124i.x; -backupReg1i = R124i.z; -backupReg1i = R124i.z; -redcCUBE(vec4(intBitsToFloat(R124i.z),intBitsToFloat(R124i.z),intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.x)),vec4(intBitsToFloat(PV1i.x),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg1i)),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; -R1i.y = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(uf_remappedPS[3].y)); -PS0i = R1i.y; -// 21 -R6i.x = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(uf_remappedPS[3].z)); -R3i.y = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0); -PV1i.y = R3i.y; -R0i.z = PV0i.w; -R3i.w = 0; -PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z))); -// 22 -R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); -R6i.y = floatBitsToInt(min(intBitsToFloat(R127i.z), 1.0)); -R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PS1i)) + 1.5)); -R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PS1i)) + 1.5)); -R3i.z = int(intBitsToFloat(R127i.w)); -PS0i = R3i.z; -// 0 -R0i.x = R1i.w; -R0i.y = R1i.z; -R127i.z = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x437f0000)); -R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(uf_remappedPS[7].w))); -R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(uf_remappedPS[7].w))); -PS0i = R127i.y; -// 1 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R1i.y),intBitsToFloat(R6i.x),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R1i.y),intBitsToFloat(R6i.x),0.0))); -PV1i.x = tempi.x; -PV1i.y = tempi.x; -PV1i.z = tempi.x; -PV1i.w = tempi.x; -R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(uf_remappedPS[7].w))); -PS1i = R125i.z; -// 2 -PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(0x3c23d70a)); -PV0i.x = clampFI32(PV0i.x); -R124i.y = R3i.z & 0x000000fc; -R124i.z = floatBitsToInt(-(intBitsToFloat(R6i.y)) + 1.0); -R124i.w = 0; -tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x)); -PS0i = floatBitsToInt(tempResultf); -// 3 -PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i))); -PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PS0i))); -R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); -PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PS0i))); -R126i.y = int(intBitsToFloat(R127i.z)); -PS1i = R126i.y; -// 4 -backupReg0i = R124i.y; -R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[7].w))); -PV0i.x = R124i.x; -R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(uf_remappedPS[7].w))); -PV0i.y = R124i.y; -R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(uf_remappedPS[7].w))); -PV0i.z = R127i.z; -R126i.w = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + 0.5)); -R126i.x = floatBitsToInt(float(backupReg0i)); -PS0i = R126i.x; -// 5 -backupReg0i = R124i.z; -backupReg0i = R124i.z; -tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R127i.w)),-(intBitsToFloat(R127i.y)),-(intBitsToFloat(R125i.z)),-0.0),vec4(-(intBitsToFloat(PV0i.x)),-(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; -R1i.w = tempi.x; -R124i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg0i))); -PS1i = R124i.z; -// 6 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R6i.z),intBitsToFloat(R6i.z)),vec4(-(intBitsToFloat(R124i.x)),-(intBitsToFloat(R124i.y)),-(intBitsToFloat(R127i.z)),-(intBitsToFloat(R3i.w))))); -tempi.x = clampFI32(tempi.x); -PV0i.x = tempi.x; -PV0i.y = tempi.x; -PV0i.z = tempi.x; -PV0i.w = tempi.x; -R125i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0); -PS0i = R125i.w; -// 7 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R6i.z),intBitsToFloat(R6i.z)),vec4(-(intBitsToFloat(R127i.w)),-(intBitsToFloat(R127i.y)),-(intBitsToFloat(R125i.z)),-(intBitsToFloat(R124i.w))))); -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 -PV0i.x = R126i.y & int(1); -R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R126i.w))); -R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) / 2.0); -R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PS1i)) + -(intBitsToFloat(PS1i)))); -R6i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3b820821)); -R127i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.w)),intBitsToFloat(R125i.w)) + intBitsToFloat(R125i.w))); -PS0i = R127i.z; -// 9 -R126i.x = R127i.w; -R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 2.0); -R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.y)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.z))); -PV1i.y = R123i.y; -R126i.z = ((PV0i.x == 0)?(0):(0x3f800000)); -R126i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + 4.0)); -R7i.x = R127i.w; -R7i.x = clampFI32(R7i.x); -PS1i = R7i.x; -// 10 -R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(PV1i.y))); -PV0i.y = floatBitsToInt(intBitsToFloat(R125i.z) + 1.0); -R124i.z = floatBitsToInt((-(intBitsToFloat(R6i.w)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a))); -R125i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),-(intBitsToFloat(R126i.y))) + intBitsToFloat(R6i.y))); -R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.w)),intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.z))); -PS0i = R122i.x; -// 11 -backupReg0i = R126i.x; -R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(PV0i.y))); -R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i))); -R7i.z = floatBitsToInt((intBitsToFloat(R6i.w) * 0.25 + 0.25)); -PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(backupReg0i))); -PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w)); -// 12 -backupReg0i = R124i.x; -R124i.x = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(R125i.w)); -R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i))); -R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.w))); -R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.x),-(intBitsToFloat(R126i.y))) + intBitsToFloat(R7i.x))); -PV0i.w = R123i.w; -R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R6i.w)) + intBitsToFloat(R124i.z))); -PS0i = R127i.y; -// 13 -backupReg0i = R124i.z; -backupReg1i = R126i.y; -backupReg2i = R126i.x; -R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R6i.w)) + intBitsToFloat(R124i.z))); -PV1i.x = R126i.x; -R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].w), intBitsToFloat(uf_remappedPS[7].w))); -R124i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(backupReg0i))); -PV1i.z = R124i.z; -R125i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV0i.w)); -PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg2i)); -// 14 -backupReg0i = R124i.x; -R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),-(intBitsToFloat(R124i.y))) + intBitsToFloat(PV1i.z))); -R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i))); -R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(R124i.y))) + intBitsToFloat(PV1i.x))); -R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(R124i.y))) + intBitsToFloat(R127i.y))); -PS0i = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i)); -// 15 -backupReg0i = R126i.x; -backupReg0i = R126i.x; -backupReg1i = R127i.y; -backupReg1i = R127i.y; -backupReg2i = R125i.w; -R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R125i.y))) + intBitsToFloat(backupReg0i))); -R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),-(intBitsToFloat(R125i.y))) + intBitsToFloat(backupReg1i))); -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),-(intBitsToFloat(R125i.y))) + intBitsToFloat(R124i.z))); -PV1i.z = R123i.z; -R125i.w = floatBitsToInt(0.25 * intBitsToFloat(PS0i)); -R124i.z = floatBitsToInt(1.0 / intBitsToFloat(backupReg2i)); -PS1i = R124i.z; -// 16 -backupReg0i = R126i.z; -PV0i.x = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(R127i.w)); -PV0i.y = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(R124i.x)); -R126i.z = floatBitsToInt(intBitsToFloat(R124i.y) + intBitsToFloat(backupReg0i)); -R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R126i.y))); -R1i.w = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(PV1i.z)); -PS0i = R1i.w; -// 17 -R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R6i.y))); -R6i.y = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R126i.x)); -R1i.z = floatBitsToInt(intBitsToFloat(R125i.y) + intBitsToFloat(R127i.y)); -PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R125i.w))); -R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R125i.w))); -PS1i = R124i.z; -// 18 -R6i.x = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); -R6i.x = clampFI32(R6i.x); -PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(R125i.w))); -R12i.z = floatBitsToInt((intBitsToFloat(R4i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); -R12i.z = clampFI32(R12i.z); -R5i.w = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8))); -R5i.w = clampFI32(R5i.w); -R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x), intBitsToFloat(PV1i.w))); -PS0i = R4i.x; -// 19 -PV1i.x = R3i.z & int(1); -R3i.y = R2i.y; -R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z), intBitsToFloat(PV0i.y))); -R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y), intBitsToFloat(R124i.z))); -R3i.z = floatBitsToInt(roundEven(1.0)); -PS1i = R3i.z; -// 20 -R3i.x = R2i.x; -R4i.z = floatBitsToInt(float(PV1i.x)); -PS0i = R4i.z; -R4i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R8i.xy)).x); -R13i.xyz = floatBitsToInt(texture(textureUnitPS11, intBitsToFloat(R2i.xy)).xyz); -R11i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).xyz); -R3i.xyz = floatBitsToInt(texture(textureUnitPS10, vec3(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z))).xyz); -R0i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex8),intBitsToFloat(R0i.w)).xyz); -R2i.xyz = floatBitsToInt(texture(textureUnitPS13, intBitsToFloat(R2i.xy)).xyz); -// 0 -R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.y),-(intBitsToFloat(R7i.z))) + intBitsToFloat(R13i.y))); -PV0i.x = R123i.x; -R123i.y = floatBitsToInt((intBitsToFloat(R13i.y) * 0.5 + 0.5)); -PV0i.y = R123i.y; -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[0].x),intBitsToFloat(R4i.w)) + intBitsToFloat(uf_remappedPS[1].x))); -PV0i.z = R123i.z; -R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(R7i.x))); -R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(R13i.z))); -PS0i = R124i.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.z))); -PV1i.w = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV0i.z)), intBitsToFloat(R9i.x))); -R125i.x = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(PV0i.x)); -PS1i = R125i.x; -// 2 -R126i.x = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.w)); -PV0i.x = R126i.x; -R127i.y = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(PV1i.z)); -PV0i.y = R127i.y; -PV0i.z = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(PV1i.x)); -R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PV1i.y))); -R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x), intBitsToFloat(R125i.w))); -PS0i = R125i.y; -// 3 -tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.y),intBitsToFloat(R2i.w),intBitsToFloat(R9i.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; -R124i.y = tempi.x; -R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.w))); -PS1i = R126i.y; -// 4 -backupReg0i = R127i.y; -R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R126i.x))); -PV0i.x = R123i.x; -R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.z))); -R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.w)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i))); -R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(R124i.x))); -PS0i = R1i.w; -// 5 -backupReg0i = R0i.x; -backupReg1i = R126i.y; -PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R7i.w))); -R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i)) + intBitsToFloat(R3i.x))); -PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x))); -PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R6i.y))); -// 6 -PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.x))); -R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.w),intBitsToFloat(R125i.w)) + intBitsToFloat(PV1i.z))); -PV0i.y = R123i.y; -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(R3i.y))); -PV0i.z = R123i.z; -R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(R3i.z))); -PV0i.w = R123i.w; -// 7 -R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.w))); -R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV0i.x)) + intBitsToFloat(PV0i.z))); -R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R126i.y))); -tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y)); -PS1i = floatBitsToInt(tempResultf); -// 8 -PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PS1i))); -// 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(R10i.z)) + 1.0)); -PV1i.y = R123i.y; -// 12 -R4i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.w)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y))); -// 0 -R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(R4i.w)) + intBitsToFloat(R11i.x))); -PV0i.x = R123i.x; -R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z),intBitsToFloat(R4i.w)) + intBitsToFloat(R11i.z))); -PV0i.z = R123i.z; -R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(R4i.w)) + intBitsToFloat(R11i.y))); -PV0i.w = R123i.w; -// 1 -PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R4i.x))); -PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R4i.x))); -PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R4i.x))); -// 2 -PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R5i.w))); -PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R6i.x))); -PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R12i.z))); -// 3 -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 -backupReg0i = R0i.y; -PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV1i.x)); -PV0i.z = floatBitsToInt(intBitsToFloat(R6i.z) + intBitsToFloat(PV1i.y)); -PV0i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.z)); -// 5 -R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R2i.x))); -R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R2i.y))); -R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R2i.z))); -// export -passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)); -} diff --git a/Enhancement/BreathOfTheWild_0FXAA/f14bb57cd5c9cb77_00000000000003c9_ps.txt b/Enhancement/BreathOfTheWild_0FXAA/f14bb57cd5c9cb77_00000000000003c9_ps.txt deleted file mode 100644 index fd448f48..00000000 --- a/Enhancement/BreathOfTheWild_0FXAA/f14bb57cd5c9cb77_00000000000003c9_ps.txt +++ /dev/null @@ -1,254 +0,0 @@ -#version 420 -#extension GL_ARB_texture_gather : enable -// shader f14bb57cd5c9cb77 -//replaces broken aa everywhere with fxaa -//also includes vibrance logic from Contrasty -//original shader dumped using cemu 1.9.1, BotW 1.3.1 -//credit for fxaa implementation http://blog.simonrodriguez.fr/articles/30-07-2016_implementing_fxaa.html -//Credit to bestminr for vibrance logic - -#define ENABLE_FXAA 1 -#define ENABLE_CONTRASTY 0 - -const float EDGE_THRESHOLD_MIN = 0.04; -const float EDGE_THRESHOLD_MAX = 0.125; -const float SUBPIXEL_QUALITY = 0.5; -const float[] QUALITY = {1.5, 2.0, 2.0, 2.0, 2.0, 4.0, 8.0, 8.0, 8.0, 8.0, 8.0, 8.0}; -const int ITERATIONS = 12; - -/*Gamma, exposure, vibrance and crushContrast can be modified */ -const float gamma = 0.81; // 1.0 is neutral Botw is already colour graded at this stage -const float exposure = 1.17; // 1.0 is neutral -const float vibrance = 0.008; // 0.0 is neutral -const float crushContrast = 0.004; // 0.0 is neutral. Use small increments, loss of shadow detail - -//Uncomment below and in body to scale 16-235 not recommended */ -/* -const float floor = 16.0 / 255; -const float scale = 255.0/(235.0-16.0); -*/ - -uniform ivec4 uf_remappedPS[4]; -layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4713800 res 1280x720x1 dim 1 tm: 4 format 0019 compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1 -layout(binding = 1) uniform sampler2D textureUnitPS1;// Tex1 addr 0x387f8000 res 1280x720x1 dim 1 tm: 4 format 0001 compSel: 0 4 4 5 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler1 ClampX/Y/Z: 2 2 2 border: 1 -layout(location = 0) in vec4 passParameterSem2; -layout(location = 0) out vec4 passPixelColor0; -uniform vec2 uf_fragCoordScale; - -float rgb2luma(vec3 rgb) { - return sqrt(dot(rgb, vec3(0.299, 0.587, 0.114))); -} - -void main(void) { - vec2 texCoords = passParameterSem2.xy; - vec3 colorCenter = texture(textureUnitPS0, texCoords).rgb; - passPixelColor0.rgb = colorCenter; - -#if (ENABLE_FXAA == 1) - ivec2 texSize = textureSize(textureUnitPS0, 0); - vec2 framebufferSize = vec2(float(texSize.x), float(texSize.y)); - vec2 invFramebufferSize = vec2(1.0 / framebufferSize.x, 1.0 / framebufferSize.y); - - // Luma at the current fragment - float lumaCenter = rgb2luma(colorCenter); - - // Luma at the four direct neighbours of the current fragment. - float lumaDown = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(0, -1)).rgb); - float lumaUp = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(0, 1)).rgb); - float lumaLeft = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(-1, 0)).rgb); - float lumaRight = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(1, 0)).rgb); - - // Find the maximum and minimum luma around the current fragment. - float lumaMin = min(lumaCenter, min(min(lumaDown, lumaUp), min(lumaLeft, lumaRight))); - float lumaMax = max(lumaCenter, max(max(lumaDown, lumaUp), max(lumaLeft, lumaRight))); - - // Compute the delta. - float lumaRange = lumaMax - lumaMin; - - // If the luma variation is lower that a threshold (or if we are in a really dark area), we are not on an edge, don't perform any AA. - if (lumaRange > max(EDGE_THRESHOLD_MIN, lumaMax*EDGE_THRESHOLD_MAX)) { - // Query the 4 remaining corners lumas. - float lumaDownLeft = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(-1, -1)).rgb); - float lumaUpRight = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(1, 1)).rgb); - float lumaUpLeft = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(-1, 1)).rgb); - float lumaDownRight = rgb2luma(textureOffset(textureUnitPS0, texCoords, ivec2(1, -1)).rgb); - - // Combine the four edges lumas (using intermediary variables for future computations with the same values). - float lumaDownUp = lumaDown + lumaUp; - float lumaLeftRight = lumaLeft + lumaRight; - - // Same for corners - float lumaLeftCorners = lumaDownLeft + lumaUpLeft; - float lumaDownCorners = lumaDownLeft + lumaDownRight; - float lumaRightCorners = lumaDownRight + lumaUpRight; - float lumaUpCorners = lumaUpRight + lumaUpLeft; - - // Compute an estimation of the gradient along the horizontal and vertical axis. - float edgeHorizontal = abs(-2.0 * lumaLeft + lumaLeftCorners) + abs(-2.0 * lumaCenter + lumaDownUp) * 2.0 + abs(-2.0 * lumaRight + lumaRightCorners); - float edgeVertical = abs(-2.0 * lumaUp + lumaUpCorners) + abs(-2.0 * lumaCenter + lumaLeftRight) * 2.0 + abs(-2.0 * lumaDown + lumaDownCorners); - - // Is the local edge horizontal or vertical ? - bool isHorizontal = (edgeHorizontal >= edgeVertical); - - // Select the two neighboring texels lumas in the opposite direction to the local edge. - float luma1 = isHorizontal ? lumaDown : lumaLeft; - float luma2 = isHorizontal ? lumaUp : lumaRight; - // Compute gradients in this direction. - float gradient1 = luma1 - lumaCenter; - float gradient2 = luma2 - lumaCenter; - - // Which direction is the steepest ? - bool is1Steepest = abs(gradient1) >= abs(gradient2); - - // Gradient in the corresponding direction, normalized. - float gradientScaled = 0.25*max(abs(gradient1), abs(gradient2)); - - // Choose the step size (one pixel) according to the edge direction. - float stepLength = isHorizontal ? invFramebufferSize.y : invFramebufferSize.x; - - // Average luma in the correct direction. - float lumaLocalAverage = 0.0; - - if (is1Steepest) { - // Switch the direction - stepLength = -stepLength; - lumaLocalAverage = 0.5*(luma1 + lumaCenter); - } - else { - lumaLocalAverage = 0.5*(luma2 + lumaCenter); - } - - // Shift UV in the correct direction by half a pixel. - vec2 currentUv = texCoords; - if (isHorizontal) { - currentUv.y += stepLength * 0.5; - } - else { - currentUv.x += stepLength * 0.5; - } - - // Compute offset (for each iteration step) in the right direction. - vec2 offset = isHorizontal ? vec2(invFramebufferSize.x, 0.0) : vec2(0.0, invFramebufferSize.y); - // Compute UVs to explore on each side of the edge, orthogonally. The QUALITY allows us to step faster. - vec2 uv1 = currentUv - offset; - vec2 uv2 = currentUv + offset; - - // Read the lumas at both current extremities of the exploration segment, and compute the delta wrt to the local average luma. - float lumaEnd1 = rgb2luma(texture(textureUnitPS0, uv1).rgb); - float lumaEnd2 = rgb2luma(texture(textureUnitPS0, uv2).rgb); - lumaEnd1 -= lumaLocalAverage; - lumaEnd2 -= lumaLocalAverage; - - // If the luma deltas at the current extremities are larger than the local gradient, we have reached the side of the edge. - bool reached1 = abs(lumaEnd1) >= gradientScaled; - bool reached2 = abs(lumaEnd2) >= gradientScaled; - bool reachedBoth = reached1 && reached2; - - // If the side is not reached, we continue to explore in this direction. - if (!reached1) { - uv1 -= offset; - } - if (!reached2) { - uv2 += offset; - } - - // If both sides have not been reached, continue to explore. - if (!reachedBoth) { - for (int i = 2; i < ITERATIONS; i++) { - // If needed, read luma in 1st direction, compute delta. - if (!reached1) { - lumaEnd1 = rgb2luma(texture(textureUnitPS0, uv1).rgb); - lumaEnd1 = lumaEnd1 - lumaLocalAverage; - } - // If needed, read luma in opposite direction, compute delta. - if (!reached2) { - lumaEnd2 = rgb2luma(texture(textureUnitPS0, uv2).rgb); - lumaEnd2 = lumaEnd2 - lumaLocalAverage; - } - // If the luma deltas at the current extremities is larger than the local gradient, we have reached the side of the edge. - reached1 = abs(lumaEnd1) >= gradientScaled; - reached2 = abs(lumaEnd2) >= gradientScaled; - reachedBoth = reached1 && reached2; - - // If the side is not reached, we continue to explore in this direction, with a variable quality. - if (!reached1) { - uv1 -= offset * QUALITY[i]; - } - if (!reached2) { - uv2 += offset * QUALITY[i]; - } - - // If both sides have been reached, stop the exploration. - if (reachedBoth) { break; } - } - } - - // Compute the distances to each extremity of the edge. - float distance1 = isHorizontal ? (texCoords.x - uv1.x) : (texCoords.y - uv1.y); - float distance2 = isHorizontal ? (uv2.x - texCoords.x) : (uv2.y - texCoords.y); - - // In which direction is the extremity of the edge closer ? - bool isDirection1 = distance1 < distance2; - float distanceFinal = min(distance1, distance2); - - // Length of the edge. - float edgeThickness = (distance1 + distance2); - - // UV offset: read in the direction of the closest side of the edge. - float pixelOffset = -distanceFinal / edgeThickness + 0.5; - - // Is the luma at center smaller than the local average ? - bool isLumaCenterSmaller = lumaCenter < lumaLocalAverage; - - // If the luma at center is smaller than at its neighbour, the delta luma at each end should be positive (same variation). - // (in the direction of the closer side of the edge.) - bool correctVariation = ((isDirection1 ? lumaEnd1 : lumaEnd2) < 0.0) != isLumaCenterSmaller; - - // If the luma variation is incorrect, do not offset. - float finalOffset = correctVariation ? pixelOffset : 0.0; - - // Sub-pixel shifting - // Full weighted average of the luma over the 3x3 neighborhood. - float lumaAverage = (1.0 / 12.0) * (2.0 * (lumaDownUp + lumaLeftRight) + lumaLeftCorners + lumaRightCorners); - // Ratio of the delta between the global average and the center luma, over the luma range in the 3x3 neighborhood. - float subPixelOffset1 = clamp(abs(lumaAverage - lumaCenter) / lumaRange, 0.0, 1.0); - float subPixelOffset2 = (-2.0 * subPixelOffset1 + 3.0) * subPixelOffset1 * subPixelOffset1; - // Compute a sub-pixel offset based on this delta. - float subPixelOffsetFinal = subPixelOffset2 * subPixelOffset2 * SUBPIXEL_QUALITY; - - // Pick the biggest of the two offsets. - finalOffset = max(finalOffset, subPixelOffsetFinal); - - // Compute the final UV coordinates. - vec2 finalUv = texCoords; - if (isHorizontal) { - finalUv.y += finalOffset * stepLength; - } - else { - finalUv.x += finalOffset * stepLength; - } - - // Read the color at the new UV coordinates, and use it. - vec3 finalColor = texture(textureUnitPS0, finalUv).rgb; - passPixelColor0.rgb = finalColor; - } -#endif - -#if (ENABLE_CONTRASTY == 1) - vec3 fColour = (passPixelColor0.xyz); - fColour = max(vec3(0.0), fColour - vec3(crushContrast)); - fColour = clamp(exposure * fColour, 0.0, 1.0); - fColour = pow(fColour, vec3(1.0 / gamma)); - float luminance = fColour.r*0.299 + fColour.g*0.587 + fColour.b*0.114; - float mn = min(min(fColour.r, fColour.g), fColour.b); - float mx = max(max(fColour.r, fColour.g), fColour.b); - float sat = (1.0-(mx - mn)) * (1.0-mx) * luminance * 5.0; - vec3 lightness = vec3((mn + mx)/2.0); - // vibrance - fColour = mix(fColour, mix(fColour, lightness, -vibrance), sat); - //vec3 fColour = (fColour.xyz - floor) * scale; // Not recommended 0-255->16-235.. - passPixelColor0 = vec4(fColour.x, fColour.y, fColour.z, 1.0); -#endif - - passPixelColor0.a = 1.0; -} diff --git a/Enhancement/BreathOfTheWild_0FXAA/rules.txt b/Enhancement/BreathOfTheWild_0FXAA/rules.txt deleted file mode 100644 index 54f7d2c0..00000000 --- a/Enhancement/BreathOfTheWild_0FXAA/rules.txt +++ /dev/null @@ -1,4 +0,0 @@ -[Definition] -titleIds = 00050000101C9300,00050000101C9400,00050000101C9500 -name = "The Legend of Zelda: Breath of the Wild - FXAA" -version = 2