Lens就是镜头的意思,flare就是闪光可闪耀的意思,Lens flare即是光晕。在3D游戏中,无论是室外场景的太阳还是室内场景中的灯光效果,都有要用到Lens flare的效果。
经过两天多的努力终于把这个效果做出来了,虽然还有点小问题,但总的来说已经实现了。
首先还是老样的,完成后的效果(也是目标效果):
为了节省时间,这个Demo中不少的组件都是以前做的,新加的东西也都做成了组件。镜头的控制也是通过以前写的CameraLib.DLL控制。
先是引用了CameraLib和Terrain。后测试效果为
之后,加入一个SkyBox类:
代码如下:
.Draw(gameTime);
}
}
测试效果如下:
最后就是主要的部分了——LensFlare,为了以后使用方便,我还是将产生LensFlare的类封装成组件以方便以后需要的时候再调用。
其中主要有两个类,一个是Flare.代码如下:
textureName;
}
}
}
另一个就是LensFlare的主要代码:
代码如下:
}
测试程序,只是效果有点不理想,但还过后去,以后有时间了再修正。