基本信息
- 原书名:OpenGL Programming Guide:The Off?icial Guide to Learning OpenGL, Version 4.5 with SPIR-V
- 作者: (美)约翰·克赛尼希(John Kessenich)
- 译者: 王锐
- 丛书名: 华章程序员书库
- 出版社:机械工业出版社
- ISBN:9787111575115
- 上架时间:2017-8-7
- 出版日期:2017 年8月
- 开本:16开
- 版次:1-1
- 所属分类:计算机 > 图形图像、多媒体、网页制作 > OpenGL

内容简介
计算机书籍
本书详细介绍了OpenGL4.5(包括4.4、SPIR—V和扩展功能),以及OpenGL着色语言的方方面面。全书共12章:第1章概述OpenGL主要特性和功能;第2章讨论OpenGL中主要的特性——可编程着色器;第3章介绍使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段;第4章阐释OpenGL对于颜色的处理过程,包括像素的处理、缓存的管理以及像素处理相关的渲染技术;第5章介绍在一个二维计算机屏幕上表现三维场景的操作细节;第6章讨论将几何模型与图像结合来创建真实的、高质量的三维模型的方法;第7章介绍计算机图形的光照效果模拟方法;第8章介绍使用可编程着色器生成纹理和其他表面效果的方法细节;第9章解释OpenGL管理和细分几何表面的着色器功能;第10章介绍在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术;第11章介绍使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法;第12章介绍了新的着色器阶段,将通用计算的方法融合到OpenGL的渲染流水线当中。
目录
译者序
前 言
致 谢
第1章 OpenGL概述 1
1.1 什么是OpenGL 1
1.2 初识OpenGL程序 2
1.3 OpenGL语法 6
1.4 OpenGL渲染管线 7
1.4.1 准备向OpenGL传输数据 8
1.4.2 将数据传输到OpenGL 8
1.4.3 顶点着色 9
1.4.4 细分着色 9
1.4.5 几何着色 9
1.4.6 图元装配 9
1.4.7 剪切 9
1.4.8 光栅化 9
1.4.9 片元着色 10
1.4.10 逐片元的操作 10
1.5 第一个程序:深入分析 11
译者序
随着图形硬件的飞速演进,以及虚拟现实(VR)和增强现实(AR)技术在这几年的火热发展,支持可视化编辑、多种脚本语言以及各种逼真渲染效果和优化算法的商业图形引擎(例如Unity和Unreal)开始逐渐占据主要的市场份额。众多开发者开始更多地着眼于如何实现优质的内容,而不是纠结于底层接口的封装、渲染批次的优化,或者光影效果的叠加与取舍。强大的中间层引擎解放了更多人的头脑,让他们不必把时间消耗在大量的底层逻辑处理、状态切换、数据管理以及跨平台测试上—这显然是一件好事,但是这也带来了一个新的话题,学习和熟悉底层图形接口—OpenGL或者DirectX,包括新的Vulkan,是不是已经不重要了?
笔者以为不然。事实上,大多数Unity和Unreal开发者经常遇到的那些问题,例如Draw Call的优化、纹理的分类和特性、相机参数的管理、着色器的编写等,依然都需要回归到最本质的图形学问题的范畴,回归到OpenGL接口所定义和执行的阶段。对于一名初学者而言,具备完善的可视化界面和快速搭建场景能力的商业引擎是一个入门的不错阶梯。他们可以避开枯燥的接口和数学概念的学习,快乐地做一些自己想要做的内容,例如简易的电脑游戏,或者一个可以用VR头盔观看的全景画面。在那之后,他们有必要带着一些也许是一知半解的理念回归,重新去理解底层接口和定义,这些实现方案与底层硬件密不可分的关系,以及与他们曾经遇到的问题的千丝万缕的联系。这样的学习过程才是事半功倍的,也是一名开发者从爱好和浅显应用开发的阶段迈向资深图形工作者阶段的重要历程。而从繁花乱象中返璞归真,再去理解图形学中各种晦涩术语和复杂公式的时候,想必很多读者也会有一番全新的感受了。希望到那个时候,本书将会再次成为你的良师益友。
本书第9版的翻译和修订工作由王锐完成,并且根据章节需要重新翻译了第6章和附录A的部分。参与过本书前一版(第8版)翻译的还有郭华、苏明南、张静、王凯、陈节、龙海鹰和毕玉玲。感谢他们的辛苦付出,也感谢机械工业出版社华章公司的编辑老师们的信任与帮助!
王锐
2017年4月
前言
本书的主要内容
本书中包含以下章节:
第1章对OpenGL可以完成的工作进行了概览。它还提供了一个简单的OpenGL程序并解释了一些本质性的编程细节,它们可能会用于后续的章节中。
第2章讨论了OpenGL中最主要的特性—着色语言和SPIR-V,并介绍了它们在应用程序中的初始化和使用方法。
第3章介绍了使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段。
第4章解释了OpenGL对于颜色的处理过程,包括像素的处理、缓存的管理,以及像素处理相关的渲染技术。
第5章给出了将三维场景表现在一个二维计算机屏幕上的操作细节,包括各种几何投影类型的数学原理和着色器操作。
第6章讨论了将几何模型与图像结合来创建真实的、高质量的三维模型的方法。
第7章介绍了计算机图形的光照效果模拟方法,主要是这类方法在可编程着色器中的实现。
第8章介绍了使用可编程着色器生成纹理和其他表面效果的方法细节,从而增强真实感和其他的渲染特效。
第9章解释了OpenGL管理和细分几何表面的着色器功能。
第10章介绍了在OpenGL渲染流水线中使用着色器进行几何体图元修改的一种特殊技术。
第11章介绍了使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法。
第12章介绍了最新的着色器阶段,将通用计算的方法融合到OpenGL的渲染管线当中。
此外,我们也提供了一系列作为参考的附录内容。
附录A介绍了本书示例程序中用到的一些第三方支持库。GLFW是可移植的,它可以用来实现更简短也更加可读的代码示例。而GL3W负责处理应用程序与OpenGL函数之间的绑定关系。
附录B介绍了OpenGL体系中的其他API,包括用于嵌入式和移动平台系统的OpenGL ES,以及用于Web浏览器内的交互式3D应用程序的WebGL。
附录C提供了有关OpenGL着色语言的详细参考文档。
附录D列出了OpenGL维护的所有状态变量,并介绍了获取其值的方法。
媒体评论
—Mike Bailey,俄勒冈州立大学教授
“最近出版的这本红宝书依然遵循了OpenGL的伟大传统:不断进化让它拥有了更为强大的力量和效率。书中包含了最前沿的接口标准和新特性的内容,以及对于应用在各行各业的现代OpenGL技术的脚踏实地的讲解。红宝书依然是我的公司中所有新员工的必备参考书。还有其他任何一本书可以说的上是必备的指南书吗?它让我喜极而泣,让我觉得无与伦比—我会一遍又一遍地阅读这本书。”
—Bob Kuehne,Blue Newt Software总裁
“OpenGL在这20年来已经有了巨大的发展。这次的修订版是一本学习使用现代OpenGL的实用指南书。现代OpenGL侧重于着色器的使用,而这一版的编程指南准确地对应了这一点,它在第2章对着色器进行了深入的叙述。而后继的章节里,它继续深入到方方面面,从纹理到计算着色器。无论你对OpenGL了解多少,或者你准备深入到何种程度,只要你准备开始编写OpenGL程序,你就一定需要《OpenGL编程指南》这本手边书。”
—Marc Olano,UMBC副教授
“如果你正在寻找有关OpenGL最新版的编程权威指南,那么你已经找到了。本书的作者深入参与了OpenGL 4.3标准的创立,而这本书中恰恰包含了你所需要了解的一切,它将使用一种清晰、富有逻辑性和见解性的方式,介绍这个行业领先的API标准的最新知识。”
—Neil Trevett,Khronos Group总裁