问题 GLSL对象发光


是否可以创建一个GLSL着色器来让任何对象被发光效果包围? 假设我有一个3d立方体,如果它被选中,立方体应该被蓝色发光效果包围。任何提示?


3537
2018-01-13 10:33


起源



答案:


那么有几种方法可以做到这一点。如果每个对象也以a表示 有翼的边缘 格式然后计算轮廓然后挤出它以产生光晕是微不足道的。然而,这是一种CPU方法。

对于GPU方法,您可以尝试渲染到屏幕缓冲区,并将模板设置为递增。如果然后在图像上执行模糊(虽然只写入模板不为零的像素),您将在图像边缘处获得模糊,然后可以使用Alpha混合将其绘制到主场景中。这更像是一种模糊而不是发光,但重新设定亮度以使其呈现发光相对容易。

还有很多其他方法......这里有几个链接供您查看:

http://http.developer.nvidia.com/GPUGems/gpugems_ch21.html
http://www.codeproject.com/KB/directx/stencilbufferglowspart1.aspx?display=Mobile

在谷歌上搜寻一轮,因为有很多信息:)


12
2018-01-13 10:46