我想在矩形上创建一个发光效果:
我真的不知道从哪里开始片段着色器。
实际上,我想在形状(圆形,多边形,矩形)上实现这种效果。没有真正的边框颜色。只是blury。
答案 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));