如何围绕一个简单的圆圈制作发光/绽放效果?

时间:2016-12-11 00:09:20

标签: 2d glsl shader bloom

我在片段着色器中做了一个简单的圆圈:

float dist = length(gl_PointCoord - 0.5); // distance to center
float circle = smoothstep(0.3, 0.5, dist); // apply smoothing curve

现在我会围绕它做一些绽放效果。像这样: https://i.stack.imgur.com/rIS2o.png

2 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是 Radial Gradient 。 此链接看起来很有用RadialGradient Shader

答案 1 :(得分:0)

请查看此nvidia document了解简单的发光效果。

的基本思路是
  1. 渲染后台缓冲区中的场景激活效果
  2. 在FBO中渲染场景的一些元素
  3. 计算发光效果
  4. 将最终的FBO绑定为纹理,并将此效果与后备缓冲区中之前渲染的场景混合