C ++ OpenGL创建发光线

时间:2013-06-08 07:52:35

标签: c++ opengl

我已经研究过,用于制作晕染效果的方法通常是基于将锐利和模糊的图像连接起来以产生发光效果。但我想知道如何让gl_lines(或任何一行)具有亮度。因为在我的游戏中我随机生成一个简单的2D地形,我希望使地形线段发光。

1 个答案:

答案 0 :(得分:2)

使用片段着色器计算片段到边缘的距离,并使用适当的颜色值为片段着色。您可以使用简单的控制曲线来控制发光的半径和强度(如在photoshop中)。它也可以调整为像线框可视化一样。我的想法是你没有使用绘图调用将点光栅化为线条,只需根据距离相应边缘的距离对每个像素进行着色。

使用模糊传递的不同之处在于,您将首先获得更好的性能,并且每次像素控制辉光,您可以使用模糊不能获得的非均匀光晕,因为它不是真正意识到对于实际的线几何图形,它只是盲目地对像素起作用,而对于边缘距离检测,您确实使用实际的几何数据作为输入而不将其平滑到像素。您还可以使用渐变发光等内容。发光颜色不同,随半径变化。