XNA Lens flare

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

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

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

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

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

  之后,加入一个SkyBox类:

  代码如下:

 

Code

 

测试效果如下:

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

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

 

Code

 

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

  代码如下:

Code

 

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

posted @ 2008-10-06 22:10  齐.net  阅读(2663)  评论(9编辑  收藏  举报