Pulled recent changes, made mergeable with Slashiee's master, fixed Cemu 1.10.0 support

Cemu 1.10.0 made some changes which are causing the blur radius to be less on Cemu 1.10.0 due to a blur layer which changed size (for Mario kart 8). Can't do much about it. I used Cemu 1.10.0 as a guideline, but backwards compatibility is still here.
This commit is contained in:
Milan 2017-10-03 20:54:50 +02:00
parent 6a4494faa1
commit 02c824f327
51 changed files with 155 additions and 368 deletions

View File

@ -24,7 +24,6 @@ vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
@ -34,4 +33,5 @@ for( int x=-r; x<=r; x++ ) {
}
}
passPixelColor0 = R1f/count;
}
}

View File

@ -24,7 +24,6 @@ vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
@ -34,4 +33,5 @@ for( int x=-r; x<=r; x++ ) {
}
}
passPixelColor0 = R1f/count;
}
}

View File

@ -24,7 +24,6 @@ vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
@ -34,4 +33,5 @@ for( int x=-r; x<=r; x++ ) {
}
}
passPixelColor0 = R1f/count;
}
}

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,45 +6,34 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816
overwriteWidth = 5120
overwriteHeight = 2880
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 5120
overwriteHeight = 2880
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
[TextureRedefine] # half-res alpha (gamepad)
width = 427
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # half-res alpha (multiplayer)
width = 424
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
@ -64,18 +53,4 @@ overwriteHeight = 1440
width = 848
height = 480
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # half-res alpha (gamepad)
width = 427
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # half-res alpha (multiplayer)
width = 424
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
overwriteHeight = 1440

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,47 +6,36 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816
overwriteWidth = 7680
overwriteHeight = 4320
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 7680
overwriteHeight = 4320
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 3840
overwriteHeight = 2160
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 3840
overwriteHeight = 2160
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1920
overwriteHeight = 1080
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 1920
overwriteHeight = 1080
[TextureRedefine] # half-res alpha (gamepad)
width = 427
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # half-res alpha (multiplayer)
width = 424
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # squid sisters
width = 1024
@ -64,18 +53,4 @@ overwriteHeight = 1440
width = 848
height = 480
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # half-res alpha (gamepad)
width = 427
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # half-res alpha (multiplayer)
width = 424
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
overwriteHeight = 1440

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,47 +6,36 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816
overwriteWidth = 10240
overwriteHeight = 5760
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 10240
overwriteHeight = 5760
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 5120
overwriteHeight = 2880
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 5120
overwriteHeight = 2880
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # half-res alpha (gamepad)
width = 427
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # half-res alpha (multiplayer)
width = 424
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # squid sisters
width = 1024
@ -64,18 +53,4 @@ overwriteHeight = 1440
width = 848
height = 480
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # half-res alpha (gamepad)
width = 427
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # half-res alpha (multiplayer)
width = 424
height = 240
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
overwriteHeight = 1440

View File

@ -24,7 +24,6 @@ vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
@ -34,4 +33,5 @@ for( int x=-r; x<=r; x++ ) {
}
}
passPixelColor0 = R1f/count;
}
}

View File

@ -24,7 +24,6 @@ vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
@ -34,4 +33,5 @@ for( int x=-r; x<=r; x++ ) {
}
}
passPixelColor0 = R1f/count;
}
}

View File

@ -24,7 +24,6 @@ vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
@ -34,4 +33,5 @@ for( int x=-r; x<=r; x++ ) {
}
}
passPixelColor0 = R1f/count;
}
}

View File

@ -23,17 +23,15 @@ ivec2 ires = textureSize(textureUnitPS0,0);
vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
for (int i=0; i<r; i++) {
float m = (1-r)/2 + float(i);
for (int k=0; k<r; k++){
float n = (1-r)/2 + float(k);
R1f += texture( textureUnitPS0, R0f+ vec2(m,n) * 2.0 /res )/(pow(r,2)-4); //assume 2px offset as well
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
R1f += texture( textureUnitPS0, R0f + vec2(x,y)/res );
count += 1.0;
}
}
}
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4); //workaround, less like a square, needs proper bokeh
passPixelColor0 = R1f;
}
passPixelColor0 = R1f/count;
}

View File

@ -23,17 +23,15 @@ ivec2 ires = textureSize(textureUnitPS0,0);
vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
for (int i=0; i<r; i++) {
float m = (1-r)/2 + float(i);
for (int k=0; k<r; k++){
float n = (1-r)/2 + float(k);
R1f += texture( textureUnitPS0, R0f+ vec2(m,n) * 2.0 /res )/(pow(r,2)-4); //assume 2px offset as well
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
R1f += texture( textureUnitPS0, R0f + vec2(x,y)/res );
count += 1.0;
}
}
}
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4); //workaround, less like a square, needs proper bokeh
passPixelColor0 = R1f;
}
passPixelColor0 = R1f/count;
}

View File

@ -23,17 +23,15 @@ ivec2 ires = textureSize(textureUnitPS0,0);
vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
for (int i=0; i<r; i++) {
float m = (1-r)/2 + float(i);
for (int k=0; k<r; k++){
float n = (1-r)/2 + float(k);
R1f += texture( textureUnitPS0, R0f+ vec2(m,n) * 2.0 /res )/(pow(r,2)-4); //assume 2px offset as well
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
R1f += texture( textureUnitPS0, R0f + vec2(x,y)/res );
count += 1.0;
}
}
}
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4); //workaround, less like a square, needs proper bokeh
passPixelColor0 = R1f;
}
passPixelColor0 = R1f/count;
}

