[BotW] Also remove old packs, whoops

This commit is contained in:
Crementif 2021-01-12 01:19:38 +01:00
parent ca22977ef0
commit cf11b81bbe
No known key found for this signature in database
GPG Key ID: 453870E0401C94C0
282 changed files with 0 additions and 90355 deletions

View File

@ -1,47 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader cb0e6e8cbec4502a
// DoF blur effect - Battle, Camera, Scope
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem3;
layout(location = 0) out vec4 passPixelColor0;
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform vec4 uf_fragCoordScale;
};
#else
uniform vec2 uf_fragCoordScale;
#endif
const int radius = int(0);
void main() {
vec2 center = (passParameterSem3.xy + passParameterSem3.zw) / 2;
vec2 step = passParameterSem3.xw - passParameterSem3.zy;
vec4 result = vec4(0.0);
float count = 0.0;
for (int x = -radius; x <= radius; x++) {
for (int y = -radius; y <= radius; y++) {
if (length(vec2(x, y)) <= radius) {
result += texture(textureUnitPS0, center + vec2(x, y)*step);
count += 1.0;
}
}
}
passPixelColor0 = result / count;
}

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = "No Depth of Field"
path = "The Legend of Zelda: Breath of the Wild/Enhancements/No Depth of Field"
description = Disables depth of field, may possibly improve performance. Made by BSoD Gaming.
version = 4

View File

@ -1,33 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Anisotropic Filtering
path = "The Legend of Zelda: Breath of the Wild/Enhancements/Anisotropic Filtering"
description = Requires Cemu 1.21.3 or above|Allows adjustment of anisotropic filtering on geometry.|Has a minimal performance impact.|Made by M&&M.
version = 6
[Default]
$anisotropy = 1
[Preset]
name = 1x
[Preset]
name = 2x
$anisotropy = 2
[Preset]
name = 4x
$anisotropy = 4
[Preset]
name = 8x
$anisotropy = 8
[Preset]
name = 16x
$anisotropy = 16
[TextureRedefine]
tileModesExcluded = 0x001 # ignore cpu processed textures (ex. videos)
formatsExcluded = 0x001,0x005,0x007,0x019,0x01a,0x01f,0x122,0x41a,0x806,0x80e,0x816,0x820 # ignore viewports, cubemaps, and shadows
overwriteAnisotropy = $anisotropy

View File

@ -1,80 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Anti-Aliasing
path = "The Legend of Zelda: Breath of the Wild/Graphics/Anti-Aliasing"
description = Enables or Disables Native Botw Anti-Aliasing. Also includes an alternative FXAA implementation. Check the rules.txt of this pack for info about the individual settings. Made by Skalfate.
version = 4
[Preset]
name = Alternative FXAA (NVIDIA's implementation)
$preset:int = 2
# Customize these 3 values
$subPix:int = 1.0
$edgeThreshold:int = 0.125
$edgeThresholdMin:int = 0.0156
# Not used for NVIDIA's FXAA, do not touch.
$inventorySharper:int = 0.0 # Ignore
$inventoryBlurrier:int = 0.0 # Ignore
$worldSharper:int = 0.0 # Ignore
$worldBlurrier:int = 0.0 # Ignore
[Preset]
name = Enable Native AA
$preset:int = 1
# Customize these 4 values below
$inventorySharper:int = 0.0
$inventoryBlurrier:int = 0.0
$worldSharper:int = 0.0
$worldBlurrier:int = 0.0
# Not used for Native AA, do not touch.
$subPix:int = 0.75 # Ignore
$edgeThreshold:int = 0.166 # Ignore
$edgeThresholdMin:int = 0.0312 # Ignore
[Preset]
name = Disable Native AA
$preset:int = 0
# Disables all anti-aliasing, doesn't have any customizations
$inventorySharper:int = 0.0 # Ignore
$inventoryBlurrier:int = 0.0 # Ignore
$worldSharper:int = 0.0 # Ignore
$worldBlurrier:int = 0.0 # Ignore
$subPix:int = 0.75 # Ignore
$edgeThreshold:int = 0.166 # Ignore
$edgeThresholdMin:int = 0.0312 # Ignore
# Adjust native AA implmentation - Only applies to Enabled preset
# --- keep one of the varaibles at 0 while adjusting the other one
# Sharper : Values - [0.0 - 1.0] - Recommended to Raise in increments of 0.1
# Blurrier : Values - [1.0 - 0.0] - Recommended to Lower in decrements of 0.1
# Subpix:
# Choose the amount of sub-pixel aliasing removal.
# This affects how sharp or smooth you want the image to be.
# 1.00 - upper limit (softer)
# 0.75 - default amount of filtering
# 0.50 - lower limit (sharper, less sub-pixel aliasing removal)
# 0.25 - almost off
# 0.00 - completely off
# EdgeThreshold:
# The minimum amount of local contrast required to apply algorithm.
# 0.333 - too little (faster)
# 0.250 - low quality
# 0.166 - default
# 0.125 - high quality
# 0.063 - overkill (slower)
# EdgeThresholdMin:
# Trims the algorithm from processing darks.
# 0.0833 - upper limit (default, the start of visible unfiltered edges)
# 0.0625 - high quality (faster)
# 0.0312 - visible limit (slower)
# Credit: Kiri, NAVras
# Credit: SkalFate for V3 import.

View File

@ -1,53 +0,0 @@
-- How to set up your own Clarity Preset --
===================================================================
Hey, it's Serfrost. I'm writing this out because it's come to our attention that no matter what we really do for presets, it won't really matter in the long run. Every user has a unique monitor / display they use with their PC, yeah? A lot of them are calibrated differently, and they often come with numerous presets that alter colors, brightness, contrast, you name it. Because of this, the presets that look good to me might not look good to you--the presets that look good to Jamie might not look good to you; you get the idea. So I'm writing this hoping you'll take the time to do a few short steps to get you on your way to making the game look the way YOU want it to look on YOUR display!
Jamie has coded this faithfully and diligently, and he's added a lot of different functions that were previously unavailable with these newer updates. We hope you enjoy this and use it to it's fullest potential.
This tutorial has been shortened by Slash in order to make use of the new graphic pack to its full potential.
===================================================================
There are 6 steps total. Please read very carefully and with your full attention. As long as you do that, it's relatively just "point and click" and the rest is changing the numbers on your own and testing them to see what they do.
===================================================================
1) Open up Cemu that's at least version 1.13.0.
2) After Cemu opens itself, load the game and your save file.
3) Open up the graphic pack menu and select Clarity under Breath of the Wild.
4) Open up 37040a485a29d54e_00000000000003c9_ps.txt in the Clarity graphic pack folder.
5) You may now edit all the variables in realtime. To view your changes hit "Reload shaders"
===============\
Note: "Realtime", as in, you can view your changes by using the button. You do not have to stop the game, etc.
Pro Tip: If time changes too fast for you, you can use Cemuhook's custom timer option (Debug > Custom Timer) to slow down time to 0.125x!
MAKE SURE YOU CHECK VARIOUS AREAS IN THE GAME TO MAKE SURE YOUR COLOR / SHADOW BALANCING IS CORRECT.
===============/
6) When you have your variables for your preset where you want them, you don't have to do anything! The file with your preset is already saved.
-- Make backups of files before making changes. Keep track of your work! --
===
MAKE SURE YOU CHECK VARIOUS AREAS IN THE GAME TO MAKE SURE YOUR COLOR / SHADOW BALANCING IS CORRECT.
===

View File

@ -1,66 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = "Clarity"
path = "The Legend of Zelda: Breath of the Wild/Enhancements/Clarity"
description = Select the visual look of the game that you'll like with these hand-made presets that adjusts saturation, vibrance, colors and more. You can select a preset. Selecting "User-Defined" requires making your own preset. check the "BreathOfTheWild_Clarity/37040a485a29d54e_00000000000003c9_ps.txt" file in your graphicPacks folder to create one. Made by Jamie and preset creators (names are listed).
version = 4
[Preset]
name = Serfrost's Preset (Default)
$preset:int = 10
[Preset]
name = Serfrost's Preset (Dim Display)
$preset:int = 9
[Preset]
name = Serfrost's Preset (Bright Display)
$preset:int = 8
[Preset]
name = Bruz's Preset
$preset:int = 1
[Preset]
name = CellHunter's Preset
$preset:int = 7
[Preset]
name = Jamie's Preset
$preset:int = 3
[Preset]
name = BSoD Gaming's Preset
$preset:int = 2
[Preset]
name = The Complaining Gamer's Preset
$preset:int = 5
[Preset]
name = ViskClarity Preset
$preset:int = 11
[Preset]
name = Contrasty Preset
$preset:int = 4
[Preset]
name = Filmic Preset
$preset:int = 6
[Preset]
name = Silentverge's Survival of the Wild Preset (Warmer)
$preset:int = 12
[Preset]
name = Silentverge's Survival of the Wild Preset (Colder)
$preset:int = 13
[Preset]
name = t3nka Neutral+
$preset:int = 14
[Preset]
name = User-Defined Preset
$preset:int = 0

View File

@ -1,62 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = "Level Of Detail Bias"
path = "The Legend of Zelda: Breath of the Wild/Enhancements/LOD Bias"
description = Setting your Level Of Detail bias changes the detail level of the textures that are used. Using a preset with a negative value will use higher resolution textures whereas choosing a preset with a positive value decreases the resolution of the textures that are used.
version = 4
[Preset]
name = Normal texture detail (Default)
$lodBias = 0
[Preset]
name = Lowest texture detail (+16)
$lodBias = +16
[Preset]
name = Extremely low texture detail (+8)
$lodBias = +8
[Preset]
name = Very low texture detail (+4)
$lodBias = +4
[Preset]
name = Much lower texture detail (+3)
$lodBias = +3
[Preset]
name = Lower texture detail (+2)
$lodBias = +2
[Preset]
name = Slightly lower texture detail (+1)
$lodBias = +1
[Preset]
name = Slightly higher texture detail (-1)
$lodBias = -1
[Preset]
name = Higher texture detail (-2)
$lodBias = -2
[Preset]
name = Much higher texture detail (-3)
$lodBias = -3
[Preset]
name = Very high texture detail (-4)
$lodBias = -4
[Preset]
name = Extremely high texture detail (-8)
$lodBias = -8
[Preset]
name = Highest texture detail (-16)
$lodBias = -16
[TextureRedefine]
formats = 0x31,0x32,0x34,0x35,0x431,0x432,0x433,0x234,0x235
overwriteRelativeLodBias = $lodBias

View File

@ -1,685 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 49ce4bf04a654e80
// ReflExtra - Enhanced Reflections
// Reflections can be seen at greater distances
// shader dumped from BotW v1.3.1, using Cemu 1.9.1
#ifdef VULKAN
layout(set = 1, binding = 10) uniform ufBlock
{
uniform ivec4 uf_remappedPS[10];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(5, 1, 3) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7;
TEXTURE_LAYOUT(8, 1, 5) uniform sampler2D textureUnitPS8;
TEXTURE_LAYOUT(9, 1, 6) uniform samplerCubeArray textureUnitPS9;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2DArray textureUnitPS11;
TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12;
TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14;
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;
// uf_fragCoordScale was moved to the ufBlock
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 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(passParameterSem3);
R3i = floatBitsToInt(passParameterSem4);
R4i = floatBitsToInt(passParameterSem6);
R7i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R4i.zw)).xyzw);
R2i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x);
R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, intBitsToFloat(R0i.xy)).xyzw);
R6i.xyzw = floatBitsToInt(textureGather(textureUnitPS8, 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)));
R1i.x = floatBitsToInt(intBitsToFloat(R10i.y) + intBitsToFloat(uf_remappedPS[3].x));
PS0i = R1i.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;
R3i.y = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(uf_remappedPS[3].y));
PS0i = R3i.y;
// 21
R3i.x = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(uf_remappedPS[3].z));
R6i.y = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0);
PV1i.y = R6i.y;
R0i.z = PV0i.w;
R3i.w = 0;
PS1i = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z)));
// 22
R6i.x = floatBitsToInt(min(intBitsToFloat(R127i.z), 1.0));
R1i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.y),intBitsToFloat(PS1i)) + 1.5));
R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y)));
R1i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.x),intBitsToFloat(PS1i)) + 1.5));
R3i.z = int(intBitsToFloat(R127i.w));
PS0i = R3i.z;
// 0
R0i.x = R1i.y;
R0i.y = R1i.w;
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(R1i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.x),-0.0),vec4(intBitsToFloat(R1i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.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.z) + intBitsToFloat(0x3c23d70a));
PV0i.x = clampFI32(PV0i.x);
R124i.y = R3i.z & 0x000000fc;
R124i.z = floatBitsToInt(-(intBitsToFloat(R6i.x)) + 1.0);
R124i.w = 0;
tempResultf = 1.0 / sqrt(intBitsToFloat(PV1i.x));
PS0i = floatBitsToInt(tempResultf);
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(PS0i)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.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(R6i.y) * 0.5 + 0.5));
R126i.x = floatBitsToInt(float(backupReg0i));
PS0i = R126i.x;
// 5
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;
R125i.w = tempi.x;
R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.z)));
PS1i = R125i.y;
// 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;
R127i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
PS0i = R127i.z;
// 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);
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.z),intBitsToFloat(PS1i)) + -(intBitsToFloat(PS1i))));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R126i.w)));
R125i.z = floatBitsToInt(intBitsToFloat(R125i.z) / 2.0);
R6i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3b820821));
PV0i.w = R6i.w;
R124i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R127i.z)) + intBitsToFloat(R127i.z)));
PS0i = R124i.y;
// 9
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R6i.x)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y)));
PV1i.x = R123i.x;
R126i.y = R127i.w;
R126i.y = floatBitsToInt(intBitsToFloat(R126i.y) * 2.0);
R127i.z = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + 4.0));
R7i.w = floatBitsToInt((intBitsToFloat(PV0i.w) * 0.25 + 0.25));
R7i.y = ((PV0i.x == 0)?(0):(0x3f800000));
PS1i = R7i.y;
// 10
backupReg0i = R6i.x;
backupReg0i = R6i.x;
backupReg1i = R125i.y;
R6i.x = R127i.w;
R6i.x = clampFI32(R6i.x);
PV0i.x = R6i.x;
R125i.y = floatBitsToInt(intBitsToFloat(R127i.y) + 1.0);
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R125i.z))) + intBitsToFloat(backupReg0i)));
PV0i.z = R123i.z;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.x)));
R124i.z = floatBitsToInt((-(intBitsToFloat(R6i.w)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a)));
PS0i = R124i.z;
// 11
backupReg0i = R127i.w;
backupReg1i = R126i.y;
R126i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R124i.y)) + intBitsToFloat(R124i.y)));
R126i.y = floatBitsToInt(intBitsToFloat(R125i.z) + intBitsToFloat(PV0i.z));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),-(intBitsToFloat(R125i.z))) + intBitsToFloat(PV0i.x)));
PV1i.z = R123i.z;
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i)));
PS1i = floatBitsToInt(1.0 / intBitsToFloat(R127i.z));
// 12
backupReg0i = R127i.y;
backupReg1i = R125i.z;
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PS1i)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R6i.w)) + intBitsToFloat(R124i.z)));
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R6i.w)) + intBitsToFloat(R124i.z)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y)));
PV0i.w = R123i.w;
R127i.z = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(PV1i.z));
PS0i = R127i.z;
// 13
backupReg0i = R124i.y;
backupReg1i = R126i.x;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R6i.w)) + intBitsToFloat(R124i.z)));
PV1i.x = R126i.x;
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].w), intBitsToFloat(uf_remappedPS[7].w)));
R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(R127i.w)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(backupReg1i)));
PV1i.w = R127i.w;
R124i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.w));
PS1i = R124i.z;
// 14
backupReg0i = R127i.y;
backupReg0i = R127i.y;
R124i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R127i.y)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(PV1i.w))) + intBitsToFloat(R125i.z)));
R7i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),-(intBitsToFloat(PV1i.w))) + intBitsToFloat(PV1i.x)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(PV1i.w))) + intBitsToFloat(backupReg0i)));
PV0i.w = R123i.w;
R127i.x = floatBitsToInt(1.0 / intBitsToFloat(R126i.y));
PS0i = R127i.x;
// 15
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R126i.x)));
PV1i.x = R123i.x;
R126i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(PV0i.w));
R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R124i.y)));
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R125i.z)));
R124i.y = floatBitsToInt(1.0 / intBitsToFloat(R127i.z));
PS1i = R124i.y;
// 16
backupReg0i = R127i.w;
R7i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R124i.x));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(R124i.z)));
R126i.z = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R127i.y));
R127i.w = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(R7i.z));
R7i.y = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV1i.x));
PS0i = R7i.y;
// 17
R5i.x = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(R126i.w));
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(PV0i.y)));
R12i.z = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8)));
R12i.z = clampFI32(R12i.z);
PV1i.w = floatBitsToInt(0.25 * intBitsToFloat(R127i.x));
R5i.w = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8)));
R5i.w = clampFI32(R5i.w);
PS1i = R5i.w;
// 18
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PV1i.w)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.w)));
R8i.w = floatBitsToInt((intBitsToFloat(R4i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8)));
R8i.w = clampFI32(R8i.w);
PS0i = R3i.z & int(1);
// 19
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z), intBitsToFloat(PV0i.x)));
R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y), intBitsToFloat(PV0i.y)));
R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x), intBitsToFloat(PV0i.z)));
R4i.z = floatBitsToInt(float(PS0i));
PS1i = R4i.z;
// 20
R3i.x = R2i.x;
R3i.y = R2i.y;
R3i.z = floatBitsToInt(roundEven(1.0));
R4i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R8i.xy)).x);
R13i.xyz = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R2i.xy)).xyz);
R11i.xyz = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).xyz);
R1i.xyzw = floatBitsToInt(textureLod(textureUnitPS2, intBitsToFloat(R2i.xy),0.0).xyzw);
R3i.xyz = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R3i.z))).xyz);
///R0i.xyz = floatBitsToInt(textureLod(textureUnitPS9, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex9),intBitsToFloat(R0i.w)).xyz);
R0i.xyz = floatBitsToInt(textureLod(textureUnitPS9, vec4(redcCUBEReverse(intBitsToFloat(R0i.xy),R0i.z),cubeMapArrayIndex9),0.0).xyz);
R2i.xyz = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R2i.xy)).xyz);
// 0
R123i.x = floatBitsToInt((intBitsToFloat(R13i.y) * 0.5 + 0.5));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.y),-(intBitsToFloat(R7i.w))) + intBitsToFloat(R13i.y)));
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;
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(R6i.x)));
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R5i.x)) + intBitsToFloat(R3i.z)));
PS0i = R126i.w;
// 1
PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)));
PV1i.y = floatBitsToInt(intBitsToFloat(R6i.x) + intBitsToFloat(PV0i.x));
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)));
PS1i = floatBitsToInt(intBitsToFloat(R7i.w) + intBitsToFloat(PV0i.y));
// 2
R127i.x = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV1i.w));
PV0i.x = R127i.x;
R126i.y = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(PV1i.z));
PV0i.y = R126i.y;
PV0i.z = floatBitsToInt(-(intBitsToFloat(R8i.z)) + intBitsToFloat(PV1i.x));
R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PV1i.y)));
R124i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),-(intBitsToFloat(R1i.w))) + intBitsToFloat(PS1i)));
PS0i = R124i.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;
R125i.y = tempi.x;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x), intBitsToFloat(R127i.w)));
// 4
backupReg0i = R126i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x)));
PV0i.x = R123i.x;
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R6i.z)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(R13i.z)));
R127i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.w)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i)));
// 5
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R7i.y)) + intBitsToFloat(R3i.y)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R7i.x)) + intBitsToFloat(R3i.x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.z), intBitsToFloat(PV0i.z)));
// 6
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R7i.x)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.z)));
PV0i.y = R123i.y;
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R5i.x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.y), intBitsToFloat(R7i.y)));
// 7
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R126i.w)));
PV1i.x = R123i.x;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y)));
PV1i.z = R123i.z;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R5i.y)));
PV1i.w = R126i.w;
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y));
PS1i = floatBitsToInt(tempResultf);
// 8
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.x)));
PV0i.y = R123i.y;
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.x)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i)));
// 9
R7i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(PV0i.y)));
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
R0i.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(R7i.w)) + intBitsToFloat(R11i.x)));
PV0i.x = R123i.x;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z),intBitsToFloat(R7i.w)) + intBitsToFloat(R11i.z)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(R7i.w)) + intBitsToFloat(R11i.y)));
PV0i.w = R123i.w;
// 1
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R0i.x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R0i.x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R0i.x)));
// 2
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R5i.w)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R12i.z)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R8i.w)));
// 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
PV0i.y = floatBitsToInt(intBitsToFloat(R0i.z) + intBitsToFloat(PV1i.x));
PV0i.z = floatBitsToInt(intBitsToFloat(R7i.x) + intBitsToFloat(PV1i.y));
PV0i.w = floatBitsToInt(intBitsToFloat(R5i.x) + 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));
}

View File

