- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Direct3D程序设计基础
本章将介绍使用Direct3D进行游戏动画绘制的基础知识,只要会简单的VC++编程以及一点立体几何的基础知识即可完成本章给出的实例。通过它,可以了解到Direct3D的基本概念,学会绘制简单的几何图形,并掌握光源、材质和纹理的基本用法。
3D绘图的实质就是在二维计算机屏幕上绘制三维形体,为此要用到一些数学变换来建模和处理几何图形。
第一节 DirectX 与Direct3D简介
1.1 开发环境
DirectX是Microsoft公司开发的运行于计算机平台的多媒体控制处理引擎。对于通常所说的DirectX实际上有两种不同的含义:一是指DirectX SDK(即DirectX开发工具包)或称为DirectX API(应用程序编程接口),它是Microsoft公司提供的一套用于开发高性能多媒体程序的应用程序接口;二是指DirectX Runtime,它是一组动态链接库,是运行利用DirectX SDK开发的程序所必需的动态库。在安装游戏时,经常会询问用户是否安装新版本的DirectX,这时所提到的DirectX就是指DirectX Runtime。对于程序员来说,DirectX主要是指DirectX SDK,本章中提到的DirectX如无特殊说明也是指DirectX SDK。
基于DirectX API设计开发的多媒体软件运行于硬件抽象层(Hardware Abstraction Layer, HAL )上,即充分利用了系统硬件的加速功能,又隐藏了硬件相关的设备特性,通过编写与设备无关的高效代码,DirectX程序总能以最佳方式运行,因此具有效率高,并且易于开发的优点,一推出就深受多媒体开发人员的喜爱。除支持效率极高的硬件抽象层外DirectX还支持软件运行于软件参考层(Reference Layer,REF)上,软件参考层能使不支持某些硬件加速功能的设备使用软件模拟相应的功能特性,在对运行速度要求不高的系统中使用高级的DirectX功能。
DirectX在计算机游戏设计中应用最为广泛,当前流行的绝大多数游戏都支持DirectX,并拥有出色的性能。最新推出的DirectX 9.0,对早期的DirectX的功能进行了完善和补充,新增了更多最新的多媒体特性,能够充分发挥计算机硬件的性能,可以说是三维软件特别是游戏软件开发的有效工具。本章采用DirectX SDK 9.0版。为了创建Direct3D程序,首先需要从微软网站下载安装DirectX SDK。由于微软已经在SDK中包含了DirectX9的安装文件,因此安装完SDK后,就搭建好了开发环境和编译环境。
DirectX由几部分组成,每部分负责特定的功能。其中Direct3D是负责三维图形的组件,也是DirectX最重要、最复杂的组成部分。本章将介绍使用Direct3D开发三维图形程序的相关内容。本章将以MFC基于对话框的应用程序为框架,在其上添加Direct3D绘图功能。
1.2 COM对象
DirectX的功能都是以COM对象COM是组件对象模型(Component Object Model)的简写,它是对一组特定功能的抽象集合,应用程序不能直接访问COM对象,而是必须通过对COM对象的接口(Interface)的指针执行COM对象的功能(COM对象接口指针在使用上类似于C++类的指针)。所谓接口,其实就是一组特殊的C++对象,应用程序通过调用这些对象的成员函数,来访问COM对象COM对象可看作一种协议,用来实现软件模块间的二进制连接。当这种连接建立后,两个模块之间就可以通过接口的机制来通信。目前常用的ActiveX控件就是一种COM对象COM的实现细节相当复杂,不过微软已经最大限度地简化了COM的使用。作为Direct3D开发人员,只要了解接口及其用法就行了。COM对象在被应用程序调用时,通常像个黑匣子,作为一个DLL动态库被调用。同普通的DLL动态库一样,COM对象接口定义了一组函数,供应用程序调用并完成所有它所支持的任务。在COM术语中,这些成员函数被称作方法(Method)。虽然称呼变了,但应用程序和COM对象相互作用的方法与它和普通的C++对象之间的调用语法相类似。接口的特殊性在于它的生成和销毁都由系统完成,无须用户干预。
COM对象进行了更为严格的封装。不仅能创建它并能调用所有的公有方法。一个COM对象的公有方法被集成到一个或多个接口。为了使用某个方法,必须创建这个对象并从它这里得到恰当的接口。一个接口一般包括一组相关的方法,由它们提供对该对象特定属性的访问。任何非接口提供的方法都不能使用。
COM对象具有如下特点:
COM对象的创建方法与C++对象不同。有几种不同的方法可以创建COM对象,但它们都包括具体的COM技术。
必须使用
您可能关注的文档
- 华南理工大学大三学习资料:实验打印.docx
- 华南理工大学大三学习资料:智能电网.docx
- 华南理工大学大三学习资料:智能配电网-1.ppt
- 华南理工大学大三学习资料:自动控制理论复习.pptx
- 华南理工大学-电机学-动态-第27章 电机动态分析特点.ppt
- 华南理工大学-电机学-动态-第28章 同步机动态分析.ppt
- 华南理工大学-电机学-动态-第30章 变压器动态分析.ppt
- 华南理工大学-电机学-动态-动态 习题课.ppt
- 华南理工大学数电期末模拟6.doc
- 华南理工大学数电期末模拟试卷A.docx
- 计算机图形学(徐长青、许志闻)参考.doc
- 计算机图形学(徐长青、许志闻)第二章 MFC交互绘图基础.doc
- 计算机图形学(徐长青、许志闻)第二章 图形基元的显示.ppt
- 计算机图形学(徐长青、许志闻)第六章 形体的表示及其数据结构.ppt
- 计算机图形学(徐长青、许志闻)第六章 形体的表示以及数据结构.doc
- 计算机图形学(徐长青、许志闻)第七章 消除隐藏线和隐藏面.ppt
- 计算机图形学(徐长青、许志闻)第三章图形变换.ppt
- 计算机图形学(徐长青、许志闻)第四章 图形变换.doc
- 计算机图形学(徐长青、许志闻)第四章 曲线和曲面.ppt
- 计算机图形学(徐长青、许志闻)第五章 图形运算.ppt
文档评论(0)