天空盒、水面和纹理动画.ppt
《天空盒、水面和纹理动画.ppt》由会员分享,可在线阅读,更多相关《天空盒、水面和纹理动画.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、天空盒李巍天空的种类 目前描述“天空”的技术主要包括三种类型:平板型天空(Sky Plane),仅用一个平板放到头顶。天空穹(Sky Dome),放到头顶的是一个曲面。天空盒(Sky Box),放到场景的是一个立方体。天空的种类 天空盒经常是由六个面组成的立方体,并经常会随着视点的移动而移动。天空盒将刻画极远处人无法达到的位置的景物。天空盒的实现 与D3D 实现的普通立方体不同的一点是,大部分情况下我们视点都包容在天空盒内部,因此,天空盒的顶点顺序应当是正好与普通立方体的顶点顺序相反。天空盒的实现 最简单的天空盒,只需要填写好六个面的24 个顶点,最后为每个面贴上纹理即可。CODE 请注意渲染
2、的时候的一些细节:纹理状态的重设、渲染状态的重设。天空盒的一些杂论 天空盒对于程序员并不是困难的事情,但是真正要在程序中使得天空“好看”,那么,还需要美工的共同参与。天空穹相对而言表现力更好一些。魔兽世界就是采用了这种方法。天空盒的一些杂论 对于并不太注意远景的场景,用天空板也不失为一种办法。在这种情况下,纯色的雾将覆盖整个远景,使得远处充满神秘。天空盒的一些杂论 在高级一些的应用中,天空盒的纹理可能同时会用来生成Cube Map,并用之来做水面倒影、云影、反光等很眩的特效。天空盒的一些杂论 云影重新思考纹理 在目前的情况下,我们使用的都是D3D 自己的IDirect3DTexture9 纹理
3、接口。但是,目前的使用中,我们发现这些接口需要在各个使用纹理的类中去处理其释放,如果以后这些类中有更多的纹理,我们就会很郁闷。CTEXTURE:设计 我们计划将D3D 的Texture 封装到一个名为CTexture 的类中。毫无疑问,CTexture 首先应具备一个类型为LPDIRECT3DTEXTURE9 的成员。那么,针对这个成员,我们就应该起码有创建、销毁这两个函数。而在析构函数中,我们只需要调用一次销毁,就可以使得使用Texture 的类少一些精力为它们做扫尾的工作。CTEXTURE:编码以及对原有程序的改造 CODE 既然是使用了自己的CTexture,那么就必须同样为Device
4、 添加设置纹理的功能,这一点应该明确。这种加入一个类就需要改变另一个类的情况,叫做“相关”。总结 目前用来实现天空的技术有三种:天空板,天空穹和天空盒,天空盒最常用。天空盒总是从内部看,所以其顶点方向正好和普通立方体的顶点方向相反。出于对纹理使用方便的考虑,我们封装一个纹理类。在之后的实践中,我们还将继续扩展此纹理类,以使它实现更多的功能。作业 在上星期五代码的基础上。请添加“摄像机”功能,最好以类实现。(可参考上次给大家的代码)请自己编码实现一个纹理类。附加题:请使用您自己的纹理类来做一个天空盒。本次作业请在本周五0:00 之前交。上次摄像机与公告板的作业请在本周四0:00 之前交。水面和纹
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 天空 水面 纹理 动画
限制150内