@ -1,684 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 8ff2cf86e789335f
// ReflExtra - Enhanced Reflections
// Reflections can be seen at greater distances
// shader dumped from BotW v1.4.0, using Cemu 1.11.1
#ifdef VULKAN
layout(set = 1, binding = 10) uniform ufBlock
{
uniform ivec4 uf_remappedPS[10];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(5, 1, 3) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7;
TEXTURE_LAYOUT(8, 1, 5) uniform sampler2D textureUnitPS8;
TEXTURE_LAYOUT(9, 1, 6) uniform samplerCubeArray textureUnitPS9;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2DArray textureUnitPS11;
TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12;
TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14;
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;
// uf_fragCoordScale was moved to the ufBlock
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 cubeMapArrayIndex9 = 0.0;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem1);
R2i = floatBitsToInt(passParameterSem3);
R3i = floatBitsToInt(passParameterSem4);
R4i = floatBitsToInt(passParameterSem6);
R7i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R4i.zw)).xyzw);
R2i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).x);
R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, intBitsToFloat(R0i.xy)).xyzw);
R6i.xyzw = floatBitsToInt(textureGather(textureUnitPS8, 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;
R2i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)));
PS1i = R2i.z;
// 2
R12i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(R127i.w))));
R12i.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(R12i.x),intBitsToFloat(R12i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R12i.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;
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
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.x), intBitsToFloat(PS0i)));
R13i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.y), intBitsToFloat(PS0i)));
R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.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(R2i.x),intBitsToFloat(R13i.y),intBitsToFloat(R9i.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(R2i.x)));
PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) + -(intBitsToFloat(backupReg0i)));
R126i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R127i.w)) + intBitsToFloat(R13i.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(R9i.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);
R11i.z = floatBitsToInt(roundEven(0.0));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.w));
R10i.w = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + intBitsToFloat(0x40400000)));
PS0i = R10i.w;
// 15
R11i.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(R2i.x) + intBitsToFloat(uf_remappedPS[3].x));
PV1i.w = floatBitsToInt(-(intBitsToFloat(R125i.x)) + intBitsToFloat(PV0i.y));
R1i.y = floatBitsToInt(intBitsToFloat(R13i.y) + intBitsToFloat(uf_remappedPS[3].y));
PS1i = R1i.y;
// 16
R125i.x = floatBitsToInt(max(-(intBitsToFloat(R127i.y)), 0.0));
R11i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R0i.y)));
R6i.z = floatBitsToInt(intBitsToFloat(R9i.z) + intBitsToFloat(uf_remappedPS[3].z));
R127i.w = floatBitsToInt(intBitsToFloat(R8i.w) * intBitsToFloat(0x437f0000));
R6i.y = floatBitsToInt(-(intBitsToFloat(R7i.w)) + 1.0);
PS0i = R6i.y;
// 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
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;
R2i.y = floatBitsToInt(min(intBitsToFloat(R125i.x), 1.0));
PS0i = R2i.y;
// 21
R3i.x = 0;
R3i.y = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x437f0000));
R10i.z = PV0i.w;
R3i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R7i.w)),intBitsToFloat(R6i.y)) + intBitsToFloat(R6i.y)));
R3i.z = floatBitsToInt(1.0 / abs(intBitsToFloat(PV0i.z)));
PS1i = R3i.z;
// 0
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(uf_remappedPS[7].w)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R3i.z)) + 1.5));
PV0i.y = R123i.y;
R124i.z = R4i.z & 0x000000fc;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R3i.z)) + 1.5));
PV0i.w = R123i.w;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(uf_remappedPS[7].w)));
PS0i = R127i.y;
// 1
R10i.x = PV0i.y;
R10i.y = PV0i.w;
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(uf_remappedPS[7].w)));
R127i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(0x3c23d70a));
R127i.w = clampFI32(R127i.w);
R126i.z = floatBitsToInt(-(intBitsToFloat(R2i.y)) + 1.0);
PS1i = R126i.z;
// 2
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R6i.z),-0.0),vec4(intBitsToFloat(R1i.z),intBitsToFloat(R1i.y),intBitsToFloat(R6i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R124i.y = int(intBitsToFloat(R3i.y));
PS0i = R124i.y;
// 3
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.z)),vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R127i.y)),-(intBitsToFloat(R125i.z)),-(intBitsToFloat(R3i.x)))));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R126i.w = tempi.x;
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x));
PS1i = floatBitsToInt(tempResultf);
// 4
backupReg0i = R124i.z;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS1i)));
R124i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.z), intBitsToFloat(PS1i)));
R127i.x = floatBitsToInt(float(backupReg0i));
PS0i = R127i.x;
// 5
backupReg0i = R126i.z;
backupReg0i = R126i.z;
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[7].w)));
PV1i.x = R124i.x;
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[7].w)));
PV1i.y = R126i.y;
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[7].w)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt((intBitsToFloat(R6i.y) * 0.5 + 0.5));
R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(backupReg0i)) + intBitsToFloat(backupReg0i)));
PS1i = R125i.y;
// 6
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 = R124i.y & int(1);
PS0i = R126i.x;
// 7
tempi.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R125i.x)),-(intBitsToFloat(R127i.y)),-(intBitsToFloat(R125i.z)),-0.0),vec4(-(intBitsToFloat(R124i.x)),-(intBitsToFloat(R126i.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;
R125i.w = tempi.x;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
// 8
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(R127i.w)));
R125i.x = floatBitsToInt(intBitsToFloat(R125i.x) / 2.0);
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(PS1i)) + -(intBitsToFloat(PS1i))));
PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
R3i.w = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3b820821));
PV0i.w = R3i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y)));
PS0i = R122i.x;
// 9
backupReg0i = R125i.y;
R127i.x = R126i.w;
R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 2.0);
R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z)));
R126i.z = floatBitsToInt((-(intBitsToFloat(R7i.w)) * intBitsToFloat(0x40400000) + 4.0));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS0i)));
R7i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * 0.25 + 0.25));
PS1i = R7i.y;
// 10
R3i.x = R126i.w;
R3i.x = clampFI32(R3i.x);
R126i.y = ((R126i.x == 0)?(0):(0x3f800000));
PV0i.z = floatBitsToInt(intBitsToFloat(R127i.y) + 1.0);
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R2i.y)));
PV0i.w = R123i.w;
R125i.z = floatBitsToInt((-(intBitsToFloat(R3i.w)) * intBitsToFloat(0x3d23d70a) + intBitsToFloat(0x3d23d70a)));
PS0i = R125i.z;
// 11
backupReg0i = R127i.y;
backupReg1i = R126i.z;
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R125i.y)) + intBitsToFloat(R125i.y)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV0i.z)) + intBitsToFloat(PV0i.z)));
R126i.z = floatBitsToInt(intBitsToFloat(R125i.x) + intBitsToFloat(PV0i.w));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(R127i.x)));
PS1i = floatBitsToInt(1.0 / intBitsToFloat(backupReg1i));
// 12
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),-(intBitsToFloat(R125i.x))) + intBitsToFloat(R3i.x)));
PV0i.y = R123i.y;
R6i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(PV1i.w)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PV1i.x)));
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),intBitsToFloat(R3i.w)) + intBitsToFloat(R125i.z)));
PS0i = R127i.x;
// 13
backupReg0i = R125i.x;
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[7].w), intBitsToFloat(uf_remappedPS[7].w)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.x),intBitsToFloat(R3i.w)) + intBitsToFloat(R125i.z)));
PV1i.y = R123i.y;
R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(PV0i.y));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.z),intBitsToFloat(R3i.w)) + intBitsToFloat(R125i.z)));
PV1i.w = R127i.w;
R125i.z = floatBitsToInt(1.0 / intBitsToFloat(R127i.y));
PS1i = R125i.z;
// 14
backupReg0i = R126i.z;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R124i.x))) + intBitsToFloat(PV1i.y)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),-(intBitsToFloat(R126i.w))) + intBitsToFloat(PV1i.w)));
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R127i.x)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(PV1i.y)));
PV0i.w = R123i.w;
R7i.x = floatBitsToInt(1.0 / intBitsToFloat(backupReg0i));
PS0i = R7i.x;
// 15
backupReg0i = R127i.w;
backupReg0i = R127i.w;
backupReg1i = R127i.z;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),-(intBitsToFloat(R124i.x))) + intBitsToFloat(R127i.x)));
PV1i.x = R123i.x;
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R125i.z)));
R127i.z = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(PV0i.w));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),-(intBitsToFloat(R124i.x))) + intBitsToFloat(backupReg0i)));
R126i.y = floatBitsToInt(1.0 / intBitsToFloat(backupReg1i));
PS1i = R126i.y;
// 16
backupReg0i = R126i.x;
backupReg1i = R126i.w;
R126i.x = floatBitsToInt(intBitsToFloat(R126i.w) + intBitsToFloat(R127i.y));
R2i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(backupReg0i));
R7i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R125i.x)));
R126i.w = floatBitsToInt(intBitsToFloat(backupReg1i) + intBitsToFloat(R126i.z));
R6i.y = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(PV1i.x));
PS0i = R6i.y;
// 17
backupReg0i = R7i.x;
R7i.x = floatBitsToInt(intBitsToFloat(R124i.x) + intBitsToFloat(R127i.w));
R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R125i.y)));
R3i.z = floatBitsToInt((intBitsToFloat(R8i.x) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8)));
R3i.z = clampFI32(R3i.z);
PV1i.w = floatBitsToInt(0.25 * intBitsToFloat(backupReg0i));
R0i.w = floatBitsToInt((intBitsToFloat(R8i.y) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8)));
R0i.w = clampFI32(R0i.w);
PS1i = R0i.w;
// 18
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PV1i.w)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PV1i.w)));
R6i.w = floatBitsToInt((intBitsToFloat(R8i.z) * intBitsToFloat(0x3f895ef0) + intBitsToFloat(0xba0a8ec8)));
R6i.w = clampFI32(R6i.w);
PS0i = R4i.z & int(1);
// 19
R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z), intBitsToFloat(PV0i.x)));
R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y), intBitsToFloat(PV0i.y)));
R7i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x), intBitsToFloat(PV0i.z)));
R8i.z = floatBitsToInt(float(PS0i));
PS1i = R8i.z;
// 20
R4i.x = R11i.x;
R4i.y = R11i.y;
R4i.z = floatBitsToInt(roundEven(1.0));
R8i.w = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R9i.xy)).x);
R13i.xzw = floatBitsToInt(texture(textureUnitPS12, intBitsToFloat(R11i.xy)).xzw);
R0i.xyz = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z))).xyz);
R1i.xyzw = floatBitsToInt(textureLod(textureUnitPS2, intBitsToFloat(R11i.xy),0.0).xyzw);
R4i.xyz = floatBitsToInt(texture(textureUnitPS11, vec3(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z))).xyz);
///R10i.xyz = floatBitsToInt(textureLod(textureUnitPS9, vec4(redcCUBEReverse(intBitsToFloat(R10i.xy),R10i.z),cubeMapArrayIndex9),intBitsToFloat(R10i.w)).xyz);
R10i.xyz = floatBitsToInt(textureLod(textureUnitPS9, vec4(redcCUBEReverse(intBitsToFloat(R10i.xy),R10i.z),cubeMapArrayIndex9),0.0).xyz);
R11i.xyz = floatBitsToInt(texture(textureUnitPS14, intBitsToFloat(R11i.xy)).xyz);
// 0
R123i.x = floatBitsToInt((intBitsToFloat(R13i.w) * 0.5 + 0.5));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.w),-(intBitsToFloat(R7i.y))) + intBitsToFloat(R13i.w)));
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;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.x), intBitsToFloat(R3i.x)));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R7i.x)) + intBitsToFloat(R4i.z)));
PS0i = R127i.w;
// 1
PV1i.x = floatBitsToInt(-(intBitsToFloat(PV0i.z)));
PV1i.y = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(PV0i.x));
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)));
PS1i = floatBitsToInt(intBitsToFloat(R7i.y) + intBitsToFloat(PV0i.y));
// 2
R126i.x = floatBitsToInt(-(intBitsToFloat(R12i.x)) + intBitsToFloat(PV1i.w));
PV0i.x = R126i.x;
R126i.y = floatBitsToInt(-(intBitsToFloat(R12i.y)) + intBitsToFloat(PV1i.z));
PV0i.y = R126i.y;
PV0i.z = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x));
R8i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.w), intBitsToFloat(PV1i.y)));
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),-(intBitsToFloat(R1i.w))) + intBitsToFloat(PS1i)));
PS0i = R125i.y;
// 3
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R13i.y),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;
R127i.y = tempi.x;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].x), intBitsToFloat(R126i.w)));
// 4
backupReg0i = R126i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R126i.x)));
PV0i.x = R123i.x;
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PS1i), intBitsToFloat(R7i.z)));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R13i.z), intBitsToFloat(R13i.z)));
R126i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R13i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg0i)));
// 5
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R2i.y)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R2i.y)) + intBitsToFloat(R4i.x)));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
R125i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R6i.y)));
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(R7i.x)));
// 6
backupReg0i = R127i.w;
backupReg1i = R127i.z;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(R4i.y)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.w),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.z)));
PV0i.y = R123i.y;
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),intBitsToFloat(PV1i.x)) + intBitsToFloat(PV1i.y)));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(PS1i)) + intBitsToFloat(backupReg0i)));
R4i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(backupReg1i)));
PS0i = R4i.w;
// 7
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),intBitsToFloat(R125i.w)) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.y), intBitsToFloat(R3i.y)));
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.y));
PS1i = floatBitsToInt(tempResultf);
// 8
backupReg0i = R8i.y;
backupReg1i = R5i.z;
R1i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R7i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(R127i.z)));
R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(PV1i.w)) + intBitsToFloat(R127i.w)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.y)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.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(R6i.z)) + 1.0));
PV1i.y = R123i.y;
// 12
R10i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.w)),intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.y)));
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].x),intBitsToFloat(R8i.w)) + intBitsToFloat(R0i.x)));
PV0i.x = R123i.x;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].z),intBitsToFloat(R8i.w)) + intBitsToFloat(R0i.z)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[8].y),intBitsToFloat(R8i.w)) + intBitsToFloat(R0i.y)));
PV0i.w = R123i.w;
// 1
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R10i.x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(R10i.x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R10i.x)));
// 2
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R0i.w)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R3i.z)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R6i.w)));
// 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
PV0i.y = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(PV1i.x));
PV0i.z = floatBitsToInt(intBitsToFloat(R5i.z) + intBitsToFloat(PV1i.y));
PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) + intBitsToFloat(PV1i.z));
// 5
R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R11i.x)));
R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R11i.y)));
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R13i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R11i.z)));
// export
passPixelColor0 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = "Enhanced Reflections"
path = "The Legend of Zelda: Breath of the Wild/Enhancements/Enhanced Reflections"
description = Extends the reflections in shrines and some other surfaces. Made by Kiri.
version = 4

View File

@ -1,104 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 22c410044398c7af
// Fixed radius blur
// shadow pass blur v
const float resXScale = $shadowRes;
const float resYScale = $shadowRes;
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
};
#else
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
#endif
// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 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()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R2f = vec4(0.0);
uvec4 attrDecoder;
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 = floatBitsToInt(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;
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(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;
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
// 0
backupReg0f = R1f.x;
backupReg1f = R1f.y;
R1f.x = backupReg0f;
R1f.x *= 2.0;
R1f.y = backupReg1f;
R1f.y *= 2.0;
R1f.z = -(1.0);
R1f.w = 1.0;
PS0f = intBitsToFloat(uf_remappedVS[0].y) / resYScale * intBitsToFloat(0x3fae8a72);
// 1
backupReg0f = R2f.y;
R0f.x = R2f.x;
R0f.y = R2f.y;
R2f.z = R2f.y + PS0f;
R2f.w = R2f.y;
R2f.y = backupReg0f + -(PS0f);
PS1f = R2f.y;
// export
SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export
passParameterSem0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
// export
// skipped export to semanticId 255
}

View File

@ -1,108 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 2a2f55a2b2d64474
// Fixed radius blur
// shadow pass blur h
const float resXScale = $shadowRes;
const float resYScale = $shadowRes;
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
};
#else
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
#endif
// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 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()
{
vec4 R0f = vec4(0.0);
vec4 R1f = vec4(0.0);
vec4 R2f = vec4(0.0);
vec4 R3f = vec4(0.0);
vec4 R127f = vec4(0.0);
uvec4 attrDecoder;
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 = floatBitsToInt(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;
R1f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(int(attrDecoder.z)), intBitsToFloat(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;
R2f = vec4(intBitsToFloat(int(attrDecoder.x)), intBitsToFloat(int(attrDecoder.y)), intBitsToFloat(floatBitsToInt(0.0)), intBitsToFloat(floatBitsToInt(1.0)));
// 0
backupReg0f = R1f.x;
backupReg1f = R1f.y;
R1f.x = backupReg0f;
R1f.x *= 2.0;
R1f.y = backupReg1f;
R1f.y *= 2.0;
R1f.z = -(1.0);
R1f.w = 1.0;
R127f.x = intBitsToFloat(uf_remappedVS[0].x) / resXScale * intBitsToFloat(0x3fae8a72);
PS0f = R127f.x;
// 1
R3f.x = R2f.x;
R3f.y = R2f.y;
R0f.z = R2f.x + PS0f;
R0f.w = R2f.x;
R0f.x = R2f.y;
PS1f = R0f.x;
// 2
R0f.y = R2f.x + -(R127f.x);
// export
SET_POSITION(vec4(R1f.x, R1f.y, R1f.z, R1f.w));
// export
passParameterSem0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
// export
// skipped export to semanticId 255
}

View File

@ -1,740 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader 88133ee405eaae28
// Shadow 2x2 box blur fix
// shader dumped from BotW v1.4.0, using Cemu 1.11.1
const float resXScale = $shadowRes;
const float resYScale = $shadowRes;
UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1
{
vec4 uf_blockPS1[1024];
};
UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6
{
vec4 uf_blockPS6[1024];
};
UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10
{
vec4 uf_blockPS10[1024];
};
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArrayShadow textureUnitPS8;
TEXTURE_LAYOUT(15, 1, 5) uniform sampler2D textureUnitPS15;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem5;
layout(location = 2) in vec4 passParameterSem6;
layout(location = 5) out vec4 passPixelColor5;
#ifdef VULKAN
layout(set = 1, binding = 6) uniform ufBlock
{
uniform vec4 uf_fragCoordScale;
};
#else
uniform vec2 uf_fragCoordScale;
#endif
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[3];
bool activeMaskStackC[4];
activeMaskStack[0] = false;
activeMaskStack[1] = false;
activeMaskStackC[0] = false;
activeMaskStackC[1] = false;
activeMaskStackC[2] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem5);
R2i = floatBitsToInt(passParameterSem6);
if( activeMaskStackC[1] == true ) {
R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x);
R7i.xzw = floatBitsToInt(textureGather(textureUnitPS6, vec2(0.0001) + intBitsToFloat(R0i.xy)).xzw);
R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw);
R2i.xy = floatBitsToInt(textureLod(textureUnitPS0, intBitsToFloat(R2i.xy),0.0).xw);
}
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R7i.w)) + uf_blockPS1[14].x));
PV0i.x = R123i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R7i.z)) + uf_blockPS1[14].x));
R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R7i.x)) + uf_blockPS1[14].x));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x));
PV0i.w = R123i.w;
R127i.x = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0)));
PS0i = R127i.x;
// 1
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w))));
R8i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w))));
R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)));
R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0)));
R125i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 2.0 + -(1.0)));
PS1i = R125i.z;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(R127i.y))));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R127i.y))));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.z))));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.z))));
PS0i = R126i.z;
// 3
R125i.x = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.z));
R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z)));
R124i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.x));
R125i.w = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(PV0i.y));
R126i.y = floatBitsToInt(-(intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.w));
PS1i = R126i.y;
// 4
backupReg0i = R126i.z;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R3i.x),intBitsToFloat(R8i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R8i.y),intBitsToFloat(R12i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.z = tempi.x;
R126i.x = floatBitsToInt(-(intBitsToFloat(R8i.y)) + intBitsToFloat(backupReg0i));
PS0i = R126i.x;
// 5
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.z = tempi.x;
R126i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(R127i.y));
PS1i = R126i.w;
// 6
backupReg0i = R126i.z;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), uf_blockPS6[43].x));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.y)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i)));
R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R126i.x)));
R125i.y = floatBitsToInt(sqrt(intBitsToFloat(backupReg0i)));
PS0i = R125i.y;
// 7
backupReg0i = R127i.z;
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), uf_blockPS6[45].x));
R124i.y = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000));
R127i.z = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0)));
R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.x)));
tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i));
PS1i = floatBitsToInt(tempResultf);
// 8
backupReg0i = R125i.z;
R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i)));
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i)));
R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS1[18].y, uf_blockPS1[18].z));
PV0i.z = R125i.z;
R127i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd));
R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i)));
PS0i = R2i.z;
// 9
R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R126i.z)));
R3i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R125i.x)) + intBitsToFloat(R127i.y)));
R126i.z = floatBitsToInt((intBitsToFloat(R2i.y) * 2.0 + -(1.0)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R8i.y),uf_blockPS6[45].y) + intBitsToFloat(R124i.x)));
PV1i.w = R123i.w;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R127i.z)));
PS1i = R126i.w;
// 10
backupReg0i = R126i.y;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.w)));
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(R4i.w)));
R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R125i.w)) + intBitsToFloat(R124i.w)));
PV0i.z = R1i.z;
R125i.w = R4i.x;
R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0);
R124i.z = R4i.y;
R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0);
PS0i = R124i.z;
// 11
R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R3i.y)),-(intBitsToFloat(PV0i.z)),0.0)));
PV1i.x = R124i.x;
PV1i.y = R124i.x;
PV1i.z = R124i.x;
PV1i.w = R124i.x;
R2i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w)));
R2i.x = clampFI32(R2i.x);
PS1i = R2i.x;
// 12
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), -(intBitsToFloat(R126i.z))));
PV0i.x = R125i.x;
R127i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0xbb6fe5d7));
PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3ca30589));
PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3ca30589));
R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0xbb6fe5d7));
PS0i = R126i.z;
// 13
R7i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R126i.y));
R1i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.w)));
R3i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y));
R1i.w = 0x3f800000;
R6i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.z)));
PS1i = R6i.x;
// 14
R5i.x = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R126i.z)));
R5i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R127i.y)));
R13i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R126i.x));
R12i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w)));
R12i.w = clampFI32(R12i.w);
PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y));
// 15
backupReg0i = R124i.y;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(PS0i)));
PV1i.x = R126i.x;
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PS0i)));
PV1i.y = R124i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i)));
PS1i = int(intBitsToFloat(backupReg0i));
// 16
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R2i.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 = PS1i & int(1);
// 17
R12i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.x)));
R7i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.y)));
R13i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0);
R13i.w = clampFI32(R13i.w);
R2i.y = ((PS0i == 0)?(0):(0x3f800000));
PS1i = R2i.y;
// 18
tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x));
R2i.w = floatBitsToInt(tempResultf);
PS0i = R2i.w;
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0);
R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w));
R8i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w));
PS0i = R8i.x;
// 1
R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w));
R14i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x));
R14i.w = clampFI32(R14i.w);
R4i.w = 0;
PS1i = R4i.w;
// 2
predResult = (1.0 > intBitsToFloat(R12i.w));
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R13i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R6i.x));
R13i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R1i.y));
R14i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R6i.x)));
PS0i = R14i.x;
// 1
R15i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R5i.x));
R14i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R1i.y)));
R15i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R5i.y));
PS1i = R15i.y;
// 2
R16i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R5i.x)));
R16i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R5i.y)));
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R4i.x) * 1.5);
PV0i.y = floatBitsToInt(intBitsToFloat(R4i.y) * 1.5);
PV0i.z = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0));
R127i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0));
PS0i = floatBitsToInt(intBitsToFloat(R2i.z) * 1.5);
// 1
backupReg0i = R1i.x;
backupReg1i = R1i.z;
R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.x)));
PV1i.y = PV0i.z & int(1);
R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R3i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y)));
R1i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i)));
PV1i.w = R1i.w;
R122i.x = floatBitsToInt((intBitsToFloat(R3i.z) * 0.25 + 1.0));
PS1i = R122i.x;
// 2
backupReg0i = R2i.y;
R2i.x = floatBitsToInt(uf_blockPS6[53].y/resYScale);
R2i.x = floatBitsToInt(intBitsToFloat(R2i.x) / 2.0);
PV0i.x = R2i.x;
R2i.y = floatBitsToInt(uf_blockPS6[53].x/resXScale);
R2i.y = floatBitsToInt(intBitsToFloat(R2i.y) / 2.0);
PV0i.y = R2i.y;
R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i)));
R3i.w = PV1i.y - R127i.w;
PV0i.w = R3i.w;
PS0i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w)));
// 3
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PS0i)));
PV1i.x = R123i.x;
R3i.y = floatBitsToInt(-(intBitsToFloat(PV0i.x)));
R7i.z = floatBitsToInt(-(intBitsToFloat(PV0i.y)));
PV1i.w = PV0i.w << 0x00000002;
R1i.y = floatBitsToInt(float(PV0i.w));
PS1i = R1i.y;
// 4
R0i.x = PV1i.w + 0x0000002c;
R0i.y = PV1i.w + 0x0000002b;
R0i.z = PV1i.w + 0x0000002a;
R0i.w = PV1i.w + 0x0000002d;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(R1i.x)) + intBitsToFloat(PV1i.x)));
PS0i = R122i.x;
// 5
backupReg0i = R2i.z;
backupReg0i = R2i.z;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(backupReg0i),intBitsToFloat(backupReg0i)),vec4(-(intBitsToFloat(R8i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R10i.z)),-(intBitsToFloat(R4i.w)))));
tempi.x = clampFI32(tempi.x);
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R2i.z = tempi.x;
tempResultf = 1.0 / sqrt(intBitsToFloat(PS0i));
R2i.w = floatBitsToInt(tempResultf);
PS1i = R2i.w;
}
if( activeMaskStackC[2] == true ) {
R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw);
R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw);
R6i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw);
R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw);
}
if( activeMaskStackC[2] == true ) {
// 0
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.w)));
PV0i.x = R127i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R2i.w)));
PV0i.y = R127i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(R2i.w)));
PV0i.z = R127i.z;
R127i.w = R2i.x;
R8i.z = floatBitsToInt(roundEven(intBitsToFloat(R1i.y)));
PS0i = R8i.z;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.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 = PS0i;
PS1i = R9i.z;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.z)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.z)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.y)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R8i.x)),intBitsToFloat(PV1i.x)) + intBitsToFloat(R127i.x)));
PV0i.w = R123i.w;
R10i.z = R8i.z;
PS0i = R10i.z;
// 3
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.w)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.y)));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(PV0i.x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R2i.z)));
R11i.z = R8i.z;
PS1i = R11i.z;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3da1ff2e));
// 5
backupReg0i = R12i.z;
R17i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(PV0i.x)) + intBitsToFloat(R3i.x)));
PV1i.x = R17i.x;
R12i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(R8i.y)));
R12i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg0i)));
// 6
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R5i.x)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R6i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R4i.x)));
// 7
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.x)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R0i.x)));
// 8
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R6i.y)) + intBitsToFloat(R127i.y)));
PV0i.z = R123i.z;
// 9
R127i.x = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.y));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R6i.z)) + intBitsToFloat(PV0i.z)));
PV1i.z = R123i.z;
PV1i.w = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV0i.x));
// 10
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
PV0i.w = floatBitsToInt(intBitsToFloat(R6i.w) + intBitsToFloat(PV1i.z));
R127i.z = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w));
PS0i = R127i.z;
// 11
PV1i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV0i.x));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i)));
PV1i.y = R127i.y;
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i)));
// 12
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(R127i.z)));
PV0i.x = R127i.x;
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0xbb03126f));
R8i.x = floatBitsToInt((uf_blockPS6[53].x / resXScale * 0.5 + intBitsToFloat(PV1i.y)));
PS0i = R8i.x;
// 13
R126i.x = floatBitsToInt((-(intBitsToFloat(R1i.y)) * intBitsToFloat(0x3a03126f) + intBitsToFloat(PV0i.z)));
R126i.x = clampFI32(R126i.x);
PV1i.x = R126i.x;
R8i.y = floatBitsToInt((uf_blockPS6[53].y / resYScale * 0.5 + intBitsToFloat(PV0i.x)));
R9i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R2i.y));
PS1i = R9i.x;
// 14
R10i.x = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(R7i.z));
R9i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(R3i.y));
R8i.w = PV1i.x;
R9i.w = PV1i.x;
PS0i = R9i.w;
// 15
R11i.x = floatBitsToInt((-(uf_blockPS6[53].x) / resXScale * 0.5 + intBitsToFloat(R127i.y)));
R10i.y = floatBitsToInt(intBitsToFloat(R127i.x) + intBitsToFloat(R127i.w));
R10i.w = R126i.x;
R11i.y = floatBitsToInt((-(uf_blockPS6[53].y) / resYScale * 0.5 + intBitsToFloat(R127i.x)));
PS1i = R11i.y;
// 16
R11i.w = R126i.x;
}
if( activeMaskStackC[2] == true ) {
R8i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w))));
R9i.y = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w))));
R10i.x = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),intBitsToFloat(R10i.w))));
R11i.w = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R11i.x),intBitsToFloat(R11i.y),intBitsToFloat(R11i.z),intBitsToFloat(R11i.w))));
}
if( activeMaskStackC[2] == true ) {
activeMaskStack[2] = activeMaskStack[1];
activeMaskStackC[3] = activeMaskStackC[2];
// 0
PV0i.w = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(R9i.y));
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
// 1
R123i.y = floatBitsToInt((intBitsToFloat(R10i.x) * 0.5 + intBitsToFloat(PV0i.w)));
PV1i.y = R123i.y;
// 2
R4i.z = floatBitsToInt((intBitsToFloat(R11i.w) * 0.5 + intBitsToFloat(PV1i.y))/2.0);
PV0i.z = R4i.z;
// 3
PV1i.x = ((1.0 > intBitsToFloat(PV0i.z))?int(0xFFFFFFFF):int(0x0));
// 4
R0i.w = ((R3i.w > 0)?(PV1i.x):(0));
// 5
predResult = (R0i.w != 0);
activeMaskStack[2] = predResult;
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
}
else {
activeMaskStack[2] = false;
activeMaskStackC[3] = false;
}
if( activeMaskStackC[3] == true ) {
// 0
PV0i.z = int(-1) + R3i.w;
// 1
PV1i.y = PV0i.z << 0x00000002;
R4i.x = floatBitsToInt(float(PV0i.z));
PS1i = R4i.x;
// 2
R0i.x = PV1i.y + 0x0000002a;
R0i.y = PV1i.y + 0x0000002d;
R0i.z = PV1i.y + 0x0000002c;
R0i.w = PV1i.y + 0x0000002b;
R5i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i)));
PS0i = R5i.z;
}
if( activeMaskStackC[3] == true ) {
R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw);
R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw);
R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw);
R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw);
}
if( activeMaskStackC[3] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R1i.x)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R2i.x)));
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.y)));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R3i.x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R17i.x), intBitsToFloat(R0i.x)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.z)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.w)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.y)));
PV0i.w = R123i.w;
// 3
R127i.x = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.z));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.y)));
PV1i.w = R123i.w;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.w));
PV0i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.z));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.y));
// 5
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PS0i)));
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS0i)));
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(0xbb03126f));
// 7
R5i.w = floatBitsToInt((-(intBitsToFloat(R4i.x)) * intBitsToFloat(0x3a03126f) + intBitsToFloat(PV0i.y)));
R5i.w = clampFI32(R5i.w);
}
if( activeMaskStackC[3] == true ) {
R5i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),intBitsToFloat(R5i.w))));
}
if( activeMaskStackC[3] == true ) {
// 0
backupReg0i = R4i.z;
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R5i.z)));
}
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
R0i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R15i.xy)).x);
R0i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R16i.xy)).x);
R1i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R13i.xy)).x);
R1i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R14i.xy)).x);
}
if( activeMaskStackC[2] == true ) {
// 0
R127i.x = floatBitsToInt(intBitsToFloat(R7i.w) * intBitsToFloat(0x3f7eb852));
PV0i.x = R127i.x;
PV0i.y = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x41a00000));
R124i.z = floatBitsToInt(-(intBitsToFloat(R4i.z)) + 1.0);
R127i.w = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x3f555555));
// 1
backupReg0i = R0i.x;
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(R0i.y)));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(backupReg0i)));
R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f8ba8d6));
R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0);
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fbc4580));
PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0);
R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.x));
PS1i = R126i.z;
// 2
backupReg0i = R127i.x;
R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.y)) + 1.0));
R127i.x = clampFI32(R127i.x);
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + 0.5));
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.y)) + 0.5));
R125i.z = clampFI32(R125i.z);
PV0i.z = R125i.z;
R126i.w = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i));
PV0i.w = R126i.w;
R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.x)) + 1.0));
R125i.w = clampFI32(R125i.w);
PS0i = R125i.w;
// 3
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.z)) + 0.5));
R126i.x = clampFI32(R126i.x);
PV1i.x = R126i.x;
PV1i.y = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.y)));
PV1i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.z)));
R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + 0.5));
R124i.w = clampFI32(R124i.w);
PV1i.w = R124i.w;
R0i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R126i.z)) + 1.0));
R0i.w = clampFI32(R0i.w);
PS1i = R0i.w;
// 4
backupReg0i = R127i.w;
PV0i.x = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.x)));
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + 0.5));
PV0i.y = R126i.y;
PV0i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R125i.w)) + 0.5));
PV0i.w = R127i.w;
R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.w)) + 1.0));
R125i.y = clampFI32(R125i.y);
PS0i = R125i.y;
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) + -(intBitsToFloat(PV0i.y)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PS0i)) + 0.5));
PV1i.y = R127i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R125i.z) + -(intBitsToFloat(PV0i.w)));
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R0i.w)) + 0.5));
PV1i.w = R126i.w;
R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R12i.w)) + intBitsToFloat(R4i.z)));
PS1i = R3i.w;
// 6
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.w)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(PV1i.y)));
PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(PV1i.w)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.y)));
PV0i.w = R123i.w;
// 7
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e35e743));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e35e743));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.w)) + intBitsToFloat(R127i.y)));
PV1i.w = R123i.w;
// 8
R123i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.x)));
PV0i.x = R123i.x;
R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.y)));
PV0i.w = R123i.w;
// 9
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w));
// 10
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0xbedd476b));
// 11
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c00000));
PV1i.x = clampFI32(PV1i.x);
// 12
R1i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R3i.w = R1i.w;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R0i.x = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x38d1b717) + 0.5));
R0i.y = floatBitsToInt((intBitsToFloat(R13i.z) * intBitsToFloat(0x3903126f) + 0.5));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R7i.y)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0);
PV0i.w = R12i.x;
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
R2i.z = R1i.w;
PS0i = R2i.z;
// 1
R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5);
R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5);
R2i.w = 0x3f800000;
}
if( activeMaskStackC[1] == true ) {
R0i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R0i.xy),0.0).xyz);
R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x);
}
if( activeMaskStackC[1] == true ) {
// 0
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R13i.w))) + intBitsToFloat(R1i.y)));
PS0i = R2i.y;
// 1
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
// 2
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w)));
PV0i.z = R127i.z;
// 3
PV1i.y = floatBitsToInt(intBitsToFloat(R3i.w) + -(intBitsToFloat(PV0i.z)));
// 4
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R14i.w)) + intBitsToFloat(R127i.z)));
PV0i.x = R123i.x;
// 5
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockPS10[3].z) + uf_blockPS10[1].y));
R2i.x = clampFI32(R2i.x);
}
// export
passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
}

