mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-11-25 02:56:53 +01:00
Update NSMBU to V5, add No HUD Pack, additions to BotW's Fog pack
Thanks to Seb from the Discord for this new No HUD pack!
This commit is contained in:
parent
558a8fee48
commit
5cd77cf68b
@ -1,43 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
|
||||||
name = Resolution
|
|
||||||
path = "New Super Mario Bros. U/Enhancements/Fancy FX" #and luigi
|
|
||||||
description = Pretty blur, de-band sky, re-align cinematic etc, maintained on Nvidia.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2560x1440 (Native x2)
|
|
||||||
$internalRes = 1.0
|
|
||||||
$dither = 0.1
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 0.5
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1920x1080 (HD)
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.15
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 0.25
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3840x2160 (4k - Native x3)
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.2
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 1.0
|
|
||||||
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x001
|
|
||||||
overwriteFormat = 0x005
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteFormat = 0x01f
|
|
||||||
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
|||||||
#version 420
|
|
||||||
#extension GL_ARB_texture_gather : enable
|
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
|
||||||
// shader 03285368cf940e37 //box bg
|
|
||||||
|
|
||||||
//float dither = $dither ;
|
|
||||||
//float scaleShader = $scaleShader;
|
|
||||||
float scaleBlur = ($scaleBlur); //0.25 4k
|
|
||||||
int sampleScale = 2;
|
|
||||||
//float lightBloom = 0.95;
|
|
||||||
|
|
||||||
|
|
||||||
layout(binding = 0) uniform sampler2D textureUnitPS0;// Tex0 addr 0xf4240800 res 1280x720x1 dim 1 tm: 4 format 001a compSel: 0 1 2 3 mipView: 0x0 (num 0x1) sliceView: 0x0 (num 0x1) Sampler0 ClampX/Y/Z: 2 2 2 border: 1
|
|
||||||
layout(location = 0) in vec4 passParameterSem3;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
uniform vec2 uf_fragCoordScale;
|
|
||||||
|
|
||||||
// FabriceNeyret2 CC, single shader gaussian by intermediate MIPmap level. www.shadertoy.com/view/ltScRG
|
|
||||||
const int samples = 8 * sampleScale, //8 or 4 balances xy position
|
|
||||||
LOD = 2, // gaussian done on MIPmap at scale LOD
|
|
||||||
sLOD = 1 << LOD; // tile size = 2^LOD
|
|
||||||
const float sigma = float(samples) * .25;
|
|
||||||
|
|
||||||
float gaussian(vec2 i) {
|
|
||||||
return exp(-.5* dot(i /= sigma, i)) / (6.28 * sigma*sigma);
|
|
||||||
}
|
|
||||||
|
|
||||||
vec4 blur(sampler2D sp, vec2 U, vec2 scale) {
|
|
||||||
vec4 O = vec4(0.0);
|
|
||||||
int s = samples / sLOD;
|
|
||||||
|
|
||||||
for (int i = 0; i < s*s; i++) {
|
|
||||||
vec2 d = vec2(i%s, i / s)*float(sLOD) - float(samples) / 2.;
|
|
||||||
O += gaussian(d) * textureLod(sp, U + scale * d, float(LOD));
|
|
||||||
}
|
|
||||||
|
|
||||||
//O / O.a;
|
|
||||||
return vec4(O.x, O.y, O.z, 0.0)*17; //16 exact, 17 ~ a touch more haze to compensate res increase
|
|
||||||
}
|
|
||||||
|
|
||||||
int clampFI32(int v)
|
|
||||||
{
|
|
||||||
if( v == 0x7FFFFFFF )
|
|
||||||
return floatBitsToInt(1.0);
|
|
||||||
else if( v == 0xFFFFFFFF )
|
|
||||||
return floatBitsToInt(0.0);
|
|
||||||
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
|
||||||
}
|
|
||||||
float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));}
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec4 R0f = vec4(0.0);
|
|
||||||
vec4 R1f = vec4(0.0);
|
|
||||||
vec4 R2f = vec4(0.0);
|
|
||||||
vec4 R3f = vec4(0.0);
|
|
||||||
vec4 R123f = 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 = passParameterSem3;
|
|
||||||
|
|
||||||
vec2 coord = passParameterSem3.xy*textureSize(textureUnitPS0, 0); //
|
|
||||||
vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0);
|
|
||||||
vec2 uv = coord * ps;
|
|
||||||
|
|
||||||
R1f.xyz = blur(textureUnitPS0, R0f.xy, ps*scaleBlur).xyz;
|
|
||||||
R2f.xyz = R1f.xyz;
|
|
||||||
R3f.xyz = R1f.xyz;
|
|
||||||
R0f.xyz = R1f.xyz;
|
|
||||||
/*
|
|
||||||
R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
|
||||||
R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz);
|
|
||||||
R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz);
|
|
||||||
R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz);
|
|
||||||
*/
|
|
||||||
|
|
||||||
// 0
|
|
||||||
PV0f.x = R1f.z + R2f.z;
|
|
||||||
PV0f.x /= 2.0;
|
|
||||||
PV0f.z = R1f.y + R2f.y;
|
|
||||||
PV0f.z /= 2.0;
|
|
||||||
PV0f.w = R1f.x + R2f.x;
|
|
||||||
PV0f.w /= 2.0;
|
|
||||||
// 1
|
|
||||||
R123f.x = (R3f.y * 0.5 + PV0f.z);
|
|
||||||
PV1f.x = R123f.x;
|
|
||||||
R123f.y = (R3f.x * 0.5 + PV0f.w);
|
|
||||||
PV1f.y = R123f.y;
|
|
||||||
R123f.w = (R3f.z * 0.5 + PV0f.x);
|
|
||||||
PV1f.w = R123f.w;
|
|
||||||
// 2
|
|
||||||
backupReg0f = R0f.x;
|
|
||||||
backupReg1f = R0f.y;
|
|
||||||
backupReg2f = R0f.z;
|
|
||||||
R0f.x = (backupReg0f * 0.5 + PV1f.y)/2.0;
|
|
||||||
R0f.y = (backupReg1f * 0.5 + PV1f.x)/2.0;
|
|
||||||
R0f.z = (backupReg2f * 0.5 + PV1f.w)/2.0;
|
|
||||||
// export
|
|
||||||
passPixelColor0 = vec4(R0f.x, R0f.y, R0f.z, R0f.w);
|
|
||||||
}
|
|
@ -1,251 +0,0 @@
|
|||||||
[Definition]
|
|
||||||
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
|
||||||
name = Resolution
|
|
||||||
path = "New Super Mario Bros. U/Graphics/Resolution" #and luigi
|
|
||||||
description = Changes the resolution of the game. Made by getdls.
|
|
||||||
version = 4
|
|
||||||
|
|
||||||
//compatible resolutions
|
|
||||||
[Preset]
|
|
||||||
name = 1280x720 (Default)
|
|
||||||
$width = 1280
|
|
||||||
$height = 720
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.01
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 0.05
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 640x360
|
|
||||||
$width = 640
|
|
||||||
$height = 360
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.01
|
|
||||||
$scaleShader = 0.5
|
|
||||||
$scaleBlur = 0.0
|
|
||||||
|
|
||||||
// Quality
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1920x1080 (HD)
|
|
||||||
$width = 1920
|
|
||||||
$height = 1080
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.15
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 0.25
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 1600x900
|
|
||||||
$width = 1600
|
|
||||||
$height = 900
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.1
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 0.25
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 2560x1440 (Native x2)
|
|
||||||
$width = 2560
|
|
||||||
$height = 1440
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1.5
|
|
||||||
$dither = 0.1
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 0.5
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3200x1800
|
|
||||||
$width = 3200
|
|
||||||
$height = 1800
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.2
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 0.75
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 3840x2160 (4k - Native x3)
|
|
||||||
$width = 3840
|
|
||||||
$height = 2160
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.2
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 1.0
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 5120x2880
|
|
||||||
$width = 5120
|
|
||||||
$height = 2880
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.25
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 1.0
|
|
||||||
// Enthusiast
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 7680x4320
|
|
||||||
$width = 7680
|
|
||||||
$height = 4320
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.25
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 1.0
|
|
||||||
|
|
||||||
[Preset]
|
|
||||||
name = 10240x5760
|
|
||||||
$width = 10240
|
|
||||||
$height = 5760
|
|
||||||
$gameWidth = 1280
|
|
||||||
$gameHeight = 720
|
|
||||||
$internalRes = 1
|
|
||||||
$dither = 0.25
|
|
||||||
$scaleShader = 1.0
|
|
||||||
$scaleBlur = 1.0
|
|
||||||
|
|
||||||
#[TextureRedefine] # Tile map, dont scale
|
|
||||||
#width = 2048
|
|
||||||
#height = 512
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 1280
|
|
||||||
height = 720
|
|
||||||
#formats = 0x80e,0x01a,0x001
|
|
||||||
tileModesExcluded = 0x001
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 1280
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 720
|
|
||||||
|
|
||||||
[TextureRedefine] #map shadows
|
|
||||||
width = 1024
|
|
||||||
height = 1024
|
|
||||||
formats = 0x005
|
|
||||||
overwriteWidth = ($height/$gameHeight) * 1024
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 1024
|
|
||||||
|
|
||||||
[TextureRedefine] #Pad
|
|
||||||
width = 864
|
|
||||||
height = 480
|
|
||||||
#formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 864
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 480
|
|
||||||
|
|
||||||
[TextureRedefine] #Pad
|
|
||||||
width = 854
|
|
||||||
height = 480
|
|
||||||
#formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 854
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 480
|
|
||||||
|
|
||||||
[TextureRedefine] #Horizon blur
|
|
||||||
width = 640
|
|
||||||
height = 368
|
|
||||||
#formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 640
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 368
|
|
||||||
|
|
||||||
[TextureRedefine] #Horizon blur
|
|
||||||
width = 640
|
|
||||||
height = 360
|
|
||||||
#formats = 0x01a
|
|
||||||
tileModesExcluded = 0x001
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 640
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 360
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 512
|
|
||||||
height = 256
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 512
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 256
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 256
|
|
||||||
height = 128
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 256
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 128
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 320
|
|
||||||
height = 180
|
|
||||||
#formatsExcluded =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 320
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 180
|
|
||||||
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 320
|
|
||||||
height = 180
|
|
||||||
#formatsExcluded =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 320
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 180
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 160
|
|
||||||
height = 208
|
|
||||||
#formats = 0x80e,0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 160
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 208
|
|
||||||
|
|
||||||
[TextureRedefine] #portraits
|
|
||||||
width = 160
|
|
||||||
height = 196
|
|
||||||
#formats = 0x80e,0x01a
|
|
||||||
formatsExcluded = 0x033
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 160
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 196
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 160
|
|
||||||
height = 90
|
|
||||||
#formatsExcluded =
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 160
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 90
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 128
|
|
||||||
height = 64
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 128
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 64
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 64
|
|
||||||
height = 32
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 64
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 32
|
|
||||||
|
|
||||||
[TextureRedefine]
|
|
||||||
width = 32
|
|
||||||
height = 16
|
|
||||||
formats = 0x01a
|
|
||||||
overwriteWidth = ($width/$gameWidth) * 32
|
|
||||||
overwriteHeight = ($height/$gameHeight) * 16
|
|
||||||
|
|
||||||
## Gradient don't scale
|
|
||||||
#width = 48
|
|
||||||
#height = 48
|
|
||||||
|
|
||||||
#[TextureRedefine]
|
|
||||||
#width = 1
|
|
||||||
#height = 1
|
|
||||||
#formatsExcluded =
|
|
||||||
#overwriteWidth = ($width/$gameWidth) * 1
|
|
||||||
#overwriteHeight = ($height/$gameHeight) * 1
|
|
@ -1,25 +0,0 @@
|
|||||||
[NSMBU+LUv0]
|
|
||||||
moduleMatches = 0x1049CED8, 0x777D7B44
|
|
||||||
|
|
||||||
#remove check for mii data
|
|
||||||
0x024D7394 = b .+0xE8
|
|
||||||
|
|
||||||
[NSMBUv64USv80EU]
|
|
||||||
moduleMatches = 0x6CAEA914, 0xFA29C89F
|
|
||||||
|
|
||||||
#remove check for mii data
|
|
||||||
0x024D71C4 = b .+0xE8
|
|
||||||
|
|
||||||
[NSMBUv0USv0EU]
|
|
||||||
moduleMatches = 0xA7A5ECF1, 0xC7B938AD
|
|
||||||
|
|
||||||
#remove check for mii data
|
|
||||||
0x024BDE70 = b .+0xE8
|
|
||||||
|
|
||||||
[NSLUv0EU]
|
|
||||||
moduleMatches = 0xA3705C0B
|
|
||||||
|
|
||||||
#remove check for mii data
|
|
||||||
0x024D7158 = b .+0xE8
|
|
||||||
|
|
||||||
#Note for future versions take the crash log and get the module checksum from the user. Subtract 0x7c from the link register in the crash log to be the address we patch.
|
|
@ -0,0 +1,705 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader 2e2543216c04766d
|
||||||
|
// Used for: Fog Around Water
|
||||||
|
|
||||||
|
float fogOpacity = float($waterFogOpacity);
|
||||||
|
float fogRed = float($waterFogOpacity);
|
||||||
|
float fogGreen = float($waterFogOpacity);
|
||||||
|
float fogBlue = float($waterFogOpacity);
|
||||||
|
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#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;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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);
|
||||||
|
R1i = floatBitsToInt(passParameterSem4);
|
||||||
|
R2i = floatBitsToInt(passParameterSem6);
|
||||||
|
R3i.w = floatBitsToInt(texture(textureUnitPS4, intBitsToFloat(R0i.xy)).x);
|
||||||
|
R6i.xyzw = floatBitsToInt(texture(textureUnitPS2, intBitsToFloat(R2i.zw)).xyzw);
|
||||||
|
R4i.xyzw = floatBitsToInt(textureGather(textureUnitPS6, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw);
|
||||||
|
R5i.xyzw = floatBitsToInt(textureGather(textureUnitPS7, vec2(0.0001) + intBitsToFloat(R0i.xy)).xyzw);
|
||||||
|
R7i.xyzw = floatBitsToInt(texture(textureUnitPS1, intBitsToFloat(R2i.zw)).xyzw);
|
||||||
|
// 0
|
||||||
|
R126i.x = floatBitsToInt((intBitsToFloat(R6i.x) * 2.0 + -(1.0)));
|
||||||
|
R127i.y = floatBitsToInt((intBitsToFloat(R6i.y) * 2.0 + -(1.0)));
|
||||||
|
R127i.z = floatBitsToInt((intBitsToFloat(R6i.z) * 2.0 + -(1.0)));
|
||||||
|
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R3i.w),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)));
|
||||||
|
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))));
|
||||||
|
PV1i.x = R2i.x;
|
||||||
|
R2i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), -(intBitsToFloat(PV0i.w))));
|
||||||
|
PV1i.y = R2i.y;
|
||||||
|
R124i.z = floatBitsToInt(-(intBitsToFloat(PV0i.w)));
|
||||||
|
PV1i.z = R124i.z;
|
||||||
|
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV0i.w), intBitsToFloat(uf_remappedPS[2].y)));
|
||||||
|
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)));
|
||||||
|
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)));
|
||||||
|
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));
|
||||||
|
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);
|
||||||
|
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)));
|
||||||
|
// 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);
|
||||||
|
R8i.xyz = floatBitsToInt(textureLod(textureUnitPS8, vec4(redcCUBEReverse(intBitsToFloat(R8i.xy),R8i.z),cubeMapArrayIndex8),intBitsToFloat(R8i.w)).xyz);
|
||||||
|
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);
|
||||||
|
// 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)));
|
||||||
|
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)));
|
||||||
|
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)));
|
||||||
|
PV0i.y = R125i.y;
|
||||||
|
R125i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(PV1i.x)), intBitsToFloat(uf_remappedPS[11].w)));
|
||||||
|
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)));
|
||||||
|
tempi.x = clampFI32(tempi.x);
|
||||||
|
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));
|
||||||
|
// 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));
|
||||||
|
// 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)));
|
||||||
|
PV0i.y = R123i.y;
|
||||||
|
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(uf_remappedPS[13].y),intBitsToFloat(R127i.x)) + intBitsToFloat(R125i.y)));
|
||||||
|
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));
|
||||||
|
PV0i.z = floatBitsToInt(intBitsToFloat(R9i.y) + intBitsToFloat(R8i.y));
|
||||||
|
PV0i.w = floatBitsToInt(intBitsToFloat(R4i.z) + intBitsToFloat(R4i.y));
|
||||||
|
// 23
|
||||||
|
R6i.x = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.w)) + intBitsToFloat(R3i.x)));
|
||||||
|
R6i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.z)) + intBitsToFloat(R3i.y)));
|
||||||
|
R6i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R2i.z),intBitsToFloat(PV0i.y)) + intBitsToFloat(R3i.z)));
|
||||||
|
|
||||||
|
// export
|
||||||
|
#if ($enableWaterFogColor == 0)
|
||||||
|
passPixelColor0 = vec4(intBitsToFloat(R6i.x), intBitsToFloat(R6i.y), intBitsToFloat(R6i.z), intBitsToFloat(R6i.w) * fogOpacity);
|
||||||
|
#else
|
||||||
|
passPixelColor0 = vec4(fogRed, fogGreen, fogBlue, intBitsToFloat(R6i.w)*fogOpacity);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,995 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader fb2e18ae56397ca7
|
||||||
|
// Used for: Fog around trees, bushes and vines
|
||||||
|
|
||||||
|
float fogOpacity = float($greeneryFogOpacity);
|
||||||
|
float fogBrightness = float($greeneryFogBrightness);
|
||||||
|
float fogRed = float($greeneryFogOpacity);
|
||||||
|
float fogGreen = float($greeneryFogOpacity);
|
||||||
|
float fogBlue = float($greeneryFogOpacity);
|
||||||
|
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#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;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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 = max(0.0, intBitsToFloat(PS1i));
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
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 = max(0.0, intBitsToFloat(R2i.w));
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
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 = max(0.0, intBitsToFloat(R125i.x));
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
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 = max(0.0, intBitsToFloat(PV1i.x));
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
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 = max(0.0, intBitsToFloat(PV0i.z));
|
||||||
|
tempResultf = log2(tempResultf);
|
||||||
|
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) * fogBrightness, intBitsToFloat(R0i.w));
|
||||||
|
|
||||||
|
#if ($enableGreeneryFogColor == 0)
|
||||||
|
passPixelColor1 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), intBitsToFloat(R1i.w)*fogOpacity);
|
||||||
|
#else
|
||||||
|
passPixelColor1 = vec4(fogRed, fogGreen, fogBlue, intBitsToFloat(R1i.w)*fogOpacity);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
passPixelColor2 = vec4(intBitsToFloat(R2i.x), intBitsToFloat(R2i.y), intBitsToFloat(R2i.z), intBitsToFloat(R2i.w));
|
||||||
|
passPixelColor3 = vec4(intBitsToFloat(R3i.x), intBitsToFloat(R3i.y), intBitsToFloat(R3i.z), intBitsToFloat(R3i.w));
|
||||||
|
}
|
@ -8,6 +8,26 @@ version = 6
|
|||||||
[Default]
|
[Default]
|
||||||
$setting:int = 0
|
$setting:int = 0
|
||||||
|
|
||||||
|
$enableGroundFogColor:int = 1
|
||||||
|
$groundFogRed = 1.0
|
||||||
|
$groundFogGreen = 1.0
|
||||||
|
$groundFogBlue = 1.0
|
||||||
|
$groundFogOpacity = 1.0
|
||||||
|
$groundFogBrightness = 1.0
|
||||||
|
|
||||||
|
$enableWaterFogColor:int = 1
|
||||||
|
$waterFogRed = 1.0
|
||||||
|
$waterFogGreen = 1.0
|
||||||
|
$waterFogBlue = 1.0
|
||||||
|
$waterFogOpacity = 1.0
|
||||||
|
|
||||||
|
$enableGreeneryFogColor:int = 1
|
||||||
|
$greeneryFogRed = 1.0
|
||||||
|
$greeneryFogGreen = 1.0
|
||||||
|
$greeneryFogBlue = 1.0
|
||||||
|
$greeneryFogOpacity = 1.0
|
||||||
|
$greeneryFogBrightness = 1.0
|
||||||
|
|
||||||
$enableDistanceFogColor:int = 1
|
$enableDistanceFogColor:int = 1
|
||||||
$distanceFogRed = 1.0
|
$distanceFogRed = 1.0
|
||||||
$distanceFogGreen = 1.0
|
$distanceFogGreen = 1.0
|
||||||
@ -35,84 +55,528 @@ $ganonAuraOpacity = 1.0
|
|||||||
# Setting Selector
|
# Setting Selector
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Distance Fog
|
name = Ground Fog
|
||||||
category = Fog Settings
|
category = Fog Settings
|
||||||
default = 1
|
default = 1
|
||||||
$setting:int = 0
|
$setting:int = 0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Mist Clouds
|
name = Water Fog
|
||||||
category = Fog Settings
|
category = Fog Settings
|
||||||
$setting:int = 1
|
$setting:int = 1
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Hyrule Castle Fog/Aura
|
name = Greenery Fog (e.g. trees, bushes and vines)
|
||||||
category = Fog Settings
|
category = Fog Settings
|
||||||
|
default = 1
|
||||||
$setting:int = 2
|
$setting:int = 2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Distance Fog
|
||||||
|
category = Fog Settings
|
||||||
|
$setting:int = 3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Mist Clouds
|
||||||
|
category = Fog Settings
|
||||||
|
$setting:int = 4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Hyrule Castle Fog/Aura
|
||||||
|
category = Fog Settings
|
||||||
|
$setting:int = 5
|
||||||
|
|
||||||
|
|
||||||
|
# Ground Fog
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 100% Opacity (Default)
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
default = 1
|
||||||
|
$groundFogOpacity = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 80% Opacity
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogOpacity = 0.8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 60% Opacity
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogOpacity = 0.6
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 50% Opacity
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogOpacity = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 40% Opacity
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogOpacity = 0.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% Opacity
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogOpacity = 0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% Opacity
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogOpacity = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 0% Opacity
|
||||||
|
category = Ground Fog Visibility
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogOpacity = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 0.5x Brightness
|
||||||
|
category = Ground Fog Brightness
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogBrightness = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 0.75x Brightness
|
||||||
|
category = Ground Fog Brightness
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogBrightness = 0.75
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 1x Brightness (Default)
|
||||||
|
category = Ground Fog Brightness
|
||||||
|
default = 1
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogBrightness = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 1.5x Brightness
|
||||||
|
category = Ground Fog Brightness
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogBrightness = 1.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 2x Brightness
|
||||||
|
category = Ground Fog Brightness
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogBrightness = 2.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 3x Brightness
|
||||||
|
category = Ground Fog Brightness
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogBrightness = 3.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 4x Brightness
|
||||||
|
category = Ground Fog Brightness
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogBrightness = 4.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Normal (Default)
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
default = 1
|
||||||
|
$enableGroundFogColor:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Black Fog
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogRed = 1.0
|
||||||
|
$groundFogGreen = 1.0
|
||||||
|
$groundFogBlue = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Gray Fog
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogRed = 0.75
|
||||||
|
$groundFogGreen = 0.75
|
||||||
|
$groundFogBlue = 0.75
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Navy Fog
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogRed = 0.0
|
||||||
|
$groundFogGreen = 0.0
|
||||||
|
$groundFogBlue = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Blue Fog
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogRed = 0.0
|
||||||
|
$groundFogGreen = 0.0
|
||||||
|
$groundFogBlue = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Cyan Fog
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogRed = 0.0
|
||||||
|
$groundFogGreen = 0.5
|
||||||
|
$groundFogBlue = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Green Fog
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogRed = 0.0
|
||||||
|
$groundFogGreen = 1.0
|
||||||
|
$groundFogBlue = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Red Fog
|
||||||
|
category = Ground Fog Color
|
||||||
|
condition = $setting == 0
|
||||||
|
$groundFogRed = 1.0
|
||||||
|
$groundFogGreen = 0.0
|
||||||
|
$groundFogBlue = 0.0
|
||||||
|
|
||||||
|
# Water Fog
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 100% Opacity (Default)
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
default = 1
|
||||||
|
$waterFogOpacity = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 80% Opacity
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogOpacity = 0.8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 60% Opacity
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogOpacity = 0.6
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 50% Opacity
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogOpacity = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 40% Opacity
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogOpacity = 0.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% Opacity
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogOpacity = 0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% Opacity
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogOpacity = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 0% Opacity
|
||||||
|
category = Water Fog Visibility
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogOpacity = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Normal (Default)
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
default = 1
|
||||||
|
$enableWaterFogColor:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Black Fog
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogRed = 1.0
|
||||||
|
$waterFogGreen = 1.0
|
||||||
|
$waterFogBlue = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Gray Fog
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogRed = 0.75
|
||||||
|
$waterFogGreen = 0.75
|
||||||
|
$waterFogBlue = 0.75
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Navy Fog
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogRed = 0.0
|
||||||
|
$waterFogGreen = 0.0
|
||||||
|
$waterFogBlue = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Blue Fog
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogRed = 0.0
|
||||||
|
$waterFogGreen = 0.0
|
||||||
|
$waterFogBlue = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Cyan Fog
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogRed = 0.0
|
||||||
|
$waterFogGreen = 0.5
|
||||||
|
$waterFogBlue = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Green Fog
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogRed = 0.0
|
||||||
|
$waterFogGreen = 1.0
|
||||||
|
$waterFogBlue = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Red Fog
|
||||||
|
category = Water Fog Color
|
||||||
|
condition = $setting == 1
|
||||||
|
$waterFogRed = 1.0
|
||||||
|
$waterFogGreen = 0.0
|
||||||
|
$waterFogBlue = 0.0
|
||||||
|
|
||||||
|
# Greenery Fog
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 100% Opacity (Default)
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
default = 1
|
||||||
|
$greeneryFogOpacity = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 80% Opacity
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogOpacity = 0.8
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 60% Opacity
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogOpacity = 0.6
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 50% Opacity
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogOpacity = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 40% Opacity
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogOpacity = 0.4
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 20% Opacity
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogOpacity = 0.2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 10% Opacity
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogOpacity = 0.1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 0% Opacity
|
||||||
|
category = Greenery Fog Visibility
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogOpacity = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 0.5x Brightness
|
||||||
|
category = Greenery Fog Brightness
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogBrightness = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 0.75x Brightness
|
||||||
|
category = Greenery Fog Brightness
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogBrightness = 0.75
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 1x Brightness (Default)
|
||||||
|
category = Greenery Fog Brightness
|
||||||
|
default = 1
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogBrightness = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 1.5x Brightness
|
||||||
|
category = Greenery Fog Brightness
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogBrightness = 1.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 2x Brightness
|
||||||
|
category = Greenery Fog Brightness
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogBrightness = 2.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 3x Brightness
|
||||||
|
category = Greenery Fog Brightness
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogBrightness = 3.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 4x Brightness
|
||||||
|
category = Greenery Fog Brightness
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogBrightness = 4.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Normal (Default)
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
default = 1
|
||||||
|
$enableGreeneryFogColor:int = 0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Black Fog
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogRed = 1.0
|
||||||
|
$greeneryFogGreen = 1.0
|
||||||
|
$greeneryFogBlue = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Gray Fog
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogRed = 0.75
|
||||||
|
$greeneryFogGreen = 0.75
|
||||||
|
$greeneryFogBlue = 0.75
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Navy Fog
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogRed = 0.0
|
||||||
|
$greeneryFogGreen = 0.0
|
||||||
|
$greeneryFogBlue = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Blue Fog
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogRed = 0.0
|
||||||
|
$greeneryFogGreen = 0.0
|
||||||
|
$greeneryFogBlue = 1.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Cyan Fog
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogRed = 0.0
|
||||||
|
$greeneryFogGreen = 0.5
|
||||||
|
$greeneryFogBlue = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Green Fog
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogRed = 0.0
|
||||||
|
$greeneryFogGreen = 1.0
|
||||||
|
$greeneryFogBlue = 0.0
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = Red Fog
|
||||||
|
category = Greenery Fog Color
|
||||||
|
condition = $setting == 2
|
||||||
|
$greeneryFogRed = 1.0
|
||||||
|
$greeneryFogGreen = 0.0
|
||||||
|
$greeneryFogBlue = 0.0
|
||||||
|
|
||||||
# Distance Fog
|
# Distance Fog
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 100% Opacity (Default)
|
name = 100% Opacity (Default)
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
default = 1
|
default = 1
|
||||||
$distanceFogOpacity = 1.0
|
$distanceFogOpacity = 1.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 80% Opacity
|
name = 80% Opacity
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogOpacity = 0.8
|
$distanceFogOpacity = 0.8
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 60% Opacity
|
name = 60% Opacity
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogOpacity = 0.6
|
$distanceFogOpacity = 0.6
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 50% Opacity
|
name = 50% Opacity
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogOpacity = 0.5
|
$distanceFogOpacity = 0.5
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 40% Opacity
|
name = 40% Opacity
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogOpacity = 0.4
|
$distanceFogOpacity = 0.4
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 20% Opacity
|
name = 20% Opacity
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogOpacity = 0.2
|
$distanceFogOpacity = 0.2
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 10% Opacity
|
name = 10% Opacity
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogOpacity = 0.1
|
$distanceFogOpacity = 0.1
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 0% Opacity
|
name = 0% Opacity
|
||||||
category = Distance Fog Visibility
|
category = Distance Fog Visibility
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogOpacity = 0.0
|
$distanceFogOpacity = 0.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Normal (Default)
|
name = Normal (Default)
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
default = 1
|
default = 1
|
||||||
$enableDistanceFogColor:int = 0
|
$enableDistanceFogColor:int = 0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Black Fog
|
name = Black Fog
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogRed = 1.0
|
$distanceFogRed = 1.0
|
||||||
$distanceFogGreen = 1.0
|
$distanceFogGreen = 1.0
|
||||||
$distanceFogBlue = 1.0
|
$distanceFogBlue = 1.0
|
||||||
@ -120,7 +584,7 @@ $distanceFogBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Gray Fog
|
name = Gray Fog
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogRed = 0.75
|
$distanceFogRed = 0.75
|
||||||
$distanceFogGreen = 0.75
|
$distanceFogGreen = 0.75
|
||||||
$distanceFogBlue = 0.75
|
$distanceFogBlue = 0.75
|
||||||
@ -128,7 +592,7 @@ $distanceFogBlue = 0.75
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Navy Fog
|
name = Navy Fog
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogRed = 0.0
|
$distanceFogRed = 0.0
|
||||||
$distanceFogGreen = 0.0
|
$distanceFogGreen = 0.0
|
||||||
$distanceFogBlue = 0.5
|
$distanceFogBlue = 0.5
|
||||||
@ -136,7 +600,7 @@ $distanceFogBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Blue Fog
|
name = Blue Fog
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogRed = 0.0
|
$distanceFogRed = 0.0
|
||||||
$distanceFogGreen = 0.0
|
$distanceFogGreen = 0.0
|
||||||
$distanceFogBlue = 1.0
|
$distanceFogBlue = 1.0
|
||||||
@ -144,7 +608,7 @@ $distanceFogBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Cyan Fog
|
name = Cyan Fog
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogRed = 0.0
|
$distanceFogRed = 0.0
|
||||||
$distanceFogGreen = 0.5
|
$distanceFogGreen = 0.5
|
||||||
$distanceFogBlue = 0.5
|
$distanceFogBlue = 0.5
|
||||||
@ -152,7 +616,7 @@ $distanceFogBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Green Fog
|
name = Green Fog
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogRed = 0.0
|
$distanceFogRed = 0.0
|
||||||
$distanceFogGreen = 1.0
|
$distanceFogGreen = 1.0
|
||||||
$distanceFogBlue = 0.0
|
$distanceFogBlue = 0.0
|
||||||
@ -160,7 +624,7 @@ $distanceFogBlue = 0.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Red Fog
|
name = Red Fog
|
||||||
category = Distance Fog Color
|
category = Distance Fog Color
|
||||||
condition = $setting == 0
|
condition = $setting == 3
|
||||||
$distanceFogRed = 1.0
|
$distanceFogRed = 1.0
|
||||||
$distanceFogGreen = 0.0
|
$distanceFogGreen = 0.0
|
||||||
$distanceFogBlue = 0.0
|
$distanceFogBlue = 0.0
|
||||||
@ -170,63 +634,63 @@ $distanceFogBlue = 0.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = 100% Opacity (Default)
|
name = 100% Opacity (Default)
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
default = 1
|
default = 1
|
||||||
$fogCloudsOpacity = 1.0
|
$fogCloudsOpacity = 1.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 80% Opacity
|
name = 80% Opacity
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsOpacity = 0.8
|
$fogCloudsOpacity = 0.8
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 60% Opacity
|
name = 60% Opacity
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsOpacity = 0.6
|
$fogCloudsOpacity = 0.6
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 50% Opacity
|
name = 50% Opacity
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsOpacity = 0.5
|
$fogCloudsOpacity = 0.5
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 40% Opacity
|
name = 40% Opacity
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsOpacity = 0.4
|
$fogCloudsOpacity = 0.4
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 20% Opacity
|
name = 20% Opacity
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsOpacity = 0.2
|
$fogCloudsOpacity = 0.2
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 10% Opacity
|
name = 10% Opacity
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsOpacity = 0.1
|
$fogCloudsOpacity = 0.1
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 0% Opacity
|
name = 0% Opacity
|
||||||
category = Fog Clouds Visibility
|
category = Fog Clouds Visibility
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsOpacity = 0.0
|
$fogCloudsOpacity = 0.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Normal (Default)
|
name = Normal (Default)
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
default = 1
|
default = 1
|
||||||
$enableFogCloudsColor:int = 0
|
$enableFogCloudsColor:int = 0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Black Fog
|
name = Black Fog
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsRed = 1.0
|
$fogCloudsRed = 1.0
|
||||||
$fogCloudsGreen = 1.0
|
$fogCloudsGreen = 1.0
|
||||||
$fogCloudsBlue = 1.0
|
$fogCloudsBlue = 1.0
|
||||||
@ -234,7 +698,7 @@ $fogCloudsBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Gray Fog
|
name = Gray Fog
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsRed = 0.75
|
$fogCloudsRed = 0.75
|
||||||
$fogCloudsGreen = 0.75
|
$fogCloudsGreen = 0.75
|
||||||
$fogCloudsBlue = 0.75
|
$fogCloudsBlue = 0.75
|
||||||
@ -242,7 +706,7 @@ $fogCloudsBlue = 0.75
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Navy Fog
|
name = Navy Fog
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsRed = 0.0
|
$fogCloudsRed = 0.0
|
||||||
$fogCloudsGreen = 0.0
|
$fogCloudsGreen = 0.0
|
||||||
$fogCloudsBlue = 0.5
|
$fogCloudsBlue = 0.5
|
||||||
@ -250,7 +714,7 @@ $fogCloudsBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Blue Fog
|
name = Blue Fog
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsRed = 0.0
|
$fogCloudsRed = 0.0
|
||||||
$fogCloudsGreen = 0.0
|
$fogCloudsGreen = 0.0
|
||||||
$fogCloudsBlue = 1.0
|
$fogCloudsBlue = 1.0
|
||||||
@ -258,7 +722,7 @@ $fogCloudsBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Cyan Fog
|
name = Cyan Fog
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsRed = 0.0
|
$fogCloudsRed = 0.0
|
||||||
$fogCloudsGreen = 0.5
|
$fogCloudsGreen = 0.5
|
||||||
$fogCloudsBlue = 0.5
|
$fogCloudsBlue = 0.5
|
||||||
@ -266,7 +730,7 @@ $fogCloudsBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Green Fog
|
name = Green Fog
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsRed = 0.0
|
$fogCloudsRed = 0.0
|
||||||
$fogCloudsGreen = 1.0
|
$fogCloudsGreen = 1.0
|
||||||
$fogCloudsBlue = 0.0
|
$fogCloudsBlue = 0.0
|
||||||
@ -274,7 +738,7 @@ $fogCloudsBlue = 0.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Red Fog
|
name = Red Fog
|
||||||
category = Fog Clouds Color
|
category = Fog Clouds Color
|
||||||
condition = $setting == 1
|
condition = $setting == 4
|
||||||
$fogCloudsRed = 1.0
|
$fogCloudsRed = 1.0
|
||||||
$fogCloudsGreen = 0.0
|
$fogCloudsGreen = 0.0
|
||||||
$fogCloudsBlue = 0.0
|
$fogCloudsBlue = 0.0
|
||||||
@ -284,63 +748,63 @@ $fogCloudsBlue = 0.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = 100% Opacity (Default)
|
name = 100% Opacity (Default)
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
default = 1
|
default = 1
|
||||||
$castleFogOpacity = 1.0
|
$castleFogOpacity = 1.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 80% Opacity
|
name = 80% Opacity
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogOpacity = 0.8
|
$castleFogOpacity = 0.8
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 60% Opacity
|
name = 60% Opacity
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogOpacity = 0.6
|
$castleFogOpacity = 0.6
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 50% Opacity
|
name = 50% Opacity
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogOpacity = 0.5
|
$castleFogOpacity = 0.5
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 40% Opacity
|
name = 40% Opacity
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogOpacity = 0.4
|
$castleFogOpacity = 0.4
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 20% Opacity
|
name = 20% Opacity
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogOpacity = 0.2
|
$castleFogOpacity = 0.2
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 10% Opacity
|
name = 10% Opacity
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogOpacity = 0.1
|
$castleFogOpacity = 0.1
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 0% Opacity
|
name = 0% Opacity
|
||||||
category = Castle Fog Visibility
|
category = Castle Fog Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogOpacity = 0.0
|
$castleFogOpacity = 0.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Normal (Default)
|
name = Normal (Default)
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
default = 1
|
default = 1
|
||||||
$enableCastleFogColor:int = 0
|
$enableCastleFogColor:int = 0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Black Fog
|
name = Black Fog
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogRed = 1.0
|
$castleFogRed = 1.0
|
||||||
$castleFogGreen = 1.0
|
$castleFogGreen = 1.0
|
||||||
$castleFogBlue = 1.0
|
$castleFogBlue = 1.0
|
||||||
@ -348,7 +812,7 @@ $castleFogBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Gray Fog
|
name = Gray Fog
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogRed = 0.75
|
$castleFogRed = 0.75
|
||||||
$castleFogGreen = 0.75
|
$castleFogGreen = 0.75
|
||||||
$castleFogBlue = 0.75
|
$castleFogBlue = 0.75
|
||||||
@ -356,7 +820,7 @@ $castleFogBlue = 0.75
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Navy Fog
|
name = Navy Fog
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogRed = 0.0
|
$castleFogRed = 0.0
|
||||||
$castleFogGreen = 0.0
|
$castleFogGreen = 0.0
|
||||||
$castleFogBlue = 0.5
|
$castleFogBlue = 0.5
|
||||||
@ -364,7 +828,7 @@ $castleFogBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Blue Fog
|
name = Blue Fog
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogRed = 0.0
|
$castleFogRed = 0.0
|
||||||
$castleFogGreen = 0.0
|
$castleFogGreen = 0.0
|
||||||
$castleFogBlue = 1.0
|
$castleFogBlue = 1.0
|
||||||
@ -372,7 +836,7 @@ $castleFogBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Cyan Fog
|
name = Cyan Fog
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogRed = 0.0
|
$castleFogRed = 0.0
|
||||||
$castleFogGreen = 0.5
|
$castleFogGreen = 0.5
|
||||||
$castleFogBlue = 0.5
|
$castleFogBlue = 0.5
|
||||||
@ -380,7 +844,7 @@ $castleFogBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Green Fog
|
name = Green Fog
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogRed = 0.0
|
$castleFogRed = 0.0
|
||||||
$castleFogGreen = 1.0
|
$castleFogGreen = 1.0
|
||||||
$castleFogBlue = 0.0
|
$castleFogBlue = 0.0
|
||||||
@ -388,7 +852,7 @@ $castleFogBlue = 0.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Red Fog
|
name = Red Fog
|
||||||
category = Castle Fog Color
|
category = Castle Fog Color
|
||||||
condition = $setting == 2
|
condition = $setting == 5
|
||||||
$castleFogRed = 1.0
|
$castleFogRed = 1.0
|
||||||
$castleFogGreen = 0.0
|
$castleFogGreen = 0.0
|
||||||
$castleFogBlue = 0.0
|
$castleFogBlue = 0.0
|
||||||
@ -399,81 +863,81 @@ $castleFogBlue = 0.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = 300% Opacity
|
name = 300% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 2.0
|
$ganonAuraOpacity = 2.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 200% Opacity
|
name = 200% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 2.0
|
$ganonAuraOpacity = 2.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 150% Opacity
|
name = 150% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 1.5
|
$ganonAuraOpacity = 1.5
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 100% Opacity (Default)
|
name = 100% Opacity (Default)
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
default = 1
|
default = 1
|
||||||
$ganonAuraOpacity = 1.0
|
$ganonAuraOpacity = 1.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 80% Opacity
|
name = 80% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 0.8
|
$ganonAuraOpacity = 0.8
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 60% Opacity
|
name = 60% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 0.6
|
$ganonAuraOpacity = 0.6
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 50% Opacity
|
name = 50% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 0.5
|
$ganonAuraOpacity = 0.5
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 40% Opacity
|
name = 40% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 0.4
|
$ganonAuraOpacity = 0.4
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 20% Opacity
|
name = 20% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 0.2
|
$ganonAuraOpacity = 0.2
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 10% Opacity
|
name = 10% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 0.2
|
$ganonAuraOpacity = 0.2
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = 0% Opacity
|
name = 0% Opacity
|
||||||
category = Ganon's Aura Visibility
|
category = Ganon's Aura Visibility
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraOpacity = 0.0
|
$ganonAuraOpacity = 0.0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Normal (Default)
|
name = Normal (Default)
|
||||||
category = Ganon's Aura Color
|
category = Ganon's Aura Color
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
default = 1
|
default = 1
|
||||||
$enableGanonAuraColor:int = 0
|
$enableGanonAuraColor:int = 0
|
||||||
|
|
||||||
[Preset]
|
[Preset]
|
||||||
name = Black Aura
|
name = Black Aura
|
||||||
category = Ganon's Aura Color
|
category = Ganon's Aura Color
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraRed = 1.0
|
$ganonAuraRed = 1.0
|
||||||
$ganonAuraGreen = 1.0
|
$ganonAuraGreen = 1.0
|
||||||
$ganonAuraBlue = 1.0
|
$ganonAuraBlue = 1.0
|
||||||
@ -481,7 +945,7 @@ $ganonAuraBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Navy Aura
|
name = Navy Aura
|
||||||
category = Ganon's Aura Color
|
category = Ganon's Aura Color
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraRed = 0.0
|
$ganonAuraRed = 0.0
|
||||||
$ganonAuraGreen = 0.0
|
$ganonAuraGreen = 0.0
|
||||||
$ganonAuraBlue = 0.5
|
$ganonAuraBlue = 0.5
|
||||||
@ -489,7 +953,7 @@ $ganonAuraBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Blue Aura
|
name = Blue Aura
|
||||||
category = Ganon's Aura Color
|
category = Ganon's Aura Color
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraRed = 0.0
|
$ganonAuraRed = 0.0
|
||||||
$ganonAuraGreen = 0.0
|
$ganonAuraGreen = 0.0
|
||||||
$ganonAuraBlue = 1.0
|
$ganonAuraBlue = 1.0
|
||||||
@ -497,7 +961,7 @@ $ganonAuraBlue = 1.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Cyan Aura
|
name = Cyan Aura
|
||||||
category = Ganon's Aura Color
|
category = Ganon's Aura Color
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraRed = 0.0
|
$ganonAuraRed = 0.0
|
||||||
$ganonAuraGreen = 0.5
|
$ganonAuraGreen = 0.5
|
||||||
$ganonAuraBlue = 0.5
|
$ganonAuraBlue = 0.5
|
||||||
@ -505,7 +969,7 @@ $ganonAuraBlue = 0.5
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Green Aura
|
name = Green Aura
|
||||||
category = Ganon's Aura Color
|
category = Ganon's Aura Color
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraRed = 0.0
|
$ganonAuraRed = 0.0
|
||||||
$ganonAuraGreen = 1.0
|
$ganonAuraGreen = 1.0
|
||||||
$ganonAuraBlue = 0.0
|
$ganonAuraBlue = 0.0
|
||||||
@ -513,7 +977,7 @@ $ganonAuraBlue = 0.0
|
|||||||
[Preset]
|
[Preset]
|
||||||
name = Red Aura
|
name = Red Aura
|
||||||
category = Ganon's Aura Color
|
category = Ganon's Aura Color
|
||||||
condition = $setting == 2
|
condition = $setting == 6
|
||||||
$ganonAuraRed = 1.0
|
$ganonAuraRed = 1.0
|
||||||
$ganonAuraGreen = 0.0
|
$ganonAuraGreen = 0.0
|
||||||
$ganonAuraBlue = 0.0
|
$ganonAuraBlue = 0.0
|
@ -1,35 +1,24 @@
|
|||||||
#version 420
|
#version 430
|
||||||
#extension GL_ARB_texture_gather : enable
|
#extension GL_ARB_texture_gather : enable
|
||||||
#extension GL_ARB_separate_shader_objects : enable
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader 03285368cf940e37
|
||||||
|
// Used for: Scaling Box Blur Background
|
||||||
|
const float blurQuality = float($blurQuality);
|
||||||
|
const int sampleScale = 2;
|
||||||
|
|
||||||
|
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
|
#define ATTR_LAYOUT(__vkSet, __location) layout(set = __vkSet, location = __location)
|
||||||
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(set = __vkSet, binding = __vkLocation, std140)
|
#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 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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
#define gl_VertexID gl_VertexIndex
|
|
||||||
#define gl_InstanceID gl_InstanceIndex
|
|
||||||
#else
|
#else
|
||||||
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
|
#define ATTR_LAYOUT(__vkSet, __location) layout(location = __location)
|
||||||
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
|
#define UNIFORM_BUFFER_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation, std140)
|
||||||
#define TEXTURE_LAYOUT(__glLocation, __vkSet, __vkLocation) layout(binding = __glLocation)
|
#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)
|
#define GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
#endif
|
#endif
|
||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
|
||||||
|
|
||||||
// shader 03285368cf940e37 //box bg
|
|
||||||
|
|
||||||
//float dither = $dither ;
|
|
||||||
//float scaleShader = $scaleShader;
|
|
||||||
float scaleBlur = $scaleBlur; //0.25 4k
|
|
||||||
const int sampleScale = 2;
|
|
||||||
//float lightBloom = 0.95;
|
|
||||||
|
|
||||||
|
|
||||||
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
|
||||||
layout(location = 0) in vec4 passParameterSem3;
|
|
||||||
layout(location = 0) out vec4 passPixelColor0;
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 1, binding = 1) uniform ufBlock
|
layout(set = 1, binding = 1) uniform ufBlock
|
||||||
{
|
{
|
||||||
@ -39,6 +28,7 @@ uniform vec4 uf_fragCoordScale;
|
|||||||
uniform vec2 uf_fragCoordScale;
|
uniform vec2 uf_fragCoordScale;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// FabriceNeyret2 CC, single shader gaussian by intermediate MIPmap level. www.shadertoy.com/view/ltScRG
|
// FabriceNeyret2 CC, single shader gaussian by intermediate MIPmap level. www.shadertoy.com/view/ltScRG
|
||||||
const int samples = 8 * sampleScale, //8 or 4 balances xy position
|
const int samples = 8 * sampleScale, //8 or 4 balances xy position
|
||||||
LOD = 2, // gaussian done on MIPmap at scale LOD
|
LOD = 2, // gaussian done on MIPmap at scale LOD
|
||||||
@ -58,10 +48,14 @@ vec4 blur(sampler2D sp, vec2 U, vec2 scale) {
|
|||||||
O += gaussian(d) * textureLod(sp, U + scale * d, float(LOD));
|
O += gaussian(d) * textureLod(sp, U + scale * d, float(LOD));
|
||||||
}
|
}
|
||||||
|
|
||||||
//O / O.a;
|
return vec4(O.x, O.y, O.z, 0.0)*17; //16 exact, 17 ~ a touch more haze to compensate res increase
|
||||||
return vec4(O.x, O.y, O.z, 0.0)*18; //16 exact, 17 ~ a touch more haze to compensate res increase
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem3;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
int clampFI32(int v)
|
int clampFI32(int v)
|
||||||
{
|
{
|
||||||
if( v == 0x7FFFFFFF )
|
if( v == 0x7FFFFFFF )
|
||||||
@ -70,7 +64,7 @@ else if( v == 0xFFFFFFFF )
|
|||||||
return floatBitsToInt(0.0);
|
return floatBitsToInt(0.0);
|
||||||
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
return floatBitsToInt(clamp(intBitsToFloat(v), 0.0, 1.0));
|
||||||
}
|
}
|
||||||
float mul_nonIEEE(float a, float b){return mix(0.0, a*b, (a != 0.0) && (b != 0.0));}
|
float mul_nonIEEE(float a, float b){ if( a == 0.0 || b == 0.0 ) return 0.0; return a*b; }
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 R0f = vec4(0.0);
|
vec4 R0f = vec4(0.0);
|
||||||
@ -90,21 +84,28 @@ vec3 cubeMapSTM;
|
|||||||
int cubeMapFaceId;
|
int cubeMapFaceId;
|
||||||
R0f = passParameterSem3;
|
R0f = passParameterSem3;
|
||||||
|
|
||||||
vec2 coord = passParameterSem3.xy*textureSize(textureUnitPS0, 0); //
|
if (blurQuality != 0.0) {
|
||||||
vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0);
|
vec2 coord = passParameterSem3.xy*textureSize(textureUnitPS0, 0);
|
||||||
vec2 uv = coord * ps;
|
vec2 ps = vec2(1.0) / textureSize(textureUnitPS0, 0);
|
||||||
|
vec2 uv = coord * ps;
|
||||||
|
|
||||||
|
R1f.xyz = blur(textureUnitPS0, R0f.xy, ps*blurQuality).xyz;
|
||||||
|
R2f.xyz = R1f.xyz;
|
||||||
|
R3f.xyz = R1f.xyz;
|
||||||
|
R0f.xyz = R1f.xyz;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
||||||
|
R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz);
|
||||||
|
R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz);
|
||||||
|
R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz);
|
||||||
|
}
|
||||||
|
|
||||||
R1f.xyz = blur(textureUnitPS0, R0f.xy, ps*scaleBlur).xyz;
|
|
||||||
R2f.xyz = R1f.xyz;
|
|
||||||
R3f.xyz = R1f.xyz;
|
|
||||||
R0f.xyz = R1f.xyz;
|
|
||||||
/*
|
|
||||||
R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
|
||||||
R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz);
|
|
||||||
R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz);
|
|
||||||
R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz);
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
//R1f.xyz = (texture(textureUnitPS0, R0f.xy).xyz);
|
||||||
|
//R2f.xyz = (texture(textureUnitPS0, R0f.zy).xyz);
|
||||||
|
//R3f.xyz = (texture(textureUnitPS0, R0f.xw).xyz);
|
||||||
|
//R0f.xyz = (texture(textureUnitPS0, R0f.zw).xyz);
|
||||||
// 0
|
// 0
|
||||||
PV0f.x = R1f.z + R2f.z;
|
PV0f.x = R1f.z + R2f.z;
|
||||||
PV0f.x /= 2.0;
|
PV0f.x /= 2.0;
|
@ -19,7 +19,7 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader 50e29e8929cea348
|
// shader 50e29e8929cea348
|
||||||
// Used for: Scaling Anti-Aliasing solution of game
|
// Used for: Scaling Anti-Aliasing
|
||||||
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
@ -19,10 +19,10 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader 70b82af4d17024d2
|
// shader 70b82af4d17024d2
|
||||||
//AA fix
|
// Used for: Scaling Anti-Aliasing
|
||||||
|
|
||||||
float resScale = float($width)/float($gameWidth);
|
float resScale = float($width)/float($gameWidth);
|
||||||
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
@ -19,7 +19,9 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader 8d638f35cebd14dc
|
// shader 8d638f35cebd14dc
|
||||||
//banding fix
|
// Used for: Banding Fix
|
||||||
|
|
||||||
|
|
||||||
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
layout(location = 0) in vec4 passParameterSem0;
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
layout(location = 1) in vec4 passParameterSem1;
|
layout(location = 1) in vec4 passParameterSem1;
|
@ -19,10 +19,10 @@
|
|||||||
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
// This shader was automatically converted to be cross-compatible with Vulkan and OpenGL.
|
||||||
|
|
||||||
// shader ec4a85d51e778437
|
// shader ec4a85d51e778437
|
||||||
//box blur fix
|
// Used for: Scaling Box Blur
|
||||||
|
|
||||||
float resScale = float($width)/float($gameWidth);
|
float resScale = float($width)/float($gameWidth);
|
||||||
|
|
||||||
|
|
||||||
#ifdef VULKAN
|
#ifdef VULKAN
|
||||||
layout(set = 0, binding = 0) uniform ufBlock
|
layout(set = 0, binding = 0) uniform ufBlock
|
||||||
{
|
{
|
320
src/NewSuperMarioBrosU/Graphics/rules.txt
Normal file
320
src/NewSuperMarioBrosU/Graphics/rules.txt
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
||||||
|
name = TV Resolution, Gamepad Resolution, Shadow Quality and Blur Quality
|
||||||
|
path = "New Super Mario Bros. U/Graphics"
|
||||||
|
description = Changes the TV/Gamepad resolution of the game. You can also adjust the quality of the shadows and blur.||Made by getdls.
|
||||||
|
version = 6
|
||||||
|
|
||||||
|
[Default]
|
||||||
|
$width = 1280
|
||||||
|
$height = 720
|
||||||
|
$padWidth = 854
|
||||||
|
$padHeight = 480
|
||||||
|
$gameWidth = 1280
|
||||||
|
$gameHeight = 720
|
||||||
|
$gamePadWidth = 854
|
||||||
|
$gamePadHeight = 480
|
||||||
|
$shadowRes = 1
|
||||||
|
$blurQuality = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
# TV Resolution
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 1280x720 (Default)
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 640x360
|
||||||
|
$width = 640
|
||||||
|
$height = 360
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 960x540
|
||||||
|
$width = 960
|
||||||
|
$height = 540
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 1600x900
|
||||||
|
$width = 1600
|
||||||
|
$height = 900
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 1920x1080
|
||||||
|
$width = 1920
|
||||||
|
$height = 1080
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 2560x1440
|
||||||
|
$width = 2560
|
||||||
|
$height = 1440
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 3200x1800
|
||||||
|
$width = 3200
|
||||||
|
$height = 1800
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 3840x2160
|
||||||
|
$width = 3840
|
||||||
|
$height = 2160
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 5120x2880
|
||||||
|
$width = 5120
|
||||||
|
$height = 2880
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = TV Resolution
|
||||||
|
name = 7680x4320
|
||||||
|
$width = 7680
|
||||||
|
$height = 4320
|
||||||
|
|
||||||
|
|
||||||
|
# Gamepad Resolution
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
name = 854x480 (Default)
|
||||||
|
category = Gamepad Resolution
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 640x360
|
||||||
|
$padWidth = 640
|
||||||
|
$padHeight = 360
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 960x540
|
||||||
|
$padWidth = 960
|
||||||
|
$padHeight = 540
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 1600x900
|
||||||
|
$padWidth = 1600
|
||||||
|
$padHeight = 900
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 1920x1080
|
||||||
|
$padWidth = 1920
|
||||||
|
$padHeight = 1080
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 2560x1440
|
||||||
|
$padWidth = 2560
|
||||||
|
$padHeight = 1440
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 3200x1800
|
||||||
|
$padWidth = 3200
|
||||||
|
$padHeight = 1800
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 3840x2160
|
||||||
|
$padWidth = 3840
|
||||||
|
$padHeight = 2160
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 5120x2880
|
||||||
|
$padWidth = 5120
|
||||||
|
$padHeight = 2880
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Gamepad Resolution
|
||||||
|
name = 7680x4320
|
||||||
|
$padWidth = 7680
|
||||||
|
$padHeight = 4320
|
||||||
|
|
||||||
|
|
||||||
|
# Shadow Quality
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Shadow Quality
|
||||||
|
name = Low (50%)
|
||||||
|
$shadowRes = 0.5
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Shadow Quality
|
||||||
|
name = Medium (100%, Default)
|
||||||
|
default = 1
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Shadow Quality
|
||||||
|
name = High (200%)
|
||||||
|
$shadowRes = 2
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Shadow Quality
|
||||||
|
name = Ultra (300%)
|
||||||
|
$shadowRes = 3
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Shadow Quality
|
||||||
|
name = Extreme (400%, Unstable)
|
||||||
|
$shadowRes = 4
|
||||||
|
|
||||||
|
|
||||||
|
# Blur Quality
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Quality
|
||||||
|
name = Medium (Default)
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Quality
|
||||||
|
name = High
|
||||||
|
$blurQuality = 0.25
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Quality
|
||||||
|
name = Ultra
|
||||||
|
$blurQuality = 0.50
|
||||||
|
|
||||||
|
[Preset]
|
||||||
|
category = Blur Quality
|
||||||
|
name = Extreme
|
||||||
|
$blurQuality = 1.0
|
||||||
|
|
||||||
|
|
||||||
|
# Use more accurate texture formats for less banding
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
formats = 0x001
|
||||||
|
overwriteFormat = 0x005
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteFormat = 0x01f
|
||||||
|
|
||||||
|
# Texture Redefines
|
||||||
|
|
||||||
|
[TextureRedefine] # TV
|
||||||
|
width = 1280
|
||||||
|
height = 720
|
||||||
|
#formats = 0x80e,0x01a,0x001
|
||||||
|
tileModesExcluded = 0x1
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 1280
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 720
|
||||||
|
|
||||||
|
[TextureRedefine] # Shadows on level selection
|
||||||
|
width = 1024
|
||||||
|
height = 1024
|
||||||
|
formats = 0x005
|
||||||
|
overwriteWidth = $shadowRes * 1024
|
||||||
|
overwriteHeight = $shadowRes * 1024
|
||||||
|
|
||||||
|
[TextureRedefine] # Gamepad
|
||||||
|
width = 864
|
||||||
|
height = 480
|
||||||
|
#formats = 0x01a
|
||||||
|
overwriteWidth = ($padWidth/$gamePadWidth) * 864
|
||||||
|
overwriteHeight = ($padHeight/$gamePadHeight) * 480
|
||||||
|
|
||||||
|
[TextureRedefine] # Gamepad
|
||||||
|
width = 854
|
||||||
|
height = 480
|
||||||
|
#formats = 0x01a
|
||||||
|
overwriteWidth = ($padWidth/$gamePadWidth) * 854
|
||||||
|
overwriteHeight = ($padHeight/$gamePadHeight) * 480
|
||||||
|
|
||||||
|
[TextureRedefine] # Horizon blur
|
||||||
|
width = 640
|
||||||
|
height = 368
|
||||||
|
#formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 640
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 368
|
||||||
|
|
||||||
|
[TextureRedefine] # Horizon blur
|
||||||
|
width = 640
|
||||||
|
height = 360
|
||||||
|
#formats = 0x01a
|
||||||
|
tileModesExcluded = 0x1
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 640
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 360
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 512
|
||||||
|
height = 256
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 512
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 256
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 256
|
||||||
|
height = 128
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 256
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 128
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 320
|
||||||
|
height = 180
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 320
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 180
|
||||||
|
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 320
|
||||||
|
height = 180
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 320
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 180
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 160
|
||||||
|
height = 208
|
||||||
|
#formats = 0x80e,0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 160
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 208
|
||||||
|
|
||||||
|
[TextureRedefine] # Portraits
|
||||||
|
width = 160
|
||||||
|
height = 196
|
||||||
|
#formats = 0x80e,0x01a
|
||||||
|
formatsExcluded = 0x033
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 160
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 196
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 160
|
||||||
|
height = 90
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 160
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 90
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 128
|
||||||
|
height = 64
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 128
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 64
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 64
|
||||||
|
height = 32
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 64
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 32
|
||||||
|
|
||||||
|
[TextureRedefine]
|
||||||
|
width = 32
|
||||||
|
height = 16
|
||||||
|
formats = 0x01a
|
||||||
|
overwriteWidth = ($width/$gameWidth) * 32
|
||||||
|
overwriteHeight = ($height/$gameHeight) * 16
|
@ -0,0 +1,114 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader 0f817a18292d8ca5
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 1) uniform ufBlock
|
||||||
|
{
|
||||||
|
uniform ivec4 uf_remappedPS[4];
|
||||||
|
uniform vec4 uf_fragCoordScale;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
uniform ivec4 uf_remappedPS[4];
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
#endif
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 1) in vec4 passParameterSem1;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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 R123i = 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);
|
||||||
|
// 0
|
||||||
|
backupReg0i = R1i.z;
|
||||||
|
R2i.x = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0));
|
||||||
|
R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i)));
|
||||||
|
R1i.w = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).w);
|
||||||
|
// 0
|
||||||
|
PV0i.x = R1i.w;
|
||||||
|
PV0i.x = floatBitsToInt(intBitsToFloat(PV0i.x) * 2.0);
|
||||||
|
PV0i.y = ((0.5 > intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0));
|
||||||
|
PV0i.w = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5));
|
||||||
|
PV0i.w = floatBitsToInt(intBitsToFloat(PV0i.w) * 2.0);
|
||||||
|
// 1
|
||||||
|
R127i.y = ((PV0i.y == 0)?(0x3f800000):(PV0i.x));
|
||||||
|
R127i.z = ((PV0i.y == 0)?(PV0i.w):(0));
|
||||||
|
PV1i.z = R127i.z;
|
||||||
|
// 2
|
||||||
|
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)));
|
||||||
|
PV0i.z = R123i.z;
|
||||||
|
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(PV1i.z),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)));
|
||||||
|
PV0i.w = R123i.w;
|
||||||
|
// 3
|
||||||
|
backupReg0i = R0i.x;
|
||||||
|
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[0].w)));
|
||||||
|
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)));
|
||||||
|
PV1i.y = R123i.y;
|
||||||
|
R126i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w)));
|
||||||
|
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z)));
|
||||||
|
// 4
|
||||||
|
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y)));
|
||||||
|
R126i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x)));
|
||||||
|
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(uf_remappedPS[3].y)));
|
||||||
|
PV0i.z = R123i.z;
|
||||||
|
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(uf_remappedPS[3].x)));
|
||||||
|
PV0i.w = R123i.w;
|
||||||
|
// 5
|
||||||
|
backupReg0i = R0i.x;
|
||||||
|
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R127i.y), intBitsToFloat(uf_remappedPS[2].w)));
|
||||||
|
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R127i.z),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(uf_remappedPS[3].z)));
|
||||||
|
PV1i.y = R123i.y;
|
||||||
|
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w)));
|
||||||
|
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z)));
|
||||||
|
// 6
|
||||||
|
backupReg0i = R0i.z;
|
||||||
|
PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV1i.x)));
|
||||||
|
R0i.y = ((R2i.x == 0)?(PV1i.w):(R127i.w));
|
||||||
|
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y)));
|
||||||
|
R0i.x = ((R2i.x == 0)?(PV1i.z):(R126i.z));
|
||||||
|
PS0i = R0i.x;
|
||||||
|
// 7
|
||||||
|
R0i.z = ((R2i.x == 0)?(PV0i.z):(R127i.x));
|
||||||
|
R0i.w = ((R2i.x == 0)?(PV0i.x):(R126i.y));
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), 0.0);
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader 2802e519ac163806
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 1) 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
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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);
|
||||||
|
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;
|
||||||
|
R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
||||||
|
// 0
|
||||||
|
R1f.x = (mul_nonIEEE(R0f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x));
|
||||||
|
R1f.y = (mul_nonIEEE(R0f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y));
|
||||||
|
// 1
|
||||||
|
R1f.z = (mul_nonIEEE(R0f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z));
|
||||||
|
R1f.w = (mul_nonIEEE(R0f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w));
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0);
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader 2802e519ac163806
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 1) uniform ufBlock
|
||||||
|
{
|
||||||
|
uniform ivec4 uf_remappedPS[2];
|
||||||
|
uniform vec4 uf_fragCoordScale;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
uniform ivec4 uf_remappedPS[2];
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
#endif
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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);
|
||||||
|
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;
|
||||||
|
R0f.xyzw = (texture(textureUnitPS0, R0f.xy).xyzw);
|
||||||
|
// 0
|
||||||
|
R1f.x = (mul_nonIEEE(R0f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x));
|
||||||
|
R1f.y = (mul_nonIEEE(R0f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y));
|
||||||
|
// 1
|
||||||
|
R1f.z = (mul_nonIEEE(R0f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z));
|
||||||
|
R1f.w = (mul_nonIEEE(R0f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w));
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0);
|
||||||
|
}
|
@ -0,0 +1,105 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader 9bc55a95dad10ffa
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 1) uniform ufBlock
|
||||||
|
{
|
||||||
|
uniform ivec4 uf_remappedPS[4];
|
||||||
|
uniform vec4 uf_fragCoordScale;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
uniform ivec4 uf_remappedPS[4];
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
#endif
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 1) in vec4 passParameterSem1;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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 R123i = 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);
|
||||||
|
// 0
|
||||||
|
backupReg0i = R1i.z;
|
||||||
|
R2i.x = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].y) + intBitsToFloat(uf_remappedPS[1].y));
|
||||||
|
R2i.y = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0));
|
||||||
|
R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i)));
|
||||||
|
R2i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].x) + intBitsToFloat(uf_remappedPS[1].x));
|
||||||
|
R1i.w = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).w);
|
||||||
|
// 0
|
||||||
|
backupReg0i = R0i.y;
|
||||||
|
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.x), intBitsToFloat(R2i.w)));
|
||||||
|
PV0i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[0].z) + intBitsToFloat(uf_remappedPS[1].z));
|
||||||
|
PV0i.z = floatBitsToInt(intBitsToFloat(R1i.w) + -(0.5));
|
||||||
|
PV0i.z = floatBitsToInt(intBitsToFloat(PV0i.z) * 2.0);
|
||||||
|
PV0i.w = ((0.5 > intBitsToFloat(R1i.w))?int(0xFFFFFFFF):int(0x0));
|
||||||
|
R126i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(R2i.x)));
|
||||||
|
PS0i = R126i.w;
|
||||||
|
// 1
|
||||||
|
R126i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV0i.y)));
|
||||||
|
R123i.y = ((PV0i.w == 0)?(PV0i.z):(0));
|
||||||
|
PV1i.y = R123i.y;
|
||||||
|
PV1i.z = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].y) + intBitsToFloat(uf_remappedPS[3].y));
|
||||||
|
PV1i.w = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].x) + intBitsToFloat(uf_remappedPS[3].x));
|
||||||
|
// 2
|
||||||
|
backupReg0i = R0i.x;
|
||||||
|
backupReg1i = R0i.y;
|
||||||
|
PV0i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[3].w)));
|
||||||
|
PV0i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(PV1i.y), intBitsToFloat(uf_remappedPS[1].w)));
|
||||||
|
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.w)));
|
||||||
|
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg1i), intBitsToFloat(PV1i.z)));
|
||||||
|
// 3
|
||||||
|
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV0i.y)));
|
||||||
|
PV1i.y = floatBitsToInt(intBitsToFloat(uf_remappedPS[2].z) + intBitsToFloat(uf_remappedPS[3].z));
|
||||||
|
PV1i.z = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV0i.x)));
|
||||||
|
R1i.x = ((R2i.y == 0)?(PV0i.z):(R127i.x));
|
||||||
|
PS1i = R1i.x;
|
||||||
|
// 4
|
||||||
|
backupReg0i = R0i.z;
|
||||||
|
R1i.y = ((R2i.y == 0)?(R127i.w):(R126i.w));
|
||||||
|
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y)));
|
||||||
|
R1i.w = ((R2i.y == 0)?(PV1i.z):(PV1i.x));
|
||||||
|
// 5
|
||||||
|
R1i.z = ((R2i.y == 0)?(PV0i.z):(R126i.x));
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(intBitsToFloat(R1i.x), intBitsToFloat(R1i.y), intBitsToFloat(R1i.z), 0.0);
|
||||||
|
}
|
@ -0,0 +1,103 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader d9f064ae204238df
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 1) uniform ufBlock
|
||||||
|
{
|
||||||
|
uniform ivec4 uf_remappedPS[4];
|
||||||
|
uniform vec4 uf_fragCoordScale;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
uniform ivec4 uf_remappedPS[4];
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
#endif
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2DArray textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 1) in vec4 passParameterSem1;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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 R123i = 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);
|
||||||
|
// 0
|
||||||
|
backupReg0i = R1i.z;
|
||||||
|
R2i.x = ((intBitsToFloat(R0i.w) > 0.0)?int(0xFFFFFFFF):int(0x0));
|
||||||
|
R1i.z = floatBitsToInt(roundEven(intBitsToFloat(backupReg0i)));
|
||||||
|
R1i.xyzw = floatBitsToInt(texture(textureUnitPS0, vec3(intBitsToFloat(R1i.x),intBitsToFloat(R1i.y),intBitsToFloat(R1i.z))).xyzw);
|
||||||
|
// 0
|
||||||
|
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y)));
|
||||||
|
PV0i.z = R123i.z;
|
||||||
|
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x)));
|
||||||
|
PV0i.w = R123i.w;
|
||||||
|
// 1
|
||||||
|
backupReg0i = R0i.x;
|
||||||
|
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[0].w)));
|
||||||
|
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z)));
|
||||||
|
PV1i.y = R123i.y;
|
||||||
|
R127i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w)));
|
||||||
|
R127i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z)));
|
||||||
|
// 2
|
||||||
|
R127i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.z), intBitsToFloat(PV1i.y)));
|
||||||
|
R127i.y = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.w), intBitsToFloat(PV1i.x)));
|
||||||
|
R123i.z = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.y),intBitsToFloat(uf_remappedPS[2].y)) + intBitsToFloat(uf_remappedPS[3].y)));
|
||||||
|
PV0i.z = R123i.z;
|
||||||
|
R123i.w = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.x),intBitsToFloat(uf_remappedPS[2].x)) + intBitsToFloat(uf_remappedPS[3].x)));
|
||||||
|
PV0i.w = R123i.w;
|
||||||
|
// 3
|
||||||
|
backupReg0i = R0i.x;
|
||||||
|
PV1i.x = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R1i.w), intBitsToFloat(uf_remappedPS[2].w)));
|
||||||
|
R123i.y = floatBitsToInt((mul_nonIEEE(intBitsToFloat(R1i.z),intBitsToFloat(uf_remappedPS[2].z)) + intBitsToFloat(uf_remappedPS[3].z)));
|
||||||
|
PV1i.y = R123i.y;
|
||||||
|
PV1i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV0i.w)));
|
||||||
|
PV1i.w = floatBitsToInt(mul_nonIEEE(intBitsToFloat(R0i.y), intBitsToFloat(PV0i.z)));
|
||||||
|
// 4
|
||||||
|
backupReg0i = R0i.z;
|
||||||
|
PV0i.x = floatBitsToInt(mul_nonIEEE(-(intBitsToFloat(R0i.w)), intBitsToFloat(PV1i.x)));
|
||||||
|
R0i.y = ((R2i.x == 0)?(PV1i.w):(R127i.w));
|
||||||
|
PV0i.z = floatBitsToInt(mul_nonIEEE(intBitsToFloat(backupReg0i), intBitsToFloat(PV1i.y)));
|
||||||
|
R0i.x = ((R2i.x == 0)?(PV1i.z):(R127i.z));
|
||||||
|
PS0i = R0i.x;
|
||||||
|
// 5
|
||||||
|
R0i.z = ((R2i.x == 0)?(PV0i.z):(R127i.x));
|
||||||
|
R0i.w = ((R2i.x == 0)?(PV0i.x):(R127i.y));
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(intBitsToFloat(R0i.x), intBitsToFloat(R0i.y), intBitsToFloat(R0i.z), 0.0);
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader fcd26205b94e11ca
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 1) 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
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 1) in vec4 passParameterSem1;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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 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;
|
||||||
|
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
|
||||||
|
// 0
|
||||||
|
R127f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y));
|
||||||
|
R123f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x));
|
||||||
|
PV0f.w = R123f.w;
|
||||||
|
// 1
|
||||||
|
R123f.x = (mul_nonIEEE(R1f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w));
|
||||||
|
PV1f.x = R123f.x;
|
||||||
|
R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z));
|
||||||
|
PV1f.y = R123f.y;
|
||||||
|
R1f.x = mul_nonIEEE(R0f.x, PV0f.w);
|
||||||
|
PS1f = R1f.x;
|
||||||
|
// 2
|
||||||
|
R1f.y = mul_nonIEEE(R0f.y, R127f.z);
|
||||||
|
R1f.z = mul_nonIEEE(R0f.z, PV1f.y);
|
||||||
|
R1f.w = mul_nonIEEE(R0f.w, PV1f.x);
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0);
|
||||||
|
}
|
@ -0,0 +1,77 @@
|
|||||||
|
#version 430
|
||||||
|
#extension GL_ARB_texture_gather : enable
|
||||||
|
#extension GL_ARB_separate_shader_objects : enable
|
||||||
|
// shader fcd26205b94e11ca
|
||||||
|
// start of shader inputs/outputs, predetermined by Cemu. Do not touch
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale.xy,gl_FragCoord.zw)
|
||||||
|
#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 GET_FRAGCOORD() vec4(gl_FragCoord.xy*uf_fragCoordScale,gl_FragCoord.zw)
|
||||||
|
#endif
|
||||||
|
#ifdef VULKAN
|
||||||
|
layout(set = 1, binding = 1) uniform ufBlock
|
||||||
|
{
|
||||||
|
uniform ivec4 uf_remappedPS[2];
|
||||||
|
uniform vec4 uf_fragCoordScale;
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
uniform ivec4 uf_remappedPS[2];
|
||||||
|
uniform vec2 uf_fragCoordScale;
|
||||||
|
#endif
|
||||||
|
TEXTURE_LAYOUT(0, 1, 0) uniform sampler2D textureUnitPS0;
|
||||||
|
layout(location = 0) in vec4 passParameterSem0;
|
||||||
|
layout(location = 1) in vec4 passParameterSem1;
|
||||||
|
layout(location = 0) out vec4 passPixelColor0;
|
||||||
|
// end of shader inputs/outputs
|
||||||
|
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 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;
|
||||||
|
R1f.xyzw = (texture(textureUnitPS0, R1f.xy).xyzw);
|
||||||
|
// 0
|
||||||
|
R127f.z = (mul_nonIEEE(R1f.y,intBitsToFloat(uf_remappedPS[0].y)) + intBitsToFloat(uf_remappedPS[1].y));
|
||||||
|
R123f.w = (mul_nonIEEE(R1f.x,intBitsToFloat(uf_remappedPS[0].x)) + intBitsToFloat(uf_remappedPS[1].x));
|
||||||
|
PV0f.w = R123f.w;
|
||||||
|
// 1
|
||||||
|
R123f.x = (mul_nonIEEE(R1f.w,intBitsToFloat(uf_remappedPS[0].w)) + intBitsToFloat(uf_remappedPS[1].w));
|
||||||
|
PV1f.x = R123f.x;
|
||||||
|
R123f.y = (mul_nonIEEE(R1f.z,intBitsToFloat(uf_remappedPS[0].z)) + intBitsToFloat(uf_remappedPS[1].z));
|
||||||
|
PV1f.y = R123f.y;
|
||||||
|
R1f.x = mul_nonIEEE(R0f.x, PV0f.w);
|
||||||
|
PS1f = R1f.x;
|
||||||
|
// 2
|
||||||
|
R1f.y = mul_nonIEEE(R0f.y, R127f.z);
|
||||||
|
R1f.z = mul_nonIEEE(R0f.z, PV1f.y);
|
||||||
|
R1f.w = mul_nonIEEE(R0f.w, PV1f.x);
|
||||||
|
// export
|
||||||
|
passPixelColor0 = vec4(R1f.x, R1f.y, R1f.z, 0.0);
|
||||||
|
}
|
6
src/NewSuperMarioBrosU/Mods/RemoveHUD/rules.txt
Normal file
6
src/NewSuperMarioBrosU/Mods/RemoveHUD/rules.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Definition]
|
||||||
|
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
||||||
|
name = Remove HUD
|
||||||
|
path = "New Super Mario Bros. U/Mods/Remove HUD (breaks menus)"
|
||||||
|
description = Removes the in-game HUD.|Breaks menus so should only be used for screenshots/videos.||Made by Seb.
|
||||||
|
version = 6
|
@ -0,0 +1,22 @@
|
|||||||
|
[NSMBU+LU_CrashFix_V0]
|
||||||
|
moduleMatches = 0x1049CED8, 0x777D7B44
|
||||||
|
|
||||||
|
; remove check for mii data
|
||||||
|
0x024D7394 = b .+0xE8
|
||||||
|
|
||||||
|
[NSMBU_CrashFix_V64USV80EU]
|
||||||
|
moduleMatches = 0x6CAEA914, 0xFA29C89F
|
||||||
|
|
||||||
|
0x024D71C4 = b .+0xE8
|
||||||
|
|
||||||
|
[NSMBU_CrashFix_V0USV0EU]
|
||||||
|
moduleMatches = 0xA7A5ECF1, 0xC7B938AD
|
||||||
|
|
||||||
|
0x024BDE70 = b .+0xE8
|
||||||
|
|
||||||
|
[NSLU_CrashFix_V0EU]
|
||||||
|
moduleMatches = 0xA3705C0B
|
||||||
|
|
||||||
|
0x024D7158 = b .+0xE8
|
||||||
|
|
||||||
|
; Note: for future versions take the crash log and get the module checksum from the user. Subtract 0x7c from the link register in the crash log to be the address we patch.
|
@ -1,6 +1,6 @@
|
|||||||
[Definition]
|
[Definition]
|
||||||
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
titleIds = 0005000010101D00,0005000010101E00,000500001014B700,000500001014B800,0005000010101C00,0005000010142300,0005000010142400,0005000010142200
|
||||||
name = Crash Fix
|
name = Title Screen Crash Fix
|
||||||
path = "New Super Mario Bros. U/Workarounds/Crash Fix" #and luigi
|
path = "New Super Mario Bros. U/Workarounds/Title Screen Crash Fix" #and luigi
|
||||||
description = Allows NSMBU and NSLU to be played without the required system files. Made by Xalphenos.
|
description = Allows NSMBU and NSLU to be played without the required system files.|Only tested to work on the latest update of the game.||Made by Xalphenos.
|
||||||
version = 4
|
version = 6
|
Loading…
Reference in New Issue
Block a user