游戏开发

本类阅读TOP10

·初学者的福音:游戏开发新手入门指南
·《学VC、编游戏》重点算法解疑·快一点
·Windows的消息机制与消息重定向技术
·《学VC、编游戏》重点算法解疑·再快一点
·Rogue Guide
·《学VC、编游戏》重点算法解疑·狩猎谋生
·通向天才之路 : 把模块塞到动态连接库里去
·完成端口的深入理解及一种变态用法
·DirectX 9.0 SDK 开发包下载(April 2005)
·在OpenGL中实现多纹理混合(Multi-texture Blending)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Real-Time Glow

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

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




相关文章

相关软件