View File

@ -1,730 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
// shader ffe0e8c84f6e8da9
// Shadow 2x2 box blur fix
// shader dumped from BotW v1.3.1, using Cemu 1.10.0
const float resXScale = $shadowRes;
const float resYScale = $shadowRes;
UNIFORM_BUFFER_LAYOUT(33, 1, 7) uniform uniformBlockPS1
{
vec4 uf_blockPS1[1024];
};
UNIFORM_BUFFER_LAYOUT(38, 1, 8) uniform uniformBlockPS6
{
vec4 uf_blockPS6[1024];
};
UNIFORM_BUFFER_LAYOUT(42, 1, 9) uniform uniformBlockPS10
{
vec4 uf_blockPS10[1024];
};
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(8, 1, 4) uniform sampler2DArrayShadow textureUnitPS8;
TEXTURE_LAYOUT(15, 1, 5) uniform sampler2D textureUnitPS15;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem5;
layout(location = 2) in vec4 passParameterSem6;
layout(location = 5) out vec4 passPixelColor5;
#ifdef VULKAN
layout(set = 1, binding = 6) uniform ufBlock
{
uniform vec4 uf_fragCoordScale;
};
#else
uniform vec2 uf_fragCoordScale;
#endif
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 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[3];
bool activeMaskStackC[4];
activeMaskStack[0] = false;
activeMaskStack[1] = false;
activeMaskStackC[0] = false;
activeMaskStackC[1] = false;
activeMaskStackC[2] = false;
activeMaskStack[0] = true;
activeMaskStackC[0] = true;
activeMaskStackC[1] = true;
vec3 cubeMapSTM;
int cubeMapFaceId;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem5);
R2i = floatBitsToInt(passParameterSem6);
if( activeMaskStackC[1] == true ) {
R3i.w = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).x);
R6i.xzw = floatBitsToInt(textureGather(textureUnitPS6, vec2(0.0001) + intBitsToFloat(R0i.xy)).xzw);
R4i.xyzw = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R2i.zw)).xyzw);
R2i.xy = floatBitsToInt(texture(textureUnitPS0, intBitsToFloat(R2i.xy)).xw);
}
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.w)) + uf_blockPS1[14].x));
PV0i.x = R123i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.z)) + uf_blockPS1[14].x));
R127i.z = floatBitsToInt((mul_nonIEEE(uf_blockPS1[16].x,intBitsToFloat(R6i.x)) + uf_blockPS1[14].x));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),uf_blockPS1[16].x) + uf_blockPS1[14].x));
PV0i.w = R123i.w;
R127i.x = floatBitsToInt((intBitsToFloat(R4i.x) * 2.0 + -(1.0)));
PS0i = R127i.x;
// 1
R7i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), -(intBitsToFloat(PV0i.w))));
R6i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w))));
R12i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)));
R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * 2.0 + -(1.0)));
R125i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 2.0 + -(1.0)));
PS1i = R125i.z;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(R127i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), -(intBitsToFloat(R127i.y))));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), -(intBitsToFloat(R127i.y))));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), -(intBitsToFloat(R127i.z))));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), -(intBitsToFloat(R127i.z))));
PS0i = R126i.z;
// 3
R125i.x = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.z));
R127i.y = floatBitsToInt(-(intBitsToFloat(R127i.z)));
R124i.z = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(PV0i.x));
R125i.w = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(PV0i.y));
R126i.y = floatBitsToInt(-(intBitsToFloat(R7i.x)) + intBitsToFloat(PV0i.w));
PS1i = R126i.y;
// 4
backupReg0i = R126i.z;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),-0.0),vec4(intBitsToFloat(R7i.x),intBitsToFloat(R6i.y),intBitsToFloat(R12i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.z = tempi.x;
R126i.x = floatBitsToInt(-(intBitsToFloat(R6i.y)) + intBitsToFloat(backupReg0i));
PS0i = R126i.x;
// 5
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R127i.x),intBitsToFloat(R127i.w),intBitsToFloat(R125i.z),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.z = tempi.x;
R126i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) + intBitsToFloat(R127i.y));
PS1i = R126i.w;
// 6
backupReg0i = R126i.z;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[43].x));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R124i.z), intBitsToFloat(R126i.y)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.w), intBitsToFloat(PS1i)));
R124i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R126i.x)));
R125i.y = floatBitsToInt(sqrt(intBitsToFloat(backupReg0i)));
PS0i = R125i.y;
// 7
backupReg0i = R127i.z;
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), uf_blockPS6[45].x));
R124i.y = floatBitsToInt(intBitsToFloat(R4i.w) * intBitsToFloat(0x437f0000));
R127i.z = floatBitsToInt((intBitsToFloat(R2i.x) * 2.0 + -(1.0)));
R4i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[43].y) + intBitsToFloat(PV0i.x)));
tempResultf = 1.0 / sqrt(intBitsToFloat(backupReg0i));
PS1i = floatBitsToInt(tempResultf);
// 8
backupReg0i = R125i.z;
R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i)));
R7i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.w), intBitsToFloat(PS1i)));
R125i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS1[18].y, uf_blockPS1[18].z));
PV0i.z = R125i.z;
R127i.w = floatBitsToInt(-(intBitsToFloat(R12i.z)) * intBitsToFloat(0x3d4ccccd));
R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PS1i)));
PS0i = R9i.z;
// 9
R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R126i.z)));
R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R126i.w)),intBitsToFloat(R125i.x)) + intBitsToFloat(R127i.y)));
R126i.z = floatBitsToInt((intBitsToFloat(R2i.y) * 2.0 + -(1.0)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),uf_blockPS6[45].y) + intBitsToFloat(R124i.x)));
PV1i.w = R123i.w;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R127i.z)));
PS1i = R126i.w;
// 10
backupReg0i = R126i.y;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[45].z) + intBitsToFloat(PV1i.w)));
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R12i.z),uf_blockPS6[43].z) + intBitsToFloat(R4i.w)));
R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R125i.w)) + intBitsToFloat(R124i.w)));
PV0i.z = R1i.z;
R125i.w = R8i.x;
R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0);
R124i.z = R7i.y;
R124i.z = floatBitsToInt(intBitsToFloat(R124i.z) * 2.0);
PS0i = R124i.z;
// 11
R124i.x = floatBitsToInt(dot(vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),-0.0),vec4(-(intBitsToFloat(R1i.x)),-(intBitsToFloat(R1i.y)),-(intBitsToFloat(PV0i.z)),0.0)));
PV1i.x = R124i.x;
PV1i.y = R124i.x;
PV1i.z = R124i.x;
PV1i.w = R124i.x;
R2i.x = floatBitsToInt((-(uf_blockPS6[53].w) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w)));
R2i.x = clampFI32(R2i.x);
PS1i = R2i.x;
// 12
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.z), -(intBitsToFloat(R126i.z))));
PV0i.x = R125i.x;
R127i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0xbb6fe5d7));
PV0i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x3ca30589));
PV0i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3ca30589));
R126i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0xbb6fe5d7));
PS0i = R126i.z;
// 13
R10i.x = floatBitsToInt(uf_blockPS6[43].w + intBitsToFloat(R126i.y));
R3i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.w)));
R2i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R12i.z)), uf_blockPS1[17].y));
R1i.w = 0x3f800000;
R4i.x = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b02da3b) + intBitsToFloat(PV0i.z)));
PS1i = R4i.x;
// 14
R3i.x = floatBitsToInt((intBitsToFloat(R125i.x) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R126i.z)));
R2i.y = floatBitsToInt((intBitsToFloat(R127i.z) * intBitsToFloat(0x3d156fb9) + intBitsToFloat(R127i.y)));
R11i.z = floatBitsToInt(uf_blockPS6[45].w + intBitsToFloat(R126i.x));
R10i.w = floatBitsToInt((-(uf_blockPS6[53].z) * intBitsToFloat(0x3d4ccccd) + intBitsToFloat(R127i.w)));
R10i.w = clampFI32(R10i.w);
PS0i = floatBitsToInt(1.0 / intBitsToFloat(R125i.y));
// 15
backupReg0i = R124i.y;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(PS0i)));
PV1i.x = R126i.x;
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.y), intBitsToFloat(PS0i)));
PV1i.y = R124i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R12i.z), intBitsToFloat(PS0i)));
PS1i = int(intBitsToFloat(backupReg0i));
// 16
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.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 = PS1i & int(1);
// 17
R11i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.x)));
R10i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(R124i.z)) + intBitsToFloat(R124i.y)));
R11i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0);
R11i.w = clampFI32(R11i.w);
R8i.y = ((PS0i == 0)?(0):(0x3f800000));
PS1i = R8i.y;
// 18
tempResultf = 1.0 / sqrt(intBitsToFloat(R124i.x));
R2i.w = floatBitsToInt(tempResultf);
PS0i = R2i.w;
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
PV0i.x = floatBitsToInt(uf_blockPS10[2].z + 1.0);
R9i.y = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].y, uf_blockPS10[2].w));
R9i.x = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].x, uf_blockPS10[2].w));
PS0i = R9i.x;
// 1
R10i.z = floatBitsToInt(mul_nonIEEE(uf_blockPS6[4].z, uf_blockPS10[2].w));
R12i.w = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.x));
R12i.w = clampFI32(R12i.w);
R7i.w = 0;
PS1i = R7i.w;
// 2
predResult = (1.0 > intBitsToFloat(R10i.w));
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R12i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R4i.x));
R12i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R3i.y));
R13i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R4i.x)));
PS0i = R13i.x;
// 1
R14i.x = floatBitsToInt(intBitsToFloat(R0i.x) + intBitsToFloat(R3i.x));
R13i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R3i.y)));
R14i.y = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(R2i.y));
PS1i = R14i.y;
// 2
R15i.x = floatBitsToInt(intBitsToFloat(R0i.x) + -(intBitsToFloat(R3i.x)));
R15i.y = floatBitsToInt(intBitsToFloat(R0i.y) + -(intBitsToFloat(R2i.y)));
}
if( activeMaskStackC[2] == true ) {
// 0
R127i.x = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].y)?int(0xFFFFFFFF):int(0x0));
PV0i.y = floatBitsToInt(intBitsToFloat(R7i.y) * 1.5);
PV0i.z = floatBitsToInt(intBitsToFloat(R8i.x) * 1.5);
PV0i.w = ((-(intBitsToFloat(R12i.z)) > uf_blockPS1[58].x)?int(0xFFFFFFFF):int(0x0));
PS0i = floatBitsToInt(intBitsToFloat(R9i.z) * 1.5);
// 1
backupReg0i = R1i.x;
backupReg1i = R1i.z;
R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.z)));
PV1i.y = PV0i.w & int(1);
R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R1i.y)),intBitsToFloat(R2i.w)) + intBitsToFloat(PV0i.y)));
R1i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg1i)),intBitsToFloat(R2i.w)) + intBitsToFloat(PS0i)));
R122i.x = floatBitsToInt((intBitsToFloat(R2i.z) * 0.25 + 1.0));
PS1i = R122i.x;
// 2
R2i.x = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i));
R2i.y = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i));
R2i.z = floatBitsToInt(intBitsToFloat(0x3da22222) * intBitsToFloat(PS1i));
R13i.w = PV1i.y - R127i.x;
PV0i.w = R13i.w;
PS0i = floatBitsToInt(uf_blockPS6[53].y/resYScale);
PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0);
// 3
R6i.x = floatBitsToInt(uf_blockPS6[53].x/resXScale);
R6i.x = floatBitsToInt(intBitsToFloat(R6i.x) / 2.0);
PV1i.y = PV0i.w << 0x00000002;
R6i.z = floatBitsToInt(-(intBitsToFloat(PS0i)));
R2i.w = PS0i;
PS1i = floatBitsToInt(float(PV0i.w));
// 4
R0i.x = PV1i.y + 0x0000002b;
R0i.y = PV1i.y + 0x0000002d;
R0i.z = PV1i.y + 0x0000002a;
R0i.w = PV1i.y + 0x0000002c;
R7i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i)));
PS0i = R7i.z;
// 5
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),-0.0),vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w),0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R1i.y = tempi.x;
R8i.z = PS0i;
PS1i = R8i.z;
}
if( activeMaskStackC[2] == true ) {
R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw);
R4i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw);
R5i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw);
R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw);
}
if( activeMaskStackC[2] == true ) {
// 0
R126i.x = floatBitsToInt(dot(vec4(intBitsToFloat(R8i.x),intBitsToFloat(R7i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.z)),vec4(-(intBitsToFloat(R9i.x)),-(intBitsToFloat(R9i.y)),-(intBitsToFloat(R10i.z)),-(intBitsToFloat(R7i.w)))));
R126i.x = clampFI32(R126i.x);
PV0i.x = R126i.x;
PV0i.y = R126i.x;
PV0i.z = R126i.x;
PV0i.w = R126i.x;
tempResultf = 1.0 / sqrt(intBitsToFloat(R1i.y));
PS0i = floatBitsToInt(tempResultf);
// 1
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i)));
PV1i.x = R127i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i)));
PV1i.y = R127i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS0i)));
PV1i.z = R127i.z;
R126i.w = floatBitsToInt(-(intBitsToFloat(R6i.x)));
R1i.z = R7i.z;
PS1i = R1i.z;
// 2
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R10i.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;
R9i.z = R7i.z;
PS0i = R9i.z;
// 3
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV0i.x)),intBitsToFloat(PV0i.x)) + 1.0));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.x)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R10i.z)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.z)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R9i.y)),intBitsToFloat(PV0i.x)) + intBitsToFloat(R127i.y)));
PV1i.w = R123i.w;
// 4
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R2i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(backupReg0i)));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(R2i.x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R2i.z)));
// 5
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(PV0i.y)));
// 6
backupReg0i = R6i.y;
R16i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.z)) + intBitsToFloat(R7i.x)));
PV0i.x = R16i.x;
R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.x),intBitsToFloat(PV1i.z)) + intBitsToFloat(backupReg0i)));
R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV1i.z)) + intBitsToFloat(R12i.z)));
// 7
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R4i.x)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R5i.x)));
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(R3i.x)));
// 8
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R4i.y)) + intBitsToFloat(PV1i.x)));
PV0i.y = R123i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x)));
// 9
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R5i.y)) + intBitsToFloat(R127i.y)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R4i.z)) + intBitsToFloat(PV0i.y)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
// 10
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(R127i.z)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.w));
R127i.z = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R5i.z)) + intBitsToFloat(PV1i.x)));
PV0i.w = R123i.w;
// 11
PV1i.y = floatBitsToInt(intBitsToFloat(R5i.w) + intBitsToFloat(PV0i.w));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
R126i.z = floatBitsToInt(1.0 / intBitsToFloat(PV0i.y));
PS1i = R126i.z;
// 12
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.w));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i)));
PV0i.z = R127i.z;
// 13
R7i.x = floatBitsToInt((uf_blockPS6[53].x / resXScale * 0.5 + intBitsToFloat(PV0i.z)));
R127i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(0xbb03126f));
R127i.y = clampFI32(R127i.y);
PV1i.y = R127i.y;
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(R126i.z)));
PV1i.w = R127i.w;
R8i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + intBitsToFloat(R6i.x));
PS1i = R8i.x;
// 14
R1i.x = floatBitsToInt(intBitsToFloat(R127i.z) + intBitsToFloat(R126i.w));
R7i.y = floatBitsToInt((uf_blockPS6[53].y / resYScale * 0.5 + intBitsToFloat(PV1i.w)));
R7i.w = PV1i.y;
R8i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R6i.z));
PS0i = R8i.y;
// 15
R9i.x = floatBitsToInt((-(uf_blockPS6[53].x) / resXScale * 0.5 + intBitsToFloat(R127i.z)));
R1i.y = floatBitsToInt(intBitsToFloat(R127i.w) + intBitsToFloat(R2i.w));
R8i.w = R127i.y;
R1i.w = R127i.y;
PS1i = R1i.w;
// 16
R9i.y = floatBitsToInt((-(uf_blockPS6[53].y) / resYScale * 0.5 + intBitsToFloat(R127i.w)));
R9i.w = R127i.y;
}
if( activeMaskStackC[2] == true ) {
R7i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R7i.x),intBitsToFloat(R7i.y),intBitsToFloat(R7i.z),intBitsToFloat(R7i.w))));
R8i.y = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R8i.x),intBitsToFloat(R8i.y),intBitsToFloat(R8i.z),intBitsToFloat(R8i.w))));
R1i.x = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),intBitsToFloat(R1i.w))));
R9i.w = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),intBitsToFloat(R9i.w))));
}
if( activeMaskStackC[2] == true ) {
activeMaskStack[2] = activeMaskStack[1];
activeMaskStackC[3] = activeMaskStackC[2];
// 0
PV0i.w = floatBitsToInt(intBitsToFloat(R7i.z) + intBitsToFloat(R8i.y));
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
// 1
R123i.z = floatBitsToInt((intBitsToFloat(R1i.x) * 0.5 + intBitsToFloat(PV0i.w)));
PV1i.z = R123i.z;
// 2
R5i.w = floatBitsToInt((intBitsToFloat(R9i.w) * 0.5 + intBitsToFloat(PV1i.z))/2.0);
PV0i.w = R5i.w;
// 3
PV1i.x = ((1.0 > intBitsToFloat(PV0i.w))?int(0xFFFFFFFF):int(0x0));
// 4
R0i.y = ((R13i.w > 0)?(PV1i.x):(0));
// 5
predResult = (R0i.y != 0);
activeMaskStack[2] = predResult;
activeMaskStackC[3] = predResult == true && activeMaskStackC[2] == true;
}
else {
activeMaskStack[2] = false;
activeMaskStackC[3] = false;
}
if( activeMaskStackC[3] == true ) {
// 0
PV0i.x = int(-1) + R13i.w;
// 1
PV1i.w = PV0i.x << 0x00000002;
PS1i = floatBitsToInt(float(PV0i.x));
// 2
R0i.x = PV1i.w + 0x0000002c;
R0i.y = PV1i.w + 0x0000002b;
R0i.z = PV1i.w + 0x0000002a;
R0i.w = PV1i.w + 0x0000002d;
R4i.z = floatBitsToInt(roundEven(intBitsToFloat(PS1i)));
PS0i = R4i.z;
}
if( activeMaskStackC[3] == true ) {
R1i.xyzw = floatBitsToInt(uf_blockPS1[R0i.w].xyzw);
R2i.xyzw = floatBitsToInt(uf_blockPS1[R0i.x].xyzw);
R3i.xyzw = floatBitsToInt(uf_blockPS1[R0i.z].xyzw);
R0i.xyzw = floatBitsToInt(uf_blockPS1[R0i.y].xyzw);
}
if( activeMaskStackC[3] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R2i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R1i.x)));
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R1i.y)) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R3i.x)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R16i.x), intBitsToFloat(R0i.x)));
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R1i.z)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R3i.y)) + intBitsToFloat(PV1i.z)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R6i.y),intBitsToFloat(R0i.y)) + intBitsToFloat(PV1i.w)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R2i.z)) + intBitsToFloat(PV1i.x)));
PV0i.w = R123i.w;
// 3
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R127i.z = floatBitsToInt(intBitsToFloat(R2i.w) + intBitsToFloat(PV0i.w));
PV1i.w = floatBitsToInt(intBitsToFloat(R1i.w) + intBitsToFloat(PV0i.x));
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R0i.w) + intBitsToFloat(PV1i.y));
PV0i.w = floatBitsToInt(intBitsToFloat(R3i.w) + intBitsToFloat(PV1i.x));
PS0i = floatBitsToInt(1.0 / intBitsToFloat(PV1i.w));
// 5
R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(PS0i)));
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PS0i)));
PS1i = R4i.y;
// 6
R4i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(0xbb03126f));
R4i.w = clampFI32(R4i.w);
}
if( activeMaskStackC[3] == true ) {
R4i.z = floatBitsToInt(texture(textureUnitPS8, vec4(intBitsToFloat(R4i.x),intBitsToFloat(R4i.y),intBitsToFloat(R4i.z),intBitsToFloat(R4i.w))));
}
if( activeMaskStackC[3] == true ) {
// 0
backupReg0i = R5i.w;
R5i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R4i.z)));
}
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
R0i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R14i.xy)).x);
R0i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R15i.xy)).x);
R1i.x = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R12i.xy)).x);
R1i.y = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R13i.xy)).x);
}
if( activeMaskStackC[2] == true ) {
// 0
R127i.x = floatBitsToInt(intBitsToFloat(R6i.w) * intBitsToFloat(0x3f7eb852));
PV0i.x = R127i.x;
PV0i.y = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x41a00000));
R124i.z = floatBitsToInt(-(intBitsToFloat(R5i.w)) + 1.0);
R127i.w = floatBitsToInt(uf_blockPS1[16].x * intBitsToFloat(0x3f555555));
// 1
backupReg0i = R0i.x;
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(R0i.y)));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.x) + -(intBitsToFloat(backupReg0i)));
R127i.z = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3f8ba8d6));
R127i.z = floatBitsToInt(intBitsToFloat(R127i.z) / 2.0);
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x3fbc4580));
PV1i.w = floatBitsToInt(intBitsToFloat(PV1i.w) / 2.0);
R126i.z = floatBitsToInt(-(intBitsToFloat(R1i.x)) + intBitsToFloat(PV0i.x));
PS1i = R126i.z;
// 2
backupReg0i = R127i.x;
R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.y)) + 1.0));
R127i.x = clampFI32(R127i.x);
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.x)) + 0.5));
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.y)) + 0.5));
R125i.z = clampFI32(R125i.z);
PV0i.z = R125i.z;
R126i.w = floatBitsToInt(-(intBitsToFloat(R1i.y)) + intBitsToFloat(backupReg0i));
PV0i.w = R126i.w;
R125i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(PV1i.x)) + 1.0));
R125i.w = clampFI32(R125i.w);
PS0i = R125i.w;
// 3
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R126i.z)) + 0.5));
R126i.x = clampFI32(R126i.x);
PV1i.x = R126i.x;
PV1i.y = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.y)));
PV1i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV0i.z)));
R124i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + 0.5));
R124i.w = clampFI32(R124i.w);
PV1i.w = R124i.w;
R0i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R126i.z)) + 1.0));
R0i.w = clampFI32(R0i.w);
PS1i = R0i.w;
// 4
backupReg0i = R127i.w;
PV0i.x = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.x)));
R126i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + 0.5));
PV0i.y = R126i.y;
PV0i.z = floatBitsToInt(0.5 + -(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R125i.w)) + 0.5));
PV0i.w = R127i.w;
R125i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(backupReg0i)),intBitsToFloat(R126i.w)) + 1.0));
R125i.y = clampFI32(R125i.y);
PS0i = R125i.y;
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) + -(intBitsToFloat(PV0i.y)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PS0i)) + 0.5));
PV1i.y = R127i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R125i.z) + -(intBitsToFloat(PV0i.w)));
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R0i.w)) + 0.5));
PV1i.w = R126i.w;
R3i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.z),intBitsToFloat(R10i.w)) + intBitsToFloat(R5i.w)));
PS1i = R3i.w;
// 6
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(R127i.x)) + intBitsToFloat(R127i.w)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(R126i.x) + -(intBitsToFloat(PV1i.y)));
PV0i.z = floatBitsToInt(intBitsToFloat(R124i.w) + -(intBitsToFloat(PV1i.w)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(R125i.w)) + intBitsToFloat(R126i.y)));
PV0i.w = R123i.w;
// 7
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e35e743));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) * intBitsToFloat(0x3e35e743));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(R125i.y)) + intBitsToFloat(R126i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R0i.w)) + intBitsToFloat(R127i.y)));
PV1i.w = R123i.w;
// 8
R123i.x = floatBitsToInt((intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.x)));
PV0i.x = R123i.x;
R123i.w = floatBitsToInt((intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e825397) + intBitsToFloat(PV1i.y)));
PV0i.w = R123i.w;
// 9
PV1i.z = floatBitsToInt(intBitsToFloat(PV0i.x) + intBitsToFloat(PV0i.w));
// 10
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(0xbedd476b));
// 11
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c00000));
PV1i.x = clampFI32(PV1i.x);
// 12
R1i.w = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + 1.0);
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R3i.w = R1i.w;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R0i.x = floatBitsToInt((intBitsToFloat(R10i.x) * intBitsToFloat(0x38d1b717) + 0.5));
R0i.y = floatBitsToInt((intBitsToFloat(R11i.z) * intBitsToFloat(0x3903126f) + 0.5));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R10i.y)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) / 2.0);
PV0i.w = R11i.x;
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) / 2.0);
R2i.z = R1i.w;
PS0i = R2i.z;
// 1
R1i.x = floatBitsToInt(intBitsToFloat(PV0i.w) + 0.5);
R1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 0.5);
R2i.w = 0x3f800000;
}
if( activeMaskStackC[1] == true ) {
R0i.xyz = floatBitsToInt(textureLod(textureUnitPS15, intBitsToFloat(R0i.xy),0.0).xyz);
R1i.y = floatBitsToInt(textureLod(textureUnitPS1, intBitsToFloat(R1i.xy),0.0).x);
}
if( activeMaskStackC[1] == true ) {
// 0
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(backupReg0i),intBitsToFloat(backupReg1i),intBitsToFloat(backupReg2i),-0.0),vec4(uf_blockPS6[42].x,uf_blockPS6[42].y,uf_blockPS6[42].z,0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),-(intBitsToFloat(R11i.w))) + intBitsToFloat(R1i.y)));
PS0i = R2i.y;
// 1
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
// 2
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.w)));
PV0i.z = R127i.z;
// 3
PV1i.y = floatBitsToInt(intBitsToFloat(R3i.w) + -(intBitsToFloat(PV0i.z)));
// 4
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(R12i.w)) + intBitsToFloat(R127i.z)));
PV0i.x = R123i.x;
// 5
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),uf_blockPS10[3].z) + uf_blockPS10[1].y));
R2i.x = clampFI32(R2i.x);
}
// export
passPixelColor5 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
}

