交互媒体设计(拓展) 交互媒体设计(拓展) 11_3Mesh网格(一).pptVIP

交互媒体设计(拓展) 交互媒体设计(拓展) 11_3Mesh网格(一).ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Part Ⅲ Direct3D的应用 二 Mesh Ⅰ Mesh,三角网格 三角形的集合 ID3DXMesh接口 主要目标 学习ID3DXMesh对象的内部数据组织 2. 渲染ID3DXMesh对象 3. 学习ID3DXMesh对象的优化方法 4. 学习ID3DXMesh对象的创建 1 ID3DXMesh对象的内部数据 数据保存在: 顶点缓冲区 索引缓冲区 GetVertexBuffer (LPDIRECT3DVERTEXBUFFER9* ppVB); GetIndexBuffer (LPDIRECT3DINDEXBUFFER9* ppIB); 锁定,解锁缓冲区 LockVertexBuffer (DWORD Flags, BYTE** ppData); LockIndexBuffer (DWORD Flags, BYTE** ppData); UnlockVertexBuffer(); UnlockIndexBuffer(); 获取相关几何信息 返回一个描述顶点的FVF DWORD GetFVF(); 返回顶点缓冲区中的顶点数目 DWORD GetNumVertices(); 返回每个顶点所用的字节数 DWORD GetNumBytesPerVertex(); 获得网格的面数 DWORD GetNumFaces(); 网格子集(subset) 一个mesh由一个或多个subset组成的 subset是一组具有相同属性的三角形 属性包括材质,纹理或渲染状态 mesh subset subset subset triangles triangles triangles 为什么要把一个mesh分成一个或多个subset??? 可以加快渲染速度 Subset的示意图 我们怎样知道三角形属于哪个subset??? Mesh中的每个三角形都有一个DWORD值的属性,用于标识这个三角形属于哪个subset,称为subset ID 属性缓冲区 Attribute buffer 每个三角形对应的subset ID被存储在网格的属性缓冲区中 属性缓冲区是一个DWORD数组 属性缓冲与索引缓冲 属性缓冲区中的每个元素与索引缓冲区中的每个三角形是一一对应的关系 也就是说,属性缓冲区中第i个元素对应着索引缓冲区中的第i个元素 索引缓冲中第i个三角形的表示方法: A = i*3 B = i*3 + 1 C = i*3 + 2 对应关系示意图 操作属性缓冲区 DWORD* buffer = 0; Mesh-LockAttributeBuffer ( lockingFlags , buffer ); // ……读或写属性缓冲区 Mesh-UnlockAttributeBuffer (); 2 渲染mesh 通过渲染mesh中的所有subset来渲染一个完整的mesh HRESULT?DrawSubset (?????? ???DWORD?AttribId ); 例如,要渲染mesh中的第0号subset Mesh-DrawSubset(0); 渲染完整的mesh for(int i = 0; i numSubsets; i++) { Device-SetMaterial( mtrls[i] ); Device-SetTexture( 0, textures[i] ); Mesh-DrawSubset(i); } 邻接信息 Adjacency info 邻接信息可以使我们知道与某个三角形相邻的三角形 某些mesh的操作,如优化,需要知道mesh的邻接信息数组 邻接信息数组是一个DWORD数组 数组中每一个元素对应着一个三角形 保存这个三角形的索引号,与索引缓冲区是一一对应的 邻接数组与索引缓冲区的对应关系 输出mesh中的邻接数组 HRESULT?GenerateAdjacency ( ????FLOAT?Epsilon, // 容差 ????DWORD?*pAdjacency ); 3 mesh的优化 Optimizing 指的是对mesh中的顶点和索引进行重新组织,使它们能更有效率地进行渲染 优化的方法 HRESULT?OptimizeInplace ( ????DWORD?Flags, ???? CONST DWORD?*pAdjacencyIn, ???? DWORD?*pAdjacencyOut, ???? DWORD?*pFaceRem

您可能关注的文档

文档评论(0)

WanDocx + 关注
实名认证
文档贡献者

大部分文档都有全套资料,如需打包优惠下载,请留言联系。 所有资料均来源于互联网公开下载资源,如有侵权,请联系管理员及时删除。

1亿VIP精品文档

相关文档