基于DIRECTX 11的3D图形程序设计案例教程

所需积分/C币:22 2018-12-19 10:33:03 109.6MB PDF

本书主要介绍如何使用DirectX 11开发交互式3D图形程序。书中除第1章外,每一章都通过一个完整的实验介绍DirectX 11程序开发的相关知识。首先介绍了Windows编程的基础以及必要的数学函数库的使用,然后讲解了相关的3D概念。其主题涵盖了Direct3D的基本原理和方法,例如图元的绘制、光照、纹理、混合、模板等。本书弱化过多的理论讲解,强调在实践中掌握3D图形编程的基本技能。内容深入浅出,主要面向希望学习3D图形开发技术并具有一定的程序设计基础的大中专院校学生以及希望学习3D图形编程的开发人员。
基于 Directx11的3D图形 程序设计案例教程 主编曾骏高旻熊庆宇文俊浩 建身 图书馆 爸火出版社 内容提要 本书主要介绍如何使用 Directx1l开发交互式3D图形程序。书中除第1章外,每一章都通过一个完整的实验介 绍 Directx11程序开发的相关知识。首先介绍了 Windows编程的基础以及必要的数学函数库的使用,然后讲解了相关 的3D概念。其主题涵盖了 Direct3D的基本原理和方法,例如图元的绘制、光照、纹理、混合、模板等。本书弱化过多的 理论讲解,强调在实践中掌握3D图形编程的基本技能。内容深亼浅岀,主要面向希望学习3D图形开发技术并具有 定的程序设计基础的大中专院校学生以及希望学习3D图形编程的开发人员。 图书在版编目(CIP)数据 基于 Directx1l的3D图形程序设计案例教程/曾骏等 主编.一重庆:重庆大学出版社,2015.5 ISBN978-7-5624-9003-6 I.①基…Ⅱ.①曾…Ⅲ.①多媒体一软件工其一教 材N.①TP311.56 中国版木图书馆CP数据核字(2015)第083222号 基于 Directx11的3D图形程序设计案例教程 主编曾骏高专熊庆宇文俊治 策划编辑:彭宁何梅 责仁编辑:文鹏版式设计:彭宁何梅 责仨校对:邹忌责任印制:赵晟 重庆大学出版社出版发行 出版入:邓晓益 社址:重庆巾沙坪坝区大学戎西路21号 邮编:4 电话:(023)8861719088617185(中小学) 专真:(023)8861718688617166 网址http://www.cqup.com.cn 邮箱fk@cq甲p.com.cn(营销中心) 全国新华书店经销 重庆升光电力印务有限公司印刷 开本:889×1941/16印张:18.75字数:517千 2015年5月第1版2015年5月第1次印刷 印数:1-1000 ISBN978-7-5624-9003-6定价:39.00元 本书如有印刷、装订等质量问题,本社负责调抆 版权所有,请勿擅自翻印和用本书 制作各类出版物及配套用书,违者必究 前 本书主要介绍基于 Directx1l中Dire6D图形程序接口(以下简 称D3D11)的3D图形编程基础。想要掌握图形编程的方法,必须通 过实际动手编程进行实践。而目前关于D3D11的书籍注重理论部分 的介绍,学习者在掌握了图形编程理论知识后却难以自己独立编写 个3D图形程序。针对这一问题,本书弱化理论部分的讲解,注重实践 部分的练习。本书的每一章都通过一个独立的3D实例程序来介绍每 个知识点如何运用和实现。实例程序由易到难,读者可以循序渐进地 学习基于D3D11的3D图形编程方法。为了便于读者更好地理解3D 图形的实现过程,本书的实例代码并没有过分强调代码风格,比如没 有将一些过程代码封装为类或者函数。有兴趣的读者可以自行将相 应代码进行封装。 适用的读者 本书内容深入浅出,主要面向希望学习3D图形开发技术并具有 定的C++程序设计基础的大中专院校学生和技术开发人员。本书 既适用于没有图形编程基础的初学者,也适用于熟悉其他图形接口 (例如 OpenGL)或早期D3D版本(例如D3D9或者DD10)的3D图 形开发者进一步学习D3D11开发。 使用方法 本书可以作为教材单独使用,也可以作为其他教材配套实验手 册。本书在单独使用时,需要读者参考相关图形学书籍,另外需要读 者具有一定的线性代数基础。 本书每一章都是个独立的3D图形程序,难度循序渐进。读者 既可以从第1章开始从前往后阅读,也可以根据自己的需要,挑选感 兴趣的章节和内容直接阅读。 如果读者自行阅读本书,可以先根据每一章的实验指导,一步一 步地按照讲解进行编程。编程过程中可以根据代码注释理解代码含 义。在完成编程后,可以试着完成每章最后的思考题来加深对代码的 理解。最后还可以在实验代码的基础上进行扩展,使自己对整个代码 融汇贯通。 如果将本书作为课堂教学的教材使用,建议教师在课前先让学生 完成每章的实验,在课上对实验所涉及的理论和实现方法进行讲解 最后以思考题作为课后作业来加深学生对代码的理解。 全书内容 本书内容主要分为三个部分。 第一部分为准备阶段,主要介绍D3D11开发环境配置, Windows 编程及矩阵变换相关基础知识。 第1章介绍了如何配置D3D11的开发环境 第2章介绍了 Windows编程的基本知识; 第3章介绍了矩阵变换的相关知识。 第二部分主要介绍如何运用D3D11进行3D图形编程。 第4章介绍了初始化D3D的方法,以及实验代码的基本框架; 第5章通过绘制一个简单的三角形介绍D3D绘制的基本流程 第6章通过绘制一个旋转的彩色立方体介绍 Effect框架的使用 第7章介绍了如何实现不同的光照效果; 第8章介绍了如何为三维物体添加纹理效果; 第9章介绍了如何运用混合实现半透明的水纹效果 第10章介绍了利用模板实现镜子中物体倒影的效果 第11章介绍了一个灵活摄像机类; 第12章介绍了从OBJ文件中读取OBJ模型的方法。 第三部分主要通过两个综合示例介绍了如何运用第一部分介绍 的3D图形编程技术实现3D游戏 第13章介绍了一个巴士跑酷游戏的实现方法; 第14章介绍了一个投篮游戏的实现方法。 本书辅助内容 本书所有示例程序的源代码均可在htp://w.cqup.com.,cn中 找到。 软硬件配置 本书主要讲解基于Drec3l1的3D图形编程,因此需要一定的 软硬件配置环境,具体要求如下: CPU至少1.6GHz以上; 硬盘空间2GB以上; 内存1GB以上; 支持 Directx11的显卡; Visual studio 2010/2012/2013 Directx11SDK9.29或以上。 致谢 首先要感谢重庆大学软件学院对本书的支持。 作者要感谢在任教期间,各位老师和同学的帮助。尤其感谢刘海 洋和陈垠宇同学为本书第二部分的编写提出的许多宝贵意见。 作者要感谢重庆大学出版社的出版团队,使本书能顺利出版 最后作者要感谢夫人以及父母在各方面的理解和攴持 曾骏 重庆大学软件学院软件工程系 电子邮箱: zengjun@ cqu. edu. cn 目录 第1部分准备部分……… 第1章安装与配置 Directx开发环境 1.1概述 1.2安装 Visual studio2012 1.3安装 DirectX sdK 1.4配置 Effect框架… 1.5安装常见问题解决 ,垂当 …………11 第2章第一个 Windows程序……………………………13 2.1概述…………………………13 2.2建立一个简单的Wi Indows 程序 14 2.3*补充知识 22 第3章XNA数学库简介… ∴24 3.1概述 24 3.2一个矩阵变换的例子 25 3.3利用XNA数学库实现例子中的矩阵变换 26 3.4补充知识 35 第2部分 Direct3D基础及应用 36 第4章初始化 Direct3D 37 4.1概述 37 4.2初始化 Direct3D ………………………………………38 第5章第一个D3D程序…………………51 5.1概述 5 5.2绘制一个三角形 52 5.3·思考题 ……61 5.4常见问题及解决方法… 62 第6章Efet框架简介 64 6.1概述 6.2利用Eect框架绘制旋转的彩色立方体 6 6.3思考题 ……………78 6.4常见问题及解决方法 ……79 第7章光照效果 ……………………………80 7.1概述…… 7.2绘制具有光照效果的立方体……………81 思考题 102 第8章纹理 103 8.1概述 103 8.2利用纹理绘制木箱子… 105 8.3*思考题 116 8.4*补允知识 117 第9章混合 9.1概述 119 92利用混合技术绘制水中的箱子 120 9.3思考题… 144 第10章模板… 145 10.1概述 145 10.2利用模板绘制镜子中的物体 146 10.3思考题 166 第11章灵活摄像机 167 11.1概述 167 11.2灵活摄像机的实现… 167 第12章OB模型简介… 176 12.1概述 176 12.2导入椅子的OBJ模型………………178 12.3思考题 ………………………………196 第3部分 Direct3D综合示例 ………197 第13章跑酷游戏—— BUS RUN 198 13.1概述 13.2编写 BUS RUN游戏… 199 13.3*思考题 223 第14章投篮游戏 224 14.1概述… 224 14.2准备编写投篮游戏………………225 14.3投篮游戏的设计与实现……236 14.4*思考题 ………………………291 参考文献 ……………292 2 第部分 准备部分 要进行基于 Directa3D11的图形程序设计,首先需要安装与配置相应的开发环境。本书中的实例 都是基于C++语言编写,同时需要读者了解基本的 Windows编程的知识。另外,为了更好地理解后 面章节的内容,也需要读者了解矩阵变换的相关数学知识。基于这些目的,本部分主要包括以下 内容: 以 Visual studio2012为例介绍开发环境的安装,同时介绍 DirectX sdk9.29的安装,最后介绍 Effect框架的配置过程。 >通过一个最简单的“ Hello world"”窗口程序,介绍 Windows编程的基础知识。让读者初步了解 Windows编程的事件机制、消息循环和回调函数的相关知识。 >通过一个示例介绍如何运用XNA函数库对应的类或者数据结构声明向量和矩阵,并且进行向量 的缩放、旋转、平移等变换操作。 需要说明的是, Windows编程以及XNA数学函数库所涉及的内容非常多,本书无法在有限的篇幅 内对这些知识进行详细阐述,仅仅对后面示例所需要的基本知识进行讲解。如果读者希望了解更多 的内容,可以参考相关书籍。 第 章 安装与配置 Directx开发环境 概述 要进行基于D3D11的3D图形程序设计,首先要安装和配置开发环境。对于刚接触C++的读 者,尤其是对开发环境不熟悉的读者,如何安装和配置开发环境是一个难点。本章就针对这个问题, 步一步地讲解如何安装包括Ⅴ isual studio2012(下文简称VS2012), DirectX sdk(下文简称DX SDK)在内的开发环境,同时也会对安装和配置过程中可能遇到的问题进行讲解和说明。 1.1.1相关概念简介 (1) DirectX SDK 对于第一次进行D3D开发的读者而言,由于对 DX SDK还不太了解,所以在介绍开发环境的安装 之前,先简要介绍一下 DX SDK的相关知识。 DX SDK是由微软公司( Microsoft)发布的 Directx编程 的软件,SDK就是 Software Development Kit的缩写,中文意思就是“软件开发工具包”。 DX SDK中包 含了开发多媒体应用软件所必需的开发工具、头文件、程序库、范例执行文件、文件、 Directx工具等。 需要注意的是, DX SDK中不仅包括了3D图形编程所需的开发工具,还包括了声音、音乐、游戏输入等 的相关开发工具。所以在开发D3D程序时,实际上仅仅只用到了 DX SDK的一部分工具。 由于 DirectX已经经历了十几年的版本更替,要开发D3D11的图形程序就必须安装支持D3D11 版本的SDK。本书是以 DX SDK9.29版本为例进行讲解。这个版本发布于2010年6月,所以也常被 称为 DX SDK(June2010)。这个版本虽然不是最新的版本,但是考虑到读者所使用的操作系统版本 有新有旧,从稳定性上考虑,本书采用 DX SDK9.29来编写示例程序。 (2) Effect框架 安装 Directx开发环境,就必须配置 Effect框架。 Effect框架是D3D提供的用于管理各种着色器 和渲染状态的一个代码框架,用来直接读取.fx格式的 Effect文件。一个 Effect文件是将一系列相关 的着色器程序组织起来,以便需要的时候加载。Eect文件是用高级着色语言(High- evel shading Language,HSL)进行编写。由于篇幅限制,本书无法对HSL进行详细讲解,只对示例中需要的 HSL知识进行介绍,读者可以参考HSL相关书籍。本书会从第6章开始对 Effect文件的编写进行 讲解,以实现不同的效果。 使用rect框架最大的好处就是降低编写难度,使得编写着色器绘制的程序工作量大大下降。第 二个好处是,Eect框架下, DirectX中的变量和HSL中的变量绑定逻辑比较清晰。在 Directx11中, 2

...展开详情
img
夜深矣
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源