View File

@ -1,61 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Shadow Resolution
path = "The Legend of Zelda: Breath of the Wild/Graphics/Shadow Resolution"
description = Note: Increasing shadow resolution is known to increase VRAM usage directly. Lowering this might give you a good boost in performance if you're limited on VRAM but makes shadows blockier. Medium is the original resolution.
version = 4
[Preset]
name = Medium (100%, Default)
$shadowRes = 1
[Preset]
name = Low (50%)
$shadowRes = 0.5
[Preset]
name = High (200%)
$shadowRes = 2
[Preset]
name = Ultra (300%)
$shadowRes = 3
[Preset]
name = Extreme (400%, Unstable)
$shadowRes = 4
[TextureRedefine]
width = 768
height = 720
formats = 0x005
overwriteWidth = $shadowRes * 768
overwriteHeight = $shadowRes * 720
[TextureRedefine]
width = 720
height = 720
formats = 0x005
overwriteWidth = $shadowRes * 720
overwriteHeight = $shadowRes * 720
[TextureRedefine]
width = 384
height = 368
formats = 0x005
overwriteWidth = $shadowRes * 384
overwriteHeight = $shadowRes * 368
[TextureRedefine]
width = 384
height = 360
formats = 0x005
overwriteWidth = $shadowRes * 384
overwriteHeight = $shadowRes * 360
[TextureRedefine]
width = 360
height = 360
formats = 0x005
overwriteWidth = $shadowRes * 360
overwriteHeight = $shadowRes * 360

View File

@ -1,703 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 8d24f32f18e6de47
#ifdef VULKAN
layout(set = 1, binding = 9) uniform ufBlock
{
uniform ivec4 uf_remappedPS[10];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7;
TEXTURE_LAYOUT(8, 1, 5) uniform samplerCubeArray textureUnitPS8;
TEXTURE_LAYOUT(10, 1, 6) uniform sampler2DArray textureUnitPS10;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11;
TEXTURE_LAYOUT(13, 1, 8) uniform sampler2D textureUnitPS13;
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;
// uf_fragCoordScale was moved to the ufBlock
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));
}

View File

@ -1,55 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = "Amiibo Mode"
path = "The Legend of Zelda: Breath of the Wild/Mods/Cel-Shading Removal (SkalFate & Altros)/Amiibo Mode"
description = Amiibo mode by Altros, add or remove that plastic look. Req Remove Links Cell Shading by SkalFate
version = 4
[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

View File

@ -1,116 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 2f7ecb9f0022d8ca -- Pixel shader for Links Cel Shading World & Menu - Texture format 0x005d
#define mode $mode
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
#ifdef VULKAN
layout(set = 1, binding = 1) uniform ufBlock
{
uniform vec4 uf_fragCoordScale;
};
#else
uniform vec2 uf_fragCoordScale;
#endif
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;
}

View File

@ -1,114 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 314b77345f06369b -- Vertex shader for Links Cel Shading - Texture format 0x005d
#ifdef VULKAN
layout(set = 0, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
};
#else
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
#endif
// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock
TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0;
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 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
SET_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
}

View File

@ -1,112 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 314b77349f0636db -- Vertex Shader -- Lights up Cel-Shade Link and NPCs but also messes up the sky in the new methods
#ifdef VULKAN
layout(set = 0, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
};
#else
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
#endif
// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock
TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0;
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 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
SET_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
}

View File

@ -1,118 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 314b7734df06371b -- Vertex Shader for Water/Magma and etc, one of the 3 vertex shaders involved with cel-shade removal
#ifdef VULKAN
layout(set = 0, binding = 1) uniform ufBlock
{
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
};
#else
uniform ivec4 uf_remappedVS[1];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
#endif
// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock
TEXTURE_LAYOUT(32, 0, 0) uniform sampler2D textureUnitVS0;
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 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
SET_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);
}

View File

@ -1,28 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = All NPC No Cel-Shading Pack
path = "The Legend of Zelda: Breath of the Wild/Mods/Cel-Shading Removal (SkalFate & Altros)/Cel-Shading - Main"
description = Changes the type of shading on Link and the world.
version = 4
[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

View File

@ -1,980 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 57cecf2ed6c8e3f0 -- -- Fragment Shader where links gets drawn in the menu
#ifdef VULKAN
layout(set = 1, binding = 10) uniform ufBlock
{
uniform ivec4 uf_remappedPS[29];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[29];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(2, 1, 0) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 1) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(5, 1, 2) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7;
TEXTURE_LAYOUT(8, 1, 5) uniform sampler2D textureUnitPS8;
TEXTURE_LAYOUT(9, 1, 6) uniform samplerCubeArray textureUnitPS9;
TEXTURE_LAYOUT(10, 1, 7) uniform sampler2DArrayShadow textureUnitPS10;
TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12;
TEXTURE_LAYOUT(17, 1, 9) uniform sampler2D textureUnitPS17;
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;
// uf_fragCoordScale was moved to the ufBlock
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));
}

View File

@ -1,235 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader f4e1147ab34a1677 -- Vertex Shader where links gets drawn in the menu
#ifdef VULKAN
layout(set = 0, binding = 0) uniform ufBlock
{
uniform ivec4 uf_remappedVS[5];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
};
#else
uniform ivec4 uf_remappedVS[5];
// uniform vec2 uf_windowSpaceToClipSpaceTransform; // Cemu optimized this uf_variable away in Cemu 1.15.7
#endif
// uf_windowSpaceToClipSpaceTransform was moved to the ufBlock
ATTR_LAYOUT(0, 0) in uvec4 attrDataSem0;
ATTR_LAYOUT(0, 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
SET_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
}

View File

@ -1,9 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Cel-Shade Removal Start Menu Workaround Pack
path = "The Legend of Zelda: Breath of the Wild/Mods/Cel-Shading Removal (SkalFate & Altros)/Cel-Shading - Start Menu Workaround"
description = Start Menu Workaround
version = 4
[Preset]
name = Start Menu Workaround

View File

@ -1,73 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = No Cel-Shading Links Shadow Brightness Fix v0.8
path = "The Legend of Zelda: Breath of the Wild/Mods/Cel-Shading Removal (SkalFate & Altros)/Shadow Brightness Fix v08 - Altros"
description = Fixes the very dark shadows on Links back-side in No Cel-Shade mode.
version = 4
[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

View File

@ -1,934 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// 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
#ifdef VULKAN
layout(set = 1, binding = 11) uniform ufBlock
{
uniform ivec4 uf_remappedPS[33];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[33];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 6) uniform samplerCubeArray textureUnitPS7;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11;
TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12;
TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14;
TEXTURE_LAYOUT(15, 1, 10) uniform sampler2D textureUnitPS15;
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;
// uf_fragCoordScale was moved to the ufBlock
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));
}

View File

@ -1,289 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Links Shadow Brightness for No Cel-Shading Pack
path = "The Legend of Zelda: Breath of the Wild/Mods/Cel-Shading Removal (SkalFate & Altros)/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 = 4
[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 X2 (Best Mode)
$smode = 1
$shadowsbrightness = 2
$sred = 1
$sgreen = 1
$sblue = 1
[Preset]
name = Mode 2 - Shadows X2 (No Highlights)
$smode = 2
$shadowsbrightness = 2
$sred = 1
$sgreen = 1
$sblue = 1
[Preset]
name = Mode 3 - Shadows X2 (Strong Highlights)
$smode = 3
$shadowsbrightness = 2
$sred = 1
$sgreen = 1
$sblue = 1
[Preset]
name = Mode 4 - Shadows X2 (LightShade)
$smode = 4
$shadowsbrightness = 2
$sred = 1
$sgreen = 1
$sblue = 1
[Preset]
name = Mode 5 - Shadows X2 (DarkShade)
$smode = 5
$shadowsbrightness = 2
$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]

View File

