已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
5年前关闭。
Improve this question
我怎样给我画的线添加发光效果?我使用的是OpenGL for Linux。
已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。
5年前关闭。
Improve this question
我怎样给我画的线添加发光效果?我使用的是OpenGL for Linux。
4条答案
按热度按时间gdx19jrr1#
你可以实现Nehe Lesson 36上描述的径向模糊效果。主要思想是将绘图渲染为纹理,并在每次渲染后使用小偏移量重复N次,直到绘图准备好复制到帧缓冲区。
我写了一个使用Qt and OpenGL的小演示,你可以看到原始绘图(没有模糊)如下:
下图显示了启用了模糊效果的图形:
我知道这不多,但这是个开始。
gfttwv5a2#
我也曾经希望有一个非常简单的解决方案,但不幸的是,它有点复杂,至少对初学者来说。
发光效果的实现方式,无论API(D3D,OpenGL)是与像素/碎片着色器。它通常涉及多个渲染通道,你渲染你的场景,然后渲染一个通道,只有"发光对象"是可见的,然后你应用一个bloom像素着色器,并把它们组合在一起。
有关详细信息,请参见@Valmond提供的链接
编辑:
需要补充的是,这可以通过延迟渲染来实现,在延迟渲染中,法线、位置和其他信息(如"发光标记")被渲染到纹理中,即存储在纹理的不同组件中。然后着色器将从纹理中读取,并在一次通过中进行 lightning 计算和后处理效果,因为它需要的所有数据都可以从渲染的纹理中获得。
5rgfhyps3#
看看这个:http://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch21.html
它很容易解释如何使辉光效果。
kd3sttzy4#
如果不使用着色器,你也可以尝试渲染纹理和做一个径向模糊。作为一个起点,看看NeHe-Tutorials。