3D数学基础:图形和游戏开发(第2版)

3D数学基础:图形和游戏开发(第2版)

编辑推荐

本书填补了其他三维游戏开发类书籍在图形、线性代数、模拟和编程等方面留下的空白。本书是学习和掌握三维视频游戏开发技术的一本不可多得的优秀入门读物。

内容简介

  《3D数学基础:图形和游戏开发(第2版)》详细阐述了在计算机图形学中与数学相关的基本解决方案,主要包括笛卡儿坐标系、矢量、多个坐标空间、矩阵简介、矩阵和线性变换、矩阵详解、极坐标系、三维旋转、几何图元、二维图形的数学主题、力学知识以及三维曲线等内容。此外,该书还提供了相应的示例,以帮助读者进一步理解相关方案的实现过程。

  《3D数学基础:图形和游戏开发(第2版)》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。

作者简介

Fletcher Dunn,是著名游戏开发公司Terminal Reality的主要开发人员,所参与开发的游戏包括《4×4DVO 2)、《夜曲》(Noturne),并且是《吸血莱恩》(BloodRayne)的主要负责人。他所开发的游戏遍及家用PC机的Windows、Machintosh、Dreamcast、PSⅡ、Xbox和GameCube几种主流平台。

Ian Parberry,是北德克萨斯大学计算机科学系的教授,在国际上被公认为是教授DirectX游戏开发的顶级专家之一。

章节目录

目录

第1章笛卡儿坐标系

1.1一维数学

1.2二维笛卡儿空间

1.2.1示例:假设的Cartesia城市

1.2.2任意二维坐标空间

1.2.3使用笛卡儿坐标指定二维中的位置

1.3三维笛卡儿空间

1.3.1新增维度和轴

1.3.2在三维中指定位置

1.3.3左手与右手坐标空间

1.3.4本书中使用的一些重要约定

1.4一些零散的基础知识介绍

1.4.1求和与求积的表示法

1.4.2区间符号

1.4.3角度、度数和弧度

1.4.4三角函数

1.4.5三角函数的恒等式

1.5练习

第2章矢量

2.1向量和其他无聊东西的数学定义

2.2矢量的几何定义

2.3使用笛卡儿坐标指定矢量

2.3.1作为位移序列的矢量

2.3.2零矢量

2.4矢量与点

2.4.1相对位置

2.4.2点与矢量之间的关系

2.4.3一切都是相对的

2.5负矢量

2.5.1正式线性代数规则

2.5.2几何解释

2.6标量和矢量的乘法

2.6.1正式线性代数规则

2.6.2几何解释

2.7矢量的加法和减法

2.7.1正式线性代数规则

2.7.2几何解释

2.7.3从一点到另一点的位移矢量

2.8矢量大小

2.8.1正式线性代数规则

2.8.2几何解释

2.9单位矢量

2.9.1正式线性代数规则

2.9.2几何解释

2.10距离公式

2.11矢量点积

2.11.1正式线性代数规则

2.11.2几何解释

2.12矢量叉积

2.12.1正式线性代数规则

2.12.2几何解释

2.13线性代数恒等式

2.14练习

第3章多个坐标空间

3.1为什么需要多个坐标空间?

3.2一些有用的坐标空间

3.2.1世界空间

3.2.2对象空间

3.2.3相机空间

3.2.4直立空间

3.3基矢量和坐标空间转换

3.3.1双重视角

3.3.2指定坐标空间

3.3.3基矢量

3.4嵌套坐标空间

3.5针对直立空间的再解释

3.6练习

第4章矩阵简介

4.1矩阵的数学定义

4.1.1矩阵维度和表示法

4.1.2方形矩阵

4.1.3作为矩阵的矢量

4.1.4矩阵转置

4.1.5矩阵与标量相乘

4.1.6两个矩阵相乘

4.1.7矢量和矩阵相乘

4.1.8行与列矢量

4.2矩阵的几何解释

4.3线性代数的宏大图景

4.4练习

第5章矩阵和线性变换

5.1旋转

5.1.1在二维中的旋转

5.1.2围绕主轴的三维旋转

5.1.3围绕任意轴的三维旋转

5.2缩放

5.2.1沿主轴缩放

5.2.2任意方向的缩放

5.3正交投影

5.3.1投影到主轴或主平面上

5.3.2投影到任意线或平面上

5.4反射

5.5错切

5.6组合变换

5.7变换的分类

5.7.1线性变换

5.7.2仿射变换

5.7.3可逆变换

5.7.4保持角度的变换

5.7.5正交变换

5.7.6刚体变换

5.7.7变换类型总结

5.8练习

第6章矩阵详解

6.1矩阵的行列式

6.1.1关于2×2和3×3矩阵的行列式

6.1.2子矩阵行列式和余子式

6.1.3任意n×n矩阵的行列式

6.1.4行列式的几何解释

6.2逆矩阵

6.2.1经典伴随矩阵