@ -1,969 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Armor When teleporting
// shader 7cd50058a8f1d6dd
#ifdef VULKAN
layout(set = 1, binding = 7) uniform ufBlock
{
uniform ivec4 uf_remappedPS[10];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
#endif
// uf_fragCoordScale was moved to the ufBlock
TEXTURE_LAYOUT(1, 1, 0) uniform sampler3D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2DArray textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 6) uniform sampler2D textureUnitPS7;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem2;
layout(location = 3) in vec4 passParameterSem4;
layout(location = 4) in vec4 passParameterSem5;
layout(location = 5) in vec4 passParameterSem7;
layout(location = 6) in vec4 passParameterSem8;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 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;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem1);
R2i = floatBitsToInt(passParameterSem2);
R3i = floatBitsToInt(passParameterSem4);
R4i = floatBitsToInt(passParameterSem5);
R5i = floatBitsToInt(passParameterSem7);
R6i = floatBitsToInt(passParameterSem8);
if( activeMaskStackC[1] == true ) {
R7i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy);
R1i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R1i.xy)).xyz);
R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz);
R1i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x);
R9i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz);
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z)));
R127i.w = floatBitsToInt((intBitsToFloat(R7i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.w = R127i.w;
R127i.y = floatBitsToInt((intBitsToFloat(R7i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS0i = R127i.y;
// 1
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i)));
// 2
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x)));
R123i.z = clampFI32(R123i.z);
PV0i.z = R123i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i)));
R126i.w = floatBitsToInt(fract(intBitsToFloat(R6i.x)));
PS0i = R126i.w;
// 3
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.x)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y)));
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w)));
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
R126i.y = floatBitsToInt(fract(intBitsToFloat(R6i.y)));
PS1i = R126i.y;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w)));
// 5
backupReg0i = R127i.y;
R126i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.x)));
PV1i.x = R126i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z)));
PV1i.y = R127i.y;
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt(intBitsToFloat(R126i.w) + -(0.5));
R126i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
PS1i = R126i.w;
// 6
backupReg0i = R126i.y;
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 = tempi.x;
PS0i = floatBitsToInt(intBitsToFloat(backupReg0i) + -(0.5));
// 7
R127i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R1i.x)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PS0i)) + 1.0));
R123i.y = clampFI32(R123i.y);
PV1i.y = R123i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R1i.y)));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV1i.w = R123i.w;
PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w));
// 8
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.y)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i)));
PS0i = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R1i.z)));
// 9
backupReg0i = R127i.z;
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R127i.x)));
PV1i.y = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[1].w)) + intBitsToFloat(0x3f59999a));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS0i)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(backupReg0i)));
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z)));
// 10
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(PV1i.x)));
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(PS1i)));
R3i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x3f969696));
R3i.z = clampFI32(R3i.z);
R1i.w = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[3].w)));
R6i.y = 0x3f800000;
PS0i = R6i.y;
// 11
R7i.y = 0;
R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(R127i.z)));
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x) * Factor, intBitsToFloat(R127i.w)));
PS1i = R5i.y;
// 12
tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y));
PS0i = floatBitsToInt(tempResultf);
// 13
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.x), intBitsToFloat(PS0i)));
PV1i.x = R3i.x;
R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS0i)));
PV1i.y = R3i.y;
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS0i)));
PV1i.z = R4i.z;
// 14
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R126i.w),-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;
R1i.x = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + 1.0);
PS0i = R1i.x;
// 15
R2i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + 1.0);
R2i.w = clampFI32(R2i.w);
// 16
predResult = (intBitsToFloat(R1i.w) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[3].w)));
PV0i.z = R0i.z;
// 1
R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z)));
}
if( activeMaskStackC[2] == true ) {
R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(R0i.y));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(backupReg0i));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(R0i.z));
// 1
backupReg0i = R9i.x;
backupReg1i = R9i.y;
backupReg2i = R9i.z;
R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg0i)));
R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg1i)));
R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R1i.w)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R6i.z = ((intBitsToFloat(uf_remappedPS[4].w) > 0.0)?int(0xFFFFFFFF):int(0x0));
// 1
predResult = (R6i.z != 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e99999a));
R0i.y = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e99999a));
R0i.z = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e99999a));
}
if( activeMaskStackC[2] == true ) {
R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R9i.z) * intBitsToFloat(0x3dea4a8c));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R0i.z)) + 1.0);
tempResultf = max(0.0, intBitsToFloat(R2i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R126i.w = floatBitsToInt(tempResultf);
PS0i = R126i.w;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.w = tempi.x;
tempResultf = max(0.0, intBitsToFloat(PV0i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1i = floatBitsToInt(tempResultf);
// 2
R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd)));
PV0i.x = R127i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd)));
PV0i.z = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666));
// 3
R126i.y = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(R127i.w) + intBitsToFloat(0x3eb33333)));
PV1i.y = R126i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.w) * intBitsToFloat(0x40200000));
R127i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a));
PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.z)));
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + 0.25);
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd));
PV0i.z = floatBitsToInt(-(intBitsToFloat(R127i.y)) + intBitsToFloat(0x3e851eb8));
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.z)));
PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0);
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.y));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.w),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.w = R123i.w;
R7i.y = 0x3e99999a;
PS1i = R7i.y;
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x));
PV0i.y = clampFI32(PV0i.y);
R127i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x));
R127i.z = clampFI32(R127i.z);
PV0i.z = R127i.z;
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x));
PV0i.w = clampFI32(PV0i.w);
// 7
PV1i.x = floatBitsToInt(-(intBitsToFloat(R9i.x)) + intBitsToFloat(PV0i.y));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R5i.x)) + intBitsToFloat(PV0i.y));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R9i.z)) + intBitsToFloat(PV0i.z));
PV1i.w = floatBitsToInt(-(intBitsToFloat(R9i.y)) + intBitsToFloat(PV0i.w));
R127i.x = floatBitsToInt(-(intBitsToFloat(R5i.y)) + intBitsToFloat(PV0i.w));
PS1i = R127i.x;
// 8
backupReg0i = R9i.x;
backupReg1i = R9i.y;
backupReg2i = R9i.z;
backupReg3i = R5i.x;
R9i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i)));
R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i)));
R9i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg2i)));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R5i.z)) + intBitsToFloat(R127i.z));
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg3i)));
PS0i = R5i.x;
// 9
backupReg0i = R5i.y;
backupReg1i = R5i.z;
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg0i)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[4].w)) + intBitsToFloat(backupReg1i)));
// 10
R4i.y = R6i.y;
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R6i.y = R7i.y;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[4].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[4].y));
// 1
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(PS0i)));
PV1i.x = R127i.x;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(PS0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(PS0i)));
// 2
R0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x40666666));
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666));
R0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666));
R1i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3f3851ec));
R1i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec));
PS0i = R1i.y;
// 3
R1i.z = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3f3851ec));
}
if( activeMaskStackC[2] == true ) {
R0i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
R0i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.w),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.z = floatBitsToInt(-(intBitsToFloat(R0i.y)) + intBitsToFloat(R0i.x));
// 1
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.y)));
PV1i.y = R123i.y;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[4].x)) + intBitsToFloat(PV1i.y));
// 3
R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000));
R127i.w = clampFI32(R127i.w);
PV1i.w = R127i.w;
// 4
backupReg0i = R9i.x;
backupReg1i = R9i.y;
backupReg2i = R9i.z;
backupReg3i = R5i.x;
R9i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w)));
R9i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w)));
R9i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w)));
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w)));
PS0i = R5i.x;
// 5
backupReg0i = R5i.y;
backupReg1i = R5i.z;
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w)));
R5i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R1i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[5].x) * intBitsToFloat(0xbd088889));
// 1
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].y), intBitsToFloat(uf_remappedPS[6].x)));
// 2
predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(intBitsToFloat(R2i.x) * intBitsToFloat(0x3e22f983));
PV0i.y = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x40e66666));
PV0i.z = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x3e22f983));
PV0i.w = floatBitsToInt(intBitsToFloat(R2i.z) * intBitsToFloat(0x3e22f983));
PS0i = floatBitsToInt(intBitsToFloat(R3i.x) + intBitsToFloat(R4i.z));
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R3i.y) + intBitsToFloat(PS0i));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w))));
// 2
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a));
R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i)));
PS0i = R125i.w;
// 3
R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R126i.z = R1i.x;
R126i.z = clampFI32(R126i.z);
R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.w = R123i.w;
R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000)));
PS1i = R124i.w;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z),-0.0),vec4(intBitsToFloat(R3i.x),intBitsToFloat(R3i.y),intBitsToFloat(R4i.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(0x3e22f983));
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983));
R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PV0i.x)));
R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000)));
R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367));
PS1i = R126i.y;
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),-0.0),vec4(intBitsToFloat(R9i.x),intBitsToFloat(R9i.y),intBitsToFloat(R9i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.w = tempi.x;
PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367));
// 7
backupReg0i = R127i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000)));
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i));
R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367));
// 8
R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29)));
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w));
R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
tempResultf = max(0.0, intBitsToFloat(R126i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R127i.x = floatBitsToInt(tempResultf);
PS0i = R127i.x;
// 9
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd)));
PV1i.z = R123i.z;
PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0));
R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0));
PS1i = R126i.x;
// 10
PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000));
R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R1i.z)));
PV0i.z = R123i.z;
PV0i.w = PV1i.x;
PV0i.w = clampFI32(PV0i.w);
R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000)));
PS0i = R127i.z;
// 11
R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000)));
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R1i.w = ((R126i.x == 0)?(PV0i.y):(0));
R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x)));
PS1i = R125i.z;
// 12
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000)));
// 13
PV1i.z = PV0i.x;
PV1i.z = clampFI32(PV1i.z);
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0));
PV1i.w = clampFI32(PV1i.w);
// 14
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z));
// 15
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.x = R126i.x;
R125i.w = PV0i.y;
R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0);
// 16
PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x));
// 17
R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)));
PV1i.y = R126i.y;
// 18
tempResultf = max(0.0, intBitsToFloat(PV1i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 19
PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000));
// 20
R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w)));
PS0i = R126i.z;
// 21
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x)));
PV1i.w = R123i.w;
// 22
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 23
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y)));
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
// 24
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 25
R0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.w)));
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.w)));
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R0i.xyz = ivec3(0,0,0);
R1i.w = 0;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R1i.w;
PV0i.x = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x40490fdb));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R127i.y = R1i.x;
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
PV0i.z = floatBitsToInt(intBitsToFloat(R4i.z) + -(intBitsToFloat(R9i.y)));
R127i.w = floatBitsToInt(intBitsToFloat(R2i.y) * intBitsToFloat(0x40600000));
R1i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[3].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i)));
PS0i = R1i.w;
// 1
R123i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.z = R123i.z;
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.w = R126i.w;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.w)));
// 3
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R126i.w)));
PV1i.w = floatBitsToInt(intBitsToFloat(R1i.z) + intBitsToFloat(PV0i.x));
// 4
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
// 5
PV1i.x = PV0i.z;
PV1i.x = clampFI32(PV1i.x);
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
PV1i.y = clampFI32(PV1i.y);
PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367));
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0);
PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0);
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x));
// 7
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.x = R127i.x;
R127i.y = PV0i.w;
R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0);
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
PV1i.z = R127i.z;
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5);
// 8
PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z));
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290));
R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71));
R126i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6));
R126i.x = PV1i.x;
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0);
PS0i = R126i.x;
// 9
backupReg0i = R127i.x;
backupReg0i = R127i.x;
backupReg1i = R127i.z;
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000));
R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
// 10
tempResultf = max(0.0, intBitsToFloat(PV1i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 11
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000));
// 12
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
// 13
R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R126i.w)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z)));
PV1i.w = R123i.w;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x));
// 15
backupReg0i = R0i.y;
backupReg1i = R0i.x;
PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x));
PV1i.z = floatBitsToInt(-(intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.y));
// 16
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg0i)));
R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg1i)));
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].y) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R2i.w)));
R127i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)));
// 1
backupReg0i = R0i.y;
PV1i.x = floatBitsToInt(-(intBitsToFloat(R0i.z)) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(PV0i.x));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(PV0i.x)));
// 2
backupReg0i = R0i.x;
backupReg1i = R0i.y;
backupReg2i = R0i.z;
backupReg3i = R1i.w;
R0i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
R0i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i)));
R0i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i)));
R1i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R126i.w = R1i.w;
R126i.w = clampFI32(R126i.w);
PV0i.w = R126i.w;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.y),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.y)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.x),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.x)));
PV1i.y = R123i.y;
R127i.z = ((intBitsToFloat(PV0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R5i.z),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R5i.z)));
PV1i.w = R123i.w;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.x),-(intBitsToFloat(PV0i.w))) + intBitsToFloat(R9i.x)));
PS1i = R127i.y;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.w)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.x)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R126i.w)) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R9i.y)));
PV0i.w = R123i.w;
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R9i.z),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R9i.z)));
PS0i = R127i.w;
// 3
backupReg0i = R127i.y;
R127i.x = ((R127i.z == 0)?(R5i.x):(PV0i.z));
PV1i.x = R127i.x;
R127i.y = ((R127i.z == 0)?(R9i.x):(backupReg0i));
R126i.z = ((R127i.z == 0)?(R5i.z):(PV0i.x));
PV1i.z = R126i.z;
R125i.w = ((R127i.z == 0)?(R5i.y):(PV0i.y));
PV1i.w = R125i.w;
R125i.z = ((R127i.z == 0)?(R9i.y):(PV0i.w));
PS1i = R125i.z;
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x));
R126i.y = ((R127i.z == 0)?(R9i.z):(R127i.w));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),-(intBitsToFloat(R126i.w))) + intBitsToFloat(R4i.y)));
PV0i.z = R123i.z;
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y));
PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z));
// 5
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x)));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R125i.w)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.z)));
R2i.w = ((R127i.z == 0)?(R4i.y):(PV0i.z));
R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R127i.y)));
PS1i = R6i.x;
// 6
R8i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.z)));
R7i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y)));
// 7
predResult = (1.0 > intBitsToFloat(uf_remappedPS[1].w));
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.x), intBitsToFloat(uf_remappedPS[6].x)));
R0i.y = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[1].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000)));
R0i.y = clampFI32(R0i.y);
R0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.y), intBitsToFloat(uf_remappedPS[6].x)));
PV0i.z = R0i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.z), intBitsToFloat(uf_remappedPS[6].x)));
// 1
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(uf_remappedPS[9].z)));
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z)));
R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z)));
R1i.w = PV0i.w;
R1i.w = floatBitsToInt(intBitsToFloat(R1i.w) / 2.0);
R1i.x = PV0i.x;
R1i.x = floatBitsToInt(intBitsToFloat(R1i.x) / 2.0);
PS1i = R1i.x;
}
if( activeMaskStackC[2] == true ) {
R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(uf_remappedPS[9].y)));
R1i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R0i.w)) + intBitsToFloat(R1i.w)));
}
if( activeMaskStackC[2] == true ) {
R1i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
if( (intBitsToFloat(R3i.z) > intBitsToFloat(R1i.z))) discard;
tempResultf = max(0.0, intBitsToFloat(R1i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R1i.x = floatBitsToInt(tempResultf);
PS0i = R1i.x;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.w = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3fe66666));
// 1
R127i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.w)));
PS1i = R127i.z;
// 2
R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS1i) + intBitsToFloat(0x3ee66666)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS1i) + intBitsToFloat(0x3e4ccccd)));
PV0i.y = R123i.y;
// 3
backupReg0i = R5i.x;
backupReg1i = R5i.y;
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(backupReg0i)));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV0i.x)) + intBitsToFloat(backupReg1i)));
R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0));
PV1i.w = R123i.w;
// 4
backupReg0i = R5i.z;
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.w),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R2i.w)));
PV0i.x = R123i.x;
PV0i.y = uf_remappedPS[7].z;
PV0i.z = ((intBitsToFloat(R7i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R123i.w = ((R6i.z == 0)?(0x3d008081):(0x3d30b0b1));
PV0i.w = R123i.w;
R1i.w = floatBitsToInt(1.0);
PS0i = R1i.w;
// 1
R1i.x = PV0i.w;
R127i.y = ((PV0i.z == 0)?(0):(0x3f800000));
PV1i.y = R127i.y;
R0i.z = floatBitsToInt((intBitsToFloat(R4i.z) * 0.5 + 0.5));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000));
R1i.y = PV0i.y;
PS1i = R1i.y;
// 2
PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R0i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + 0.5));
PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0);
R2i.w = 0x3f800000;
R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5));
PS0i = R0i.x;
// 3
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0);
R123i.w = ((PV0i.x == 0)?(R6i.y):(R7i.y));
PV1i.w = R123i.w;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R6i.y) + intBitsToFloat(PV1i.y));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000));
// 5
R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081));
PS1i = int(intBitsToFloat(PV0i.z));
// 6
PV0i.x = PS1i & 0x000000e0;
// 7
PV1i.w = PV0i.x >> 0x00000003;
// 8
PS0i = floatBitsToInt(float(PV1i.w));
// 9
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42800000));
// 10
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
// 11
R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081)));
// 12
R4i.xyz = ivec3(R5i.x,R5i.y,R5i.z);
R4i.w = R2i.w;
// 13
R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R3i.w = R0i.w;
// 14
R2i.xyz = ivec3(R6i.x,R8i.y,R7i.z);
R2i.w = R5i.w;
// 15
backupReg0i = R1i.x;
backupReg1i = R1i.y;
backupReg2i = R1i.z;
backupReg3i = R1i.w;
R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R1i.w = backupReg3i;
}
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = 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));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -1,215 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Ancient Armor
// shader cc51c2b5a4fce06c
#ifdef VULKAN
layout(set = 1, binding = 5) uniform ufBlock
{
uniform ivec4 uf_remappedPS[3];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
#endif
// uf_fragCoordScale was moved to the ufBlock
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem7;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 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;
R0f = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem7;
R3f = passParameterSem3;
R4f = passParameterSem4;
R5f.xy = (texture(textureUnitPS3, R0f.xy).xy);
R1f.w = (texture(textureUnitPS2, R0f.xy).x);
R1f.xyz = (texture(textureUnitPS4, R1f.xy).xyz);
R6f.xyz = (texture(textureUnitPS5, R0f.zw).xyz);
R0f.xyz = (texture(textureUnitPS1, R0f.xy).xyz);
// 0
PV0f.x = fract(R2f.x);
R125f.y = (R5f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV0f.y = R125f.y;
R127f.z = mul_nonIEEE(R3f.y, R4f.z);
PV0f.w = fract(R2f.y);
R127f.x = mul_nonIEEE(R3f.z, R4f.x);
PS0f = R127f.x;
// 1
R126f.x = (R5f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV1f.y = PV0f.w + -(0.5);
PV1f.z = PV0f.x + -(0.5);
PV1f.w = mul_nonIEEE(R3f.x, R4f.y);
R127f.y = mul_nonIEEE(PV0f.y, PV0f.y);
PS1f = R127f.y;
// 2
backupReg0f = R127f.z;
R123f.x = (mul_nonIEEE(-(PV1f.z),PV1f.z) + 1.0);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
R126f.y = (mul_nonIEEE(-(R4f.z),R3f.x) + R127f.x);
R127f.z = (mul_nonIEEE(-(R4f.y),R3f.z) + backupReg0f);
R123f.w = (mul_nonIEEE(-(PV1f.y),PV1f.y) + 1.0);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R127f.w = (mul_nonIEEE(-(R4f.x),R3f.y) + PV1f.w);
PS0f = R127f.w;
// 3
R123f.x = (mul_nonIEEE(R126f.x,R126f.x) + R127f.y);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV1f.x = R123f.x;
PV1f.y = mul_nonIEEE(R4f.w, R126f.x);
PV1f.z = mul_nonIEEE(PV0f.x, PV0f.w);
R126f.w = mul_nonIEEE(Color.r, R1f.x);
R126f.x = mul_nonIEEE(Color.g, R1f.y);
PS1f = R126f.x;
// 4
PV0f.x = mul_nonIEEE(R127f.z, PV1f.y);
PV0f.y = mul_nonIEEE(R126f.y, PV1f.y);
PV0f.z = mul_nonIEEE(R127f.w, PV1f.y);
PV0f.w = -(PV1f.x) + 1.0;
PS0f = mul_nonIEEE(PV1f.z, PV1f.z);
// 5
R123f.x = (mul_nonIEEE(R4f.y,R125f.y) + PV0f.y);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R4f.x,R125f.y) + PV0f.x);
PV1f.y = R123f.y;
PV1f.z = mul_nonIEEE(R1f.w, PS0f);
R123f.w = (mul_nonIEEE(R4f.z,R125f.y) + PV0f.z);
PV1f.w = R123f.w;
PS1f = sqrt(PV0f.w);
// 6
R127f.x = (mul_nonIEEE(R3f.x,PS1f) + PV1f.y);
PV0f.x = R127f.x;
R126f.y = (mul_nonIEEE(R3f.y,PS1f) + PV1f.x);
PV0f.y = R126f.y;
R126f.z = (mul_nonIEEE(R3f.z,PS1f) + PV1f.w);
PV0f.z = R126f.z;
PV0f.w = PV1f.z * intBitsToFloat(0x427f0000);
R127f.z = mul_nonIEEE(Color.b, R1f.z);
PS0f = R127f.z;
// 7
tempf.x = dot(vec4(PV0f.x,PV0f.y,PV0f.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;
R125f.y = floor(PV0f.w);
R125f.y *= 4.0;
PS1f = R125f.y;
// 8
PV0f.x = mul_nonIEEE(R6f.z, R127f.z);
PV0f.y = mul_nonIEEE(R6f.y, R126f.x);
R127f.z = intBitsToFloat(0x3d008081);
PV0f.w = mul_nonIEEE(R6f.x, R126f.w);
tempResultf = 1.0 / sqrt(PV1f.x);
R127f.y = tempResultf;
R127f.y /= 2.0;
PS0f = R127f.y;
// 9
R126f.x = R125f.y + 2.0;
R6f.y = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.y);
R6f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.x);
PV1f.w = intBitsToFloat(uf_remappedPS[2].z);
R6f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].x) * Factor, PV0f.w);
PS1f = R6f.x;
// 10
R3f.x = R127f.z;
R3f.y = PV1f.w;
R1f.z = (mul_nonIEEE(R126f.z,R127f.y) + 0.5);
R3f.w = 1.0;
R1f.x = (mul_nonIEEE(R127f.x,R127f.y) + 0.5);
PS0f = R1f.x;
// 11
R1f.y = (mul_nonIEEE(R126f.y,R127f.y) + 0.5);
R6f.w = 1.0;
R1f.w = R126f.x * intBitsToFloat(0x3b808081);
PS1f = R1f.w;
// 12
R0f.w = intBitsToFloat(0x3e828283);
// 13
R7f.xyz = vec3(R6f.x,R6f.y,R6f.z);
R7f.w = R6f.w;
// 14
R6f.xyz = vec3(R1f.x,R1f.y,R1f.z);
R6f.w = R1f.w;
// 15
R5f.xyz = vec3(R0f.x,R0f.y,R0f.z);
R5f.w = R0f.w;
// 16
R4f.xyz = vec3(R3f.x,R3f.y,R3f.z);
R4f.w = R3f.w;
// export
passPixelColor0 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
passPixelColor1 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
passPixelColor3 = vec4(R6f.x, R6f.y, R6f.z, R6f.w);
passPixelColor5 = vec4(R7f.x, R7f.y, R7f.z, R7f.w);
}

View File

@ -1,55 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Ancient Armor
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Ancient Armor"
description = Change Ancient Amor's color and brightness. Originally it's Ancient Orange.
version = 4
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 2.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.5
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 2.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 2.0 # Brightness scaling factor

View File

