Direct3DX學习笔记.docVIP

  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文档。上传文档
查看更多
Direct3DX學习笔记

DirectX 3D编程入门教程一 D3D对象及设备 前言: 应几个网友的要求,利用工作之余,写了一篇DirectX 3D(简称D3D)编程入门教程。该教程适用于一些刚刚涉及D3D编程的朋友,读者必须有一定的C++ 和Win32的编程知识。对一些大虾级的高手,这只能使班门弄斧了,同时也非常欢迎爱好D3D编程的朋友和我联系和交流,并提出宝贵意见。 该教程基于DirectX 8.0 Graphics, 一部分内容由DirectX 8.0 SDK 英文文档翻译而来,一部分是自己工作经验的总结,作者对此享有著作权,读者可任意拷贝和传播,但不包含商业的用途,转贴请注明出处。 作者联系方式: jockey8888@ 一, D3D对象 ( D3D Object) 主要讲述以下几方面的内容: 1.关于D3D对象 微软Direct3D时基于COM的对象和接口的,Direct3D编程的第一步必须建立这个对象。而且程序结束后, 你必须最后释放该对象。 2.建立D3D对象 在DirectX8.0中,你可以用如下代码建立一个D3D对象: #include d3dx8.h // 必须包含的头文件 #include mmsystem.h LPDIRECT3D8 g_lpD3D = NULL; // D3D对象指针,以后经常用到 if( NULL == (g_lpD3D=Direct3Dcreate8(D3D_SDK_VERSION) ) ) // D3D_SDK_VERSION确保该对象建立正确的头文件上,目前只能用该值。 return E_FAIL; 二, D3D设备 ( D3D Device ) 主要讲述以下几方面的内容: 1.什么是D3D设备? 一个D3D设备接口可以简单的认为是本机一块显卡的抽象,它包含了显卡所有的硬件参数及状态值,比如 说,显卡显存的数量和起始的线性地址,是否支持深度缓冲(Depth Buffer),雾化(Fog),纹理(Texture) 及MipMap等。 2.D3D设备的功能 在D3D编程中,一个D3D设备接口主要能完成以下的功能模块: a. 转换功能(Transformation): 主要完成对3D 模型数据的转换,例如,世界转换( World transformation),视转换(View transformation),投影转换(Projection transformation)。 b. 灯光照明功能: 完成对场景的灯光渲染,例如,设置环境光,方向光等。 c. 光栅化显示功能: 根据设置的一些3D状态参数和当前屏幕显示模式以及剪切等情况,将3D图形在屏幕 上显示出来。 3.D3D设备的类型 在DirectX 8.0中,支持三种类型的D3D设备:硬件抽象层设备,参比设备,软件模拟设备,每一种设备可 以认为是一种独立的3D驱动程序,但也各有用途和优势,下面详细说明。 a. 硬件抽象层设备 ( HAL Device):D3D中最主要的设备类型,基于显卡的硬件功能,具有很快的3D硬件 加速功能,能执行硬件或软件的顶点数据处理。缺点是必须有3D显卡支持( 如果你没有足够的钱买好 的显卡的话,也只能望洋兴叹了),而且,并不是每种显卡都支持所有的3D功能,所以在使用该设备 时,必须经常查询显卡支持的功能,对不支持的用软件设备来模拟。 b. 软件模拟设备(Software Device): 顾名思义,是用软件的方法来模拟3D的一些功能。依赖于一些特 殊的CPU指令集( 比如,AMD 3D-Now, Intel MMX指令集), 软件模拟设备也能获得较高的3D性能。而 且软件模拟设备具有硬件抽象层设备一样的函数接口,使用方便。缺点是大量占用CPU资源,运行速度 较慢,只适合同硬件抽象层设备配合使用。 c. 参比设备(Reference Device):是微软Direct3D支持的一种附加设别类型,它也依赖于特殊的CPU指令 集,但同软件模拟设备相比,它更注重模拟的精确性,而不是速度方面。所以它一般应用于对3D硬件 的测试和硬件功能的演示上。 4.建立D3D设备 在DirectX 8.0中,建立一个D3D设备需要到用IDirect3D8 接口中的CreateDevice函数,该函数原型如下 HRESULT CreateDevice( ??? UINT Adapter, ??? D3DDEVTYPE DeviceType, ??? HWND hFocusWindow, ??? DWORD BehaviorFlags, ??? D3DPRESENT_PARAMETERS* pPresentationParameters, ??? IDirect3DDevice8** ppReturnedDeviceIn

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档