类似推荐
编辑推荐
本书以OpenGL和C++作为工具,介绍计算机图形学编程的相关内容。
内容简介
本书以OpenGL和C++作为工具,介绍计算机图形学编程的相关内容。全书从图形编程的基础和准备工作讲起,介绍了OpenGL图像管线、3D模型、纹理贴图、光照、阴影、天空和背景、增强表面细节、曲面细分、几何着色器、水面模拟、光线追踪等计算机图形学编程技术。本书各章配备了不同形式的习题,供读者巩固所学知识。本书适合作为高等院校计算机科学专业的计算机图形编程课程的教材或辅导书,也适合对计算机图形编程感兴趣的读者自学。
作者简介
作者V.斯科特·戈登,加利福尼亚州立大学萨克拉门托分校教授,撰写及合著出版物30多部,涉及人工智能、神经网络、进化计算、计算机图形学、软件工程、视频和策略游戏编程,以及计算机科学教育等多个领域。戈登博士在科罗拉多州立大学获得博士学位。
章节目录
版权信息
内容提要
译者简介
译者序
前言
作者简介
第1章 入门
1.1 语言和库
1.1.1 C++
1.1.2 OpenGL / GLSL
1.1.3 窗口管理库
1.1.4 扩展库
1.1.5 数学库
1.1.6 纹理图像加载库
1.1.7 可选库
1.2 安装和配置
参考资料
第2章 OpenGL图像管线
2.1 OpenGL管线
2.1.1 C++/OpenGL应用程序
2.1.2 顶点着色器和片段着色器
2.1.3 曲面细分着色器
2.1.4 几何着色器
2.1.5 栅格化
2.1.6 片段着色器
2.1.7 像素操作
2.2 检测OpenGL和GLSL错误
2.3 从文件中读取GLSL源代码
2.4 从顶点构建对象
2.5 场景动画
2.6 C++代码文件结构
补充说明
习题
参考资料
第3章 数学基础
3.1 3D坐标系
3.2 点
3.3 矩阵
3.4 变换矩阵
3.4.1 平移矩阵
3.4.2 缩放矩阵
3.4.3 旋转矩阵
3.5 向量
3.5.1 点积的应用
3.5.2 叉积的应用
3.6 局部空间和世界空间
3.7 视觉空间和合成相机
3.8 投影矩阵
3.8.1 透视投影矩阵
3.8.2 正射投影矩阵
3.9 LookAt矩阵
3.10 用来构建矩阵变换的GLSL函数
补充说明
习题
参考资料
第4章 管理3D图形数据
4.1 缓冲区和顶点属性
4.2 统一变量
4.3 顶点属性插值
4.4 MV矩阵和透视矩阵
4.5 我们的第一个3D程序—— 一个3D立方体
4.6 渲染一个对象的多个副本
实例化
4.7 在同一个场景中渲染多个不同模型
4.8 矩阵栈
4.9 应对“Z冲突”伪影
4.10 图元的其他选项
4.11 性能优先的编程方法
4.11.1 尽量减少动态内存空间分配
4.11.2 预先计算透视矩阵
4.11.3 背面剔除
补充说明
习题
参考资料
第5章 纹理贴图
5.1 加载纹理图像文件
5.2 纹理坐标
5.3 创建纹理对象
5.4 构建纹理坐标
5.5 将纹理坐标载入缓冲区
5.6 在着色器中使用纹理:采样器变量和纹理单元
5.7 纹理贴图:示例程序
5.8 多级渐远纹理贴图
5.9 各向异性过滤
5.10 环绕和平铺
5.11 透视变形
5.12 材质——更多OpenGL细节
补充说明
习题
参考资料
第6章 3D模型
6.1 程序构建模型——构建一个球体
6.2 OpenGL索引——构建一个环面
6.2.1 环面
6.2.2 OpenGL中的索引
6.3 加载外部构建的模型
补充说明
习题
参考资料
第7章 光照
7.1 光照模型
7.2 光源
7.3 材质
7.4 ADS光照计算
7.5 实现ADS光照
7.5.1 Gouraud着色(双线性光强插值法)
7.5.2 Phong着色
7.6 结合光照与纹理
补充说明
历史记录
习题
参考资料
第8章 阴影
8.1 阴影的重要性
8.2 投影阴影
8.3 阴影体
8.4 阴影贴图
8.4.1 阴影贴图(第1轮)——从光源位置“绘制”物体
8.4.2 阴影贴图(中间步骤)——将深度缓冲区复制到纹理
8.4.3 阴影贴图(第2轮)——渲染带阴影的场景
8.5 阴影贴图示例
8.6 阴影贴图的伪影
8.7 柔和阴影
8.7.1 现实世界中的柔和阴影
8.7.2 生成柔和阴影——百分比邻近滤波(PCF)
8.7.3 柔和阴影/PCF程序
补充说明
习题
参考资料
第9章 天空和背景
9.1 天空盒
9.2 穹顶
9.3 实现天空盒
9.3.1 从头开始构建天空盒
9.3.2 使用OpenGL立方体贴图
9.4 环境贴图
补充说明
习题
参考资料
第10章 增强表面细节
10.1 凹凸贴图
10.2 法线贴图
10.3 高度贴图
补充说明
习题
参考资料
第11章 参数曲面
11.1 二次贝塞尔曲线
11.2 三次贝塞尔曲线
11.3 二次贝塞尔曲面
11.4 三次贝塞尔曲面
补充说明
习题
参考资料
第12章 曲面细分
12.1 OpenGL中的曲面细分
12.2 贝塞尔曲面细分
12.3 地形、高度图的细分
12.4 控制细节级别
补充说明
习题
参考资料
第13章 几何着色器
13.1 OpenGL中的逐个图元处理
13.2 修改图元
13.3 删除图元
13.4 添加图元
13.5 更改图元类型
补充说明
习题
参考资料
第14章 其他技术
14.1 雾
14.2 复合、混合、透明度
14.3 用户定义剪裁平面
14.4 3D纹理
14.5 噪声
14.6 噪声应用——大理石
14.7 噪声应用——木材
14.8 噪声应用——云
14.9 噪声应用——特殊效果
补充说明
习题
参考资料
第15章 模拟水面
15.1 游泳池表面和底部的几何设定
15.2 添加水面反射和折射
15.3 添加水面波浪
15.4 更多修正
15.5 为水的流动添加动画
15.6 水下焦散
补充说明
习题
参考资料
第16章 光线追踪和计算着色器
16.1 计算着色器
16.1.1 编译及使用计算着色器
16.1.2 计算着色器中的并行计算
16.1.3 工作组
16.1.4 工作组详解
16.1.5 工作组的限制
16.2 光线投射
16.2.1 定义2D纹理图像
16.2.2 构建和显示光线投射图像
16.2.3 光线与球面的交点
16.2.4 轴对齐的光线与立方体的交点
16.2.5 无光照的简单光线投射的输出
16.2.6 添加ADS光照
16.2.7 添加阴影
16.2.8 非轴对齐的光线与立方体的交点
16.2.9 确定纹理坐标
16.2.10 平面交点和过程纹理
16.3 光线追踪
16.3.1 反射
16.3.2 折射
16.3.3 结合反射、折射和纹理
16.3.4 增加光线数
16.3.5 通用解决方案
16.3.6 更多示例
16.3.7 透明对象的颜色混合
补充说明
习题
参考资料
第17章 3D眼镜和VR头显的立体视觉
17.1 双目视图和投影矩阵
17.2 色差式渲染
17.3 并排式渲染
17.4 修正头显的镜头畸变
17.5 简单的测试硬件配置
补充说明
习题
参考资料
附录A PC(Windows)上的安装与设置
A.1 安装库和开发环境
A.1.1 安装开发环境
A.1.2 安装OpenGL / GLSL
A.1.3 准备GLFW
A.1.4 准备GLEW
A.1.5 准备GLM
A.1.6 准备SOIL2
A.1.7 准备共享的lib和include文件夹
A.2 在MS Visual Studio中开发和部署OpenGL项目
创建Visual Studio自定义项目模板
参考资料
附录B Mac(macOS)平台上的安装与设置
B.1 安装库和开发环境
B.1.1 准备并安装依赖库
B.1.2 准备开发环境
B.2 修改Mac的C++ / OpenGL / GLSL应用程序代码
B.2.1 修改C++代码
B.2.2 修改GLSL代码
补充说明
参考资料
附录C 使用Nsight图形调试器
C.1 关于NVIDIA Nsight
C.2 设置Nsight
C.3 在Nsight中运行C++/OpenGL应用程序
参考资料
计算机图形学编程(使用OpenGL和C++)(第2版)是2022年由人民邮电出版社出版,作者[美] V.斯科特·戈登。
得书感谢您对《计算机图形学编程(使用OpenGL和C++)(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。