@ -1,227 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
const vec3 Color = vec3($R,$G,$B);
const float Light = $L;
// Ancient weapons
// shader 5c4fc00fefe604eb
#ifdef VULKAN
layout(set = 1, binding = 5) uniform ufBlock
{
uniform ivec4 uf_remappedPS[3];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
#endif
// uf_fragCoordScale was moved to the ufBlock
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem3;
layout(location = 2) in vec4 passParameterSem4;
layout(location = 3) in vec4 passParameterSem7;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R122i = ivec4(0);
ivec4 R123i = 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;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem3);
R2i = floatBitsToInt(passParameterSem4);
R3i = floatBitsToInt(passParameterSem7);
R4i.xy = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xy);
R6i.xy = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).xy);
R5i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xyz);
R7i.xyz = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).xyz);
R0i.xyz = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xy)).xyz);
// 0
R126i.x = floatBitsToInt((intBitsToFloat(R4i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.x = R126i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(R2i.z)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(R3i.y)));
PV0i.w = floatBitsToInt(fract(intBitsToFloat(R3i.x)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(R2i.x)));
PS0i = R126i.y;
// 1
PV1i.x = floatBitsToInt(intBitsToFloat(PV0i.z) + -(0.5));
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + -(0.5));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(R2i.y)));
R127i.w = floatBitsToInt((intBitsToFloat(R4i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV1i.w = R127i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.x), intBitsToFloat(PV0i.x)));
// 2
R127i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.y)),intBitsToFloat(R1i.z)) + intBitsToFloat(R127i.y)));
R127i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.z)),intBitsToFloat(R1i.x)) + intBitsToFloat(R126i.y)));
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.x)),intBitsToFloat(PV1i.x)) + 1.0));
R123i.z = clampFI32(R123i.z);
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV0i.w = R123i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(PV1i.w)) + intBitsToFloat(PS1i)));
R122i.x = clampFI32(R122i.x);
PS0i = R122i.x;
// 3
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R2i.w), intBitsToFloat(R127i.w)));
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.z)));
PV1i.z = floatBitsToInt(intBitsToFloat(R6i.y) * intBitsToFloat(0x437f0000));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R2i.x)),intBitsToFloat(R1i.y)) + intBitsToFloat(R127i.z)));
PV1i.w = R123i.w;
R127i.w = floatBitsToInt(-(intBitsToFloat(PS0i)) + 1.0);
PS1i = R127i.w;
// 4
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.y)) + intBitsToFloat(R6i.y)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV1i.x)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PV1i.x)));
R127i.x = int(intBitsToFloat(PV1i.z));
PS0i = R127i.x;
// 5
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)));
PV1i.x = R123i.x;
PV1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R6i.x), intBitsToFloat(PV0i.x)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.y)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(sqrt(intBitsToFloat(R127i.w)));
// 6
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.x)));
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.z)));
R125i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(PS1i)) + intBitsToFloat(PV1i.w)));
PV0i.w = R127i.x & 0x000000e0;
R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x427f0000));
PS0i = R127i.y;
// 7
R127i.x = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R5i.y)));
R126i.y = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R5i.z)));
R127i.z = PV0i.w >> 0x00000003;
R127i.w = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R5i.x)));
R126i.w = ((intBitsToFloat(R6i.y) > 0.5)?int(0xFFFFFFFF):int(0x0));
PS1i = R126i.w;
// 8
backupReg0i = R127i.y;
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),-0.0),vec4(intBitsToFloat(R125i.x),intBitsToFloat(R125i.y),intBitsToFloat(R125i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R127i.y = tempi.x;
R126i.x = floatBitsToInt(floor(intBitsToFloat(backupReg0i)));
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) * 4.0);
PS0i = R126i.x;
// 9
backupReg0i = R126i.y;
backupReg1i = R127i.z;
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(R127i.w)));
R126i.y = ((R126i.w == 0)?(0x3d008081):(0x3d20a0a1));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(backupReg0i)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(R127i.x)));
PS1i = floatBitsToInt(float(backupReg1i));
// 10
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(0x42820000));
R7i.y = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.w)));
R126i.z = floatBitsToInt(intBitsToFloat(backupReg0i) + 2.0);
PV0i.w = uf_remappedPS[2].z;
R7i.x = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.x)));
PS0i = R7i.x;
// 11
R6i.x = R126i.y;
R6i.y = PV0i.w;
R7i.z = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(R127i.z)));
R6i.w = floatBitsToInt(1.0);
R7i.w = 0x3f800000;
PS1i = R7i.w;
// 12
R5i.w = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x3b808081));
R0i.w = floatBitsToInt(intBitsToFloat(R126i.x) * intBitsToFloat(0x3b808081));
PS0i = R0i.w;
// 13
tempResultf = 1.0 / sqrt(intBitsToFloat(R127i.y));
PS1i = floatBitsToInt(tempResultf);
PS1i = floatBitsToInt(intBitsToFloat(PS1i) / 2.0);
// 14
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.x),intBitsToFloat(PS1i)) + 0.5));
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(PS1i)) + 0.5));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),intBitsToFloat(PS1i)) + 0.5));
// 15
R4i.xyz = ivec3(R7i.x,R7i.y,R7i.z);
R4i.w = R7i.w;
// 16
R3i.xyz = ivec3(R5i.x,R5i.y,R5i.z);
R3i.w = R5i.w;
// 17
R2i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R2i.w = R0i.w;
// 18
R1i.xyz = ivec3(R6i.x,R6i.y,R6i.z);
R1i.w = R6i.w;
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = 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));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -1,987 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
const vec3 Color = vec3($R,$G,$B);
const float Light = $L;
// Ancient weapons when teleporting
// shader b1b149918fac0b8d
#ifdef VULKAN
layout(set = 1, binding = 7) uniform ufBlock
{
uniform ivec4 uf_remappedPS[10];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[10];
uniform vec2 uf_fragCoordScale;
#endif
// uf_fragCoordScale was moved to the ufBlock
TEXTURE_LAYOUT(1, 1, 0) uniform sampler3D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2DArray textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 6) uniform sampler2D textureUnitPS7;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem2;
layout(location = 2) in vec4 passParameterSem8;
layout(location = 3) in vec4 passParameterSem4;
layout(location = 4) in vec4 passParameterSem5;
layout(location = 5) in vec4 passParameterSem7;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 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;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem2);
R2i = floatBitsToInt(passParameterSem8);
R3i = floatBitsToInt(passParameterSem4);
R4i = floatBitsToInt(passParameterSem5);
R5i = floatBitsToInt(passParameterSem7);
if( activeMaskStackC[1] == true ) {
R6i.xy = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.xy)).xy);
R7i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R0i.xy)).xyz);
R9i.xy = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xy);
R8i.xyz = floatBitsToInt(texture(textureUnitPS7, intBitsToFloat(R0i.zw)).xyz);
R10i.xyz = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xyz);
}
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x)));
R127i.w = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.w = R127i.w;
R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS0i = R127i.y;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.y)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i)));
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.z)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PS1i)));
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i)));
R126i.w = floatBitsToInt(fract(intBitsToFloat(R2i.x)));
PS0i = R126i.w;
// 3
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.w)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.z)));
R127i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV0i.y)));
PV1i.w = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + 1.0);
R126i.x = floatBitsToInt(fract(intBitsToFloat(R2i.y)));
PS1i = R126i.x;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.w)));
// 5
backupReg0i = R127i.x;
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.z)));
PV1i.x = R127i.x;
R125i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i)));
PV1i.y = R125i.y;
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.y)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt(intBitsToFloat(R126i.w) + -(0.5));
R126i.w = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
PS1i = R126i.w;
// 6
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 = tempi.x;
PS0i = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5));
// 7
R123i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PS0i)),intBitsToFloat(PS0i)) + 1.0));
R123i.x = clampFI32(R123i.x);
PV1i.x = R123i.x;
R127i.y = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R7i.y)));
R127i.z = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R7i.x)));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV1i.w = R123i.w;
PS1i = floatBitsToInt(1.0 / intBitsToFloat(R126i.w));
// 8
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS1i)));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PV1i.x)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS1i)));
PS0i = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R7i.z)));
// 9
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.z), intBitsToFloat(PS0i)));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R9i.y)));
R123i.y = clampFI32(R123i.y);
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.y), intBitsToFloat(R127i.y)));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R8i.x), intBitsToFloat(R127i.z)));
R1i.w = 0x3f800000;
PS1i = R1i.w;
// 10
R4i.x = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.w)));
R4i.y = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.z)));
R4i.z = floatBitsToInt(mul_nonIEEE(Light, intBitsToFloat(PV1i.x)));
R3i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV1i.y)));
R4i.w = 0;
PS0i = R4i.w;
// 11
R2i.x = floatBitsToInt(fract(intBitsToFloat(uf_remappedPS[2].w)));
R5i.w = R9i.y;
tempResultf = 1.0 / sqrt(intBitsToFloat(R126i.y));
PS1i = floatBitsToInt(tempResultf);
// 12
R5i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i)));
PV0i.x = R5i.x;
R5i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.y), intBitsToFloat(PS1i)));
PV0i.y = R5i.y;
R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i)));
PV0i.z = R3i.z;
// 13
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R124i.y),intBitsToFloat(R127i.w),-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;
R3i.y = floatBitsToInt(-(intBitsToFloat(PV0i.z)) + 1.0);
PS1i = R3i.y;
// 14
R3i.x = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0);
R3i.x = clampFI32(R3i.x);
// 15
predResult = (intBitsToFloat(R2i.x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.z = floatBitsToInt(floor(intBitsToFloat(uf_remappedPS[2].w)));
PV0i.z = R0i.z;
// 1
R0i.z = floatBitsToInt(roundEven(intBitsToFloat(PV0i.z)));
}
if( activeMaskStackC[2] == true ) {
R0i.xyz = floatBitsToInt(texture(textureUnitPS2, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).xyz);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(R0i.y));
PV0i.y = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(backupReg0i));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(R0i.z));
// 1
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg0i)));
R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg1i)));
R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(R2i.x)) + intBitsToFloat(backupReg2i)));
// 2
R5i.w = R4i.w;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R5i.z = ((intBitsToFloat(uf_remappedPS[3].w) > 0.0)?int(0xFFFFFFFF):int(0x0));
// 1
predResult = (R5i.z != 0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3e99999a));
R0i.y = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3e99999a));
R0i.z = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3e99999a));
}
if( activeMaskStackC[2] == true ) {
R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.w;
PV0i.x = floatBitsToInt(intBitsToFloat(R10i.z) * intBitsToFloat(0x3dea4a8c));
PV0i.w = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + 1.0);
tempResultf = max(0.0, intBitsToFloat(R3i.x));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R126i.z = floatBitsToInt(tempResultf);
PS0i = R126i.z;
// 1
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(PV0i.x),-0.0),vec4(intBitsToFloat(0x3e99096c),intBitsToFloat(0x3f162b6b),1.0,0.0)));
PV1i.x = tempi.x;
PV1i.y = tempi.x;
PV1i.z = tempi.x;
PV1i.w = tempi.x;
R127i.z = tempi.x;
tempResultf = max(0.0, intBitsToFloat(PV0i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS1i = floatBitsToInt(tempResultf);
// 2
R127i.x = floatBitsToInt((0.5 * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3dcccccd)));
PV0i.x = R127i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3fa66666));
R125i.z = floatBitsToInt((intBitsToFloat(0x3f19999a) * intBitsToFloat(PV1i.x) + intBitsToFloat(0x3e4ccccd)));
// 3
backupReg0i = R127i.z;
PV1i.y = floatBitsToInt(intBitsToFloat(R126i.z) * intBitsToFloat(0x40200000));
R127i.z = floatBitsToInt(-(intBitsToFloat(PV0i.x)) + intBitsToFloat(0x3e23d70a));
R127i.w = floatBitsToInt((intBitsToFloat(0x3f266666) * intBitsToFloat(backupReg0i) + intBitsToFloat(0x3eb33333)));
PV1i.w = R127i.w;
PS1i = floatBitsToInt(exp2(intBitsToFloat(PV0i.y)));
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + 0.25);
PV0i.y = floatBitsToInt(-(intBitsToFloat(R125i.z)) + intBitsToFloat(0x3e851eb8));
PV0i.w = floatBitsToInt(intBitsToFloat(PS1i) * intBitsToFloat(0x3e4ccccd));
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
PS0i = floatBitsToInt(intBitsToFloat(PS0i) / 2.0);
// 5
PV1i.x = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(PV0i.w));
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.y),intBitsToFloat(PV0i.w)) + intBitsToFloat(R125i.z)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R127i.x)));
PV1i.w = R123i.w;
R6i.w = 0x3e99999a;
PS1i = R6i.w;
// 6
R127i.y = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(PV1i.x));
R127i.y = clampFI32(R127i.y);
PV0i.y = R127i.y;
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(PV1i.x));
PV0i.z = clampFI32(PV0i.z);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(PV1i.x));
PV0i.w = clampFI32(PV0i.w);
// 7
PV1i.x = floatBitsToInt(-(intBitsToFloat(R10i.x)) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R4i.x)) + intBitsToFloat(PV0i.w));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R10i.z)) + intBitsToFloat(PV0i.y));
PV1i.w = floatBitsToInt(-(intBitsToFloat(R10i.y)) + intBitsToFloat(PV0i.z));
R127i.x = floatBitsToInt(-(intBitsToFloat(R4i.y)) + intBitsToFloat(PV0i.z));
PS1i = R127i.x;
// 8
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
backupReg3i = R4i.x;
R10i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg0i)));
R10i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.w),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg1i)));
R10i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg2i)));
PV0i.w = floatBitsToInt(-(intBitsToFloat(R4i.z)) + intBitsToFloat(R127i.y));
R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg3i)));
PS0i = R4i.x;
// 9
backupReg0i = R4i.y;
backupReg1i = R4i.z;
R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg0i)));
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(uf_remappedPS[3].w)) + intBitsToFloat(backupReg1i)));
// 10
R3i.w = R1i.w;
// 11
R5i.w = R1i.w;
// 12
R4i.w = R1i.w;
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R6i.w = R4i.w;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[3].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PS0i = floatBitsToInt(1.0 / intBitsToFloat(uf_remappedPS[3].y));
// 1
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(PS0i)));
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(PS0i)));
PV1i.y = R127i.y;
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(PS0i)));
// 2
R0i.x = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x40666666));
R0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x40666666));
R0i.z = floatBitsToInt(intBitsToFloat(PV1i.y) * intBitsToFloat(0x40666666));
R2i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f3851ec));
R2i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3f3851ec));
PS0i = R2i.y;
// 3
R2i.z = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3f3851ec));
}
if( activeMaskStackC[2] == true ) {
R0i.z = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R0i.x),intBitsToFloat(R0i.y),intBitsToFloat(R0i.z))).x);
R2i.y = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.w),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.z;
PV0i.z = floatBitsToInt(-(intBitsToFloat(backupReg0i)) + intBitsToFloat(R2i.y));
// 1
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x3f333333) + intBitsToFloat(R0i.z)));
PV1i.y = R123i.y;
// 2
PV0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[3].x)) + intBitsToFloat(PV1i.y));
// 3
R127i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x41a00000));
R127i.w = clampFI32(R127i.w);
PV1i.w = R127i.w;
// 4
backupReg0i = R10i.x;
backupReg1i = R10i.y;
backupReg2i = R10i.z;
backupReg3i = R4i.x;
R10i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w)));
R10i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w)));
R10i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(PV1i.w)));
R4i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(PV1i.w)));
PS0i = R4i.x;
// 5
backupReg0i = R4i.y;
backupReg1i = R4i.z;
R4i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R127i.w)));
R4i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R127i.w)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[4].x) * intBitsToFloat(0xbd088889));
// 1
R0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[5].y), intBitsToFloat(uf_remappedPS[6].x)));
// 2
predResult = (intBitsToFloat(uf_remappedPS[7].w) != 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
PV0i.x = floatBitsToInt(intBitsToFloat(R1i.x) * intBitsToFloat(0x3e22f983));
PV0i.y = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40e66666));
PV0i.z = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x3e22f983));
PV0i.w = floatBitsToInt(intBitsToFloat(R1i.z) * intBitsToFloat(0x3e22f983));
PS0i = floatBitsToInt(intBitsToFloat(R5i.x) + intBitsToFloat(R3i.z));
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.w),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.y = R123i.y;
PV1i.z = floatBitsToInt(intBitsToFloat(R5i.y) + intBitsToFloat(PS0i));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(PV0i.y)) + 0.5));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(max(intBitsToFloat(uf_remappedPS[7].w), -(intBitsToFloat(uf_remappedPS[7].w))));
// 2
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.x)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.z) * intBitsToFloat(0x3e99999a));
R125i.w = floatBitsToInt(sqrt(intBitsToFloat(PS1i)));
PS0i = R125i.w;
// 3
R127i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R127i.y = floatBitsToInt((intBitsToFloat(PV0i.z) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
R126i.z = R3i.y;
R126i.z = clampFI32(R126i.z);
R123i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.w = R123i.w;
R124i.w = floatBitsToInt((intBitsToFloat(0xc3020000) * intBitsToFloat(PS0i) + intBitsToFloat(0x43200000)));
PS1i = R124i.w;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R3i.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(0x3e22f983));
// 5
backupReg0i = R0i.x;
PV1i.x = floatBitsToInt(intBitsToFloat(R127i.y) * intBitsToFloat(0x3e22f983));
R127i.y = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x3e22f983));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.x)));
R0i.w = floatBitsToInt((intBitsToFloat(0xc31a0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43200000)));
R126i.y = floatBitsToInt(sin((intBitsToFloat(PS0i))/0.1591549367));
PS1i = R126i.y;
// 6
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),-0.0),vec4(intBitsToFloat(R10i.x),intBitsToFloat(R10i.y),intBitsToFloat(R10i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
R126i.w = tempi.x;
PS0i = floatBitsToInt(sin((intBitsToFloat(PV1i.x))/0.1591549367));
// 7
backupReg0i = R127i.y;
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(R127i.z)));
PV1i.x = R123i.x;
R127i.y = floatBitsToInt((intBitsToFloat(0xc2080000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x42200000)));
PV1i.z = floatBitsToInt(intBitsToFloat(R126i.y) + intBitsToFloat(PS0i));
R127i.w = floatBitsToInt((intBitsToFloat(0xbfe66666) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
PS1i = floatBitsToInt(sin((intBitsToFloat(backupReg0i))/0.1591549367));
// 8
R125i.x = floatBitsToInt((intBitsToFloat(0xbd8f5c29) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3d8f5c29)));
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + intBitsToFloat(PV1i.z));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.x) + intBitsToFloat(R126i.w));
R126i.w = floatBitsToInt((intBitsToFloat(0xc0333333) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40333333)));
tempResultf = max(0.0, intBitsToFloat(R126i.z));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
R127i.x = floatBitsToInt(tempResultf);
PS0i = R127i.x;
// 9
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * 0.25 + intBitsToFloat(PV0i.z)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R125i.w) * intBitsToFloat(0x3e4ccccd) + intBitsToFloat(0x3e4ccccd)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(0x3d4cccce) * intBitsToFloat(R125i.w) + intBitsToFloat(0x3dcccccd)));
PV1i.z = R123i.z;
PV1i.w = ((0.0 > intBitsToFloat(uf_remappedPS[7].w))?int(0xFFFFFFFF):int(0x0));
R126i.x = ((intBitsToFloat(uf_remappedPS[7].w) == 0.0)?int(0xFFFFFFFF):int(0x0));
PS1i = R126i.x;
// 10
PV0i.x = floatBitsToInt(intBitsToFloat(R127i.x) * intBitsToFloat(0x41000000));
R123i.y = ((PV1i.w == 0)?(PV1i.y):(PV1i.z));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV1i.x) * intBitsToFloat(0x3f400000) + intBitsToFloat(R0i.y)));
PV0i.z = R123i.z;
PV0i.w = PV1i.x;
PV0i.w = clampFI32(PV0i.w);
R127i.z = floatBitsToInt((intBitsToFloat(0xc3480000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x43960000)));
PS0i = R127i.z;
// 11
R127i.x = floatBitsToInt((intBitsToFloat(0xc36b0000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x437f0000)));
R123i.y = floatBitsToInt((intBitsToFloat(PV0i.w) * intBitsToFloat(0xbeb33333) + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R1i.w = ((R126i.x == 0)?(PV0i.y):(0));
R125i.z = floatBitsToInt(exp2(intBitsToFloat(PV0i.x)));
PS1i = R125i.z;
// 12
PV0i.x = floatBitsToInt(fract(intBitsToFloat(PV1i.y)));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
R125i.y = floatBitsToInt((intBitsToFloat(0x41600000) * intBitsToFloat(R125i.w) + intBitsToFloat(0x40c00000)));
// 13
PV1i.z = PV0i.x;
PV1i.z = clampFI32(PV1i.z);
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) + -(1.0));
PV1i.w = clampFI32(PV1i.w);
// 14
PV0i.y = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(PV1i.z));
// 15
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.y)));
PV1i.x = R126i.x;
R125i.w = PV0i.y;
R125i.w = floatBitsToInt(intBitsToFloat(R125i.w) * 2.0);
// 16
PV0i.z = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.x));
// 17
R126i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R125i.w)),intBitsToFloat(R126i.x)) + intBitsToFloat(PV0i.z)));
PV1i.y = R126i.y;
// 18
tempResultf = max(0.0, intBitsToFloat(PV1i.y));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 19
PV1i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x43480000));
// 20
R126i.z = floatBitsToInt(exp2(intBitsToFloat(PV1i.w)));
PS0i = R126i.z;
// 21
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R124i.w),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R125i.x)));
PV1i.w = R123i.w;
// 22
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.w),intBitsToFloat(R126i.z)) + intBitsToFloat(R126i.w)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.w)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 23
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.y)));
R123i.y = floatBitsToInt((intBitsToFloat(R126i.y) * intBitsToFloat(0x3ecccccd) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(R125i.z)) + intBitsToFloat(PV0i.z)));
PV1i.w = R123i.w;
// 24
R2i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(R1i.w)));
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.x),intBitsToFloat(R125i.z)) + intBitsToFloat(PV1i.y)));
PV0i.z = R123i.z;
// 25
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(R1i.w)));
R2i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R125i.x), intBitsToFloat(R1i.w)));
}
activeMaskStack[1] = activeMaskStack[1] == false;
activeMaskStackC[2] = activeMaskStack[1] == true && activeMaskStackC[1] == true;
if( activeMaskStackC[2] == true ) {
// 0
R2i.xyz = ivec3(0,0,0);
R1i.w = 0;
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[2].x) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R1i.w;
PV0i.x = floatBitsToInt(intBitsToFloat(R0i.y) * intBitsToFloat(0x40490fdb));
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
PV0i.z = floatBitsToInt(intBitsToFloat(R3i.z) + -(intBitsToFloat(R10i.y)));
R127i.w = floatBitsToInt(intBitsToFloat(R1i.y) * intBitsToFloat(0x40600000));
R1i.w = floatBitsToInt((intBitsToFloat(uf_remappedPS[2].x) * intBitsToFloat(0x3f4ccccd) + intBitsToFloat(backupReg0i)));
PS0i = R1i.w;
// 1
R127i.x = R3i.y;
R127i.x = clampFI32(R127i.x);
PV1i.x = R127i.x;
R123i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 0.5 + intBitsToFloat(PV0i.z)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3e22f983) + 0.5));
PV1i.z = R123i.z;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.x),intBitsToFloat(R127i.w)) + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(fract(intBitsToFloat(PV1i.z)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.x), intBitsToFloat(PV1i.x)));
PV0i.w = R127i.w;
// 3
R123i.x = floatBitsToInt((intBitsToFloat(PV0i.y) * intBitsToFloat(0x40c90fdb) + intBitsToFloat(0xc0490fdb)));
PV1i.x = R123i.x;
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PV0i.w)));
PV1i.w = floatBitsToInt(intBitsToFloat(R0i.y) + intBitsToFloat(PV0i.x));
// 4
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(R127i.w)));
PV0i.z = floatBitsToInt(fract(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) * intBitsToFloat(0x3e22f983));
// 5
PV1i.x = PV0i.z;
PV1i.x = clampFI32(PV1i.x);
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + -(1.0));
PV1i.y = clampFI32(PV1i.y);
PS1i = floatBitsToInt(sin((intBitsToFloat(PV0i.w))/0.1591549367));
// 6
PV0i.y = floatBitsToInt(intBitsToFloat(PS1i) + 1.0);
PV0i.y = floatBitsToInt(intBitsToFloat(PV0i.y) / 2.0);
PV0i.w = floatBitsToInt(-(intBitsToFloat(PV1i.y)) + intBitsToFloat(PV1i.x));
// 7
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(PV0i.y)) + intBitsToFloat(R127i.y)));
PV1i.x = R127i.x;
R127i.y = PV0i.w;
R127i.y = floatBitsToInt(intBitsToFloat(R127i.y) * 2.0);
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PV0i.w)));
PV1i.z = R127i.z;
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.y) + 0.5);
// 8
PV0i.x = floatBitsToInt(intBitsToFloat(0x40400000) * intBitsToFloat(PV1i.z));
R126i.y = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3df5c290));
R126i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3e8a3d71));
R127i.w = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x3b449ba6));
R126i.x = PV1i.x;
R126i.x = floatBitsToInt(intBitsToFloat(R126i.x) / 2.0);
PS0i = R126i.x;
// 9
backupReg0i = R127i.x;
backupReg0i = R127i.x;
backupReg1i = R127i.z;
R127i.x = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x41100000));
R127i.z = floatBitsToInt(intBitsToFloat(backupReg0i) * intBitsToFloat(0x40a00000));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.y)),intBitsToFloat(backupReg1i)) + intBitsToFloat(PV0i.x)));
PV1i.w = R123i.w;
// 10
tempResultf = max(0.0, intBitsToFloat(PV1i.w));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 11
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x40c00000));
// 12
PS0i = floatBitsToInt(exp2(intBitsToFloat(PV1i.y)));
// 13
R123i.y = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3dcccccd) + intBitsToFloat(R127i.w)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3f19999a) + intBitsToFloat(R126i.y)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666) + intBitsToFloat(R126i.z)));
PV1i.w = R123i.w;
// 14
PV0i.x = floatBitsToInt(intBitsToFloat(PV1i.z) + intBitsToFloat(R127i.z));
PV0i.y = floatBitsToInt(intBitsToFloat(PV1i.w) + intBitsToFloat(R127i.x));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.y) + intBitsToFloat(R126i.x));
// 15
PV1i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.w));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x));
PV1i.z = floatBitsToInt(-(intBitsToFloat(R2i.x)) + intBitsToFloat(PV0i.y));
// 16
backupReg0i = R2i.x;
backupReg1i = R2i.y;
backupReg2i = R2i.z;
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg0i)));
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg1i)));
R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(backupReg2i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
predResult = (intBitsToFloat(uf_remappedPS[2].y) > 0.0);
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R3i.x)));
R127i.z = floatBitsToInt(-(intBitsToFloat(R2i.x)));
// 1
PV1i.x = floatBitsToInt(-(intBitsToFloat(R2i.z)) + intBitsToFloat(PV0i.x));
PV1i.y = floatBitsToInt(-(intBitsToFloat(R2i.y)) + intBitsToFloat(PV0i.x));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y), intBitsToFloat(PV0i.x)));
// 2
backupReg0i = R2i.x;
backupReg1i = R2i.y;
backupReg2i = R2i.z;
backupReg3i = R1i.w;
R2i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg0i)));
R2i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.y),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg1i)));
R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.x),intBitsToFloat(PV1i.w)) + intBitsToFloat(backupReg2i)));
R1i.w = floatBitsToInt(intBitsToFloat(backupReg3i) + intBitsToFloat(PV1i.w));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
activeMaskStack[1] = activeMaskStack[0];
activeMaskStackC[2] = activeMaskStackC[1];
// 0
R127i.z = R1i.w;
R127i.z = clampFI32(R127i.z);
PV0i.z = R127i.z;
// 1
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.y)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R4i.z)));
PV1i.z = R123i.z;
R127i.w = ((intBitsToFloat(PV0i.z) > 0.0)?int(0xFFFFFFFF):int(0x0));
PV1i.w = R127i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.x),-(intBitsToFloat(PV0i.z))) + intBitsToFloat(R10i.x)));
PS1i = R122i.x;
// 2
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.z)));
PV0i.x = R123i.x;
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.x)));
PV0i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.y),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R10i.y)));
PV0i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV1i.y)));
PV0i.w = R123i.w;
R125i.z = ((PV1i.w == 0)?(R10i.x):(PS1i));
PS0i = R125i.z;
// 3
R127i.x = ((R127i.w == 0)?(R4i.x):(PV0i.w));
PV1i.x = R127i.x;
R127i.y = ((R127i.w == 0)?(R10i.y):(PV0i.z));
R126i.z = ((R127i.w == 0)?(R4i.z):(PV0i.x));
PV1i.z = R126i.z;
R126i.w = ((R127i.w == 0)?(R4i.y):(PV0i.y));
PV1i.w = R126i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R10i.z),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R10i.z)));
PS1i = R122i.x;
// 4
PV0i.x = floatBitsToInt(-(intBitsToFloat(PV1i.x)) + intBitsToFloat(uf_remappedPS[8].x));
R126i.y = ((R127i.w == 0)?(R10i.z):(PS1i));
PV0i.z = floatBitsToInt(-(intBitsToFloat(PV1i.w)) + intBitsToFloat(uf_remappedPS[8].y));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),-(intBitsToFloat(R127i.z))) + intBitsToFloat(R3i.w)));
PV0i.w = R123i.w;
PS0i = floatBitsToInt(-(intBitsToFloat(PV1i.z)) + intBitsToFloat(uf_remappedPS[8].z));
// 5
R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.x),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R127i.x)));
R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV0i.z),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.w)));
R0i.z = ((R127i.w == 0)?(R3i.w):(PV0i.w));
PV1i.z = R0i.z;
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS0i),intBitsToFloat(uf_remappedPS[8].w)) + intBitsToFloat(R126i.z)));
PS1i = R4i.z;
// 6
R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R125i.z)));
R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R127i.y)));
R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R126i.y),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R126i.y)));
PS0i = R6i.z;
// 7
predResult = (1.0 > intBitsToFloat(uf_remappedPS[5].w));
activeMaskStack[1] = predResult;
activeMaskStackC[2] = predResult == true && activeMaskStackC[1] == true;
}
else {
activeMaskStack[1] = false;
activeMaskStackC[2] = false;
}
if( activeMaskStackC[2] == true ) {
// 0
R0i.x = floatBitsToInt(-(intBitsToFloat(uf_remappedPS[5].w)) + 1.0);
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.x), intBitsToFloat(uf_remappedPS[6].x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.z), intBitsToFloat(uf_remappedPS[6].x)));
R1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.y), intBitsToFloat(uf_remappedPS[6].x)));
PV0i.w = R1i.w;
// 1
R1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(uf_remappedPS[9].z)));
R1i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[9].z)));
R1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(uf_remappedPS[9].z)));
R0i.w = PV0i.z;
R0i.w = floatBitsToInt(intBitsToFloat(R0i.w) / 2.0);
R2i.x = PV0i.y;
R2i.x = floatBitsToInt(intBitsToFloat(R2i.x) / 2.0);
PS1i = R2i.x;
}
if( activeMaskStackC[2] == true ) {
R1i.x = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.x;
R0i.x = floatBitsToInt(intBitsToFloat(backupReg0i) + intBitsToFloat(0xbe19999a));
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[9].y)));
R2i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[9].w),intBitsToFloat(R1i.x)) + intBitsToFloat(R0i.w)));
}
if( activeMaskStackC[2] == true ) {
R0i.w = floatBitsToInt(texture(textureUnitPS1, vec3(intBitsToFloat(R2i.x),intBitsToFloat(R2i.y),intBitsToFloat(R2i.z))).x);
}
if( activeMaskStackC[2] == true ) {
// 0
backupReg0i = R0i.w;
R2i.z = floatBitsToInt((-(intBitsToFloat(uf_remappedPS[5].w)) * intBitsToFloat(0x40200000) + intBitsToFloat(0x40200000)));
R2i.z = clampFI32(R2i.z);
PV0i.w = floatBitsToInt(intBitsToFloat(R0i.x) * intBitsToFloat(0x3f969696));
PV0i.w = clampFI32(PV0i.w);
tempResultf = max(0.0, intBitsToFloat(backupReg0i));
tempResultf = log2(tempResultf);
if( isinf(tempResultf) == true ) tempResultf = -3.40282347E+38F;
PS0i = floatBitsToInt(tempResultf);
// 1
if( (intBitsToFloat(PV0i.w) > intBitsToFloat(R0i.w))) discard;
R0i.w = floatBitsToInt(intBitsToFloat(PS0i) * intBitsToFloat(0x3fe66666));
}
if( activeMaskStackC[2] == true ) {
// 0
R127i.z = floatBitsToInt(exp2(intBitsToFloat(R0i.w)));
PS0i = R127i.z;
// 1
R123i.x = floatBitsToInt((intBitsToFloat(0x40b1999a) * intBitsToFloat(PS0i) + intBitsToFloat(0x3ee66666)));
PV1i.x = R123i.x;
R123i.y = floatBitsToInt((intBitsToFloat(0x3dccccce) * intBitsToFloat(PS0i) + intBitsToFloat(0x3e4ccccd)));
PV1i.y = R123i.y;
// 2
backupReg0i = R4i.x;
backupReg1i = R4i.y;
R4i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.y)) + intBitsToFloat(backupReg0i)));
R4i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV1i.x)) + intBitsToFloat(backupReg1i)));
R123i.w = floatBitsToInt((intBitsToFloat(0x41200000) * intBitsToFloat(R127i.z) + 4.0));
PV0i.w = R123i.w;
// 3
backupReg0i = R4i.z;
R4i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(backupReg0i)));
}
activeMaskStackC[1] = activeMaskStack[0] == true && activeMaskStackC[0] == true;
if( activeMaskStackC[1] == true ) {
// 0
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R0i.z),-(intBitsToFloat(uf_remappedPS[8].w))) + intBitsToFloat(R0i.z)));
PV0i.x = R123i.x;
PV0i.y = ((intBitsToFloat(R5i.w) > 0.5)?int(0xFFFFFFFF):int(0x0));
PV0i.z = ((intBitsToFloat(R6i.w) > 0.0)?int(0xFFFFFFFF):int(0x0));
R127i.w = uf_remappedPS[7].z;
R1i.w = floatBitsToInt(1.0);
PS0i = R1i.w;
// 1
R123i.x = ((PV0i.y == 0)?(0x3d008081):(0x3d20a0a1));
PV1i.x = R123i.x;
R127i.y = ((PV0i.z == 0)?(0):(0x3f800000));
PV1i.y = R127i.y;
R0i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 0.5 + 0.5));
PV1i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x427f0000));
R0i.x = floatBitsToInt((intBitsToFloat(R5i.x) * 0.5 + 0.5));
PS1i = R0i.x;
// 2
PV0i.x = ((intBitsToFloat(PV1i.y) > 0.0)?int(0xFFFFFFFF):int(0x0));
R0i.y = floatBitsToInt((intBitsToFloat(R5i.y) * 0.5 + 0.5));
PV0i.z = floatBitsToInt(floor(intBitsToFloat(PV1i.w)));
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 4.0);
R123i.w = ((R5i.z == 0)?(PV1i.x):(0x3d30b0b1));
PV0i.w = R123i.w;
R2i.w = 0x3f800000;
PS0i = R2i.w;
// 3
R1i.x = PV0i.w;
PV1i.y = floatBitsToInt(intBitsToFloat(PV0i.z) + 2.0);
R123i.w = ((PV0i.x == 0)?(R5i.w):(R6i.w));
PV1i.w = R123i.w;
R1i.y = R127i.w;
PS1i = R1i.y;
// 4
PV0i.x = floatBitsToInt(intBitsToFloat(R4i.w) + intBitsToFloat(PV1i.y));
PV0i.z = floatBitsToInt(intBitsToFloat(PV1i.w) * intBitsToFloat(0x437f0000));
// 5
R0i.w = floatBitsToInt(intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081));
PS1i = int(intBitsToFloat(PV0i.z));
// 6
PV0i.x = PS1i & 0x000000e0;
// 7
PV1i.w = PV0i.x >> 0x00000003;
// 8
PS0i = floatBitsToInt(float(PV1i.w));
// 9
PV1i.y = floatBitsToInt(intBitsToFloat(PS0i) + intBitsToFloat(0x42800000));
// 10
R123i.x = floatBitsToInt((intBitsToFloat(R127i.y) * 2.0 + intBitsToFloat(PV1i.y)));
PV0i.x = R123i.x;
// 11
R5i.w = floatBitsToInt((intBitsToFloat(PV0i.x) * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081)));
// 12
backupReg0i = R4i.x;
backupReg1i = R4i.y;
backupReg2i = R4i.z;
R4i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R4i.w = R2i.w;
// 13
R3i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R3i.w = R0i.w;
// 14
R2i.xyz = ivec3(R6i.x,R6i.y,R6i.z);
R2i.w = R5i.w;
// 15
backupReg0i = R1i.x;
backupReg1i = R1i.y;
backupReg2i = R1i.z;
backupReg3i = R1i.w;
R1i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R1i.w = backupReg3i;
}
// export
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w));
passPixelColor1 = 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));
passPixelColor5 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
}

View File

@ -1,55 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Ancient weapons
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Ancient weapons"
description = Change Ancient weapons 's color and brightness. Originally it varies. Ancient Orange's Brightness is changed to Bow's.
version = 4
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L = 20.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L = 40.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L = 29.576
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L = 11.525
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L = 20.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L = 40.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L = 40.0 # Brightness, can't scale because original unnormalized color use L=1

View File

@ -1,232 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Decayed Guardian
// shader 85d00659937443d5
#ifdef VULKAN
layout(set = 1, binding = 6) uniform ufBlock
{
uniform ivec4 uf_remappedPS[3];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
#endif
// uf_fragCoordScale was moved to the ufBlock
TEXTURE_LAYOUT(3, 1, 0) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 1) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 2) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7;
TEXTURE_LAYOUT(8, 1, 5) uniform sampler2D textureUnitPS8;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem6;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem5;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R123f = vec4(0.0);
vec4 R124f = 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;
R0f = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem6;
R3f = passParameterSem3;
R4f = passParameterSem4;
R5f = passParameterSem5;
R8f.xyz = (texture(textureUnitPS5, R0f.xy).xyz);
R7f.xyz = (texture(textureUnitPS6, R0f.xy).xyz);
R6f.xyz = (texture(textureUnitPS7, R0f.zw).xyz);
R1f.xyz = (texture(textureUnitPS8, R1f.xy).xyz);
R1f.w = (texture(textureUnitPS4, R0f.xy).x);
R0f.xyz = (texture(textureUnitPS3, R0f.xy).xyz);
// 0
PV0f.x = mul_nonIEEE(R3f.y, R4f.z);
R126f.y = (R8f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV0f.y = R126f.y;
PV0f.z = mul_nonIEEE(R3f.z, R4f.x);
PV0f.w = mul_nonIEEE(R3f.x, R4f.y);
R127f.x = (R8f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PS0f = R127f.x;
// 1
R126f.x = (mul_nonIEEE(-(R4f.z),R3f.x) + PV0f.z);
R127f.y = (mul_nonIEEE(-(R4f.y),R3f.z) + PV0f.x);
PV1f.z = mul_nonIEEE(PV0f.y, PV0f.y);
R127f.w = (mul_nonIEEE(-(R4f.x),R3f.y) + PV0f.w);
R127f.z = mul_nonIEEE(R4f.w, PS0f);
PS1f = R127f.z;
// 2
backupReg0f = R127f.x;
backupReg0f = R127f.x;
R127f.x = mul_nonIEEE(R6f.x, R1f.x);
R125f.y = mul_nonIEEE(R6f.y, R1f.y);
R126f.z = mul_nonIEEE(R6f.z, R1f.z);
R123f.w = (mul_nonIEEE(backupReg0f,backupReg0f) + PV1f.z);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R124f.z = mul_nonIEEE(Color.g, R7f.y);
PS0f = R124f.z;
// 3
backupReg0f = R127f.y;
R125f.x = mul_nonIEEE(Color.b, R7f.z);
R127f.y = -(PV0f.w) + 1.0;
PV1f.z = mul_nonIEEE(backupReg0f, R127f.z);
R125f.w = mul_nonIEEE(Color.r, R7f.x);
PS1f = mul_nonIEEE(R126f.x, R127f.z);
// 4
PV0f.x = mul_nonIEEE(R127f.w, R127f.z);
R123f.y = (mul_nonIEEE(-(R2f.z),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y)));
R123f.y = clamp(R123f.y, 0.0, 1.0);
PV0f.y = R123f.y;
R127f.z = (mul_nonIEEE(R4f.x,R126f.y) + PV1f.z)/2.0;
R127f.w = (mul_nonIEEE(R4f.y,R126f.y) + PS1f)/2.0;
R124f.y = mul_nonIEEE(R127f.x, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PS0f = R124f.y;
// 5
backupReg0f = R127f.y;
R126f.x = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), PV0f.y);
R127f.y = (mul_nonIEEE(R4f.z,R126f.y) + PV0f.x)/2.0;
R125f.z = mul_nonIEEE(Color.g, R124f.z);
R126f.w = mul_nonIEEE(Color.r, R125f.w);
R127f.x = sqrt(backupReg0f);
R127f.x /= 2.0;
PS1f = R127f.x;
// 6
backupReg0f = R126f.z;
R124f.x = mul_nonIEEE(R125f.y, intBitsToFloat(uf_remappedPS[1].x) * Factor);
R125f.y = mul_nonIEEE(Color.b, R125f.x);
R126f.z = intBitsToFloat(0x427f0000) * R1f.w;
R124f.w = mul_nonIEEE(backupReg0f, intBitsToFloat(uf_remappedPS[1].x) * Factor);
R126f.y = intBitsToFloat(0x427f0000) * R8f.z;
PS0f = R126f.y;
// 7
backupReg0f = R127f.x;
backupReg0f = R127f.x;
backupReg1f = R3f.y;
backupReg0f = R127f.x;
R127f.x = (mul_nonIEEE(R3f.x,backupReg0f) + R127f.z);
R3f.y = (mul_nonIEEE(R3f.z,backupReg0f) + R127f.y);
R127f.z = (mul_nonIEEE(backupReg1f,backupReg0f) + R127f.w);
R127f.w = mul_nonIEEE(R126f.x, R126f.w);
R127f.y = mul_nonIEEE(R126f.x, R125f.z);
PS1f = R127f.y;
// 8
backupReg0f = R126f.x;
backupReg1f = R124f.z;
R126f.x = mul_nonIEEE(backupReg0f, R125f.y);
R125f.y = mul_nonIEEE(R125f.x, R124f.w);
R124f.z = mul_nonIEEE(backupReg1f, R124f.x);
PV0f.w = mul_nonIEEE(R125f.w, R124f.y);
R125f.w = intBitsToFloat(0x3c808081);
PS0f = R125f.w;
// 9
backupReg0f = R126f.y;
R125f.x = floor(R126f.z);
R125f.x *= 4.0;
R126f.y = floor(backupReg0f);
R126f.y *= 4.0;
R126f.z = intBitsToFloat(uf_remappedPS[2].z);
R4f.w = 1.0;
R1f.x = (mul_nonIEEE(R127f.w,R124f.y) + PV0f.w);
PS1f = R1f.x;
// 10
R4f.x = R125f.w;
R1f.y = (mul_nonIEEE(R127f.y,R124f.x) + R124f.z);
R1f.z = (mul_nonIEEE(R126f.x,R124f.w) + R125f.y);
R1f.w = 1.0;
R8f.y = mul_nonIEEE(R5f.x, R0f.y);
PS0f = R8f.y;
// 11
R8f.x = mul_nonIEEE(R5f.x, R0f.x);
R4f.y = R126f.z;
R8f.z = mul_nonIEEE(R5f.x, R0f.z);
R0f.w = (R126f.y * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081));
R0f.x = R127f.x + 0.5;
PS1f = R0f.x;
// 12
R0f.y = R127f.z + 0.5;
R0f.z = R3f.y + 0.5;
R8f.w = (R125f.x * intBitsToFloat(0x3b808081) + intBitsToFloat(0x3b808081));
// 13
R12f.xyz = vec3(R1f.x,R1f.y,R1f.z);
R12f.w = R1f.w;
// 14
R11f.xyz = vec3(R0f.x,R0f.y,R0f.z);
R11f.w = R0f.w;
// 15
R10f.xyz = vec3(R8f.x,R8f.y,R8f.z);
R10f.w = R8f.w;
// 16
R9f.xyz = vec3(R4f.x,R4f.y,R4f.z);
R9f.w = R4f.w;
// export
passPixelColor0 = vec4(R9f.x, R9f.y, R9f.z, R9f.w);
passPixelColor1 = vec4(R10f.x, R10f.y, R10f.z, R10f.w);
passPixelColor3 = vec4(R11f.x, R11f.y, R11f.z, R11f.w);
passPixelColor5 = vec4(R12f.x, R12f.y, R12f.z, R12f.w);
}

View File

@ -1,55 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Decayed Guardian
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Decayed Guardian"
description = Change Decayed Guardian (including Stalkers with weathered appearance)'s color. Originally it's Malice Red.
version = 4
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 1.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.0
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 1.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 1.0

View File

@ -1,251 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Guardian Stalker + Scout + Guardian weapons
// shader 91b6e09da2ff63cc
#ifdef VULKAN
layout(set = 1, binding = 6) uniform ufBlock
{
uniform ivec4 uf_remappedPS[3];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[3];
uniform vec2 uf_fragCoordScale;
#endif
// uf_fragCoordScale was moved to the ufBlock
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem7;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem6;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 R122f = vec4(0.0);
vec4 R123f = vec4(0.0);
vec4 R124f = 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;
R0f = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem7;
R3f = passParameterSem3;
R4f = passParameterSem4;
R5f = passParameterSem6;
R5f.xy = (texture(textureUnitPS3, R0f.xy).xy);
R1f.w = (texture(textureUnitPS2, R0f.xy).x);
R7f.xyz = (texture(textureUnitPS4, R0f.xy).xyz);
R6f.xyz = (texture(textureUnitPS5, R0f.zw).xyz);
R1f.xyz = (texture(textureUnitPS6, R1f.xy).xyz);
R0f.xyz = (texture(textureUnitPS1, R0f.xy).xyz);
// 0
PV0f.x = fract(R2f.x);
R126f.y = (R5f.x * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV0f.y = R126f.y;
R127f.z = mul_nonIEEE(R3f.y, R4f.z);
PV0f.w = fract(R2f.y);
R126f.z = mul_nonIEEE(R3f.z, R4f.x);
PS0f = R126f.z;
// 1
PV1f.x = mul_nonIEEE(R3f.x, R4f.y);
PV1f.y = PV0f.w + -(0.5);
PV1f.z = PV0f.x + -(0.5);
R127f.w = (R5f.y * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204));
PV1f.w = R127f.w;
PS1f = mul_nonIEEE(PV0f.y, PV0f.y);
// 2
R123f.x = (mul_nonIEEE(-(PV1f.z),PV1f.z) + 1.0);
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
R127f.y = (mul_nonIEEE(-(R4f.y),R3f.z) + R127f.z);
R127f.z = (mul_nonIEEE(-(R4f.x),R3f.y) + PV1f.x);
R123f.w = (mul_nonIEEE(-(PV1f.y),PV1f.y) + 1.0);
R123f.w = clamp(R123f.w, 0.0, 1.0);
PV0f.w = R123f.w;
R122f.x = (mul_nonIEEE(PV1f.w,PV1f.w) + PS1f);
R122f.x = clamp(R122f.x, 0.0, 1.0);
PS0f = R122f.x;
// 3
PV1f.x = -(PS0f) + 1.0;
PV1f.y = mul_nonIEEE(R4f.w, R127f.w);
PV1f.z = mul_nonIEEE(PV0f.x, PV0f.w);
R123f.w = (mul_nonIEEE(-(R4f.z),R3f.x) + R126f.z);
PV1f.w = R123f.w;
R125f.z = mul_nonIEEE(R6f.x, R1f.x);
PS1f = R125f.z;
// 4
PV0f.x = mul_nonIEEE(R127f.y, PV1f.y);
PV0f.y = mul_nonIEEE(PV1f.z, PV1f.z);
PV0f.z = mul_nonIEEE(R127f.z, PV1f.y);
PV0f.w = mul_nonIEEE(PV1f.w, PV1f.y);
R127f.z = sqrt(PV1f.x);
PS0f = R127f.z;
// 5
R123f.x = (mul_nonIEEE(R4f.y,R126f.y) + PV0f.w);
PV1f.x = R123f.x;
R123f.y = (mul_nonIEEE(R4f.x,R126f.y) + PV0f.x);
PV1f.y = R123f.y;
R126f.z = mul_nonIEEE(R1f.w, PV0f.y);
R123f.w = (mul_nonIEEE(R4f.z,R126f.y) + PV0f.z);
PV1f.w = R123f.w;
R126f.y = mul_nonIEEE(R6f.z, R1f.z);
PS1f = R126f.y;
// 6
R124f.x = (mul_nonIEEE(R3f.x,R127f.z) + PV1f.y);
R124f.y = (mul_nonIEEE(R3f.y,R127f.z) + PV1f.x);
R1f.z = (mul_nonIEEE(R3f.z,R127f.z) + PV1f.w);
R127f.w = mul_nonIEEE(R6f.y, R1f.y);
R126f.w = mul_nonIEEE(Color.r, R7f.x);
PS0f = R126f.w;
// 7
R127f.x = mul_nonIEEE(Color.r, PS0f);
R127f.y = mul_nonIEEE(Color.g, R7f.y);
PV1f.z = R126f.z * intBitsToFloat(0x427f0000);
R125f.w = mul_nonIEEE(Color.b, R7f.z);
R124f.z = intBitsToFloat(0x3d008081);
PS1f = R124f.z;
// 8
R123f.x = (mul_nonIEEE(-(R5f.z),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y)));
R123f.x = clamp(R123f.x, 0.0, 1.0);
PV0f.x = R123f.x;
R125f.y = mul_nonIEEE(R125f.z, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PV0f.y = R125f.y;
R127f.z = mul_nonIEEE(R127f.w, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PV0f.z = R127f.z;
R127f.w = mul_nonIEEE(R126f.y, intBitsToFloat(uf_remappedPS[1].x) * Factor);
PV0f.w = R127f.w;
R126f.y = floor(PV1f.z);
R126f.y *= 4.0;
PS0f = R126f.y;
// 9
backupReg0f = R126f.w;
R126f.x = mul_nonIEEE(R127f.y, PV0f.z);
PV1f.y = mul_nonIEEE(Color.g, R127f.y);
R125f.z = mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), PV0f.x);
PV1f.z = R125f.z;
R126f.w = mul_nonIEEE(backupReg0f, PV0f.y);
R125f.x = mul_nonIEEE(R125f.w, PV0f.w);
PS1f = R125f.x;
// 10
backupReg0f = R126f.y;
PV0f.x = mul_nonIEEE(Color.b, R125f.w);
R126f.y = mul_nonIEEE(PV1f.z, R127f.x);
R126f.z = mul_nonIEEE(PV1f.z, PV1f.y);
R125f.w = intBitsToFloat(uf_remappedPS[2].z);
R127f.x = backupReg0f + 2.0;
PS0f = R127f.x;
// 11
backupReg0f = R125f.z;
tempf.x = dot(vec4(R124f.x,R124f.y,R1f.z,-0.0),vec4(R124f.x,R124f.y,R1f.z,0.0));
PV1f.x = tempf.x;
PV1f.y = tempf.x;
PV1f.z = tempf.x;
PV1f.w = tempf.x;
R125f.z = tempf.x;
PS1f = mul_nonIEEE(backupReg0f, PV0f.x);
// 12
R5f.x = (mul_nonIEEE(R126f.y,R125f.y) + R126f.w);
R5f.y = (mul_nonIEEE(R126f.z,R127f.z) + R126f.x);
R5f.z = (mul_nonIEEE(PS1f,R127f.w) + R125f.x);
R1f.w = 1.0;
R1f.x = R124f.z;
PS0f = R1f.x;
// 13
R1f.y = R125f.w;
R5f.w = 1.0;
R7f.w = R127f.x * intBitsToFloat(0x3b808081);
PS1f = R7f.w;
// 14
R0f.w = intBitsToFloat(0x3ec2c2c4);
tempResultf = 1.0 / sqrt(R125f.z);
PS0f = tempResultf;
PS0f /= 2.0;
// 15
R7f.x = (mul_nonIEEE(R124f.x,PS0f) + 0.5);
R7f.y = (mul_nonIEEE(R124f.y,PS0f) + 0.5);
R7f.z = (mul_nonIEEE(R1f.z,PS0f) + 0.5);
// 16
backupReg0f = R5f.x;
backupReg1f = R5f.y;
backupReg2f = R5f.z;
backupReg3f = R5f.w;
R5f.xyz = vec3(backupReg0f,backupReg1f,backupReg2f);
R5f.w = backupReg3f;
// 17
R4f.xyz = vec3(R7f.x,R7f.y,R7f.z);
R4f.w = R7f.w;
// 18
R3f.xyz = vec3(R0f.x,R0f.y,R0f.z);
R3f.w = R0f.w;
// 19
R2f.xyz = vec3(R1f.x,R1f.y,R1f.z);
R2f.w = R1f.w;
// export
passPixelColor0 = vec4(R2f.x, R2f.y, R2f.z, R2f.w);
passPixelColor1 = vec4(R3f.x, R3f.y, R3f.z, R3f.w);
passPixelColor3 = vec4(R4f.x, R4f.y, R4f.z, R4f.w);
passPixelColor5 = vec4(R5f.x, R5f.y, R5f.z, R5f.w);
}

View File

@ -1,55 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Guardian Stalker & Guardian Scout & The top Half of Guardian weapons
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Guardian Stalker & Scout & Guardian weapons"
description = Change Guardian Stalker, Scout, Guardian weapons's color. Originally it depends on whether it's corrupted by malice, or the state of the Guardian Scout.
version = 4
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 1.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.0
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 1.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 1.0

View File

@ -1,332 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
const vec3 Color = vec3($R,$G,$B);
const float Factor = $L_f;
// Guardian Turret + Skywatcher
// shader 133297c9a66bfc98
#ifdef VULKAN
layout(set = 1, binding = 6) uniform ufBlock
{
uniform ivec4 uf_remappedPS[5];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[5];
uniform vec2 uf_fragCoordScale;
#endif
// uf_fragCoordScale was moved to the ufBlock
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem7;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem6;
layout(location = 0) out vec4 passPixelColor0;
layout(location = 1) out vec4 passPixelColor1;
layout(location = 3) out vec4 passPixelColor3;
layout(location = 5) out vec4 passPixelColor5;
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 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;
R0i = floatBitsToInt(passParameterSem0);
R1i = floatBitsToInt(passParameterSem1);
R2i = floatBitsToInt(passParameterSem7);
R3i = floatBitsToInt(passParameterSem3);
R4i = floatBitsToInt(passParameterSem4);
R5i = floatBitsToInt(passParameterSem6);
R6i.xy = floatBitsToInt(texture(textureUnitPS3, intBitsToFloat(R0i.xy)).xy);
R9i.xy = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R0i.xy)).xy);
R2i.w = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R1i.zw)).w);
R8i.xyz = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).xyz);
R7i.xyz = floatBitsToInt(texture(textureUnitPS5, intBitsToFloat(R0i.zw)).xyz);
R1i.xyz = floatBitsToInt(texture(textureUnitPS6, intBitsToFloat(R1i.xy)).xyz);
R0i.xyz = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R0i.xy)).xyz);
// 0
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.x), intBitsToFloat(R4i.y)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.z), intBitsToFloat(R4i.x)));
R127i.z = floatBitsToInt((intBitsToFloat(R6i.x) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PV0i.z = R127i.z;
PV0i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R3i.y), intBitsToFloat(R4i.z)));
R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * intBitsToFloat(0x40008102) + intBitsToFloat(0xbf810204)));
PS0i = R127i.y;
// 1
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.z), intBitsToFloat(PV0i.z)));
R123i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.x)),intBitsToFloat(R3i.y)) + intBitsToFloat(PV0i.x)));
PV1i.y = R123i.y;
R123i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.y)),intBitsToFloat(R3i.z)) + intBitsToFloat(PV0i.w)));
PV1i.z = R123i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R4i.z)),intBitsToFloat(R3i.x)) + intBitsToFloat(PV0i.y)));
PV1i.w = R123i.w;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R4i.w), intBitsToFloat(PS0i)));
// 2
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.z), intBitsToFloat(PS1i)));
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(PS1i)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.w), intBitsToFloat(PS1i)));
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.y),intBitsToFloat(R127i.y)) + intBitsToFloat(PV1i.x)));
R123i.w = clampFI32(R123i.w);
PV0i.w = R123i.w;
R126i.x = floatBitsToInt(fract(intBitsToFloat(R2i.x)));
PS0i = R126i.x;
// 3
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.x),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.x)));
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.z),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.y)));
PV1i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)) + 1.0);
R127i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R4i.y),intBitsToFloat(R127i.z)) + intBitsToFloat(PV0i.z)));
R127i.z = floatBitsToInt(fract(intBitsToFloat(R2i.y)));
PS1i = R127i.z;
// 4
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),-0.0),vec4(intBitsToFloat(R5i.x),intBitsToFloat(R5i.y),intBitsToFloat(R5i.z),0.0)));
PV0i.x = tempi.x;
PV0i.y = tempi.x;
PV0i.z = tempi.x;
PV0i.w = tempi.x;
PS0i = floatBitsToInt(sqrt(intBitsToFloat(PV1i.z)));
// 5
backupReg0i = R127i.x;
backupReg1i = R127i.y;
R127i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.x),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg0i)));
PV1i.x = R127i.x;
R127i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.y),intBitsToFloat(PS0i)) + intBitsToFloat(R127i.w)));
PV1i.y = R127i.y;
R126i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.z),intBitsToFloat(PS0i)) + intBitsToFloat(backupReg1i)));
PV1i.z = R126i.z;
R127i.w = floatBitsToInt(intBitsToFloat(R126i.x) + -(0.5));
PS1i = floatBitsToInt(sqrt(intBitsToFloat(PV0i.x)));
// 6
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(1.0 / intBitsToFloat(PS1i));
// 7
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.x), intBitsToFloat(PS0i)));
PV1i.y = floatBitsToInt(intBitsToFloat(R127i.z) + -(0.5));
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.y), intBitsToFloat(PS0i)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R5i.z), intBitsToFloat(PS0i)));
tempResultf = 1.0 / sqrt(intBitsToFloat(PV0i.x));
PS1i = floatBitsToInt(tempResultf);
// 8
R3i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.x), intBitsToFloat(PS1i)));
PV0i.x = R3i.x;
R3i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(PS1i)));
PV0i.y = R3i.y;
R3i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R126i.z), intBitsToFloat(PS1i)));
PV0i.z = R3i.z;
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R127i.w)),intBitsToFloat(R127i.w)) + 1.0));
R123i.w = clampFI32(R123i.w);
PV0i.w = R123i.w;
R122i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(PV1i.y)),intBitsToFloat(PV1i.y)) + 1.0));
R122i.x = clampFI32(R122i.x);
PS0i = R122i.x;
// 9
tempi.x = floatBitsToInt(dot(vec4(intBitsToFloat(R126i.x),intBitsToFloat(R127i.z),intBitsToFloat(R126i.w),-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;
PS1i = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(PS0i)));
// 10
R123i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PS1i),intBitsToFloat(PS1i)) + intBitsToFloat(R9i.y)));
R123i.x = clampFI32(R123i.x);
PV0i.x = R123i.x;
PV0i.y = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(0x437f0000));
PV0i.z = floatBitsToInt(intBitsToFloat(R2i.w) + -(1.0));
PV0i.w = floatBitsToInt(intBitsToFloat(PV1i.x) + 1.0);
PV0i.w = clampFI32(PV0i.w);
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.x), intBitsToFloat(R1i.x)));
PS0i = R127i.y;
// 11
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.y), intBitsToFloat(R1i.y)));
R126i.y = floatBitsToInt(intBitsToFloat(PV0i.w) + intBitsToFloat(PV0i.z));
PV1i.y = R126i.y;
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R7i.z), intBitsToFloat(R1i.z)));
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R9i.x), intBitsToFloat(PV0i.x)));
PS1i = int(intBitsToFloat(PV0i.y));
// 12
R127i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R8i.x)));
R125i.y = PS1i & 0x000000e0;
R126i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R8i.y)));
R127i.w = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R8i.z)));
R125i.x = floatBitsToInt(intBitsToFloat(R8i.x) + intBitsToFloat(PV1i.y));
PS0i = R125i.x;
// 13
backupReg0i = R126i.x;
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R124i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R125i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.z), intBitsToFloat(uf_remappedPS[1].x) * Factor));
R123i.w = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R5i.z)),intBitsToFloat(uf_remappedPS[1].z)) + -(intBitsToFloat(uf_remappedPS[1].y))));
R123i.w = clampFI32(R123i.w);
PV1i.w = R123i.w;
R125i.w = floatBitsToInt(intBitsToFloat(R8i.y) + intBitsToFloat(R126i.y));
PS1i = R125i.w;
// 14
backupReg0i = R126i.y;
backupReg1i = R126i.w;
PV0i.x = floatBitsToInt(mul_nonIEEE(Color.r, intBitsToFloat(R127i.x)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w), intBitsToFloat(PV1i.w)));
PV0i.y = R126i.y;
PV0i.z = floatBitsToInt(mul_nonIEEE(Color.g, intBitsToFloat(R126i.z)));
R126i.w = floatBitsToInt(intBitsToFloat(R8i.z) + intBitsToFloat(backupReg0i));
R127i.y = floatBitsToInt(intBitsToFloat(backupReg1i) * intBitsToFloat(0x427f0000));
PS0i = R127i.y;
// 15
backupReg0i = R125i.y;
backupReg1i = R127i.x;
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.x)));
R125i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.y), intBitsToFloat(PV0i.z)));
R127i.z = backupReg0i >> 0x00000003;
PV1i.w = floatBitsToInt(mul_nonIEEE(Color.b, intBitsToFloat(R127i.w)));
R124i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(R126i.x)));
PS1i = R124i.x;
// 16
backupReg0i = R125i.x;
backupReg1i = R126i.y;
backupReg2i = R126i.z;
backupReg3i = R127i.w;
R125i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(backupReg0i)));
R125i.x = clampFI32(R125i.x);
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.w)));
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg2i), intBitsToFloat(R124i.y)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg3i), intBitsToFloat(R125i.z)));
R8i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(R125i.w)));
R8i.x = clampFI32(R8i.x);
PS0i = R8i.x;
// 17
backupReg0i = R127i.x;
backupReg1i = R9i.y;
backupReg2i = R127i.z;
R127i.x = floatBitsToInt(floor(intBitsToFloat(R127i.y)));
R127i.x = floatBitsToInt(intBitsToFloat(R127i.x) * 4.0);
R9i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg0i),intBitsToFloat(R126i.x)) + intBitsToFloat(R124i.x)));
R127i.z = ((intBitsToFloat(backupReg1i) > 0.5)?int(0xFFFFFFFF):int(0x0));
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].x), intBitsToFloat(R126i.w)));
PV1i.w = clampFI32(PV1i.w);
R127i.y = floatBitsToInt(float(backupReg2i));
PS1i = R127i.y;
// 18
backupReg0i = R125i.x;
backupReg1i = R126i.y;
R125i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R125i.y),intBitsToFloat(R124i.y)) + intBitsToFloat(R126i.z)));
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].y), intBitsToFloat(R8i.x)));
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].x), intBitsToFloat(backupReg0i)));
R126i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(backupReg1i),intBitsToFloat(R125i.z)) + intBitsToFloat(R127i.w)));
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(uf_remappedPS[3].z), intBitsToFloat(PV1i.w)));
PS0i = R127i.w;
// 19
backupReg0i = R127i.z;
backupReg1i = R9i.y;
R8i.x = floatBitsToInt(intBitsToFloat(R127i.x) + 2.0);
R9i.y = floatBitsToInt(intBitsToFloat(R127i.y) + intBitsToFloat(0x42c20000));
R127i.z = uf_remappedPS[4].z;
R125i.w = ((backupReg0i == 0)?(0x3d008081):(0x3d20a0a1));
R5i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(PV0i.z)) + intBitsToFloat(backupReg1i)));
PS1i = R5i.x;
// 20
R1i.x = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.x)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.x)));
R1i.x = clampFI32(R1i.x);
R5i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R126i.y)) + intBitsToFloat(R125i.x)));
R5i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[2].y),intBitsToFloat(R127i.w)) + intBitsToFloat(R126i.w)));
R7i.w = floatBitsToInt(1.0);
R1i.y = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.y)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.y)));
R1i.y = clampFI32(R1i.y);
PS0i = R1i.y;
// 21
R7i.x = R125i.w;
R7i.y = R127i.z;
R1i.z = floatBitsToInt((mul_nonIEEE(-(intBitsToFloat(R0i.z)),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(R0i.z)));
R1i.z = clampFI32(R1i.z);
R5i.w = 0x3f800000;
R0i.x = floatBitsToInt((intBitsToFloat(R3i.x) * 0.5 + 0.5));
PS1i = R0i.x;
// 0
R0i.y = floatBitsToInt((intBitsToFloat(R3i.y) * 0.5 + 0.5));
R0i.z = floatBitsToInt((intBitsToFloat(R3i.z) * 0.5 + 0.5));
R0i.w = floatBitsToInt(intBitsToFloat(R8i.x) * intBitsToFloat(0x3b808081));
R1i.w = floatBitsToInt(intBitsToFloat(R9i.y) * intBitsToFloat(0x3b808081));
PS0i = R1i.w;
// 1
backupReg0i = R5i.x;
backupReg1i = R5i.y;
backupReg2i = R5i.z;
backupReg3i = R5i.w;
R5i.xyz = ivec3(backupReg0i,backupReg1i,backupReg2i);
R5i.w = backupReg3i;
// 2
R4i.xyz = ivec3(R0i.x,R0i.y,R0i.z);
R4i.w = R0i.w;
// 3
R3i.xyz = ivec3(R1i.x,R1i.y,R1i.z);
R3i.w = R1i.w;
// 4
R2i.xyz = ivec3(R7i.x,R7i.y,R7i.z);
R2i.w = R7i.w;
// export
passPixelColor0 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
passPixelColor1 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
passPixelColor3 = vec4(intBitsToFloat(R4i.x), intBitsToFloat(R4i.y), intBitsToFloat(R4i.z), intBitsToFloat(R4i.w));
passPixelColor5 = vec4(intBitsToFloat(R5i.x), intBitsToFloat(R5i.y), intBitsToFloat(R5i.z), intBitsToFloat(R5i.w));
}

