gpt4 book ai didi

java - GLSL 中奇怪的灯光

转载 作者:行者123 更新时间:2023-12-01 08:58:55 25 4
gpt4 key购买 nike

我正在 GLSL 中研究 2D 光照,但它似乎有一个我无法修复的错误。当场景中有多个灯光时,我的灯光会产生这些奇怪的“层”,这些“层”会重叠。 You can see the problem around the lights

我的着色器代码非常简单:

uniform vec2 lightLocation[6];
uniform vec3 lightColor[6];
uniform float lightRadius[6];
uniform sampler2D texture0;

void main() {

float distance;
float attenuation;
vec4 color;
vec4 finalColor = vec4(0, 0, 0, 1);
for (int i = 0; i < 6; ++i) {
distance = length(lightLocation[i] - gl_FragCoord.xy);
attenuation = 4.0 / (1.0 + 10.0*(distance / lightRadius[i]));
color = vec4(attenuation, attenuation, attenuation, pow(attenuation, 3)) * vec4(lightColor[i], 1);
finalColor = finalColor + color;
}

gl_FragColor = finalColor * texture(texture0, gl_TexCoord[0].st);
}

有人知道是什么原因导致这个问题吗?

最佳答案

事实证明问题不在着色器中(感谢 Zouch 使用 Shadertoy 解决了这个问题)。

我不小心画了两次灯,而不是一次。

关于java - GLSL 中奇怪的灯光,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41848979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com