Super Mario 3D World & Captain Toad Treasure Tracker upscaling fixed with general blur fix

Fixed Blur of various levels, mainly made for Captain Toad Treasure Tracker which had various issues like having weird issues with light dots having a grid of dots around it.
This commit is contained in:
Milan 2017-10-03 21:13:08 +02:00
parent 02c824f327
commit bcf5c76ecb
16 changed files with 432 additions and 0 deletions

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 0457fe3efc9a772f
// Used for: Horizontal Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.w, passParameterSem0.x);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(offset[i], 0.0) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(offset[i], 0.0) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}

View File

@ -0,0 +1,27 @@
#version 420
#extension GL_ARB_texture_gather : enable
// shader 9fad3b3505a6d831
// Used for: Vertical Blur (Captain Toad Treasure Tracker)
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;
layout(location = 0) out vec4 passPixelColor0;
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));
vec2 scale = outputRes * blurFactor;
void main()
{
vec2 R0f = vec2(passParameterSem0.x, passParameterSem0.w);
vec4 R1f = texture(textureUnitPS0, R0f) * weight[0];
for (int i = 1; i<4; i++) {
R1f += texture(textureUnitPS0, R0f + (vec2(0.0, offset[i]) / scale)) * weight[i];
R1f += texture(textureUnitPS0, R0f - (vec2(0.0, offset[i]) / scale)) * weight[i];
}
passPixelColor0 = R1f;
}