• 计算机图形学编程(使用OpenGL和C++)(第2版)
  • 计算机图形学编程(使用OpenGL和C++)(第2版)
21年品牌 40万+商家 超1.5亿件商品

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

9787115596338

22.45 2.5折 89.8 全新

库存2件

北京朝阳
认证卖家担保交易快速发货售后保障

作者[美]V.斯科特·戈登(V. Scott Gordon);约翰·克莱维吉(Jo

出版社人民邮电出版社

出版时间2022-12

版次2

印刷时间2023-12

印次1

印数1千册

装帧平装

货号13-1

上书时间2024-04-23

书中书

九年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 [美]V.斯科特·戈登(V. Scott Gordon);约翰·克莱维吉(Jo
  • 出版社 人民邮电出版社
  • 出版时间 2022-12
  • 版次 2
  • ISBN 9787115596338
  • 定价 89.80元
  • 装帧 平装
  • 开本 16开
  • 页数 291页
  • 字数 498千字
【内容简介】
本书以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
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP