计算机
类型
8.3
豆瓣评分
可以朗读
语音朗读
249千字
字数
2020-02-01
发行日期
展开全部
主编推荐语
C++与OpenGL 3D编程技术,适用多平台,实战GLSL。
内容简介
本书按部就班地介绍C++和OpenGL的3D图形学编程技术,包含了OpenGL 4.0+shader技能,适用于Windows和Mac多种平台。通过完全可以运行的代码来讲解所有的知识,还有针对GLSL编程管道的详细介绍和案例。
目录
- 版权信息
- 内容提要
- 前言
- 目标读者
- 如何使用本书
- 配套资源
- 教师辅助
- 致谢
- 勘误
- 参考资料
- 作者简介
- 资源与支持
- 配套资源
- 提交勘误
- 与我们联系
- 关于异步社区和异步图书
- 第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 模型-视图和透视矩阵
- 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 阴影贴图(中间步骤)——将Z缓冲区复制到纹理
- 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 控制细节级别(LOD)
- 补充说明
- 习题
- 第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 噪声应用——特殊效果
- 补充说明
- 习题
- 附录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 Macintosh(macOS)平台上的安装与设置
- B.1 安装库和开发环境
- B.1.1 准备并安装依赖库
- B.1.2 准备开发环境
- B.2 修改Mac的C++ / OpenGL / GLSL应用程序代码
- B.2.1 修改C++代码
- B.2.2 修改GLSL代码
- B.2.3 补充说明
- 附录C 使用Nsight图形调试器
- C.1 关于NVIDIANsight
- C.2 设置Nsight
- C.3 在Nsight中运行C++/OpenGL应用程序
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。