DirectX游戏编程 (揭秘Direct3D游戏开发核心技术) 王鹏杰 李威 王聪 编著
978-7-111-29331-6
49.00
281
出版社:机械工业出版社
上市时间:2010年3月
前言
作为《OpenGL游戏编程 》的姊妹篇,《DirectX游戏编程 》也是游戏编程的入门书籍,不同的是选用了另一个非常流行(甚至已经成为主流技术)的游戏软件开发包 DirectX进行游戏编程。本书是作者近几年来在高校教授游戏程序设计课程的经验凝结,力求凸显“低门槛、重实践、精理论”的特色,其规划和设计融入了 作者多年来对该课程教学的经验总结和思考。全书共有16章,包括两部分内容:基础部分和高级部分。基础部分包括第1章~第8章,主要讲述了DirectX 的基础知识,包括游戏开发的基本数学知识、DirectX开发的基本配置、基本开发框架、基本图形的绘制、文本显示、变换、纹理映射。高级部分包括第9 章~第16章,根据DirectX技术的发展趋势,介绍了一些有生命力的技术,主要包括深度测试和反走样、网格、混合、模板以及顶点着色器和像素着色器等 知识。本书面向的读者是有一定程序设计能力的DirectX初学者或爱好者。
各章主要内容分别为:第1章介绍游戏开发相关的一些数学基础知识;第2章对DirectX的历史、功能及基本配置做了介绍;第3章介绍了本书所涉及的Direct3D程序设计框架,并通过实例详细讲解了基本的 Win32框架和DXUT框架;第4章介绍了文本显示程序的编写,为后续章节实例中的文本显示做准备;第5章介绍了基本图形的绘制过程,主要讲解了基本图 元的类型,以及使用顶点缓存和索引缓存绘制基本图形的方法;第6章介绍了3种基本变换并辅以实例对其进行详细说明;第7章介绍了材质和光照的使用,给出了 不同光照和不同材质下的实例效果对比;第8章介绍了纹理的载入和绘制方式;第9章介绍了深度测试和反走样的基本原理,并分别给出了实例;第10章和第11 章介绍了网格的定义,包括网格中顶点缓存和索引缓存的填充,X文件导入生成网格的过程,渐进网格的生成和控制;第12章介绍了混合和模板,并分别给出了实例;第13章~第15章介绍了着色器部分的内容,主要对顶点着色器和像素着色器的功能、使用、语义等进行了详细阐述,并给出了实例解析;第16章给出了一个完整的用DirectX开发的RPG游戏实例,主要介绍了游戏开发的一个简单但完整的过程。
对于初学者来说,按照本书的章节顺序进行阅读是很好的选择,书中所有的实例都是按照章节的内容有序安排的;而对于有经验的读者,可以按需要有选择地阅读。本书的特点是每章都有详细的实例程序,并且对程序代码进行了清晰的编号和详细的解释。可以作为高等院校游戏专业的教材,也可供游戏开发及研究人员参考。
经过对本书的学习,你可以掌握 DirectX游戏开发的基础知识。通过这些基础知识的学习,你甚至可以编写一个自己的游戏。祝学习愉快!
本书附带的光盘中为书中主要实例的 源程序,经测试可以在VC 2003及以上版本环境下运行。
本书第4、7章及第12章的模板部分由王鹏杰编写,第1、2、11章和其余章节的 实例部分由李威编写,其余内容由王聪和贾彦磊编写。在编写过程中本书参考和引用了很多现有的DirectX书籍和网络资源(见书后的参考文献列表),在此向原作者表示深深的谢意。最后,本书要特别感谢机械工业出版社华章分社的陈冀康编辑所给予的指导、帮助和鼓励。
同时感谢关旭成、方郁、王江, 他们为本书的编写做了大量的工作,没有他们的努力,本书是不可能顺利完成的。
王鹏杰
2009年10月25日于浙大紫金港
目录
前言
第1章3D游戏开发的数学基础
- 1.1点和向量
- 1.2直线与平面
- 1.3矩阵与坐标变换
- 1.4坐标系
第2章DirectX快速入门
- 2.1DirectX概述
- 2.2Direct3D底层结构概述
- 2.3DirectX 9.0的配置和安装
第3章DirectX程序框架
- 3.1Win32+C+Direct3D的基础框架
- 3.2DXUT框架
第4章文本显示
- 4.1文本绘制流程
- 4.2Win32程序框架实现
- 4.3DXUT程序框架实现
第5章基本图形的绘制
- 5.1图元
- 5.2坐标系
- 5.3灵活顶点格式(FVF)
- 5.4使用顶点缓存绘制图形
- 5.5索引缓存
- 5.6颜色表示法
- 5.7渲染状态
- 5.8绘制准备
- 5.9D3DX几何物体
- 5.10实例设计与实现
第6章变换
- 6.1摄像机
- 6.2顶点变换
- 6.3光栅化
- 6.4实例
第7章光照和材质
- 7.1真实感图形基本概念
- 7.2Direct3D中的光照
- 7.3Direct3D中的材质
- 7.4光照和材质小结
- 7.5光照和材质例子
第8章纹理映射
- 8.1纹理贴图
- 8.2纹理坐标
- 8.3纹理寻址模式
- 8.4纹理过滤
- 8.5纹理混合状态
- 8.6纹理实例解析
第9章深度测试和反走样
- 9.1深度缓存与深度测试
- 9.2图形反走样
- 9.3深度测试实例
- 9.4反走样实例
第10章网格(一)
- 10.1ID3DXMesh
- 10.2子集和属性缓存
- 10.3绘制
- 10.4邻接信息
- 10.5优化
- 10.6属性表
- 10.7创建一个Mesh
- 10.8例子:从已有的顶点序列中创建一个网格
第11章网格(二)
- 11.1X文件格式解析
- 11.2读取X文件
- 11.3X文件的材质
- 11.4读X文件例子
- 11.5渐进网格
- 11.6渐进网格例子
第12章混合和模板
- 12.1混合因子
- 12.2混合计算
- 12.3Alpha来源
- 12.4Alpha测试
- 12.5Alpha混合实例
- 12.6模板
第13章着色器入门
- 13.1着色器概述
- 13.2HLSL的变量
- 13.3HLSL的函数
- 13.4HLSL基本语法
- 13.5在Direct3D中使用HLSL
第14章顶点着色器
- 14.1顶点着色器概述
- 14.2顶点声明
- 14.3使用顶点着色器
- 14.4顶点着色器实例1:TeapotVS
- 14.5顶点着色器实例2:渐变动画MorphingVS
第15章像素着色器
- 15.1像素着色器概述
- 15.2使用像素着色器
- 15.3HLSL采样器对象
- 15.4多重纹理
- 15.5例子程序:像素着色器实现多纹理MultiTex
第16章一个游戏实例
- 16.1前言
- 16.2游戏整体架构
- 16.3游戏初始化
- 16.4场景渲染
- 16.5游戏控制
- 16.6声效控制
参考文献