计算机图形学基础与应用——基于WebGL

计算机图形学基础与应用——基于WebGL
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2023-01
版次: 1
ISBN: 9787115602374
定价: 59.80
装帧: 其他
开本: 其他
纸张: 胶版纸
字数: 397千字
9人买过
  • 计算机图形学是研究利用计算机进行图形绘制的科学,其主要研究内容为利用计算机实现将三维模型投影到平面的方法。本书首先搭建基本的计算机图形学知识体系,然后在此基础上,围绕GPU管线的处理结构分析管线各个阶段的实现算法;同时介绍WebGL在编程方面的应用,使读者不仅能够掌握图形应用软件的编程方法,还能明白计算机图形学的基本原理。
      编者在本书中融入了大量实例的源代码,可以为读者应用不同的理论知识进行实践提供参考。此外,与本书配套的“计算机图形学实验”平台上不仅展示了多个实验下多位学生的三维交互作品,以供院校师生参考学习,而且支持读者注册并使用该平台,进行代码上传与调试及作品展示等,这可以极大程度地提升读者的实战技能。
      本书可作为高等院校计算机、数字媒体、软件工程等相关专业的教材,也可供图形应用领域的技术人员学习使用,还可作为图形研究人员的参考用书。 匡平:

    博士,电子科技大学计算机科学与工程学院副教授,主要从事图像处理、人工智能和模式识别等领域的研究与教学工作,主持国家及省部级科研项目20余项,以第一作者发表SCI/EI论文20 余篇,获四川省科技进步奖三等奖2项(排名第一)、国家发明专利8项,著有《汇编语言程序设计》等教材。 【章名目录】

    【第 1篇】基础篇

    第 1章 概述 2

    第 2章 图形处理管线 14

    第3章 WebGL编程 34

    第4章 光栅式图形系统 62

    第5章 变换 81

    第6章 三维模型表示 116

    第7章 简单光照模型 149

    【第 2篇】应用篇

    第8章 WebGL高级应用 161

    第9章 全局光照 182

    第 10章 实时物理渲染与非真实感绘制 202

    【详细目录】

    第 1篇 基础篇

    第 1章 概述 2

    1.1 计算机图形学相关课程 2

    1.2 计算机图形学的发展 3

    1.3 计算机图形系统 3

    1.3.1 光栅扫描显示 4

    1.3.2 图形处理单元架构 6

    1.4 计算机图形软件 9

    1.4.1 Direct3D和OpenGL概述 9

    1.4.2 WebGL概述 10

    1.4.3 WebXR概述 11

    1.5 本章小结 13

    习题 13

    第 2章 图形处理管线 14

    2.1 GPU与CPU的区别 14

    2.1.1 计算机绘制概述 15

    2.1.2 成像原理 15

    2.2 固定管线流程 16

    2.2.1 处理流程 16

    2.2.2 模型表达与绘制 17

    2.2.3 管线架构 19

    2.3 可编程管线 20

    2.3.1 可编程管线的基本概念 20

    2.3.2 着色器程序 22

    2.3.3 管线中的数据流 23

    2.4 buffer编程 25

    2.4.1 帧缓存 25

    2.4.2 深度缓存 26

    2.4.3 模板缓存 27

    2.4.4 PBO与FBO 28

    2.4.5 纹理buffer 30

    2.5 本章小结 32

    习题 33

    第3章 WebGL编程 34

    3.1 搭建开发平台 34

    3.1.1 Three.js简介 34

    3.1.2 Three.js的环境配置 35

    3.1.3 搭建Web服务器 35

    3.1.4 创建第 一个Three.js实例 36

    3.2 JavaScript基础 37

    3.2.1 核心语句和语法 38

    3.2.2 对象和数组 40

    3.2.3 在网页中嵌入JavaScript代码 41

    3.2.4 与网页进行交互 42

    3.3 场景搭建 44

    3.3.1 画布设置 44

    3.3.2 对象设置 45

    3.3.3 相机设置 47

    3.3.4 交互设置 48

    3.4 坐标系与观察变换 51

    3.4.1 场景坐标系与图像结果坐标系 51

    3.4.2 观察变换 52

    3.5 Three.js基本程序框架 54

    3.6 本章小结 60

    习题 60

    第4章 光栅式图形系统 62

    4.1 线段光栅化 62

    4.1.1 Bresenham算法 63

    4.1.2 曲线光栅化方法 65

    4.2 字符光栅化 66

    4.3 反走样技术 67

    4.4 多边形填充技术 68

    4.4.1 内外测试 68

    4.4.2 扫描线多边形填充算法 69

    4.4.3 其他填充方法 71

    4.5 纹理技术 72

    4.5.1 纹理坐标 72

    4.5.2 GLSL纹理贴图 72

    4.5.3 纹理上下文 74

    4.5.4 过程纹理 74

    4.5.5 凹凸贴图 77

    4.6 WebGL实例分析 79

    4.7 本章小结 80

    习题 80

    第5章 变换 81

    5.1 数学基础 81

    5.1.1 向量 81

    5.1.2 矩阵 83

    5.1.3 齐次坐标 85

    5.2 二维几何变换 85

    5.2.1 矩阵表达 85

    5.2.2 复合变换矩阵的构造 87

    5.3 三维几何变换 90

    5.3.1 矩阵表达 90

    5.3.2 复合变换矩阵的构造 91

    5.3.2 四元数 93

    5.4 投影变换 95

    5.4.1 平行投影 95

    5.4.2 透视投影 98

    5.5 裁剪技术 101

    5.5.1 线段裁剪 101

    5.5.2 多边形裁剪 105

    5.5.3 三维裁剪 107

    5.6 实例分析 109

    5.6.1 基本概念 109

    5.6.2 基本矩阵函数 109

    5.6.3 旋转、平移和缩放 110

    5.6.4 绕任意点的旋转 110

    5.6.5 三维模型示例 111

    5.7 本章小结 114

    习题 114

    第6章 三维模型表示 116

    6.1 多边形网格表示 116

    6.1.1 基本概念 117

    6.1.2 多边形网格的数据结构 117

    6.1.3 三角化算法 122

    6.1.4 网格简化 124

    6.2 参数曲面表示 127

    6.2.1 Bézier曲线 127

    6.2.2 Bézier曲面 131

    6.2.3 B样条曲线 134

    6.2.4 B样条曲面 139

    6.3 细分表示 141

    6.3.1 四边形网格细分的Catmull-Clark方法 142

    6.3.2 三角形网格细分的Loop方法 142

    6.4 其他表示 143

    6.4.1 点表示 143

    6.4.2 实体表示 144

    6.5 实例分析 145

    6.6 本章小结 147

    习题 147

    第7章 简单光照模型 149

    7.1 光反射作用的组成部分 149

    7.1.1 环境光 149

    7.1.2 漫反射光 150

    7.1.3 镜面反射光 151

    7.2 简单光照模型 152

    7.2.1 Phong模型 152

    7.2.2 明暗处理方法 153

    7.3 实例分析 156

    7.4 本章小结 158

    习题 158

    第 2篇 应用篇

    第8章 WebGL高级应用 161

    8.1 Shader基础 161

    8.1.1 WebGL高级渲染 161

    8.1.2 Shader简介 162

    8.2 Shader程序 169

    8.2.1 内置变量与函数 169

    8.2.2 示例说明 172

    8.2.3 Three.js中的Shader材质 178

    8.3 本章小结 181

    习题 181

    第9章 全局光照 182

    9.1 全局光照简介 182

    9.1.1 基本概念 183

    9.1.2 环境光遮蔽 185

    9.1.3 渲染方程 185

    9.2 光线跟踪算法 187

    9.2.1 光线跟踪算法原理 187

    9.2.2 算法核心步骤 188

    9.2.3 算法实现细节 190

    9.2.4 算法改进 195

    9.3 辐射度算法 196

    9.3.1 辐射度算法原理 196

    9.3.2 辐射度方程 196

    9.3.3 求解辐射度方程 197

    9.3.4 计算排列因子 198

    9.3.5 实现辐射度算法 200

    9.4 本章小结 201

    习题 201

    第 10章 实时物理渲染与非真实感绘制 202

    10.1 实时物理渲染 202

    10.1.1 PBR技术 202

    10.1.2 BRDF模型技术 208

    10.1.3 WebGL材质实例分析 213

    10.2 非真实感渲染 215

    10.2.1 概述 215

    10.2.2 分类 216

    10.2.3 卡通渲染 217

    10.2.4 其他风格的NPR渲染 222

    10.3 本章小结 223

    习题 223

    参考文献 224
  • 内容简介:
    计算机图形学是研究利用计算机进行图形绘制的科学,其主要研究内容为利用计算机实现将三维模型投影到平面的方法。本书首先搭建基本的计算机图形学知识体系,然后在此基础上,围绕GPU管线的处理结构分析管线各个阶段的实现算法;同时介绍WebGL在编程方面的应用,使读者不仅能够掌握图形应用软件的编程方法,还能明白计算机图形学的基本原理。
      编者在本书中融入了大量实例的源代码,可以为读者应用不同的理论知识进行实践提供参考。此外,与本书配套的“计算机图形学实验”平台上不仅展示了多个实验下多位学生的三维交互作品,以供院校师生参考学习,而且支持读者注册并使用该平台,进行代码上传与调试及作品展示等,这可以极大程度地提升读者的实战技能。
      本书可作为高等院校计算机、数字媒体、软件工程等相关专业的教材,也可供图形应用领域的技术人员学习使用,还可作为图形研究人员的参考用书。
  • 作者简介:
    匡平:

    博士,电子科技大学计算机科学与工程学院副教授,主要从事图像处理、人工智能和模式识别等领域的研究与教学工作,主持国家及省部级科研项目20余项,以第一作者发表SCI/EI论文20 余篇,获四川省科技进步奖三等奖2项(排名第一)、国家发明专利8项,著有《汇编语言程序设计》等教材。
  • 目录:
    【章名目录】

    【第 1篇】基础篇

    第 1章 概述 2

    第 2章 图形处理管线 14

    第3章 WebGL编程 34

    第4章 光栅式图形系统 62

    第5章 变换 81

    第6章 三维模型表示 116

    第7章 简单光照模型 149

    【第 2篇】应用篇

    第8章 WebGL高级应用 161

    第9章 全局光照 182

    第 10章 实时物理渲染与非真实感绘制 202

    【详细目录】

    第 1篇 基础篇

    第 1章 概述 2

    1.1 计算机图形学相关课程 2

    1.2 计算机图形学的发展 3

    1.3 计算机图形系统 3

    1.3.1 光栅扫描显示 4

    1.3.2 图形处理单元架构 6

    1.4 计算机图形软件 9

    1.4.1 Direct3D和OpenGL概述 9

    1.4.2 WebGL概述 10

    1.4.3 WebXR概述 11

    1.5 本章小结 13

    习题 13

    第 2章 图形处理管线 14

    2.1 GPU与CPU的区别 14

    2.1.1 计算机绘制概述 15

    2.1.2 成像原理 15

    2.2 固定管线流程 16

    2.2.1 处理流程 16

    2.2.2 模型表达与绘制 17

    2.2.3 管线架构 19

    2.3 可编程管线 20

    2.3.1 可编程管线的基本概念 20

    2.3.2 着色器程序 22

    2.3.3 管线中的数据流 23

    2.4 buffer编程 25

    2.4.1 帧缓存 25

    2.4.2 深度缓存 26

    2.4.3 模板缓存 27

    2.4.4 PBO与FBO 28

    2.4.5 纹理buffer 30

    2.5 本章小结 32

    习题 33

    第3章 WebGL编程 34

    3.1 搭建开发平台 34

    3.1.1 Three.js简介 34

    3.1.2 Three.js的环境配置 35

    3.1.3 搭建Web服务器 35

    3.1.4 创建第 一个Three.js实例 36

    3.2 JavaScript基础 37

    3.2.1 核心语句和语法 38

    3.2.2 对象和数组 40

    3.2.3 在网页中嵌入JavaScript代码 41

    3.2.4 与网页进行交互 42

    3.3 场景搭建 44

    3.3.1 画布设置 44

    3.3.2 对象设置 45

    3.3.3 相机设置 47

    3.3.4 交互设置 48

    3.4 坐标系与观察变换 51

    3.4.1 场景坐标系与图像结果坐标系 51

    3.4.2 观察变换 52

    3.5 Three.js基本程序框架 54

    3.6 本章小结 60

    习题 60

    第4章 光栅式图形系统 62

    4.1 线段光栅化 62

    4.1.1 Bresenham算法 63

    4.1.2 曲线光栅化方法 65

    4.2 字符光栅化 66

    4.3 反走样技术 67

    4.4 多边形填充技术 68

    4.4.1 内外测试 68

    4.4.2 扫描线多边形填充算法 69

    4.4.3 其他填充方法 71

    4.5 纹理技术 72

    4.5.1 纹理坐标 72

    4.5.2 GLSL纹理贴图 72

    4.5.3 纹理上下文 74

    4.5.4 过程纹理 74

    4.5.5 凹凸贴图 77

    4.6 WebGL实例分析 79

    4.7 本章小结 80

    习题 80

    第5章 变换 81

    5.1 数学基础 81

    5.1.1 向量 81

    5.1.2 矩阵 83

    5.1.3 齐次坐标 85

    5.2 二维几何变换 85

    5.2.1 矩阵表达 85

    5.2.2 复合变换矩阵的构造 87

    5.3 三维几何变换 90

    5.3.1 矩阵表达 90

    5.3.2 复合变换矩阵的构造 91

    5.3.2 四元数 93

    5.4 投影变换 95

    5.4.1 平行投影 95

    5.4.2 透视投影 98

    5.5 裁剪技术 101

    5.5.1 线段裁剪 101

    5.5.2 多边形裁剪 105

    5.5.3 三维裁剪 107

    5.6 实例分析 109

    5.6.1 基本概念 109

    5.6.2 基本矩阵函数 109

    5.6.3 旋转、平移和缩放 110

    5.6.4 绕任意点的旋转 110

    5.6.5 三维模型示例 111

    5.7 本章小结 114

    习题 114

    第6章 三维模型表示 116

    6.1 多边形网格表示 116

    6.1.1 基本概念 117

    6.1.2 多边形网格的数据结构 117

    6.1.3 三角化算法 122

    6.1.4 网格简化 124

    6.2 参数曲面表示 127

    6.2.1 Bézier曲线 127

    6.2.2 Bézier曲面 131

    6.2.3 B样条曲线 134

    6.2.4 B样条曲面 139

    6.3 细分表示 141

    6.3.1 四边形网格细分的Catmull-Clark方法 142

    6.3.2 三角形网格细分的Loop方法 142

    6.4 其他表示 143

    6.4.1 点表示 143

    6.4.2 实体表示 144

    6.5 实例分析 145

    6.6 本章小结 147

    习题 147

    第7章 简单光照模型 149

    7.1 光反射作用的组成部分 149

    7.1.1 环境光 149

    7.1.2 漫反射光 150

    7.1.3 镜面反射光 151

    7.2 简单光照模型 152

    7.2.1 Phong模型 152

    7.2.2 明暗处理方法 153

    7.3 实例分析 156

    7.4 本章小结 158

    习题 158

    第 2篇 应用篇

    第8章 WebGL高级应用 161

    8.1 Shader基础 161

    8.1.1 WebGL高级渲染 161

    8.1.2 Shader简介 162

    8.2 Shader程序 169

    8.2.1 内置变量与函数 169

    8.2.2 示例说明 172

    8.2.3 Three.js中的Shader材质 178

    8.3 本章小结 181

    习题 181

    第9章 全局光照 182

    9.1 全局光照简介 182

    9.1.1 基本概念 183

    9.1.2 环境光遮蔽 185

    9.1.3 渲染方程 185

    9.2 光线跟踪算法 187

    9.2.1 光线跟踪算法原理 187

    9.2.2 算法核心步骤 188

    9.2.3 算法实现细节 190

    9.2.4 算法改进 195

    9.3 辐射度算法 196

    9.3.1 辐射度算法原理 196

    9.3.2 辐射度方程 196

    9.3.3 求解辐射度方程 197

    9.3.4 计算排列因子 198

    9.3.5 实现辐射度算法 200

    9.4 本章小结 201

    习题 201

    第 10章 实时物理渲染与非真实感绘制 202

    10.1 实时物理渲染 202

    10.1.1 PBR技术 202

    10.1.2 BRDF模型技术 208

    10.1.3 WebGL材质实例分析 213

    10.2 非真实感渲染 215

    10.2.1 概述 215

    10.2.2 分类 216

    10.2.3 卡通渲染 217

    10.2.4 其他风格的NPR渲染 222

    10.3 本章小结 223

    习题 223

    参考文献 224
查看详情
12