欢迎来到天天文库
浏览记录
ID:52514973
大小:3.50 MB
页数:176页
时间:2020-03-28
《网格模型高级技术.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、网格模型高级技术2009年11月17日1摘要.x文件格式最初是为传统的Direct3D保留模式而设计的,在DirectX6.0问世后,针对立即模式对它作过一次扩展。要想在Direct3D程序中灵活自如地使用网格模型,应当深入理解.x文件格式。网格模型高级技术(1)摘要:在三维图形程序设计中,网格模型占有非常重要的地位,而且也是比较复杂的部分,特别是包含动画和蒙皮信息的网格模型。网格模型高级技术(2)摘要:我们在cube_1.x的基础上添加材质、法线和纹理,构成cube_2.x。在光照模型运算时需要用到法向量,法向量分为面法向量和顶点法向量。在基于逐顶点计算的光照模型
2、中,需要使用顶点法向量。通常顶点法向量的计算过程是:先将共享该顶点的几个面的面法向量相加并除以共享该顶点的面的个数,接着归一化这个结果。网格模型高级技术(3)摘要:通过前面的介绍,可以建立起一个网格模型,但这个网格模型是浑然一体的,而在现实生活中,为了能独立对一个物体的不同部分进行变换,必须将模型分割成不同的模块,在.x文件中使用框架(frame)对一个网格模型的不同部分进行组织和管理。框架仅仅是一个外壳,在框架中通常需要包含具体的网格和一个框架变换矩阵,其中框架变换矩阵用于指定该框架包含的部分在整个模型中的初始位置。网格模型高级技术(4)摘要:为了使一个.x文件产
3、生动画,必须至少提供一个动画集,每个动画集都应具有一个对某个框架的引用。模板AnimationSet用来定义动画集。Animation是一个完全开放的模板,一般情况下,用模板AnimationKey来填充它。网格模型高级技术(5)摘要:Direct3D对加载到内存中的网格模型提供了优化功能,通过网格模型优化可以明显提高三维模型的渲染速度,这对渲染速度要求较高的三维图形程序和游戏具有非常重要的现实意义。对于程序员而言,对网格模型进行优化是比较简单的,只需调用接口ID3DXMesh的方法Optimize().网格模型高级技术(6)摘要:层次细节网格模型(progress
4、mesh)是一种特殊的网格模型,它的顶点数据以树状形式组织,可以随意增加或降低模型的复杂程度,从而比普通的网格模型具有更大的灵活性,层次细节网格模型对于层次细节场景的渲染非常理想。当模型距离观察者较远时可以降低模型的复杂程度,提高渲染速度。而当模型距离观察者较近时可以使用复杂的模型,从而提高视觉效果。Direct3D用ID3DXPMesh来表示层次细节网格模型对象,而不是ID3DXMesh。网格模型高级技术(7)摘要:增强网格模型是运行镶嵌技术将原始网格模型的三角形面进行细分,形成更加精细(三角形面更多)的网格模型,这对于逐顶点进行的光照效果会更好。网格模型镶嵌技术
5、主要用在层次细节场景中当模型距离观察者较近时,使模型的显示更精细。增强网格模型可以通过对原始网格模型进行镶嵌细分模型得到,Direct3D提供了功能函数D3DXTessellateNPatches()来完成这一工作。该函数根据指定的参数,由显卡的镶嵌器(tessellator)对网格模型中的多边形进行细分,从而使原来的三维物体表面变得更加光滑细致。网格模型高级技术(8)摘要:渐变(tweening)网格模型是Direct3D中实现模型动画最简单的方式和途径,它的原理也非常简单。例如对于场景内的某个网格模型,最初只记录t0时刻和t1时刻该网格模型的状态(即这两个时刻网
6、格模型中所有顶点的位置),对于t0到t1这段时间内的任意时刻t_current,根据该时刻距离t0和t1时刻的远近,实时地分配给这两个网格模型不同的权重,然后按照这两个网格模型中顶点的不同位置和它们各自的权重进行插值,计算出t_current时刻整个网格模型中所有顶点的位置,从而实现动画效果。2网格模型高级技术(9)摘要:使用CDXUTMesh进行网格模型的绘制,首先在OnCreate()函数中创建CDXUTMesh对象,接着在OnFrameRender()中绘制(先绘制不透明的网格,再绘制半透明的网格)。网格模型高级技术(10)摘要:使用类CDXUTMeshFil
7、e进行网格模型的绘制,首先在OnCreateDevice()里创建CDXUTMeshFile对象,接着在OnFrameRender()里渲染网格模型,最后在OnDestroyDevice()里释放该对象所申请的资源。网格模型高级技术(11)摘要:骨骼动画是目前最流行也最复杂的角色动画,它包含以下几个重要元素:骨骼、动画。骨骼动画思想的起源很简单,自然界中的大多数动物都拥有一套骨骼,身体的皮毛血肉都依附于骨骼,当骨骼开始运动的时候,依附于对应骨骼的皮毛血肉都随骨骼一起运动。在三维图形编程领域,角色的躯体是由网格模型来表示的,网格模型通常由大量三角形图元组成,而三角
此文档下载收益归作者所有