出版社: 机械工业出版社
原作名: OpenGL Programming Guide:the Official Guide to Learning OpenGl Version 4.5 with SPIR-V
译者: 王锐
出版年: 2017-8-1
页数: 664
定价: CNY 139.00
装帧: 平装
丛书: 华章程序员书库
ISBN: 9787111575115
内容简介 · · · · · ·
《OpenGL编程指南(原书第9版)》共12章,第1章概述OpenGL主要特性和功能;第2章讨论OpenGL中最主要的特性一一可编程着色器和SPIR—V;第3章介绍使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段;第4章阐释OpenGL对于颜色的处理过程;第5章介绍在一个二维计算机屏幕上表现三维场景的操作细节;第6章讨论将几何模型与图像结合来创建真实的、高质量的三维模型的方法;第7章介绍计算机图形的光照效果模拟方法;第8章介绍使用可编程着色器生成纹理和其他表面效果的方法细节;第9章解释OpenGL管理和细分几何表面的着色器功能;第10章介绍在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术;第11章介绍使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法;第12章介绍了最新的着色器阶段,...
《OpenGL编程指南(原书第9版)》共12章,第1章概述OpenGL主要特性和功能;第2章讨论OpenGL中最主要的特性一一可编程着色器和SPIR—V;第3章介绍使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段;第4章阐释OpenGL对于颜色的处理过程;第5章介绍在一个二维计算机屏幕上表现三维场景的操作细节;第6章讨论将几何模型与图像结合来创建真实的、高质量的三维模型的方法;第7章介绍计算机图形的光照效果模拟方法;第8章介绍使用可编程着色器生成纹理和其他表面效果的方法细节;第9章解释OpenGL管理和细分几何表面的着色器功能;第10章介绍在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术;第11章介绍使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法;第12章介绍了最新的着色器阶段,将通用计算的方法融合到OpenGL的渲染流水线当中。
作者简介 · · · · · ·
作者:(美国)约翰·克赛尼希(John Kessenich) (美国)格雷厄姆·塞勒斯(Graham Sellers) (美国)戴夫·施莱尔(Dave Shreiner) 译者:王锐
约翰·克赛尼希(John Kessenich), 来自Google的资深软件工程师、SPIR—V的创立者,自1999年以来就广泛参与到OpenGL和GLSL的Khronos标准开发当中。他是SPIR—V和GLSL标准说明书的主要编写者,并且开发了相关的着色器编译工具和解析器来考察相关标准的可移植性。
格雷厄姆·塞勒斯(Graham Sellers),来自AMD的软件架构和工程部门,是Khronos API的领导者之一,负责OpenGL ARB中的AMD功能部分。他对OpenGL和VulkanWJ核心标准和扩展都做出了贡献,并且持有图形学和图像处理方面的一些专利。
戴夫·...
作者:(美国)约翰·克赛尼希(John Kessenich) (美国)格雷厄姆·塞勒斯(Graham Sellers) (美国)戴夫·施莱尔(Dave Shreiner) 译者:王锐
约翰·克赛尼希(John Kessenich), 来自Google的资深软件工程师、SPIR—V的创立者,自1999年以来就广泛参与到OpenGL和GLSL的Khronos标准开发当中。他是SPIR—V和GLSL标准说明书的主要编写者,并且开发了相关的着色器编译工具和解析器来考察相关标准的可移植性。
格雷厄姆·塞勒斯(Graham Sellers),来自AMD的软件架构和工程部门,是Khronos API的领导者之一,负责OpenGL ARB中的AMD功能部分。他对OpenGL和VulkanWJ核心标准和扩展都做出了贡献,并且持有图形学和图像处理方面的一些专利。
戴夫·施莱尔(Dave Shreiner),一位有着25年经验的计算机图形工作者,编写和教授计算机图形API相关的课程,并且一直是数本Addison—Wesley出版的计算机图形学图书的核心作者,从事相关写作已有近10年之久。
目录 · · · · · ·
译者序
前言
致谢
第1章OpenGL概述
1.1什么是OpenGL
1.2初识OpenGL程序
1.3OpenGL语法
1.4OpenGL渲染管线
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.2OpenGL的初始化过程
1.5.3第一次使用OpenGL进行渲染
第2章着色器基础
2.1着色器与OpenGL
2.2OpenGL的可编程管线
2.3OpenGL着色语言概述
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.1uniform块
2.4.2指定着色器中的uniform块
2.4.3从应用程序中访问uniform块
2.4.4buffer块
2.4.5in/out块、位置和分量
2.5着色器的编译
2.6着色器子程序
2.6.1GLSL的子程序设置
2.6.2选择着色器于程序
2.7独立的着色器对象
2.8SPIR—V
2.8.1选择SPIR—V的理由
2.8.2SPIR—V与ODenGL
2.8.3使用GLSL在OpenGL中生成SPIR—V
2.8.4Glslang
2.8.5SPIR—V中包含了什么
第3章OpenGL绘制方式
3.1OpenGL图元
3.1.1点
3.1.2线、条带与循环线
3.1.3三角形、条带与扇面
3.2OpenGL缓存数据
3.2.1创建与分配缓存
3.2.2向缓存输入和输出数据
3.2.3访问缓存的内容
3.2.4丢弃缓存数据
3.3顶点规范
3.3.1深入讨论VertexAttribPointer
3.3.2静态顶点属性的规范
3.4OpenGL的绘制命令
3.4.1图元的重启动
3.4.2多实例渲染
第4章颜色、像素和片元
4.2缓存及其用途
4.2.1缓存的清除
4.2.2缓存的掩码
4.3颜色与OpenGL
4.3.1颜色的表达与OpenGL
4.3.2平滑数据插值
4.4片元的测试与操作
4.4.1剪切测试
4.4.2多重采样的片元操作
4.4.3模板测试
4.4.4模板的例子
4.4.5深度测试
4.4.6融混
4.4.7逻辑操作
4.4.8遮挡查询
4.4.9条件渲染
4.5多重采样
4.6逐图元的反走样
4.6.1线段的反走样
4.6.2多边形的反走样
4.7像素数据的读取和拷贝
4.8拷贝像素矩形
第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.5OpenGL矩阵
5.3OpenGL变换
5.3.1高级技巧:用户裁减和剪切
5.3.2OpenGL变换的控制
5.4transformfeedbaCk
5.4.1transformfeedback对象
5.4.2transformfeedback缓存
5.4.3配置transformfeedback的变量
5.4.4transformfeedback的启动和停止
5.4.5transformfeedback的示例:粒子系统
第6章纹理与帧缓存
6.1纹理综述
6.2基本纹理类型
6.3创建并初始化纹理
6.4指定纹理数据
6.4.1显式设置纹理数据
6.4.2从缓存中加载纹理
6.4.3从文件加载图像
6.4.4获取纹理数据
6.4.5纹理数据的排列布局
6.5纹理格式
6.5.1内部格式
6.5.2外部格式
6.6压缩纹理
6.7采样器对象
6.8纹理的使用
6.8.1纹理坐标
6.8.2排列纹理数据
6.8.3使用多重纹理
6.9复杂纹理类型
6.9.13D纹理
6.9.2纹理数组
6.9.3立方体映射纹理
6.9.4阴影采样器
6.9.5深度—模板纹理
6.9.6缓存纹理
6.10纹理视图
6.11滤波方式
6.11.1线性滤波
6.11.2使用和生成mipmap
6.11.3计算mipmap层次
6.11.4mipmap细节层次的控制
6.12高级纹理查询函数
6.12.1显式的细节层次控制
6.12.2显式的梯度设置
6.12.3带有偏移参数的纹理获取函数
6.12.4投影纹理
6.12.5在着色器中执行纹理查询
6.12.6纹素收集
6.12.7组合功能的特殊函数
6.13无绑定纹理
6.13.1纹理句柄
6.13.2纹理驻留
6.13.3采样无绑定纹理
6.14稀疏纹理
6.14.1稀疏纹理的数据提交
6.14.2稀疏纹理的页面
6.15点精灵
6.15.1纹理点精灵
6.15.2控制点的显示
6.16帧缓存对象
6.17渲染到纹理贴图
6.17.1抛弃渲染数据
6.17.2渲染缓存
6.17.3创建渲染缓存的存储空间
6.17.4帧缓存附件
6.17.5帧缓存的完整性
6.17.6帧缓存的无效化
6.17.7多重渲染缓存的同步写入
6.17.8选择颜色缓存来进行读写操作
6.17.9双源融混
6.18本章总结
6.18.1纹理回顾
6.18.2纹理的佳实践
第7章光照与阴影
7.1光照介绍
7.2经典光照模型
7.2.1不同光源类型的片元着色器
7.2.2将计算移到顶点着色器
7.2.3多个光源和材质
7.2.4光照坐标系统
7.2.5经典光照模型的局限
7.3光照模型进阶
7.3.1半球光照
7.3.2基于图像的光照
7.3.3球面光照
7.4阴影映射
7.4.1创建一张阴影贴图
7.4.2使用阴影贴图
第8章程序式纹理
8.1程序式纹理
8.1.1规则的花纹
8.1.2玩具球
8.1.3晶格
8.1.4程序式着色方法的总结
8.2凹凸贴图映射
8.2.1应用程序设置
8.2.2顶点着色器
8.2.3片元着色器
8.2.4法线贴图
8.3程序式纹理的反走样
8.3.1走样的来源
8.3.2避免走样问题
8.3.3提高分辨率
8.3.4高频率的反走样
8.3.5频率截断
8.3.6程序式反走样的总结
8.4噪声
8.4.1噪声的定义
8.4.2噪声纹理
8.4.3权衡
8.4.4一个简单的噪声着色器
8.4.5湍流
8.4.6大理石
8.4.7黄岗岩
8.4.8木纹
8.4.9噪声的总结
8.5更多信息
……
第9章细分着色器
第10章几何着色器
第11章内存
第12章计算着色器
附录A第三方支持库
附录BpenGLES与WebGL
附录C内置GLSL变量与函数
附录D状态变量
附录E齐次坐标与变换矩阵
附录F纹理、帧缓存与渲染缓存的浮点格式
附录GOpenGL程序的调试与优化
附录H缓存对象的布局
术语表
· · · · · · (收起)
原文摘录 · · · · · ·
丛书信息
· · · · · ·
喜欢读"OpenGL编程指南(原书第9版)"的人也喜欢 · · · · · ·
OpenGL编程指南(原书第9版)的书评 · · · · · · ( 全部 15 条 )
从第五章开始,翻译得语句不通顺
这篇书评可能有关键情节透露
很多地方感觉语句不通顺,现在找出一个例子。 比如下面这句话,看得我是一头雾水:$5.2.1:尽管光源所发出的光具有相同分布的概率,但它的环境,散射和镜面成分可能不同。 这都是些什么玩意?幸好我找到了原书的电子版,这句话原来是这样的: Although a light source delivers... (展开)书是好书,但是译者不是个负责的译者
好书。不愧GL红宝书
> 更多书评 15篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部12 )
-
机械工业出版社 (2010)8.3分 185人读过
-
Addison-Wesley Professional (2009)7.2分 12人读过
-
人民邮电出版社 (2005)8.4分 92人读过
-
机械工业出版社 (2008)8.4分 37人读过
以下书单推荐 · · · · · · ( 全部 )
- 计算机编程 (刺猬的温驯)
- Unity (神悦)
- Game Programer (Hkiller)
- 图形学和游戏开发 (zxx43)
- 图形学 (bluebells)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有42人想读,手里有一本闲着?
订阅关于OpenGL编程指南(原书第9版)的评论:
feed: rss 2.0
2 有用 道满 2019-01-23 13:55:05
这书印刷错误太多了,翻译的也很一般,还是要配合图形学的书来看,就是本API手册而已
0 有用 momo 2022-12-21 11:45:26 江苏
已读
0 有用 六朝烟雨 2021-06-07 16:58:22
读到光照计算,就迷失了,要读第二遍。
1 有用 散关清渭 2018-10-06 11:54:13
在第八版的基础上有一些增补 更加适应新系统 结构上没太多变化 翻译依旧是硬伤 感觉译者并不是很理解计算机图形学&OpenGL
0 有用 不要在意这些细 2019-08-02 13:30:20
牛逼,但看的我头疼
0 有用 momo 2022-12-21 11:45:26 江苏
已读
1 有用 四月 2021-08-09 19:31:33
醍醐灌顶
0 有用 zhu 2021-07-08 16:33:34
错误百出
0 有用 六朝烟雨 2021-06-07 16:58:22
读到光照计算,就迷失了,要读第二遍。
0 有用 足协程序员 2021-03-25 10:38:18
这种翻译水平,我去翻译都比它们翻译的牛逼多了