1.根据距离判断光的衰减
void mainImage(out vec4 fragColor, in vec2 fragCoord)
{
vec2 uv = fragCoord/iResolution.xy;
uv.x *= iResolution.x / iResolution.y;
uv -= 0.5;
// 加载贴图
vec3 textureColor = texture(iChannel0, uv).rgb;
// 定义光晕中心位置
vec2 center = vec2(sin(iTime) + 0.5, 0.0);
// 计算当前像素到光晕中心的距离
float dist = distance(uv, center);
// 创建一个简单的光晕效果
float halo = 1.0 - smoothstep(0.0, 1.0, dist); // 光晕范围
float lightStrength = 1.3;
// 将光晕效果应用到贴图上
vec3 color = textureColor * halo * lightStrength; // 光晕颜色为白色
// 输出最终颜色
fragColor = vec4(color, 1.0);
}
效果: