OpenGL ES中对简单矩形的辉光效果

时间:2016-11-09 14:53:27

标签: glsl webgl opengl-es-2.0

我想在矩形上创建一个发光效果:

我真的不知道从哪里开始片段着色器。

..

实际上,我想在形状(圆形,多边形,矩形)上实现这种效果。没有真正的边框颜色。只是blury。

1 个答案:

答案 0 :(得分:0)

其中一种方式:

如果您有一个用4行(4个点)定义的矩形并且有一个模型矩阵,那么将4个点与模型矩阵相乘,并将它们作为一个整体发送到片段着色器中。在顶点着色器中为位置创建另一个变化,即输入位置仅与模型矩阵相乘。还有一些半径必须作为制服发送。

现在在片段着色器中为表示线的每个点对创建代码并计算距离。现在,如果距离较小,则半径为边框创建颜色比例。然后将所有4的总和用作边框颜色的结果。

scale += 1.0-(clamp(currentDistanceToLeftBorder/radius, .0, 1.0));
scale += 1.0-(clamp(currentDistanceToTopBorder/radius, .0, 1.0));
scale += 1.0-(clamp(currentDistanceToRightBorder/radius, .0, 1.0));
scale += 1.0-(clamp(currentDistanceToBottomBorder/radius, .0, 1.0));

然后混合颜色:

color = mix(defaultColor, borderColor, clamp(scale, .0, 1.0));
相关问题