热门搜索: 中考 高考 考试 开卷17
服务电话 024-96192/23945006
 

计算机图形学编程(使用OpenGL和C++)(第2版)

编号:
wx1202768269
销售价:
¥77.23
(市场价: ¥89.80)
赠送积分:
77
数量:
   
商品介绍

元宇宙中的景色是如何搭建的?背后离不开计算机图形学的发展和成熟。
本书两位作者都是美国加利福尼亚州立大学的计算机教授,具有丰富的教学经验。
从立方体到3D模型,从水面到VR,从头实现属于你自己的景色。
·提供模型、图像文件、纹理文件、贴图文件、图表等配套资源
·提供教学PPT、章末习题代码以及课程大纲等教师资源

本书以OpenGL和C++作为工具,介绍计算机图形学编程的相关内容。全书从图形编程的基础和准备工作讲起,介绍了OpenGL图像管线、3D模型、纹理贴图、光照、阴影、天空和背景、增强表面细节、曲面细分、几何着色器、水面模拟、光线追踪等计算机图形学编程技术。本书各章配备了不同形式的习题,供读者巩固所学知识。

本书适合作为高等院校计算机科学专业的计算机图形编程课程的教材或辅导书,也适合对计算机图形编程感兴趣的读者自学。

V.斯科特·戈登(V. Scott Gordon),加利福尼亚州立大学萨克拉门托分校教授,撰写及合著出版物30多部,涉及人工智能、神经网络、进化计算、计算机图形学、软件工程、视频和策略游戏编程,以及计算机科学教育等多个领域。戈登博士在科罗拉多州立大学获得博士学位。

约翰·克莱维吉(John Clevenger ),加利福尼亚州立大学萨克拉门托分校教授,拥有超过40年的教学经验,教学内容包括高级图形学、游戏架构、操作系统、VLSI芯片设计、系统仿真等主题。他是国际大学生程序设计竞赛(ICPC)的技术总监,负责监督编程竞赛支持系统PC^2的持续开发。克莱维吉博士在加州大学戴维斯分校获得博士学位。

