专题栏目:ARVRMR虚拟现实

《计算机图形学导论——实用学习指南(WebGL版)》

书籍简介:

本书是作者多年来教学与科研工作的总结,采用WebGL图形编程接口循序渐进开发一个赛车游戏的方式对计算机图形学基础知识和真实感渲染的物理原理进行讲解,涵盖了图形学基本概念、WebGL图形编程接口、3D图形表示、几何变换、光栅化、光照和阴影技术、纹理映射等基本的计算机图形学内容,以及粒子系统、光线跟踪、光子跟踪、基于图像的绘制和全局光照等高级内容。并为读者进一步深入学习和研究,在每章里都给出了相关的程序实例。

作者简介:

Fabio Ganovelli于1995年毕业于意大利比萨大学,2001年获得博士学位,目前是意大利国家研究委员会可视计算研究室的研究员。Fabio目前的研究领域包括变形模拟、多分辨率模拟、真实感绘制和几何处理。Massimiliano Corsini 于2000年毕业于意大利佛罗伦萨大学的信息工程学院,2005年获得信息通讯学院博士学位,目前是意大利国家研究委员会可视计算研究室的研究员。Massimiliano目前主要研究表面获取和建模、2D/3D注册技术和基于图像的重光照技术

邵绪强,博士,毕业于北京航空航天大学,华北电力大学计算机学院教师,主要专业方向为计算机图形学,虚拟现实

出版日期:

2017年10月

章节目录:

