- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章DirectX编程.ppt
第4章 在Direct3D中绘制图形 主要目标: 了解Direct3D是如何存储顶点数据和索引数据的。 学习如何通过设置渲染状态来对几何物体进行不同的渲染。 学习如何在Direct3D中渲染一个场景。 学习通过D3DXCreate*函数创建复杂的三维物体。 4.1 顶点/索引缓冲区 顶点缓冲区: 一块存放顶点数据的连续的内存区域。 索引缓冲区: 一块用来保存索引信息的连续内存区域。 使用顶点缓冲区和索引缓冲区来保存数据而不通过在内存中开辟数组来保存数据,主要是因为这些数据可以放到显存中。渲染显存中的数据要比渲染系统内存中数据快得多。 实现接口: 顶点缓冲区--IDirect3DVertexBuffer9 索引缓冲区--IDirect3DIndexBuffer9 4.1.1 创建顶点缓冲区和索引缓冲区 创建顶点缓冲区和索引缓冲区: HRESULT IDirect3DDevice9::CreateVertexBuffer( UINT Length, DWORD Usage, DWORD FVF, D3DPOOL Pool IDirect3DVertexBuffer9** ppVertexBuffer, HANDLE* pSharedHandle ); HRESULT IDirect3DDevice9::CreateIndexBuffer( UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle ); 4.1.1 创建顶点缓冲区和索引缓冲区 Length —— 分配给缓存的字节大小。 一个能存储n个顶点的顶点缓存,设置参数为 n * sizeof ( Vertex ) 。 Usage —— 指定关于怎样使用缓存的额外信息 0 ——没有标记 D3DUSAGE_DYNAMIC——使缓存是动态的。 D3DUSAGE_POINTS——缓存存储原始点。 原始点粒子系统中介绍。仅仅用 在顶点缓冲中。 D3DUSAGE_SOFTWAREPROCESSING——使用软件顶点处理 D3DUSAGE_WRITEONLY——应用程序只能写缓存。 允许驱动程序分配最适合的内存地址作为写缓存。 注意如果从创建好的这种缓存中读数据,将会返回错误信息。 FVF —— 存储在缓存中的顶点格式 Pool —— 缓存放置在哪一个内存池中 ppVertexBuffer ——返回创建好的顶点缓存的指针。 pSharedHandle ——没有使用;设置为0。 Format ——指定索引的大小;使用D3DFMT_INDEX16设置16位索引,使用D3DFMT_INDEX32设置32位索引。注意并非所有设备都支持32位索引;请检查设备能力。 ppIndexBuffer ——返回创建好的索引缓存的指针。 4.1.1 创建顶点缓冲区和索引缓冲区 创建一个静态的顶点缓冲区,该缓存区域足够容纳8个Vertex类型的顶点: IDirect3DVertexBuffer9 *vb; _device-CreateVertexBuffer( 8 * sizeof(Vertex), 0, D3DFVF_XYZ, D3DPOOL_MANAGED, vb, 0); 4.1.1 创建顶点缓冲区和索引缓冲区 创建一个能够容纳36个16位索引数据的动态索引缓冲区: IDirect3DIndexBuffer9 *ib; _device-CreateIndexBuffer( 36 * sizeof(WORD), D3DUSAGE_DYNAMIC | D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, ib, 0); 4.1.2 访问缓冲区内存 要访问顶点缓冲区或者索引缓存区,需要得到指向缓冲区的指针。 HRESULT IDirect
您可能关注的文档
最近下载
- 黑龙江农业工程职业学院单招数学模拟试题(附答案).docx VIP
- 2025读书心得:屏幕时代如何重塑孩子的自控力.docx VIP
- 中国艰难梭菌感染诊断、治疗与预防指南(2024)详细解读PPT课件.pptx VIP
- 第14课《我们都是中国人》第2课时 这是我国的标志 教案设计 2025道德与法治二年级上册.docx
- 湘少版四年级上册、下册的英语单词默写表.pdf VIP
- GBT 危险货物运输应急救援指南 第1部分:一般指南.pdf VIP
- 煤炭掺配合同范本.docx VIP
- 汽车整体认识(汽车发展史)-精.ppt VIP
- 生产安全事故现场处置方案.docx VIP
- 小学数学二年级下册应用题练习.docx VIP
文档评论(0)