书籍详情

Direct3D游戏编程入门教程(第二版)

Direct3D游戏编程入门教程(第二版)

作者:(德)Wolfgang F.Engel著;周惟迪,徐翎,张璐意译

出版社:人民邮电出版社

出版时间:2005-01-01

ISBN:9787115129635

定价:¥46.00

购买这本书可以去
内容简介
  本书是基于DirectX9.0编写的,是介绍Direct3D技术的入门教程。它详细介绍了Direct3D的背景、基本知识以及3D程序设计的相关概念与技术。全书由浅入深,分为四个部分,第一部分介绍Direct3D的发展历史和基本知识,对3D程序设计中的术语、概念进行了深入讲解;第二部分着重讨论纹理映射技术,包括多重纹理等;第三部分通过多个示例来探讨高级shader编程,并对.MD3文件格式做了详细分析;第四部分是附录,对本书中用到的概念和技术背景进行了简单补充。本书适用于略有DirectX基础的C/C++程序员学习Direct3D游戏开发,也适用于具有Direct3D开发经验的程序员参考。本书是学习DirectX3D图形编程的入门教程。它从基础知识开始逐步介绍各项技术,最终让你轻松掌握图形编程和动画编程的方法。相对于第一版,本书深入介绍了顶点shader和像素shader编程,覆盖了微软最新的HLSL(高级Shader语言),集中介绍了固定功能的渲染流水线,并在最后介绍了一些高级的shader效果,从而可使你的游戏具有更真实的视觉表现。这本由业界资深专家编写的入门教程将带领你实现、甚至超越那些你不断在想象的3D图形效果!
作者简介
  Wolfgang F. Engel是DirectX游戏图形编程技术的权威作者,编著过多本该领域的图书。此外,他还在www.gamedev.net、www.direct3d.info及一些其他网站写发表了很多在线指南。他曾在GDC 2003和哥本哈根的Vision Days上作过演讲。Wolfgang还是“游戏娱乐技术学院”(Academy of Game Entertainment Technology,www.academyofget.com/html/advisors.html)的一位系顾问。André LaMothe,CEO Xtreme Games LLC,André LaMothe从业于计算机行业超过25年,他有着丰富的技术经历,包括2D/3D图形、美国宇航局(NASA)的人工智能研究、编译器设计、机器人技术、虚拟现实、电信。他的著作销售总是位居游戏设计类图书之冠。