View File

@ -23,17 +23,15 @@ ivec2 ires = textureSize(textureUnitPS0,0);
vec2 res = vec2( float(ires.x), float(ires.y) );
int r = int(floor(2.0 / uf_fragCoordScale.y + 0.5));
vec4 R1f = vec4(0.0);
for (int i=0; i<r; i++) {
float m = (1-r)/2 + float(i);
for (int k=0; k<r; k++){
float n = (1-r)/2 + float(k);
R1f += texture( textureUnitPS0, R0f+ vec2(m,n) * 2.0 /res )/(pow(r,2)-4); //assume 2px offset as well
float count = 0.0;
for( int x=-r; x<=r; x++ ) {
for( int y=-r; y<=r; y++ ) {
if( pow(x,2) + pow(y,2) <= pow(r,2) ) {
R1f += texture( textureUnitPS0, R0f + vec2(x,y)/res );
count += 1.0;
}
}
}
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((1-r)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(1-r)/2) * 2.0 /res )/(pow(r,2)-4);
R1f -= texture( textureUnitPS0, R0f+ vec2((r-1)/2,(r-1)/2) * 2.0 /res )/(pow(r,2)-4); //workaround, less like a square, needs proper bokeh
passPixelColor0 = R1f;
}
passPixelColor0 = R1f/count;
}

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -15,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -15,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -3,21 +3,11 @@ titleIds = 000500001010ec00,000500001010ed00,000500001010eb00,ffffffff85887bc1
name = "Mario Kart 8 - 3840x2160"
version = 2
# Main Screen Resolution better color depth
[TextureRedefine]
width = 1280
height = 720
formats = 0x19,0x1a
overwriteFormat = 0x1f
tileModesExcluded = 0x001
overwriteWidth = 3840
overwriteHeight = 2160
# Main Screen Resolution
[TextureRedefine]
width = 1280
height = 720
formatsExcluded = 0x41A,0x431,0x19,0x1a # exclude the intro background texture, race end background
formatsExcluded = 0x41A,0x431 # exclude the intro background texture, race end background
overwriteWidth = 3840
overwriteHeight = 2160

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,45 +6,20 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816
overwriteWidth = 1920
overwriteHeight = 1080
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 1920
overwriteHeight = 1080
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 960
overwriteHeight = 540
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 960
overwriteHeight = 540
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 480
overwriteHeight = 270
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 480
overwriteHeight = 270

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,45 +6,20 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816
overwriteWidth = 2560
overwriteHeight = 1080
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 2560
overwriteHeight = 1080
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 540
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 540
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 640
overwriteHeight = 270
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 640
overwriteHeight = 270

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,45 +6,20 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 2560
overwriteHeight = 1440
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1280
overwriteHeight = 720
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 640
overwriteHeight = 360
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 640
overwriteHeight = 360

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,45 +6,20 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816
overwriteWidth = 3200
overwriteHeight = 1800
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 3200
overwriteHeight = 1800
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 1600
overwriteHeight = 900
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1600
overwriteHeight = 900
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 800
overwriteHeight = 450
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 800
overwriteHeight = 450

View File

@ -4,6 +4,7 @@
// Used for: Vertical Blur
const float blurFactor = 1.0; //Higher is less blur
// Implementation of http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
layout(binding = 0) uniform sampler2D textureUnitPS0;
layout(location = 0) in vec4 passParameterSem0;
@ -14,7 +15,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -14,7 +14,7 @@ uniform float weight[] = float[](0.18571429, 0.28870130, 0.10363636, 0.01480519)
uniform float offset[] = float[](0.00000000, 1.42105263, 3.31578947, 5.21052632);
ivec2 inputRes = textureSize(textureUnitPS0, 0);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y)*uf_fragCoordScale);
vec2 outputRes = vec2(float(inputRes.x), float(inputRes.y));
vec2 scale = outputRes * blurFactor;
void main()
{

View File

@ -6,54 +6,20 @@ version = 2
[TextureRedefine] # tv
width = 1280
height = 720
formatsExcluded = 0x816,0x19,0x1a
overwriteWidth = 3840
overwriteHeight = 2160
[TextureRedefine] #TV
width = 1280
height = 720
formats = 0x19,0x1a
overwriteFormat = 0x1f
tileModesExcluded = 0x001
overwriteWidth = 3840
overwriteHeight = 2160
[TextureRedefine] # tv (increased depth)
width = 1280
height = 720
formats = 0x816
overwriteFormat = 0x823
overwriteWidth = 3840
overwriteHeight = 2160
[TextureRedefine] # half-res alpha
width = 640
height = 360
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 1920
overwriteHeight = 1080
[TextureRedefine] # half-res alpha (increased depth)
width = 640
height = 360
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 1920
overwriteHeight = 1080
[TextureRedefine] # quarter-res alpha
width = 320
height = 180
formatsExcluded = 0x41A,0x431,0x816 # exclude obvious textures
overwriteWidth = 960
overwriteHeight = 540
[TextureRedefine] # quarter-res alpha (increased depth)
width = 320
height = 180
formats = 0x816
overwriteFormat = 0x823
formatsExcluded = 0x41A,0x431 # exclude obvious textures
overwriteWidth = 960
overwriteHeight = 540