XNA Lens flare

Lens就是镜头的意思,flare就是闪光可闪耀的意思,Lens flare即是光晕。在3D游戏中,无论是室外场景的太阳还是室内场景中的灯光效果,都有要用到Lens flare的效果。

  经过两天多的努力终于把这个效果做出来了,虽然还有点小问题,但总的来说已经实现了。

  首先还是老样的,完成后的效果(也是目标效果):



 附件: 您所在的用户组无法下载或查看附件


  为了节省时间,这个Demo中不少的组件都是以前做的,新加的东西也都做成了组件。镜头的控制也是通过以前写的CameraLib.DLL控制。

  先是引用了CameraLibTerrain。后测试效果为



 附件: 您所在的用户组无法下载或查看附件


  之后,加入一个SkyBox类:

  代码如下:

Code


测试效果如下:



 附件: 您所在的用户组无法下载或查看附件


  最后就是主要的部分了——LensFlare,为了以后使用方便,我还是将产生LensFlare的类封装成组件以方便以后需要的时候再调用。

  其中主要有两个类,一个是Flare.代码如下:

Code


  另一个就是LensFlare的主要代码:

  代码如下:

Code


  测试程序,只是效果有点不理想,但还过后去,以后有时间了再修正。





(文/desmend  出处/博客园)


 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Visual Studio.NET] 的这些文章也感兴趣:

微软.NET Framework的开源之路
优秀.NET技术网站推荐
MS Claims to Hold the ETL Record at 1 TB in 30 Minutes
COM组件开发实践(二)
XNA Primitives画线 1(2D和向量反射)
Visual Studio 2008各版本区别
配置Visual Studio 以调试.net framework的源代码
.NET框架图解之七:Winform
Remoting系统构思及分布式注册
好多Javascript日期选择器呀