首页 > 解决方案 > 修复 2D glsl 阴影着色器

问题描述

我正在尝试修复我的 2d 阴影着色器中的奇怪边缘。我尝试了很多不同的方法,但它们似乎都不起作用。有谁知道如何解决它?

这是片段着色器代码:

varying vec2 v_texCoord;
uniform sampler2D s_baseMap;

uniform vec4 mainColor;
uniform vec4 currentColor;

uniform int textured;

uniform float white;

uniform vec4 mainTransform;

float x;
float y;

void main()
{
    if (textured == 0){
        currentColor = mainColor;
    }
    else{
        currentColor = texture2D(s_baseMap,v_texCoord) * mainColor;
    }
    
    x = sin( (14 * 0.25 / mainTransform.z)*v_texCoord.y + (18 * 0.25 / mainTransform.w)*(v_texCoord.x + 0.5) + 9.28*v_texCoord.x + mainTransform.x / 1.5) * 0.4f;
    y = sin( (14 * 0.25 / mainTransform.z)*v_texCoord.y + (18 * 0.25 / mainTransform.w)*(v_texCoord.x + 0.5) + 3.28*v_texCoord.x + mainTransform.y) * 0.4f;

    x = sin(x / 6.28);

    if (currentColor.w > 0){
        currentColor = mix(currentColor, vec4(white + x + y, white + x + y, white + x + y + 0.2, 1), 0.2);
    }

    gl_FragColor = currentColor;
}

这是它现在的样子:

截屏

标签: glsl

解决方案


推荐阅读