第1章 Direct3D的初始化.pptVIP

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Part Ⅱ Direct3D的基础知识 本部分学习目标 掌握DirectX的基本概念和技术,特别是Direct3D部分。 本部分的基本概念和技术是虚拟现实技术、计算机仿真和3D游戏程序开发的基础 一共分为八小部分 Direct3D的初始化 绘制流水线 (3D场景---2D图像) 用Direct3D构造三维模型 颜色 光照 纹理 融合技术(透明) 模板缓冲区(镜面,阴影) 第1章 Direct3D的初始化 主要目标 了解DirectX和图形硬件设备之间的关系 了解DirectX中组件对象模型(COM)所扮演的角色 初始化Direct3D 一、DirectX体系结构 DirectX是一个底层的图形API API:application programming interface 是应用程序与硬件之间的桥梁 注意: 应用程序不直接操纵硬件 软件与硬件之间的桥梁 桥梁中的DirectX “DirectX”指的是DirectX提供给我们调用的所有接口和函数 注意: 每个新版本DirectX推出时,现有的硬件都无法支持它所提供的所有特性 DirectX不直接与硬件打交道 桥梁中的HAL HAL:Hardware Abstraction Layer 硬件抽象层 存在目的:市面上显卡间的差异(功能,特性的实现方式等) HAL是一组设备相关的代码,由各设备厂商实现 HAL使DirectX设备无关性 二、组件对象模型(COM) 使用COM技术使DirectX具有 ------语言无关性和向后兼容性 可以看成一个C++类,只要获得接口,就可以调用它的方法 DirectX中的COM接口都由 I 开头,如 IDirect3DSurface9 使用完COM接口后要Release COM编程的分类 分为两类: 1 使用已存在的COM对象 实现自己的COM对象 DirectX的各个部分都是以COM对象 的形式提供的,在DirectX中只需调用它提 供的COM对象 创建一个COM对象 有两种方法: 1 直接创建 CoCreateInstance 指定CLSID,可以返回创建的对象,指定IID,可以返回所需的接口的指针 用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象。当在本机中只创建一个对象时,可以调用CoCreateInstance;在远程系统中创建一个对象时,可以调用CoCreateInstanceEx;  函数原形:  STDAPI CoCreateInstance(  REFCLSID rclsid, //创建的Com对象的类标识符(CLSID)  LPUNKNOWN pUnkOuter, //指向接口IUnknown的指针  DWORD dwClsContext, //运行可执行代码的上下文  REFIID riid, //创建的Com对象的接口标识符  LPVOID * ppv //用来接收指向Com对象接口地址的指针变量   ); 代码示例一 IDirectPlay8Peer* g_pDP = NULL; CoInitialize( NULL ); hr = CoCreateInstance( CLSID_DirectPlay8, NULL, CLSCTX_INPROC_SERVER, IID_IDirectPlay8Peer, (LPVOID*) g_pDP ); 2 间接创建 调用DirectX中的辅助方法CreateDevice HRESULT IDirect3D9::CreateDevice( UINT Adapter, // 创建的对象代表哪块物理显卡 D3DDEVTYPE DeviceType, // 需使用设备类型HAL 或 REF HWND hFocusWindow,//与设备相关的窗口句柄 DWORD BehaviorFlags, // 硬件顶点处理或软件 D3DPRESENT_PARAMETERS *pPresentationParameters,//完成初始化的D3DPRESENT_PARAMETERS实例,该实例定义了设备的一些特性. IDirect3DDevice9** ppReturnedDeviceInterface//返回所创建的设备 ); 代码示例二 IDirect3DDevice9 *g_pd3dDevice = NULL; g_pD3D-CreateDevice ( D3DADAPTER_DEFAULT, //主显卡 D3DDEVTYPE_HAL,

文档评论(0)

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

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

1亿VIP精品文档

相关文档