书籍 计算机图形学编程的封面

计算机图形学编程PDF电子书下载

(美)V.斯科特·戈登(V.ScottGordon)约翰·克莱维吉(JohnClevenger)

购买点数

11

出版社

北京:人民邮电出版社

出版时间

2019

ISBN

标注页数

252 页

PDF页数

269 页

图书目录

第1章 入门 1

1.1语言和库 1

1.1.1 C++ 2

1.1.2 OpenGL/GLSL 2

1.1.3窗口管理 2

1.1.4扩展库 3

1.1.5数学库 3

1.1.6纹理管理 3

1.1.7可选库 4

1.2安装和配置 4

参考资料 4

第2章 OpenGL图像管线 5

2.1 OpenGL管线 5

2.1.1 C++/OpenGL应用程序 6

2.1.2顶点着色器和片段着色器 9

2.1.3曲面细分着色器 12

2.1.4几何着色器 13

2.1.5光栅化 14

2.1.6片段着色器 15

2.1.7像素操作 16

2.2检测OpenGL和GLSL错误 17

2.3从文件读取GLSL源代码 19

2.4从顶点构建对象 20

2.5场景动画 21

2.6 C++代码文件结构 23

补充说明 24

习题 24

参考资料 25

第3章 数学基础 26

3.1 3D坐标系统 26

3.2点 26

3.3矩阵 27

3.4变换矩阵 29

3.4.1平移矩阵 29

3.4.2缩放矩阵 29

3.4.3旋转矩阵 30

3.5向量 31

3.5.1点积的应用 32

3.5.2叉积的应用 33

3.6局部和世界空间 33

3.7视觉空间和合成相机 34

3.8投影矩阵 36

3.8.1透视投影矩阵 36

3.8.2正射投影矩阵 37

3.9 LookAt矩阵 38

3.10用来构建矩阵变换的GLSL函数 39

补充说明 40

习题 40

参考资料 41

第4章 管理3D图形数据 42

4.1缓冲区和顶点属性 42

4.2统一变量 44

4.3顶点属性插值 45

4.4模型-视图和透视矩阵 46

4.5我们的第一个3D程序——一个3D立方体 47

4.6渲染一个对象的多个副本 53

4.7在同一个场景中渲染多个不同模型 57

4.8矩阵堆栈 59

4.9应对“Z冲突”伪影 64

4.10图元的其他选项 65

4.11性能优先的编程方法 66

4.11.1尽量减少动态内存空间分配 66

4.11.2预先计算透视矩阵 67

4.11.3背面剔除 68

补充说明 69

习题 70

参考资料 70

第5章 纹理贴图 71

5.1加载纹理图像文件 71

5.2纹理坐标 72

5.3创建纹理对象 74

5.4构建纹理坐标 74

5.5将纹理坐标载入缓冲区 75

5.6在着色器中使用纹理:采样器变量和纹理单元 76

5.7纹理贴图:示例程序 77

5.8多级渐远纹理贴图 79

5.9各向异性过滤 83

5.10环绕和平铺 84

5.11透视变形 85

5.12材质——更多OpenGL细节 86

补充说明 86

习题 87

参考资料 87

第6章 3D模型 88

6.1程序构建模型——构建一个球体 88

6.2 OpenGL索引——构建一个环面 94

6.2.1环面 94

6.2.2 OpenGL中的索引 95

6.3加载外部构建的模型 99

补充说明 106

习题 107

参考资料 107

第7章 光照 108

7.1光照模型 108

7.2光源 109

7.3材质 111

7.4 ADS光照计算 112

7.5实现ADS光照 114

7.5.1 Gouraud着色(双线性光强插值法) 115

7.5.2 Phong着色 120

7.6结合光照与纹理 124

补充说明 126

历史记录 126

习题 126

参考资料 127

第8章 阴影 128

8.1阴影的重要性 128

8.2投影阴影 129

8.3阴影体 129

8.4阴影贴图 130

8.4.1阴影贴图(第1轮)——从光源位置“绘制”物体 131

8.4.2阴影贴图(中间步骤)——将Z缓冲区复制到纹理 132

8.4.3阴影贴图(第2轮)——渲染带阴影的场景 132

8.5阴影贴图示例 135

8.6阴影贴图的伪影 139

8.7柔和阴影 142

8.7.1现实世界中的柔和阴影 142

8.7.2生成柔和阴影——百分比邻近滤波(PCF) 143

8.7.3柔和阴影/PCF程序 146

补充说明 148

习题 148

参考资料 149

第9章 天空和背景 150

9.1天空盒 150

9.2天空穹顶 152

9.3实现天空盒 153

9.3.1从头开始构建天空盒 153

9.3.2使用OpenGL立方体贴图 156

9.4环境贴图 158

补充说明 161

习题 162

参考资料 163

第10章 增强表面细节 164

10.1凹凸贴图 164

10.2法线贴图 166

10.3高度贴图 172

补充说明 174

习题 175

参考资料 175

第11章 参数曲面 176

11.1二次贝塞尔曲线 176

11.2三次贝塞尔曲线 177

11.3二次贝塞尔曲面 180

11.4三次贝塞尔曲面 181

补充说明 183

习题 183

参考资料 183

第12章 曲面细分 184

12.1 OpenGL中的曲面细分 184

12.2贝塞尔曲面细分 188

12.3地形、高度图的细分 193

12.4控制细节级别(LOD) 198

补充说明 200

习题 201

参考资料 201

第13章 几何着色器 202

13.1 OpenGL中的逐个图元处理 202

13.2修改图元 203

13.3删除图元 206

13.4添加图元 207

13.5更改图元类型 209

补充说明 211

习题 211

参考资料 211

第14章 其他技术 212

14.1雾 212

14.2复合、混合、透明度 213

14.3用户定义剪裁平面 218

14.4 3D纹理 219

14.5噪声 223

14.6噪声应用——大理石 227

14.7噪声应用——木材 230

14.8噪声应用——云 233

14.9噪声应用——特殊效果 236

补充说明 238

习题 238

参考资料 239

附录A PC(Windows)上的安装与设置 240

A.1安装库和开发环境 240

A.1.1安装开发环境 240

A.1.2安装OpenGL/GLSL 240

A.1.3准备GLF W 240

A.1.4准备GLEW 241

A.1.5准备GLM 241

A.1.6准备SOIL2 241

A.1.7准备共享的“lib”和“include”文件夹 241

A.2在MS Visual Studio中开发和部署OpenGL项目 242

参考资料 243

附录B Macintosh (macOS)平台上的安装与设置 244

B.1安装库和开发环境 244

B.1.1准备并安装依赖库 244

B.1.2准备开发环境 245

B.2修改Mac的C++ / OpenGL /GLSL应用程序代码 246

B.2.1修改C++代码 247

B.2.2修改GLSL代码 247

B.2.3补充说明 248

参考资料 248

附录C 使用Nsight图形调试器 249

C.1关于NVI DIANsight 249

C.2设置Nsight 249

C.3在Nsight中运行C++/OpenGL应用程序 250

参考资料 252

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包