6.2.2逆矩阵—正式线性代数规则

6.2.3逆矩阵—几何解释

6.3正交矩阵

6.3.1正交矩阵—正式线性代数规则

6.3.2正交矩阵—几何解释

6.3.3矩阵的正交化

6.4关于4×4齐次矩阵

6.4.1关于四维齐次空间

6.4.2关于4×4平移矩阵

6.4.3一般仿射变换

6.5关于4×4矩阵和透视投影

6.5.1针孔相机

6.5.2透视投影矩阵

6.6练习

第7章极坐标系

7.1关于二维极坐标空间

7.1.1使用二维极坐标定位点

7.1.2别名

7.1.3关于二维中笛卡儿坐标和极坐标之间的变换

7.2为什么有人会使用极坐标?

7.3关于三维极坐标空间

7.3.1圆柱坐标

7.3.2球面坐标

7.3.3在三维虚拟世界中有用的一些极坐标约定

7.3.4球面坐标的别名

7.3.5球面坐标和笛卡儿坐标之间的转换

7.4使用极坐标指定矢量

7.5练习

第8章三维旋转

8.1“定向”含义探微

8.2矩阵形式

8.2.1矩阵的选择

8.2.2方向余弦矩阵

8.2.3矩阵形式的优点

8.2.4矩阵形式的缺点

8.2.5矩阵形式小结

8.3欧拉角

8.3.1欧拉角约定

8.3.2其他欧拉角约定

8.3.3欧拉角的优点

8.3.4欧拉角的缺点

8.3.5欧拉角小结

8.4轴-角和指数映射表示方式

8.5四元数

8.5.1四元数表示法

8.5.2这四个数字的意思

8.5.3四元数变负

8.5.4单位四元数

8.5.5四元数的大小

8.5.6四元数的共轭和逆

8.5.7四元数乘法

8.5.8四元数的“差”

8.5.9四元数点积

8.5.10四元数的对数、指数和标量乘法

8.5.11四元数指数

8.5.12四元数插值

8.5.13四元数的优缺点

8.5.14作为复数的四元数

8.5.15四元数概要

8.6方法比较

8.7表示方式之间的转换

8.7.1将欧拉角转换为矩阵

8.7.2将矩阵转换为欧拉角

8.7.3将四元数转换为矩阵

8.7.4将矩阵转换为四元数

8.7.5将欧拉角转换为四元数

8.7.6将四元数转换为欧拉角

8.8练习

第9章几何图元

9.1表示技术

9.2直线和光线

9.2.1光线

9.2.2直线的特殊二维表示

9.2.3表示方式之间的转换

9.3球体和圆形

9.4包围盒

9.4.1关于AABB的表示方式

9.4.2计算AABB

9.4.3关于AABB与包围球

9.4.4变换AABB

9.5平面

9.5.1平面方程:平面的隐式定义

9.5.2使用3个点定义一个平面

9.5.3超过3个点的“最佳拟合”平面

9.5.4点到平面的距离

9.6三角形

9.6.1表示法

9.6.2三角形的面积

9.6.3重心空间

9.6.4计算重心坐标

9.6.5特殊点

9.7多边形

9.7.1简单多边形和复杂多边形

9.7.2凸多边形和凹多边形

9.7.3三角剖分和扇形分割

9.8练习

第10章三维图形的数学主题

10.1图形工作原理

10.1.1两种主要的渲染方法

10.1.2描述表面特性:BRDF

10.1.3颜色和辐射度测量简介

10.1.4渲染方程

10.2关于三维视图

10.2.1指定输出窗口

10.2.2像素宽高比

10.2.3视锥体

10.2.4视野和缩放

10.2.5正交投影

10.3坐标空间

10.3.1模型、世界和相机空间

10.3.2裁剪空间和裁剪矩阵

10.3.3裁剪矩阵:准备投影

10.3.4裁剪矩阵:应用缩放并准备裁剪

10.3.5屏幕空间

10.3.6坐标空间概述

10.4多边形网格

10.4.1索引三角网格

10.4.2表面法线

10.5纹理映射

10.6标准局部照明模型

10.6.1标准照明公式:概述

10.6.2镜面反射分量

10.6.3漫反射分量

10.6.4环境光和发光分量

10.6.5照明方程:综合考虑各分量

10.6.6标准模型的局限性

10.6.7平面着色和Gouraud着色

10.7光源

10.7.1标准抽象光类型

10.7.2光衰减

10.7.3关于Doom风格体积光

10.7.4预先计算的照明

10.8骷髅动画

10.9凹凸映射

10.9.1切线空间

10.9.2计算切线空间基矢量

10.10实时图形管道

10.10.1缓冲区

10.10.2传递几何体

10.10.3顶点级别的操作

10.10.4裁剪

10.10.5背面剔除

10.10.6光栅化、着色和输出

10.11一些HLSL示例

10.11.1贴花着色和HLSL基础知识