View File

@ -1,55 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Guardian Turret & Skywatcher
path = "The Legend of Zelda: Breath of the Wild/Mods/Change Ancient Glow Color/Guardian Turret & Skywatcher"
description = Change Guardian Turret, Skywatcher's color. Originally it depends on whether it's corrupted by malice or not.
version = 4
[Preset]
name = Malice Red
$R = 0.85
$G = 0.029
$B = 0.15
$L_f = 1.0
[Preset]
name = Guardian Yellow
$R = 1.0
$G = 0.2
$B = 0.059
$L_f = 1.0
[Preset]
name = Guardian weapon Yellow
$R = 1.0
$G = 0.2
$B = 0.0
$L_f = 1.0
[Preset]
name = Ancient Orange
$R = 1.0
$G = 0.2
$B = 0.0006
$L_f = 1.0
[Preset]
name = Ancient weapon Orange
$R = 1.0
$G = 0.15
$B = 0.05
$L_f = 1.0
[Preset]
name = Energy Blue
$R = 0.03
$G = 0.25
$B = 1.0
$L_f = 1.0
[Preset]
name = Custom (Edit in rules.txt)
$R = 0.000
$G = 0.000
$B = 0.000
$L_f = 1.0

View File

@ -1,11 +0,0 @@
# Top half of the Guardian weapon is drawed with Scout shader while the bottom half is Skywatcher shader.
# Generally color is between 0-1 which is then multiplied by brightness (So Guardian can turn on/off)
# Guardian 50 (changing), Ancient armor 20, Ancient bow about 11
# Exception: Ancient sword, shield (20.0, 3.0, 1.0) use un-normalized color, with brightness being 1.0
# Equals to (1.0, 0.15, 0.05) with brightness 20
# Game control color & brightness with a uniform, so they can vary between objects (and through time) drawn with the same shader. It's hard to do this in Gfx pack.
# In theory You can add if condition to check for game's uniform value so you can change the color of a specific object without affecting others.
# Try converting custom color from gamma encoded to linear (color/255)^2.2 if it look slightly off in game.

View File

@ -1,17 +0,0 @@
[BotW_FasterArrowDraw_V208]
moduleMatches = 0x6267BFD0
_arrowDrawAddress = 0x100c50A0 ; Just used to load the lower half of the 0x100c50A0 offset from
# Change offset from r10 register slightly to load a 3.0 float instead of 1.0
0x024A0164 = lfs f0, _arrowDrawAddress@l(r10) ; Bow Draw Speed
0x024A019C = lfs f0, _arrowDrawAddress@l(r10) ; Bow Draw Cooldown
[BotW_FasterArrowDraw_V176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
_arrowDrawAddress = 0x100c5040
0x0249FDC0 = lfs f0, _arrowDrawAddress@l(r10)
0x0249FDF8 = lfs f0, _arrowDrawAddress@l(r10)

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Faster Arrow Draw
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Faster Arrow Draw"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x029E949C = mr r29, r11; Inf Amiibo
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x029E90F0 = mr r29, r11; Inf Amiibo

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Amiibo
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Amiibo"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02EB6758 = nop; Inf Arrows
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x02EB61BC = nop ;inf arrows

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Arrows
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Arrows"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02D74498 = nop; Inf Daruk's Protection
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x02D73EFC = nop; Inf Daruk's Protection

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Daruk's Protection
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Daruk's Protection"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02D452A4 = nop; Inf Hearts
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x02D44D44 = nop ;inf hearts

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Hearts
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Hearts"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02D91DBC = fmuls f0, f13, f12; Inf Mipha's Grace
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x02D91820 = fmuls f0, f13, f12; Inf Mipha's Grace

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Mipha's Grace
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Mipha's Grace"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x020957DC = fmr f12, f0; Inf Motorcycle Energy
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x0209583C = fmr f12, f0; Inf Motorcycle Energy

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Motorcycle Energy
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Motorcycle Energy"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02CE0328 = nop; Inf Revali's Gale
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x02CDFE0C = nop; Inf Revali's Gale

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Revali's Gale
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Revali's Gale"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02D90CC0 = fmr f29, f1; Inf Stamina
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x02D90724 = fmr f29, f1 ;inf stamina

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Stamina
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Stamina"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02D741C8 = nop; Inf Urbosa's Fury
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x02D73C2C = nop; Inf Urbosa's Fury

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Urbosa's Fury
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Urbosa's Fury"
description = BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,9 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x024ACBF4 = fsub f31, f31, f31; Inf Weapons, Bows and Shields (except burn damage and throwing weapon)
[BotwV176V192]
moduleMatches = 0xFD091F9F,0xD472D8A5
0x024AC850 = fsub f31, f31, f31; Inf Weapons, Bows and Shields (except burn damage and throwing weapon)

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Infinite Weapons, Bows and Shields
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Infinite Weapons, Bows and Shields"
description = (except burn damage and throwing weapon) BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,4 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x02A32A30 = li r3, 1; Spawn motorcycle anywhere, credits to Zeikken (converting to patches) and leoetlino (finding the value).

View File

@ -1,4 +0,0 @@
BotW Cheats by C313571N and Xalphenos.
Burning of wooden items does not decrease durability, but measures for how long the item is burning and when it is long enough, item is instantly destroyed regardless of current durability.
Throwing a weapon instantly destroys it.

View File

@ -1,6 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Spawn Motorcycle Anywhere
path = "The Legend of Zelda: Breath of the Wild/Mods/Cheats/Spawn Motorcycle Anywhere"
description = v208 only! Credits to Zeikken (converting to patches) and leoetlino (finding the value). BotW Cheats by C313571N and Xalphenos
version = 4

View File

@ -1,4 +0,0 @@
[BotwV208]
moduleMatches = 0x6267BFD0
0x10301844 = .float (1/(120*$timeScale))

View File

@ -1,46 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Day Length
path = "The Legend of Zelda: Breath of the Wild/Mods/Day Length"
description = Changes the amount of real time an in-game day takes. Any game slowdown will make the actual time longer. Blood moons won't appear or be less common.
version = 4
[Preset]
name = 48 minutes
$timeScale = 2
[Preset]
name = 72 minutes
$timeScale = 3
[Preset]
name = 96 minutes
$timeScale = 4
[Preset]
name = 2 hours
$timeScale = 5
[Preset]
name = 4 hours
$timeScale = 10
[Preset]
name = 6 hours
$timeScale = 15
[Preset]
name = 8 hours
$timeScale = 20
[Preset]
name = 12 hours
$timeScale = 30
[Preset]
name = 24 hours
$timeScale = 60
[Preset]
name = Freeze time
$timeScale = 6000

View File

@ -1,713 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 2e2543216c04766d -- Water RGB and edge clarity and Distant Water Fog
#define waterfogred $waterfogred
#define waterfoggreen $waterfoggreen
#define waterfogblue $waterfogblue
#ifdef VULKAN
layout(set = 1, binding = 9) uniform ufBlock
{
uniform ivec4 uf_remappedPS[14];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[14];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(1, 1, 0) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(4, 1, 2) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(6, 1, 3) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 4) uniform sampler2D textureUnitPS7;
TEXTURE_LAYOUT(8, 1, 5) uniform samplerCubeArray textureUnitPS8;
TEXTURE_LAYOUT(10, 1, 6) uniform sampler2DArray textureUnitPS10;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11;
TEXTURE_LAYOUT(13, 1, 8) uniform sampler2D textureUnitPS13;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem4;
layout(location = 2) in vec4 passParameterSem6;
layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock
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
}

View File

@ -1,996 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader bec68ec6f40a864f -- Affects distant area fog rgb, distance lighting, ground lighting
#define dli $distantlighting
#define dred $dred
#define dgreen $dgreen
#define dblue $dblue
#ifdef VULKAN
layout(set = 1, binding = 12) uniform ufBlock
{
uniform ivec4 uf_remappedPS[33];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[33];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 6) uniform samplerCubeArray textureUnitPS7;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11;
TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12;
TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14;
TEXTURE_LAYOUT(15, 1, 10) uniform sampler2D textureUnitPS15;
TEXTURE_LAYOUT(17, 1, 11) uniform sampler2D textureUnitPS17;
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;
// uf_fragCoordScale was moved to the ufBlock
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
}

View File

@ -1,988 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader fb2e18ae56397ca7 -- Affects Trees Bushes and Vines
#define gli $greenerylighting
#define gred $gred
#define ggreen $ggreen
#define gblue $gblue
#ifdef VULKAN
layout(set = 1, binding = 12) uniform ufBlock
{
uniform ivec4 uf_remappedPS[33];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[33];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 6) uniform samplerCubeArray textureUnitPS7;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11;
TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12;
TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14;
TEXTURE_LAYOUT(15, 1, 10) uniform sampler2D textureUnitPS15;
TEXTURE_LAYOUT(16, 1, 11) uniform sampler2D textureUnitPS16;
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;
// uf_fragCoordScale was moved to the ufBlock
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
}

View File

@ -1,338 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Distant Area Fog Pack
path = "The Legend of Zelda: Breath of the Wild/Mods/Distant Fog Removal/Distant Fog - Main"
description = Can Remove Distant Fog Haze from the world. Change its RGB color. Light up the Distance.
version = 4
[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

View File

@ -1,210 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// 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
#ifdef VULKAN
layout(set = 1, binding = 3) uniform ufBlock
{
uniform ivec4 uf_remappedPS[2];
uniform float uf_alphaTestRef;
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[2];
uniform float uf_alphaTestRef;
uniform vec2 uf_fragCoordScale;
#endif
// uf_alphaTestRef was moved to the ufBlock
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2;
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;
// uf_fragCoordScale was moved to the ufBlock
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
}

View File

@ -1,233 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// 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
#ifdef VULKAN
layout(set = 1, binding = 3) uniform ufBlock
{
uniform ivec4 uf_remappedPS[3];
uniform float uf_alphaTestRef;
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[3];
uniform float uf_alphaTestRef;
uniform vec2 uf_fragCoordScale;
#endif
// uf_alphaTestRef was moved to the ufBlock
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2;
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;
// uf_fragCoordScale was moved to the ufBlock
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
}

View File

@ -1,252 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// shader 5a8eb2055c65a0c2 -- Vertex Shader - Close to Castle Aura RGB
#define aurafog $aurafog
#define aurared $aurared
#define auragreen $auragreen
#define aurablue $aurablue
#define auraopacity $auraopacity
#ifdef VULKAN
layout(set = 1, binding = 4) uniform ufBlock
{
uniform ivec4 uf_remappedPS[5];
uniform float uf_alphaTestRef;
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[5];
uniform float uf_alphaTestRef;
uniform vec2 uf_fragCoordScale;
#endif
// uf_alphaTestRef was moved to the ufBlock
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(1, 1, 1) uniform sampler2D textureUnitPS1;
TEXTURE_LAYOUT(2, 1, 2) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
layout(location = 0) in vec4 passParameterSem0;
layout(location = 1) in vec4 passParameterSem1;
layout(location = 2) in vec4 passParameterSem2;
layout(location = 3) in vec4 passParameterSem3;
layout(location = 4) in vec4 passParameterSem4;
layout(location = 5) in vec4 passParameterSem5;
layout(location = 6) in vec4 passParameterSem7;
layout(location = 7) in vec4 passParameterSem8;
layout(location = 8) in vec4 passParameterSem9;
layout(location = 9) in vec4 passParameterSem11;
layout(location = 10) in vec4 passParameterSem14;
layout(location = 11) in vec4 passParameterSem15;
layout(location = 12) in vec4 passParameterSem16;
layout(location = 0) out vec4 passPixelColor0;
// uf_fragCoordScale was moved to the ufBlock
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;
R0f = passParameterSem0;
R1f = passParameterSem1;
R2f = passParameterSem2;
R3f = passParameterSem3;
R4f = passParameterSem4;
R5f = passParameterSem5;
R6f = passParameterSem7;
R7f = passParameterSem8;
R8f = passParameterSem9;
R9f = passParameterSem11;
R10f = passParameterSem14;
R11f = passParameterSem15;
R12f = passParameterSem16;
R5f.xw = (texture(textureUnitPS0, R7f.xy).xw);
// 0
R127f.x = R2f.z * R2f.z;
R123f.y = (R5f.x * 2.0 + -(1.0));
PV0f.y = R123f.y;
R4f.z = -(intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[0].w);
R123f.w = (R5f.w * 2.0 + -(1.0));
PV0f.w = R123f.w;
PS0f = 1.0 / R3f.w;
// 1
R13f.x = mul_nonIEEE(R3f.x, PS0f);
PV1f.y = mul_nonIEEE(R5f.y, PV0f.w);
PV1f.z = mul_nonIEEE(R4f.y, PV0f.y);
R13f.w = mul_nonIEEE(R3f.y, PS0f);
R6f.y = 1.0 / R3f.w;
PS1f = R6f.y;
// 2
backupReg0f = R5f.z;
backupReg0f = R5f.z;
R5f.x = R7f.z + PV1f.z;
R5f.y = R7f.w + PV1f.y;
R5f.z = (mul_nonIEEE(backupReg0f,PV1f.z) + R8f.x);
R5f.w = (mul_nonIEEE(backupReg0f,PV1f.y) + R8f.y);
R7f.x = (R2f.y * R2f.y + R127f.x);
PS0f = R7f.x;
R5f.x = (texture(textureUnitPS1, R5f.xy).w);
R8f.xw = (texture(textureUnitPS2, R5f.zw).xw);
R5f.z = (texture(textureUnitPS4, R13f.xw).x);
// 0
R123f.x = (mul_nonIEEE(R6f.w,R5f.x) + -(R0f.w));
PV0f.x = R123f.x;
PV0f.y = R3f.z * R6f.y;
R123f.z = (R2f.x * R2f.x + R7f.x);
PV0f.z = R123f.z;
R127f.w = mul_nonIEEE(R8f.w, R8f.w);
R126f.w = (mul_nonIEEE(intBitsToFloat(uf_remappedPS[1].w),R5f.z) + intBitsToFloat(uf_remappedPS[1].x));
PS0f = R126f.w;
// 1
PV1f.x = mul_nonIEEE(R8f.x, R8f.x);
R127f.y = (mul_nonIEEE(PV0f.y,intBitsToFloat(uf_remappedPS[1].w)) + -(intBitsToFloat(uf_remappedPS[1].y)));
R125f.w = mul_nonIEEE(R1f.w, PV0f.x);
R125f.w = clamp(R125f.w, 0.0, 1.0);
PV1f.w = R125f.w;
tempResultf = 1.0 / sqrt(PV0f.z);
PS1f = tempResultf;
// 2
backupReg0f = R127f.w;
PV0f.x = mul_nonIEEE(R2f.x, PS1f);
PV0f.y = mul_nonIEEE(R2f.y, PS1f);
PV0f.z = mul_nonIEEE(R2f.z, PS1f);
R127f.w = mul_nonIEEE(backupReg0f, PV1f.w);
PV0f.w = R127f.w;
R127f.z = mul_nonIEEE(PV1f.x, PV1f.w);
PS0f = R127f.z;
// 3
backupReg0f = R0f.x;
tempf.x = dot(vec4(R9f.x,R9f.y,R9f.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;
R122f.x = (mul_nonIEEE(backupReg0f,PV0f.w) + intBitsToFloat(0x3c75c28f));
PS1f = R122f.x;
// 4
backupReg0f = R0f.y;
PV0f.x = max(PV1f.x, -(PV1f.x));
R0f.y = (mul_nonIEEE(R1f.x,R127f.z) + PS1f);
R123f.z = (mul_nonIEEE(R0f.z,R127f.w) + intBitsToFloat(0x3d23d70a));
PV0f.z = R123f.z;
R123f.w = (mul_nonIEEE(backupReg0f,R127f.w) + intBitsToFloat(0x3c75c28f));
PV0f.w = R123f.w;
PS0f = 1.0 / R127f.y;
// 5
R1f.x = (mul_nonIEEE(R1f.y,R127f.z) + PV0f.w);
PV1f.y = -(intBitsToFloat(uf_remappedPS[1].z)) * PS0f;
PV1f.z = PV0f.x + -(intBitsToFloat(uf_remappedPS[0].z));
R1f.w = (mul_nonIEEE(R1f.z,R127f.z) + PV0f.z);
PS1f = 1.0 / R4f.z;
// 6
PV0f.x = PV1f.z * PS1f;
PV0f.x = clamp(PV0f.x, 0.0, 1.0);
R127f.y = R125f.w;
R127f.y = clamp(R127f.y, 0.0, 1.0);
PV0f.z = -(PV1f.y) + R126f.w;
PS0f = 1.0 / intBitsToFloat(uf_remappedPS[2].y);
// 7
PV1f.x = PV0f.z * PS0f;
PV1f.x = clamp(PV1f.x, 0.0, 1.0);
R123f.z = (intBitsToFloat(0xc0000000) * PV0f.x + intBitsToFloat(0x40400000));
PV1f.z = R123f.z;
PV1f.w = mul_nonIEEE(PV0f.x, PV0f.x);
// 8
PV0f.y = mul_nonIEEE(PV1f.w, PV1f.z);
PV0f.w = mul_nonIEEE(R127f.y, PV1f.x);
// 9
PV1f.x = mul_nonIEEE(PV0f.w, PV0f.y);
// 10
PV0f.w = mul_nonIEEE(R4f.x, PV1f.x);
// 11
backupReg0f = R10f.w;
R10f.w = mul_nonIEEE(backupReg0f, PV0f.w);
// 0
backupReg0f = R0f.y;
PV0f.x = -(R1f.w) + intBitsToFloat(uf_remappedPS[3].z);
PV0f.y = -(R1f.x) + intBitsToFloat(uf_remappedPS[3].y);
PV0f.z = -(backupReg0f) + intBitsToFloat(uf_remappedPS[3].x);
// 1
R127f.y = (mul_nonIEEE(PV0f.x,R12f.y) + R1f.w);
PV1f.y = R127f.y;
R127f.z = (mul_nonIEEE(PV0f.y,R12f.y) + R1f.x);
PV1f.z = R127f.z;
R126f.w = (mul_nonIEEE(PV0f.z,R12f.y) + R0f.y);
PV1f.w = R126f.w;
// 2
PV0f.x = R11f.x + -(PV1f.w);
PV0f.z = R11f.z + -(PV1f.y);
PV0f.w = R11f.y + -(PV1f.z);
// 3
backupReg0f = R127f.y;
R127f.x = (mul_nonIEEE(PV0f.w,R11f.w) + R127f.z);
PV1f.x = R127f.x;
R127f.y = (mul_nonIEEE(PV0f.x,R11f.w) + R126f.w);
PV1f.y = R127f.y;
R126f.w = (mul_nonIEEE(PV0f.z,R11f.w) + backupReg0f);
PV1f.w = R126f.w;
// 4
PV0f.x = -(PV1f.w) + intBitsToFloat(uf_remappedPS[4].z);
PV0f.y = -(PV1f.x) + intBitsToFloat(uf_remappedPS[4].y);
PV0f.z = -(PV1f.y) + intBitsToFloat(uf_remappedPS[4].x);
// 5
R10f.x = (mul_nonIEEE(PV0f.z,R12f.x) + R127f.y);
R10f.y = (mul_nonIEEE(PV0f.y,R12f.x) + R127f.x);
R10f.z = (mul_nonIEEE(PV0f.x,R12f.x) + R126f.w);
// export
if( ((vec4(R10f.x, R10f.y, R10f.z, R10f.w)).a > uf_alphaTestRef) == false) discard;
passPixelColor0 = vec4(R10f.x * aurared, R10f.y * auragreen, R10f.z * aurablue, R10f.w * auraopacity);
}

View File

@ -1,24 +0,0 @@
# 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]

View File

@ -1,132 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Castle Ganons Aura Pack
path = "The Legend of Zelda: Breath of the Wild/Mods/Distant Fog Removal/Hyrule Castle Ganons Aura"
description = Can Remove the Fog on Ganons Aura on Hyrule castle. Change its RGB color.
version = 4
[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]

View File

@ -1,219 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// 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
#ifdef VULKAN
layout(set = 1, binding = 2) uniform ufBlock
{
uniform ivec4 uf_remappedPS[5];
uniform float uf_alphaTestRef;
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[5];
uniform float uf_alphaTestRef;
uniform vec2 uf_fragCoordScale;
#endif
// uf_alphaTestRef was moved to the ufBlock
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(4, 1, 1) uniform sampler2D textureUnitPS4;
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;
// uf_fragCoordScale was moved to the ufBlock
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
}

View File

@ -1,21 +0,0 @@
# 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]

View File

@ -1,100 +0,0 @@
[Definition]
titleIds = 00050000101C9300,00050000101C9400,00050000101C9500
name = Hyrule Castle Base Fog Pack
path = "The Legend of Zelda: Breath of the Wild/Mods/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 = 4
[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]

View File

@ -1,847 +0,0 @@
#version 420
#extension GL_ARB_texture_gather : enable
#extension GL_ARB_separate_shader_objects : enable
#ifdef VULKAN
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation)
#define SET_POSITION(_v) gl_Position = _v; gl_Position.z = (gl_Position.z + gl_Position.w) / 2.0
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
#define gl_VertexID gl_VertexIndex
#define gl_InstanceID gl_InstanceIndex
#else
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
#define SET_POSITION(_v) gl_Position = _v
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
#endif
/* This shaders was auto-converted from OpenGL to Cemu.
Conversion output:
*/
// 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
#ifdef VULKAN
layout(set = 1, binding = 11) uniform ufBlock
{
uniform ivec4 uf_remappedPS[33];
uniform vec4 uf_fragCoordScale;
};
#else
uniform ivec4 uf_remappedPS[33];
uniform vec2 uf_fragCoordScale;
#endif
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
TEXTURE_LAYOUT(2, 1, 1) uniform sampler2D textureUnitPS2;
TEXTURE_LAYOUT(3, 1, 2) uniform sampler2D textureUnitPS3;
TEXTURE_LAYOUT(4, 1, 3) uniform sampler2D textureUnitPS4;
TEXTURE_LAYOUT(5, 1, 4) uniform sampler2D textureUnitPS5;
TEXTURE_LAYOUT(6, 1, 5) uniform sampler2D textureUnitPS6;
TEXTURE_LAYOUT(7, 1, 6) uniform samplerCubeArray textureUnitPS7;
TEXTURE_LAYOUT(11, 1, 7) uniform sampler2D textureUnitPS11;
TEXTURE_LAYOUT(12, 1, 8) uniform sampler2D textureUnitPS12;
TEXTURE_LAYOUT(14, 1, 9) uniform sampler2D textureUnitPS14;
TEXTURE_LAYOUT(15, 1, 10) uniform sampler2D textureUnitPS15;
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;
// uf_fragCoordScale was moved to the ufBlock
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));
}

Some files were not shown because too many files have changed in this diff Show More