glsl - 修复 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;
}
这是它现在的样子:
解决方案
推荐阅读
- python - numpy 数组的任意列之间的(内存)高效操作
- reactjs - 异步操作:获得一个类作为回报而不是调度函数
- javascript - 将值传递给javascript中的ajax加载函数
- python - 如何在火花数据框中显示弹性搜索查询结果
- c++ - SFML 中的分段错误调用 sf::Window::close 后
- amazon-web-services - 使用 Lambda 函数运行放置在 S3 中的 python 代码
- google-apps-script - 电子表格中的谷歌应用程序脚本 - 从库加载自定义函数时单元格不会刷新
- arrays - 如何使用 Bash 4 将 CSV 数据转换为关联数组?
- java - 如何将 Spring 项目中的类序列化到 Redis,然后将类反序列化到 Guice 项目?
- ionic-framework - 如何计算所选项目的数量并在标签中显示