10.11.2基础的每个像素Blinn-Phong照明

10.11.3使用Gouraud着色算法

10.11.4凹凸映射

10.11.5蒙皮网格

10.12深入阅读建议

10.13练习

第11章力学1:线性运动学和微积分

11.1概述

11.1.1忽略的东西

11.1.2关于宇宙的一些有用的谎言

11.2基本数量和单位

11.3平均速度

11.4瞬时速度和导数

11.4.1极限参数和导数的定义

11.4.2导数示例

11.4.3通过定义计算导数

11.4.4导数的表示法

11.4.5一些求导法则和快捷方式

11.4.6泰勒级数的一些特殊函数的导数

11.4.7链式法则

11.5加速度

11.6恒定加速度下的运动

11.7积分

11.7.1积分的例子

11.7.2导数与积分之间的关系

11.7.3微积分小结

11.8匀速圆周运动

11.8.1平面内的匀速圆周运动

11.8.2三维中的匀速圆周运动

11.9练习

第12章力学2:线性和旋转动力学

12.1牛顿的3个基本定律

12.1.1牛顿的前两个定律:力与质量

12.1.2惯性参考系

12.1.3牛顿第三定律

12.2一些简单的力定律

12.2.1重力

12.2.2摩擦力

12.2.3弹簧力

12.3动量

12.3.1动量守恒

12.3.2质心

12.4冲击力和碰撞

12.4.1完全非弹性碰撞

12.4.2一般碰撞响应

12.4.3关于Dirac Delta

12.5旋转动力学

12.5.1旋转运动学

12.5.2关于二维旋转动力学

12.5.3关于三维旋转动力学

12.5.4与旋转的碰撞响应

12.6实时刚体模拟器

12.6.1物理引擎状态变量

12.6.2高级概述

12.6.3欧拉积分

12.6.4旋转的积分

12.7深入阅读建议

12.8练习

第13章三维曲线

13.1参数多项式曲线

13.1.1参数曲线

13.1.2多项式曲线

13.1.3矩阵表示法

13.1.4两种简单的曲线

13.1.5单项式端点

13.1.6速度和切线

13.2多项式插值

13.2.1艾特肯的算法

13.2.2拉格朗日基多项式

13.2.3多项式插值汇总

13.3埃尔米特曲线

13.4贝塞尔曲线

13.4.1关于de Casteljau算法

13.4.2伯恩斯坦基多项式

13.4.3贝塞尔导数及其与埃尔米特形式的关系

13.5细分

13.5.1细分单项式曲线

13.5.2细分贝塞尔曲线

13.6样条曲线

13.6.1游戏规则

13.6.2节点

13.7埃尔米特和贝塞尔样条曲线

13.8连续性

13.8.1参数连续性

13.8.2几何连续性

13.8.3曲线平滑度

13.9自动切线控制

13.9.1Catmull-Rom样条

13.9.2TCB样条

13.9.3端点条件

13.10练习

第14章后记

14.1接下来做什么

14.2练习

附录A几何测试

A.1在二维隐式直线上的最近点

A.2参数化光线上的最近点

A.3平面上的最近点

A.4圆或球体上的最近点

A.5轴向对齐的包围盒中的最近点

A.6相交测试

A.7在二维中两条隐式直线的交点

A.8在三维中两条光线的交点

A.9光线和平面的交点

A.10轴向对齐的包围盒与平面的交点

A.11 个平面的交点

A.12光线与圆或球体的交点

A.13两个圆或球的交点

A.14球体与轴向对齐的包围盒的交点

A.15球体与平面的交点

A.16光线与三角形的交点

A.17两个AABB的交点

A.18光线与AABB的交点

附录B练习答案

B.1第1章

B.2第2章

B.3第3章

B.4第4章

B.5第5章

B.6第6章

B.7第7章

B.8第8章

B.9第9章

B.10第10章

B.11第11章

B.12第12章

B.13第13章

参考文献

3D数学基础:图形和游戏开发(第2版)是2020年由清华大学出版社出版,作者FletcherDunn。

得书感谢您对《3D数学基础:图形和游戏开发(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
大数据技术原理与应用(第2版) 电子书

国内高校大数据课程知名教师倾心之作,带你“零基础”学习大数据。
图灵的秘密:他的生平、思想及论文解读 电子书

这本书既有图灵成长的传奇经历,也有对图灵的理论全面解读。
新印象:VRayforSketchUp效果图高级渲染技法 电子书

本书旨在全面讲解VRayforSketchUp渲染器的功能及其应用。
SVG精髓(第2版) 电子书

通过实例透彻讲解了SVG(可缩放矢量图形)这种标记语言的规范及应用。
计算机导论 电子书

本书系统介绍计算机基础知识,兼具实践与习题。
Python基础教程(第3版) 电子书

手把手带你从零开始学习Python。
算法精粹:经典计算机科学问题的Python实现 电子书