资源描述
网 格 网格 D3D图形学中 ,网格由一系列共面多边形组成 , 即由一个个的图元组成 .所以 ,网格也称为图元链 表 .一个物体就可以由一个网格表示 . 网格 1、顶点数 2、顶点缓冲 3、索引缓冲 4、面片数 5、纹理 ,材质 6、灯光法线 . ID3DXMesh接口 处理网格 子集和属性缓存 一个网格 (Mesh)由 一个或多个子集 (subset)组成。一个 子集是网格中一组 可用相同属性进行 绘制的三角形单元。 这里的属性是指材 质、纹理和绘制状 态。 房子 地板 墙 窗户 天花板 0 1 2 3 绘制 为了区分不同的子集,为每个子集指定一 个唯一的非负整数值。 渲染方法 DrawSubset(DWORD AttirbId) 用于绘制由参数 AttribId指定的子集的三角 形单元。 m_pD3DDevice-SetStreamSource(0, m_pVB, 0, sizeof(FloorVertex); m_pD3DDevice-SetFVF(FloorVertex:FVF); m_pD3DDevice-SetMaterial( m_pD3DDevice-SetTexture(0,m_pTexture); m_pD3DDevice-DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2); 网格的创建( P167) HRESULT D3DXCreateMeshFVF( DWORD NumFaces, DWORD NumVertices, DWORD Options, DWORD FVF, LPDIRECT3DDEVICE9 pD3DDevice, LPD3DXMESH *ppMesh ); XFile 建模工具将网格数据(几何信息、材质、 动画及其他数据)导出到文件中。 XFile(扩展名为 .X)是 DirectX定义的格式, D3DX库提供了加载和保存的支持。 X文件中 ,包含一个 Mesh单元 ,保存着各顶点 信息 ,各三角形的索引信息、材质纹理和所 属子集信息。 动画 X文件 相比不含动画的 X文件,增加了各骨骼蒙皮 信息、骨骼层次及结构信息、各时刻骨骼 矩阵信息。 Mesh单元中,增加 XSkinMeshHeader结构 以及 SkinWeights,来保存各个骨骼的蒙皮 信息。 X文件加载 1、定义材质缓冲 2、调用 D3D提供的加载 X文件函数 3、对加载到材质缓冲的数据进行分析,材质数据放入材 质数组。 4、对其中的纹理文件数据调用 D3D提供的加载纹理函数 加载,并将其指针也放入相应的纹理数组。 5、对 X文件中的 Mesh数据进行处理,为其添加顶点法线 属性。 6、渲染时,通过循环处理所有子集,为每个子集设定相 应的数组中的材质和纹理,然后用 DrawSubset渲染。 外接体 网格的外接体(包裹网格的几何形体) 常见的有外接球和外接盒 常用于加速可见性检测和碰撞检测 D3DXComputeBoundingSphere D3DXComputeBoundingBox 最小点 最大点 最小点 最大点 A.最小点 B.最小点
展开阅读全文