《OpenGL编程指南》(原书第八版)被称为OpenGL红宝书,这不仅仅彰显了它在专业领域的声誉,也凸显了其内容的丰富性与实用价值,作为Khronos Group编写的官方指南,该书详尽地介绍了OpenGL 4.3版本的新特性,同时将经典函数功能与现代着色器技术巧妙融合,无论是初学者还是资深开发者,都能在本书中找到适合自己的学习路径,书中不仅深入讲解了顶点数据的处理、着色器的运用,还涵盖了图元装配、光栅化等核心概念,至于片元着色与帧缓存等进阶话题也毫不遗漏,标注清晰的章节安排与丰富的代码实例,使得读者能够逐步捕捉到OpenGL的各类技术要点,这无疑是OpenGL编程者进阶之旅中一盏明灯。
OpenGL编程指南由Khronos小组编写的官方指南,是OpenGL领域的权威著作,素有“OpenGL红宝书”的美誉。内容全面而深入,用清晰易懂的语言阐释OpenGL的各种技术细节、方法和最佳实践,帮助程序员走上OpenGL专家之路。
现代OpenGL软件接口允许开发人员通过2D和3D对象、颜色图像和可编程着色器来生成高质量的计算机图像,以及交互式程序。
OpenGL编程指南针对OpenGL 4.3版本的各种特性进行了全新组合和安排,并提供了有关OpenGL和OpenGL着色语言的最全面介绍。本书第一次将着色器的技术与经典的以函数功能为中心的技术介绍相结合。本书广泛使用了大量全新的内容和代码,将最新的OpenGL编程技术呈现在读者眼前。
本书清晰地讲解了OpenGL的相关功能与技术,包括几何对象顶点的传递,细分;几何着色器中的几何变换,观察矩阵;通过片元着色器来操作像素和纹理贴图;以及基于帧缓存对象和计算着色器的先进数据操作技术。
目录
- 推荐语
- 译者序
- 前 言
- 第1章 OpenGL概述
- 1.1 什么是OpenGL
- 1.2 初识OpenGL程序
- 1.3 OpenGL语法
- 1.4 OpenGL渲染管线
- 1.4.1 准备向OpenGL传输数据
- 1.4.2 将数据传输到OpenGL
- 1.4.3 顶点着色
- 1.4.4 细分着色
- 1.4.5 几何着色
- 1.4.6 图元装配
- 1.4.7 剪切
- 推荐语
- 译者序
- 前 言
- 第1章 OpenGL概述
- 1.1 什么是OpenGL
- 1.2 初识OpenGL程序
- 1.3 OpenGL语法
- 1.4 OpenGL渲染管线
- 1.4.1 准备向OpenGL传输数据
- 1.4.2 将数据传输到OpenGL
- 1.4.3 顶点着色
- 1.4.4 细分着色
- 1.4.5 几何着色
- 1.4.6 图元装配
- 1.4.7 剪切
- 1.4.8 光栅化
- 1.4.9 片元着色
- 1.4.10 逐片元的操作
- 1.5 第一个程序:深入分析
- 1.5.1 进入main()函数
- 1.5.2 OpenGL的初始化过程
- 1.5.3 第一次使用OpenGL进行渲染
- 第2章 着色器基础
- 2.1 着色器与OpenGL
- 2.2 OpenGL的可编程管线
- 2.3 OpenGL着色语言概述
- 2.3.1 使用GLSL构建着色器
- 2.3.2 存储限制符
- 2.3.3 语句
- 2.3.4 计算的不变性
- 2.3.5 着色器的预处理器
- 2.3.6 编译器的控制
- 2.3.7 全局着色器编译选项
- 2.4 数据块接口
- 2.4.1 uniform块
- 2.4.2 指定着色器中的uniform块
- 2.4.3 从应用程序中访问uniform块
- 2.4.4 buffer块
- 2.4.5 in/out块
- 2.5 着色器的编译
- 2.5.1 我们的LoadShaders()函数
- 2.6 着色器子程序
- 2.6.1 GLSL的子程序设置
- 2.6.2 选择着色器子程序
- 2.7 独立的着色器对象
- 第3章 OpenGL绘制方式
- 3.1 OpenGL图元
- 3.1.1 点
- 3.1.2 线、条带与循环线
- 3.1.3 三角形、条带与扇面
- 3.2 OpenGL缓存数据
- 3.2.1 创建与分配缓存
- 3.2.2 向缓存输入和输出数据
- 3.2.3 访问缓存的内容
- 3.2.4 丢弃缓存数据
- 3.3 顶点规范
- 3.3.1 深入讨论VertexAttrib-Pointer
- 3.3.2 静态顶点属性的规范
- 3.4 OpenGL的绘制命令
- 3.4.1 图元的重启动
- 3.5 多实例渲染
- 3.5.1 多实例的顶点属性
- 3.5.2 在着色器中使用实例计数器
- 3.5.3 多实例方法的回顾
- 第4章 颜色、像素和帧缓存
- 4.1 基本颜色理论
- 4.2 缓存及其用途
- 4.2.1 缓存的清除
- 4.2.2 缓存的掩码
- 4.3 颜色与OpenGL
- 4.3.1 颜色的表达与OpenGL
- 4.3.2 顶点颜色
- 4.3.3 光栅化
- 4.4 多重采样
- 4.4.1 采样着色
- 4.5 片元的测试与操作
- 4.5.1 剪切测试
- 4.5.2 多重采样的片元操作
- 4.5.3 模板测试
- 4.5.4 模板的例子
- 4.5.5 深度测试
- 4.5.6 融混
- 4.5.7 融混参数
- 4.5.8 控制融混的参数
- 4.5.9 融混方程
- 4.5.10 抖动
- 4.5.11 逻辑操作
- 4.5.12 遮挡查询
- 4.5.13 条件渲染
- 4.6 逐图元的反走样
- 4.6.1 线段的反走样
- 4.6.2 多边形的反走样
- 4.7 帧缓存对象
- 4.7.1 渲染缓存
- 4.7.2 创建渲染缓存的存储空间
- 4.7.3 帧缓存附件
- 4.7.4 帧缓存的完整性
- 4.7.5 帧缓存的无效化
- 4.8 多重渲染缓存的同步写入
- 4.8.1 选择颜色缓存来进行读写操作
- 4.8.2 双源融混
- 4.9 像素数据的读取和拷贝
- 4.10 拷贝像素矩形
- 第5章 视口变换、剪切与反馈
- 5.1 观察视图
- 5.1.1 视图模型
- 5.1.2 相机模型
- 5.1.3 正交视图模型
- 5.2 用户变换
- 5.2.1 矩阵乘法的回顾
- 5.2.2 齐次坐标
- 5.2.3 线性变换与矩阵
- 5.2.4 法线变换
- 5.2.5 OpenG