目录
第1部分  DirectX图形:Don''t Hurt Me第1章  Direct3D/DirectX的历史 31.1  DirectX 2.0 31.2  DirectX 6/7 41.3  DirectX 8 41.3.1  Point Sprite 51.3.2  3D纹理 51.3.3  Direct3DX实用程序库 51.3.4  顶点Shader和像素Shader 61.4  DirectX 9 61.5  小结 7第2章  HAL和COM概述 82.1  硬件抽象层(Hardware Abstraction Layer,HAL) 82.2  插件式软件设备(Pluggable Software Device) 112.3  参考光栅器(Reference Rasterizer) 122.4  设备控制 122.5  COM 132.6  小结 15第3章  编程约定 163.1  访问COM对象 163.2  命名约定 183.3  调试DirectX 203.4  返回码 213.5  小结 22第4章  3D基础、Gouraud着色、纹理映射基础 234.1  3D基础 234.2  理解顶点 254.3  使用朝向 254.4  理解面(face) 264.5  理解多边形(polygon) 264.6  理解法线(normal) 274.7  理解法线和Gouraud着色 274.8  纹理映射(Texture-Mapping)基础 284.9  小结 30第5章  基础 315.1  编译示例 315.2  DirectX Graphics通用体系结构 335.3  Basic示例 345.3.1  ConfirmDevice()、OneTimeSceneInit()和InitDeviceObjects()函数 375.3.2  RestoreDeviceObjects()方法 375.3.3  FrameMove()函数 455.3.4  Render()函数 465.3.5  InvalidateDeviceObjects()函数 495.3.6  DeleteDeviceObjects()函数 505.3.7  FinalCleanup()函数 505.4  Basic2示例 515.4.1  InitDeviceObjects()函数 535.4.2  RestoreDeviceObjects()函数 545.4.3  Render()函数 565.4.4  InvalidateDeviceObjects()函数 585.4.5  DeleteDeviceObjects()函数 585.4.6  FinalCleanup()函数 585.5  Basic3示例 595.6  Basic4示例 605.7  Basic5示例 665.8  小结 66第6章  动画初步 676.1  理解变换与视口 676.1.1  世界变换 686.1.2  观察变换 886.1.3  投影变换 946.1.4  使用视口 966.1.5  深度缓冲(Depth Buffering) 996.2  附加资源 1026.3  小结 1036.4  第一部分提问 103第2部分  深入DirectX图形编程第7章  纹理映射基础 1097.1  纹理的要点是什么 1097.2  使用纹理坐标 1127.3  使用纹理寻址模式(texture-addressing mode) 1147.3.1  包装纹理寻址模式 1147.3.2  镜像纹理寻址模式 1167.3.3  夹持纹理寻址模式 1177.3.4  边框颜色纹理寻址模式 1187.3.5  一次镜像纹理寻址模式 1187.4  纹理包装(Texture Wrapping) 1187.5  纹理过滤和抗锯齿(Anti-Aliasing) 1207.5.1  Mipmap 1217.5.2  最近点采样 1227.5.3  线性纹理过滤 1227.5.4  各向异性过滤 1237.5.5  抗锯齿(Anti-Aliasing) 1257.5.6  alpha混合(blending) 1267.6  小结 128
第8章  使用多重纹理 1308.1  多次渲染(Multipass Rendering) 1308.2  颜色操作 1338.2.1  黑暗映射(Dark Mapping) 1348.2.2  黑暗贴图动画 1368.2.3  混合纹理与材质漫反射颜色 1378.2.4  混合黑暗贴图与材质漫反射颜色 1398.2.5  发光映射(Glow Mapping) 1408.2.6  细节映射(Detail Mapping) 1428.3  alpha操作 1458.4  多重纹理支持 1478.5  纹理管理 1478.6  附加资源 1488.7  小结 1488.8  第二部分提问 149第3部分  DirectX图形编程核心第9章  使用高级Shader语言进行 Shader编程 1559.1  开始HLSL编程前需要先做些什么 1569.2  顶点/像素Shader的任务 1579.3  通过HLSL实现常用光照公式 1589.3.1  环境光照 1589.3.2  漫反射光照 1609.3.3  镜面反射光照 1639.3.4  自身遮蔽阴影项(Self-Shadowing Term) 1679.3.5  凹凸映射(Bump Mapping) 1689.3.6  点光(Point Light) 1709.4  小结 171第10章  更多高级的Shader效果 17210.1  使用立方体贴图 17210.1.1  生成立方体贴图 17310.1.2  访问立方体贴图 17310.2  实现 17410.3  折射/反射环境映射 17610.3.1  动态折射/折射环境映射 17810.3.2  凹凸的动态折射/反射环境映射 18110.4  使用阴影 18310.4.1  阴影体(Shadow Volume) 18410.4.2  使用阴影体所需考虑的问题 19610.5  小结 196第11章  使用文件 19711.1  3D文件格式 19711.2  X文件格式 19811.2.1  首部(Header) 19911.2.2  网格 19911.2.3  网格材质列表 20111.2.4  法线 20311.2.5  纹理 20411.2.6  变换矩阵 20911.2.7  动画 21211.3  使用X文件 21511.4  扩展X文件 21711.5  附加资源 21811.5.1  X文件格式 21811.5.2  蒙皮网格(Skinned Mesh) 21811.6  小结 218第12章  使用*.md3文件 21912.1  文件格式探索 21912.1.1  Animation.cfg 22312.1.2  .skin文件 22512.1.3  纹理与Shader文件 22612.1.4  自定义声音 23112.1.5  .md3格式 23212.2  CharacterEngine示例程序 23512.3  更多的改进 25812.4  附加资源 25812.5  小结 258第4部分  附      录附录A  Windows游戏编程基础 261A.1  如何看待窗口 261A.2  Windows如何与你的游戏交互 261A.3  窗口的组成部分 262A.4  窗口框架 262A.4.1  步骤1:定义一个窗口类 266A.4.2  步骤2:注册窗口类 269A.4.3  步骤3:创建一个该类的窗口 269A.4.4  步骤4:显示窗口 272A.4.5  步骤5:创建消息循环 272A.4.6  窗口过程 275A.5  为游戏而优化的窗口框架 276A.6  窗口资源 280附录B  C++入门 284B.1  什么是面向对象程序设计 284B.1.1  抽象 285B.1.2  类 287B.1.3  封装 288B.1.4  声明一个类 289B.1.5  构造函数 292B.1.6  析构函数 292B.1.7  类层次和继承 294B.1.8  虚函数 298B.1.9  多态性 299B.1.10  内联(inline)函数 300B.1.11  C++相对与C增强的内容 301B.2  附加资源 306附录C  数学入门 307C.1  3D中的点(Point) 307C.2  向量(Vector) 309C.2.1  受限向量(Bound Vector) 309C.2.2  自由向量(Free Vector) 310C.2.3  单位向量(Unit Vector) 315C.3  矩阵 315C.3.1  矩阵与向量的乘法 316C.3.2  矩阵加法和减法 317C.3.3  矩阵乘法 317C.3.4  平移矩阵 318C.3.5  缩放矩阵 318C.3.6  旋转矩阵 318C.4  小结 320附录D  使用D3DXCreateTextureFromFileEx()创建纹理 321附录E  游戏程序设计资源 324E.1  常规 324E.2  DirectX图形 324附录F  随书光盘内容 326F.1  DirectX 9.0 SDK 326F.2  ATI RenderMonkey 326F.3  NVIDIA Cg工具包 327F.4  教学演示动画 327
猜您喜欢

读书导航