您可以实现Nehe Lesson 36中描述的径向模糊效果.主要思想是将绘图渲染为纹理,并在每次渲染后使用小偏移执行N次,直到绘图准备好复制到帧缓冲区.
我写了一个使用Qt和OpenGL的小型演示.您可以在下面看到原始图形(没有模糊):
下一个图像显示启用了模糊效果的绘图:
我知道它并不多,但这是一个开始.
我也曾希望有一个非常简单的解决方案,但不幸的是它有点复杂,至少对初学者来说.
今天实现的发光效果的方式,无论API(D3D,OpenGL)是否使用像素/片段着色器.它通常涉及渲染场景的多个渲染过程,然后渲染只有"发光物体"可见的过程,然后应用绽放像素着色器并将它们组合在一起.
有关详细信息,请参阅@Valmond提供的链接
编辑:
应该补充的是,这可以通过延迟渲染来实现,其中法线,位置和诸如"发光标志"的其他信息被渲染到纹理,即存储在纹理的不同组件中.然后,着色器将从纹理中读取并在一次通过中执行闪电计算和后处理效果,因为它所需的所有数据都可从该渲染纹理中获得.