mirror of
https://github.com/cemu-project/cemu_graphic_packs.git
synced 2024-12-23 00:11:51 +01:00
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:
parent
02c824f327
commit
bcf5c76ecb
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user