第 1 章 入门 1
1.1  语言和库  1
1.1.1  C++  1
1.1.2  OpenGL / GLSL  2
1.1.3  窗口管理库  2
1.1.4  扩展库  2
1.1.5  数学库  3
1.1.6  纹理图像加载库  3
1.1.7  可选库  3
1.2  安装和配置  3
参考资料  4
第  2 章 OpenGL 图像管线  5
2.1  OpenGL 管线  5
2.1.1  C++/OpenGL 应用程序  6
2.1.2  顶点着色器和片段着色器  8
2.1.3  曲面细分着色器  11
2.1.4  几何着色器  11
2.1.5  栅格化  12
2.1.6  片段着色器  13
2.1.7  像素操作  13
2.2  检测 OpenGL 和 GLSL 错误  14
2.3  从文件中读取 GLSL 源代码  16
2.4  从顶点构建对象  17
2.5  场景动画  18
2.6  C++代码文件结构  19
补充说明  20
习题  21
参考资料  21
第  3 章 数学基础  22
3.1  3D 坐标系统  22
3.2  点  22
3.3  矩阵  22
3.4  变换矩阵  24
3.4.1  平移矩阵  24
3.4.2  缩放矩阵  25
3.4.3  旋转矩阵  25
3.5  向量  26
3.5.1  点积的应用  27
3.5.2  叉积的应用  28
3.6  局部和世界空间  28
3.7  视觉空间和合成相机  28
3.8  投影矩阵  30
3.8.1  透视投影矩阵  30
3.8.2  正射投影矩阵  31
3.9  LookAt 矩阵  32
3.10  用来构建矩阵变换的 GLSL
函数  32
补充说明  33
习题  34
参考资料  34
第  4 章 管理 3D 图形数据  35
4.1  缓冲区和顶点属性  35
4.2  统一变量  37
4.3  顶点属性插值  37
4.4  模型-视图和透视矩阵  38
4.5  我们的第 一个3D程序—— 一个3D立方体  39
4.6  渲染一个对象的多个副本  45
实例化  45
4.7  在同一个场景中渲染多个不同模型  47
4.8  矩阵栈  49
4.9  应对“Z 冲突”伪影  53
4.10  图元的其他选项  54
4.11  性能优先的编程方法  55
4.11.1  尽量减少动态内存空间分配  55
4.11.2  预先计算透视矩阵  55
4.11.3  背面剔除  56
补充说明  58
习题  58
参考资料  59
第  5 章 纹理贴图  60
5.1  加载纹理图像文件  60
5.2  纹理坐标  61
5.3  创建纹理对象  62
5.4  构建纹理坐标  62
5.5  将纹理坐标载入缓冲区  63
5.6  在着色器中使用纹理:采样器变量和纹理单元  64
5.7  纹理贴图:示例程序  64
5.8  多级渐远纹理贴图  66
5.9  各向异性过滤  69
5.10  环绕和平铺  69
5.11  透视变形  70
5.12  材质—更多OpenGL细节  71
补充说明  72
习题  72
参考资料  72
第  6 章 3D 模型  74
6.1  程序构建模型—构建一个球体  74
6.2  OpenGL 索引—构建一个环面  79
6.2.1  环面  79
6.2.2  OpenGL 中的索引  79
6.3  加载外部构建的模型  84
补充说明  90
习题  90
参考资料  90
第  7 章 光照  91
7.1  光照模型  91
7.2  光源  91
7.3  材质  93
7.4  ADS 光照计算  95
7.5  实现 ADS 光照  96
7.5.1  Gouraud 着色(双线性光强插值法)  97
7.5.2  Phong 着色  101
7.6  结合光照与纹理  105
补充说明  106
历史记录  106
习题  107
参考资料  107
第  8 章 阴影  108
8.1  阴影的重要性  108
8.2  投影阴影  108
8.3  阴影体  109
8.4  阴影贴图  109
8.4.1  阴影贴图(第 1 轮)—— 从光源位置“绘制”物体  110
8.4.2  阴影贴图(中间步骤)——将 Z 缓冲区复制到纹理  111
8.4.3  阴影贴图(第 2 轮)—— 渲染带阴影的场景  111
8.5  阴影贴图示例  113
8.6  阴影贴图的伪影  117
8.7  柔和阴影  119
8.7.1  现实世界中的柔和阴影  119
8.7.2  生成柔和阴影——百分比邻近滤波(PCF)  120
8.7.3  柔和阴影/PCF 程序  122
补充说明  124
习题  124
参考资料  125
第  9 章 天空和背景  126
9.1  天空盒  126
9.2  穹顶  127
9.3  实现天空盒  128
9.3.1  从头开始构建天空盒  128
9.3.2  使用 OpenGL 立方体贴图  131
9.4  环境贴图  133
补充说明  136
习题  137
参考资料  137
第  10 章 增强表面细节  138
10.1  凹凸贴图  138
10.2  法线贴图  139
10.3  高度贴图  145
补充说明  146
习题  147
参考资料  147
第  11 章 参数曲面  148
11.1  二次贝塞尔曲线  148
11.2  三次贝塞尔曲线  149
11.3  二次贝塞尔曲面  151
11.4  三次贝塞尔曲面  152
补充说明  153
习题  153
参考资料  153
第  12 章 曲面细分  154
12.1  OpenGL 中的曲面细分  154
12.2  贝塞尔曲面细分  158
12.3  地形、高度图的细分  162
12.4  控制细节级别  166
补充说明  168
习题  168
参考资料  168
第  13 章 几何着色器  169
13.1  OpenGL 中的逐个图元处理  169
13.2  修改图元  170
13.3  删除图元  172
13.4  添加图元  173
13.5  更改图元类型  175
补充说明  176
习题  176
参考资料  176
第  14 章 其他技术  177
14.1  雾  177
14.2  复合、混合、透明度  178
14.3  用户定义剪裁平面  182
14.4  3D 纹理  183
14.5  噪声  187
14.6  噪声应用——大理石  190
14.7  噪声应用——木材  193
14.8  噪声应用——云  195
14.9  噪声应用——特殊效果  198
补充说明  199
习题  200
参考资料  200
第  15 章 模拟水面  202
15.1  游泳池表面和底部的几何设定  202
15.2  添加水面反射和折射  205
15.3  添加水面波浪  212
15.4  更多修正  213
15.5  为水的流动添加动画  216
15.6  水下焦散  218
补充说明  219
习题  220
参考资料  220
第  16 章 光线追踪和计算着色器  221
16.1  计算着色器  222
16.1.1  编译及使用计算着色器  222
16.1.2  计算着色器中的并行计算  222
16.1.3  工作组  225
16.1.4  工作组详解  225
16.1.5  工作组的  227
16.2  光线投射  227
16.2.1  定义 2D 纹理图像  228
16.2.2  构建和显示光线投射图像  228
16.2.3  光线与球面的交点  233
16.2.4  轴对齐的光线与立方体的交点  234
16.2.5  无光照的简单光线投射的输出  235
16.2.6  添加 ADS 光照  235
16.2.7  添加阴影  237
16.2.8  非轴对齐的光线与立方体的交点  238
16.2.9  确定纹理坐标  239
16.2.10  平面交点和过程纹理  244
16.3  光线追踪  246
16.3.1  反射  246
16.3.2  折射  247
16.3.3  结合反射、折射和纹理  249
16.3.4  增加光线数  250
16.3.5  通用解决方案  254
16.3.6  更多示例  257
16.3.7  透明对象的颜色混合  260
补充说明  264
习题  265
参考资料  265
第  17 章 3D 眼镜和 VR 头显的立体视觉  267
17.1  双目视图和投影矩阵  268
17.2  色差式渲染  269
17.3  并排式渲染  270
17.4  修正头显的镜头畸变  271
17.5  简单的测试硬件配置  276
补充说明  277
习题  277
参考资料  277
附录  A PC(Windows)上的安装与设置  279
A.1  安装库和开发环境  279
A.1.1  安装开发环境  279
A.1.2  安装 OpenGL/GLSL  279
A.1.3  准备 GLFW  279
A.1.4  准备 GLEW  280
A.1.5  准备 GLM  280
A.1.6  准备 SOIL2  280
A.1.7  准备共享的 lib 和include 文件夹  280
A.2  在 MS Visual Studio 中开发和部署 OpenGL 项目  281
创建  Visual Studio 自定义项目模板  281
参考资料  282
附录  B Mac(macOS)平台上的安装与设置  283
B.1  安装库和开发环境  283
B.1.1  准备并安装依赖库  283
B.1.2  准备开发环境  284
B.2  修改 Mac 的 C++/OpenGL/ GLSL 应用程序代码  285
B.2.1  修改 C++代码  285
B.2.2  修改 GLSL 代码  286
参考资料  287
附录  C 使用 Nsight 图形调试器  288
C.1  关于 NVIDIA Nsight  288
C.2  设置 Nsight  288
C.3  在 Nsight 中运行 C++/OpenGL
应用程序  289
参考资料  291

商品参数
基本信息
出版社 人民邮电出版社
ISBN 9787115596338
条码 9787115596338
编者 [美]V.斯科特·戈登(V. Scott Gordon) ,约翰·克莱维吉(John Clevenger)
译者 魏广程,沈瞳
出版年月 2022-12-01 00:00:00.0
开本 16开
装帧 平装
页数 291
字数 498
版次 2
印次 1
纸张
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]