我已经研究过了,用来产生光晕效果的方法通常是基于结合了清晰而模糊的图像来产生光晕效果的。但是我想知道如何使gl_lines(或任何行)具有亮度。由于在游戏中我随机生成一个简单的2D地形,因此我希望使地形线段发光。

最佳答案

使用片段着色器计算片段到边缘的距离,并使用适当的颜色值为片段着色。您可以使用简单的控制曲线来控制发光的半径和强度(如在photoshop中)。还可以将其调整为像线框可视化一样起作用。这个想法是,您实际上并没有使用绘制调用将点光栅化,只是根据每个像素与相应边缘的距离为其着色。

与使用模糊通过的区别在于,您将首先获得更好的性能,其次-对发光进行逐像素控制,您可能会获得不均匀的发光,这是通过使用模糊无法获得的,因为它不能真正了解实际的线几何,它只是盲目地作用于像素,而通过边缘距离检测,您确实使用了实际的几何数据作为输入,而没有将其展平为像素。您还可以使用渐变发光之类的东西,例如发光颜色不同,并随半径而变化。

关于c++ - C++ OpenGL创建发光线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16997359/

10-12 23:34