天行健 君子当自强而不息

     摘要: 接下来的Create()函数分别从接口ID3DXFileData创建网格模型,从输入的网格模型中创建新的网格模型。

函数Destroy()用来在程序退出时销毁指定的资源。  阅读全文
posted @ 2008-05-31 10:21 lovedday 阅读(884) | 评论 (0)编辑 收藏
     摘要: 函数CreateMaterials()用于创建网格模型中所需的材质和纹理,我们来看看CreateMaterials()的实现:  阅读全文
posted @ 2008-05-31 09:42 lovedday 阅读(1521) | 评论 (0)编辑 收藏
     摘要: 类CDXUTMesh主要用于从一个指定的网格模型中加载数据、渲染模型以及销毁网格模型,它将整个网格模型作为一个整体进行操作,没有考虑网格模型内部的框架层次,对于不包含动画信息的网格模型,使用该类是一个比较好的选择。  阅读全文
posted @ 2008-05-31 08:58 lovedday 阅读(1223) | 评论 (0)编辑 收藏
     摘要: DXUT中涉及到媒体文件查找的函数有3个:DXUTFindMediaSearchTypicalDirs()、 DXUTFindMediaSearchParentDirs()、DXUTFindDXSDKMediaFileCch(),都位于 DXUTmisc.cpp文件中。  阅读全文
posted @ 2008-05-28 16:33 lovedday 阅读(1955) | 评论 (2)编辑 收藏
     摘要: 渐变(tweening)网格模型是Direct3D中实现模型动画最简单的方式和途径,它的原理也非常简单。例如对于场景内的某个网格模型,最初只记录 t0时刻和t1时刻该网格模型的状态(即这两个时刻网格模型中所有顶点的位置),对于t0到t1这段时间内的任意时刻t_current,根据该时刻距离 t0和t1时刻的远近,实时地分配给这两个网格模型不同的权重,然后按照这两个网格模型中顶点的不同位置和它们各自的权重进行插值,计算出 t_current时刻整个网格模型中所有顶点的位置,从而实现动画效果。  阅读全文
posted @ 2008-05-28 12:09 lovedday 阅读(1435) | 评论 (0)编辑 收藏
     摘要: 增强网格模型是运行镶嵌技术将原始网格模型的三角形面进行细分,形成更加精细(三角形面更多)的网格模型,这对于逐顶点进行的光照效果会更好。网格模型镶嵌技术主要用在层次细节场景中当模型距离观察者较近时,使模型的显示更精细。

增强网格模型可以通过对原始网格模型进行镶嵌细分模型得到,Direct3D提供了功能函数D3DXTessellateNPatches()来完成这一工作。该函数根据指定的参数,由显卡的镶嵌器(tessellator)对网格模型中的多边形进行细分,从而使原来的三维物体表面变得更加光滑细致。  阅读全文
posted @ 2008-05-28 09:33 lovedday 阅读(1227) | 评论 (0)编辑 收藏
     摘要: 层次细节网格模型(progress mesh)是一种特殊的网格模型,它的顶点数据以树状形式组织,可以随意增加或降低模型的复杂程度,从而比普通的网格模型具有更大的灵活性,层次细节网格模型对于层次细节场景的渲染非常理想。当模型距离观察者较远时可以降低模型的复杂程度,提高渲染速度。而当模型距离观察者较近时可以使用复杂的模型,从而提高视觉效果。Direct3D用ID3DXPMesh来表示层次细节网格模型对象,而不是ID3DXMesh。  阅读全文
posted @ 2008-05-27 20:16 lovedday 阅读(2096) | 评论 (0)编辑 收藏
     摘要: Direct3D对加载到内存中的网格模型提供了优化功能,通过网格模型优化可以明显提高三维模型的渲染速度,这对渲染速度要求较高的三维图形程序和游戏具有非常重要的现实意义。

对于程序员而言,对网格模型进行优化是比较简单的,只需调用接口ID3DXMesh的方法Optimize().  阅读全文
posted @ 2008-05-27 16:55 lovedday 阅读(1649) | 评论 (0)编辑 收藏
     摘要: 为了使一个.x文件产生动画,必须至少提供一个动画集,每个动画集都应具有一个对某个框架的引用。模板 AnimationSet用来定义动画集。

Animation是一个完全开放的模板,一般情况下,用模板AnimationKey来填充它。  阅读全文
posted @ 2008-05-27 15:44 lovedday 阅读(2001) | 评论 (1)编辑 收藏
     摘要: 通过前面的介绍,可以建立起一个网格模型,但这个网格模型是浑然一体的,而在现实生活中,为了能独立对一个物体的不同部分进行变换,必须将模型分割成不同的模块,在.x文件中使用框架(frame)对一个网格模型的不同部分进行组织和管理。框架仅仅是一个外壳,在框架中通常需要包含具体的网格和一个框架变换矩阵,其中框架变换矩阵用于指定该框架包含的部分在整个模型中的初始位置。  阅读全文
posted @ 2008-05-27 15:05 lovedday 阅读(1476) | 评论 (0)编辑 收藏
仅列出标题
共136页: 1 2 3 4 5 6 7 8 9 Last 

公告

导航

统计

常用链接

随笔分类(178)

3D游戏编程相关链接

搜索

最新评论