第1章 计算机图形学概述 1
1.1 计算机图形学的应用范围和研究领域 1
1.1.1 应用范围 1
1.1.2 研究领域 2
1.2 颜色和图像 3
1.2.1 人类视觉系统 3
1.2.2 颜色空间 4
1.2.3 光源 9
1.2.4 伽马值 9
1.2.5 图像表示 9
1.3 三维场景的光栅图像生成算法 12
1.3.1 光线跟踪 12
1.3.2 光栅化流水线 14
1.3.3 光线跟踪与光栅化流水线 15
第2章 基本步骤 17
2.1 应用程序接口 17
2.2 WebGL光栅化流水线 18
2.3 渲染流水线算法:初步渲染 20
2.4 WebGL的支持库 29
2.5 NVMC简介 29
2.5.1 架构 30
2.5.2 NVMC类用于描述世界 30
2.5.3 基本客户端 31
2.5.4 代码的组织方式 35
第3章 三维模型表示方式 37
3.1 概述 37
3.1.1 现实世界数字化 37
3.1.2 几何建模 38
3.1.3 过程建模 38
3.1.4 仿真 38
3.2 多边形网格 38
3.2.1 三角形扇和三角形带 39
3.2.2 流形 39
3.2.3 朝向 40
3.2.4 多边形网格的优势和劣势 40
3.3 隐式曲面 41
3.4 参数曲面 42
3.4.1 参数曲线 42
3.4.2 贝塞尔曲线 43
3.4.3 B样条曲线 45
3.4.4 参数曲线扩展为参数曲面 47
3.4.5 贝塞尔曲面 47
3.4.6 NURBS曲面 48
3.4.7 参数曲面的优势和劣势 48
3.5 体素 49
3.5.1 体素渲染 49
3.5.2 体素表示的优势和劣势 50
3.6 构造实体几何 50
3.7 细分曲面 51
3.7.1 Chaikin算法 51
3.7.2 4点算法 52
3.7.3 曲面的细分方法 52
3.7.4 细分方法分类 52
3.7.5 细分模式 53
3.7.6 细分曲面的优势和劣势 55
3.8 多边形网格的数据结构 55
3.8.1 索引数据结构 56
3.8.2 翼边 57
3.8.3 半边 57
3.9 第一个代码:创建和显示简单图元 58
3.9.1 立方体 58
3.9.2 锥体 59
3.9.3 柱体 61
3.10 自测题 63
第4章 几何变换 65
4.1 几何实体 65
4.2 基本几何变换 66
4.2.1 平移 66
4.2.2 缩放 66
4.2.3 旋转 67
4.2.4 用矩阵符号表示变换 67
4.3 仿射变换 69
4.3.1 几何变换组合 69
4.3.2 绕任意点旋转和缩放 70
4.3.3 剪切 71
4.3.4 逆变换和交换律 71
4.4 框架 72
4.4.1 一般框架和仿射变换 73
4.4.2 框架的层次 73
4.4.3 第三维 74
4.5 三维空间中的旋转 75
4.5.1 轴-角旋转 75
4.5.2 欧拉角旋转 77
4.5.3 用四元数旋转 78
4.6 观察变换 79
4.6.1 设置观察参考框架 79
4.6.2 投影 80
4.6.3 视见体 82
4.6.4 从规范化设备坐标到窗口坐标 83
4.6.5 小结 85
4.7 图形绘制流水线中的变换 85
4.8 升级客户端:第一个3D客户端 86
4.8.1 组装树和汽车 87
4.8.2 定位树和汽车 88
4.8.3 观察场景 88
4.9 编码 88
4.10 用矩阵堆栈操作变换矩阵 89
4.10.1 升级客户端:增加从上面和后面的观察 91
4.11 操纵视图和对象 92
4.11.1 用键盘和鼠标控制观察 93
4.11.2 升级客户端:增加摄影师观察 94
4.11.3 用键盘和鼠标操纵场景:虚拟跟踪球 95
4.12 升级客户端:创建观察者相机 97
4.13 自我练习 98
第5章 顶点转化为像素 100
5.1 光栅化 100
5.1.1 直线 100
5.1.2 多边形(三角形) 103
5.1.3 属性插值:质心坐标 105
5.1.4 小结 107
5.2 隐藏面消除 108
5.2.1 深度排序 108
5.2.2 扫描线 109
5.2.3 深度缓存 109
5.2.4 深度缓存精度和深度冲突 110
5.3 从片元到像素 111
5.3.1 丢弃测试 112
5.3.2 融合 112
5.3.3 走样和反走样 113
5.3.4 升级客户端:从驾驶员角度进行观察 114
5.4 裁剪 117
5.4.1 裁剪线段 117
5.4.2 裁剪多边形 119
5.5 剔除 119
5.5.1 背面剔除 119
5.5.2 视见体剔除 120
5.5.3 遮挡剔除 122
第6章 光照和着色 123
6.1 光与物质之间的交互 123
6.2 辐射度量学简介 127
6.3 反射率和双向反射分布函数(BRDF) 129
6.4 绘制方程 131
6.5 评估绘制方程 132
6.6 计算表面法向量 133
6.6.1 折痕角 135
6.6.2 表面法向量变换 136
6.7 光源类型 136
6.7.1 方向光 137
6.7.2 升级客户端:添加太阳光源 138
6.7.3 点光源 141
6.7.4 升级客户端:添加路灯光源 142
6.7.5 聚光灯光源 143
6.7.6 面光源 144
6.7.7 升级客户端:添加汽车的前灯和隧道的指示灯 145
6.8 Phong光照模型 146
6.8.1 概述和动机 146
6.8.2 漫反射光分量 147
6.8.3 镜面反射光分量 147
6.8.4 环境光分量 148
6.8.5 完整模型 148
6.9 着色技术 149
6.9.1 平面着色和Gouraud着色 149
6.9.2 Phong着色 150
6.9.3 升级客户端:使用Phong光照 150
6.10 高级反射模型 151
6.10.1 Cook-Torrance模型 151
6.10.2 Oren-Nayar模型 152
6.10.3 Minnaert模型 153
6.11 自测题 153
第7章 纹理 155
7.1 引言:是否需要纹理映射 155
7.2 基本概念 155
7.3 纹理过滤:从片元纹理坐标到片元颜色 157
7.3.1 纹理放大效应 157
7.3.2 多重映射的纹理缩小效应 158
7.4 透视校正插值:从顶点纹理坐标到片元纹理坐标 160
7.5 升级客户端:为地面、街道和建筑物增加纹理 162
7.6 升级客户端:添加后视镜 165
7.7 纹理坐标生成以及环境映射 167
7.7.1 球体映射 167
7.7.2 立方体映射 169
7.7.3 升级客户端:为视域增加一个天空盒子 169
7.7.4 升级客户端:为赛车增加反射效果 171
7.7.5 投影纹理映射 173
7.8 利用纹理映射为几何模型增加细节 173
7.8.1 位移贴图 173
7.8.2 法线贴图 174
7.8.3 升级客户端:添加沥青 175
7.8.4 切空间法线贴图 176
7.9 网格参数化 178
7.9.1 接缝 179
7.9.2 参数化的质量 180
7.10 三维纹理及其用途 181
7.11 自测题 181
第8章 阴影 182
8.1 阴影现象 182
8.2 阴影贴图 183
8.3 升级客户端程序:增加阴影 185
8.4 阴影贴图的伪影和局限 188
8.4.1 有限的数值精度:表面缺陷 188
8.4.2 有限的阴影图分辨率:走样 190
8.5 阴影体 191
8.5.1 构建阴影体 192
8.5.2 算法 193
8.6 自测题 193
第9章 基于图像的Impostor技术 195
9.1 图像 195
9.2 布告板 196
9.2.1 静态布告板 196
9.2.2 屏幕对齐布告板 197
9.2.3 升级客户端:添加屏幕位置固定小工具 197
9.2.4 升级客户端:添加镜头光斑效果 198
9.2.5 轴对齐布告板 201
9.2.6 动态布告板 204
9.2.7 球形布告板 204
9.2.8 布告板云 204
9.3 光线跟踪Impostor 206
9.4 自测题 207
第10章 高级技术 208
10.1 图像处理 208
10.1.1 模糊 209
10.1.2 升级客户端:一个具有景深的更好的摄像机 211
10.1.3 边缘检测 216
10.1.4 升级客户端:卡通渲染 217
10.1.5 升级客户端:一个更好的平移摄像机 219
10.1.6 锐化 223
10.2 环境光遮蔽 223
10.3 延迟着色 226
10.4 粒子系统 227
10.4.1 粒子系统的运动 227
10.4.2 粒子系统的渲染 228
10.5 自测题 228
第11章 全局光照 229
11.1 光线跟踪 229
11.1.1 光线-代数表面相交 230
11.1.2 光线-参数表面相交 231
11.1.3 光线?场景相交 231
11.1.4 基于光线跟踪的绘制 238
11.1.5 经典光线跟踪 238
11.1.6 路径跟踪 239
11.2 多通道算法 242
11.2.1 光子追踪 242
11.2.2 辐射度 243
11.2.3 形状因子 243
11.2.4 通量传输方程和辐射度传输方程 244
11.2.5 辐射度方程组求解 247
附录A NVMC类 250
附录B 向量积的特性 253
参考文献 256

封面图:

发表评论

相关文章