Real-Time Glow

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Real-Time Glow

原出处: http://xreal.51.net/Game/realtimeglow.htm

所谓的glow,就是在一个对象旁边出现一些光晕.通常一个自身能发光或者相对场景中其它比较暗的物体来说,都会产生这种现象的。而且,这些对象看起来都会比自身更加亮一些.

其实要产生glow很简单.我在这里简单的描述一下:

1:按通常的模式渲染场景.

2:只渲染带有glow效果的物体.这时候,我们把它渲染到一张纹理里去,这张纹理可以比viewPort小.渲染的时候,我们不再使用diffuse信息,而是使用glow信息.比如一个人物,我们可能希望他脸部带的glow重一些.而其他地方小一些.一个大楼的话,亮着灯的地方有glow.而其他的地方没有.我们可以把这些信息保存在普通的diffuse纹理里(用diffuse本身,或者alpha通道)也可以采用专用的glow信息纹理.渲染完成这个纹理后,纹理里保存的是有glow物体才屏幕上的额外亮度信息.

3:对2中的纹理做blur,沿x-y方向做一定程度的模糊.使本来只在物体的上的glow信息向两边扩散.当然,也可以在渲染2的时候,把物体沿法线方向拉伸.(我两种方法都用了).

4:最后把经过步骤3处理后的纹理贴到屏幕上,也就是把glow信息加回到场景中.用add的方式应用纹理.

详细的real-time glow,见GPU Gems

以下是我用renderMonkey渲染的例子

http://xreal.51.net/Download/RTGlow.rar

http://xreal.51.net/Game/glow/glow1.jpg

http://xreal.51.net/Game/glow/glow2.jpg

http://xreal.51.net/Game/glow/glow3.jpg

xheartblue-2005-3-7

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航