登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』OpenGL编程指南(原书第8版,由Khronos小组编写的官方指南,OpenGL领域的权威著作,素有“OpenGL红宝书”美誉!内容全面而深入,帮助程序员走上OpenGL专家之路)

書城自編碼: 2477031
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: [美] Dave Shreiner 等
國際書號(ISBN): 9787111481133
出版社: 机械工业出版社
出版日期: 2014-11-01
版次: 1 印次: 1
頁數/字數: 668/
書度/開本: 16开 釘裝: 平装

售價:NT$ 1161

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
世界服饰艺术史
《 世界服饰艺术史 》

售價:NT$ 1445.0
海外中国研究·卿本著者:明清女性的性别身份、能动主体和文学书写
《 海外中国研究·卿本著者:明清女性的性别身份、能动主体和文学书写 》

售價:NT$ 381.0
日耳曼通识译丛:近代哲学:从笛卡尔到康德
《 日耳曼通识译丛:近代哲学:从笛卡尔到康德 》

售價:NT$ 150.0
我的灵魂是日落时分空无一人的旋转木马:聂鲁达诗精选
《 我的灵魂是日落时分空无一人的旋转木马:聂鲁达诗精选 》

售價:NT$ 381.0
春日喜你
《 春日喜你 》

售價:NT$ 257.0
我们八月见
《 我们八月见 》

售價:NT$ 215.0
东线炼狱 : 德国反坦克兵的东线日记 : 1941—1942
《 东线炼狱 : 德国反坦克兵的东线日记 : 1941—1942 》

售價:NT$ 439.0
献给皇帝的礼物:Wedgwood瓷器王国与漫长的十八世纪
《 献给皇帝的礼物:Wedgwood瓷器王国与漫长的十八世纪 》

售價:NT$ 594.0

建議一齊購買:

+

NT$ 656
《 OpenGL ES 3.0编程指南(原书第2版) 》
+

NT$ 801
《 计算机图形学(第四版) 》
+

NT$ 441
《 OpenGL ES应用开发实践指南:Android卷(资深Android开发专家多年实践经验结晶,全面和深入讲解OpenGL三维游戏和动态壁纸开发) 》
+

NT$ 1152
《 游戏引擎架构(迈向现代游戏之路完美入口 业界万众企盼 隆重推荐) 》
+

NT$ 891
《 CUDA并行程序设计:GPU编程指南(CUDA社区技术总监撰写,英伟达官方认证工程师翻译) 》
+

NT$ 1026
《 OpenGL超级宝典(第5版)(最权威的OpenGL蓝宝书,针对OpenGL 3.3全面升 ) 》
內容簡介:
由Khronos小组编写的官方指南,是OpenGL领域的权威著作,素有“OpenGL红宝书”的美誉。内容全面而深入,用清晰易懂的语言阐释OpenGL的各种技术细节、方法和最佳实践,帮助程序员走上OpenGL专家之路。
现代OpenGL软件接口允许开发人员通过2D和3D对象、颜色图像和可编程着色器来生成高质量的计算机图像,以及交互式程序。
本书针对OpenGL 4.3版本的各种特性进行了全新组合和安排,并提供了有关OpenGL和OpenGL着色语言的最全面介绍。本书第一次将着色器的技术与经典的以函数功能为中心的技术介绍相结合。本书广泛使用了大量全新的内容和代码,将最新的OpenGL编程技术呈现在读者眼前。
本书清晰地讲解了OpenGL的相关功能与技术,包括几何对象顶点的传递,细分;几何着色器中的几何变换,观察矩阵;通过片元着色器来操作像素和纹理贴图;以及基于帧缓存对象和计算着色器的先进数据操作技术。
本书共12章,主要内容有:第1章概述OpenGL主要特性和功能;第2章讨论OpenGL中最主要的特性——可编程着色器;第3章介绍使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段;第4章阐释OpenGL对于颜色的处理过程,包括像素的处理、缓存的管理以及像素处理相关的渲染技术;第5章介绍在一个二维计算机屏幕上表现三维场景的操作细节;第6章讨论将几何模型与图像结合来创建真实的、高质量的三维模型的方法;第7章介绍计算机图形的光照效果模拟方法;第8章介绍使用可编程着色器生成纹理和其他表面效果的方法细节;第9章解释OpenGL管理和细分几何表面的着色器功能;第10章介绍在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术;第11章介绍使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法;第12章介绍了最新的着色器阶段,将通用计算的方法融合到OpenGL的渲染流水线当中。
本书新增OpenGL最新特性包括:
?有关着色器使用的最佳实践和参考代码,以及整个着色流水线(包括几何和细分着色器)的详细讲解。
?通过计算着色器实现通用计算方法与渲染流水线的集成。
?在应用程序运行时同时绑定多个着色器程序的技术讲解。
?用来实现先进的着色技术的最新GLSL特性。
?针对图形程序性能优化的最新技术介绍。
關於作者:
Dave Shreiner ARM公司图形与GPU计算部门主管,自从OpenGL诞生之日起就积极地参与到它的开发当中。他创建了OpenGL的第一个商业培训课程,并且拥有超过20年的OpenGL编程教学经验。
Graham Sellers 《OpenGL超级宝典》的合著者,在AMD负责OpenGL的软件开发。他同时还是很多OpenGL特性规范的作者,并且协助将OpenGL ES移植到台式机平台。
John Kessenich OpenGL着色语言的规范编者,LunarG公司的顾问,负责GLSL的编译器技术。他在3DLabs和Intel帮助下开发了OpenGL 2.0和OpenGL ES 2.0。
Bill Licea-Kane AMD的技术部门核心成员,《OpenGL Shading Language Guide》的合著者,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 第一个程序:深入分析 10

1.5.1 进入main函数 10

1.5.2 OpenGL的初始化过程 12

1.5.3 第一次使用OpenGL进行渲染 21

第2章 着色器基础 25

2.1 着色器与OpenGL 26

2.2 OpenGL的可编程管线 26

2.3 OpenGL着色语言概述 28

2.3.1 使用GLSL构建着色器 28

2.3.2 存储限制符 34

2.3.3 语句 37

2.3.4 计算的不变性 41

2.3.5 着色器的预处理器 43

2.3.6 编译器的控制 45

2.3.7 全局着色器编译选项 45

2.4 数据块接口 46

2.4.1 uniform块 46

2.4.2 指定着色器中的uniform块 47

2.4.3 从应用程序中访问uniform块 48

2.4.4 buffer块 53

2.4.5 inout块 54

2.5 着色器的编译 54

2.5.1 我们的LoadShaders函数 58

2.6 着色器子程序 58

2.6.1 GLSL的子程序设置 59

2.6.2 选择着色器子程序 60

2.7 独立的着色器对象 62

第3章 OpenGL绘制方式 64

3.1 OpenGL图元 64

3.1.1 点 65

3.1.2 线、条带与循环线 66

3.1.3 三角形、条带与扇面 66

3.2 OpenGL缓存数据 69

3.2.1 创建与分配缓存 69

3.2.2 向缓存输入和输出数据 71

3.2.3 访问缓存的内容 75

3.2.4 丢弃缓存数据 80

3.3 顶点规范 80

3.3.1 深入讨论VertexAttrib-Pointer 81

3.3.2 
静态顶点属性的规范 84

3.4 OpenGL的绘制命令 86

3.4.1 图元的重启动 92

3.5 多实例渲染 96

3.5.1 多实例的顶点属性 97

3.5.2 在着色器中使用实例计数器 102

3.5.3 多实例方法的回顾 104

第4章 颜色、像素和帧缓存 105

4.1 基本颜色理论 106

4.2 缓存及其用途 107

4.2.1 缓存的清除 109

4.2.2 缓存的掩码 110

4.3 颜色与OpenGL 110

4.3.1 颜色的表达与OpenGL 111

4.3.2 顶点颜色 112

4.3.3 光栅化 114

4.4 多重采样 115

4.4.1 采样着色 116

4.5 片元的测试与操作 117

4.5.1 剪切测试 118

4.5.2 多重采样的片元操作 118

4.5.3 模板测试 119

4.5.4 模板的例子 120

4.5.5 深度测试 122

4.5.6 融混 124

4.5.7 融混参数 125

4.5.8 控制融混的参数 125

4.5.9 融混方程 127

4.5.10 抖动 128

4.5.11 逻辑操作 128

4.5.12 遮挡查询 129

4.5.13 条件渲染 132

4.6 逐图元的反走样 133

4.6.1 线段的反走样 134

4.6.2 多边形的反走样 135

4.7 帧缓存对象 135

4.7.1 渲染缓存 137

4.7.2 创建渲染缓存的存储空间 138

4.7.3 帧缓存附件 140

4.7.4 帧缓存的完整性 142

4.7.5 帧缓存的无效化 144

4.8 多重渲染缓存的同步写入 145

4.8.1 选择颜色缓存来进行读写操作 146

4.8.2 双源融混 148

4.9 像素数据的读取和拷贝 150

4.10 拷贝像素矩形 152

第5章 视口变换、剪切与反馈 153

5.1 观察视图 154

5.1.1 视图模型 154

5.1.2 相机模型 154

5.1.3 正交视图模型 157

5.2 用户变换 158

5.2.1 矩阵乘法的回顾 159

5.2.2 齐次坐标 161

5.2.3 线性变换与矩阵 163

5.2.4  法线变换 173

5.2.5 OpenGL矩阵 174

5.3 OpenGL变换 177

5.3.1 高级技巧:用户剪切 178

5.4 transform feedback 179

5.4.1 transform feedback对象 180

5.4.2 transform feedback缓存 181

5.4.3 配置transform feedback的变量 183

5.4.4 transform feedback的启动和停止 187

5.4.5 transform feedback的示例:粒子系统 189

第6章 纹理 195

6.1 纹理映射 196

6.2 基本纹理类型 197

6.3 创建和初始化纹理 198

6.3.1 纹理格式 202

6.4 代理纹理 207

6.5 设置纹理数据 208

6.5.1 显式设置纹理数据 208

6.5.2 使用Pixel Unpack缓存 210

6.5.3 从帧缓存拷贝数据 211

6.5.4 从文件加载图像 212

6.5.5 查询纹理数据 215

6.5.6 纹理数据布局 215

6.6 采样器对象 219

6.6.1 采样器参数 220

6.7 使用纹理 221

6.7.1 纹理坐标 223

6.7.2 组织纹理数据 226

6.7.3 使用多重纹理 227

6.8 复杂纹理类型 229

6.8.1 3维纹理 229

6.8.2 数组纹理 231

6.8.3 立方体映射纹理 231

6.8.4 阴影采样器 237

6.8.5 深度模板纹理 238

6.8.6 缓存纹理 238

6.9 纹理视图 240

6.10 压缩纹理 243

6.11 滤波 245

6.11.1 线性滤波 245

6.11.2 使用和生成mipmap 247

6.11.3 计算mipmap级别 251

6.11.4 mipmap细节层次控制 252

6.12 高级纹理查询函数 252

6.12.1 显式细节层次 252

6.12.2 显式梯度设置 253

6.12.3 偏移后的纹理获取 253

6.12.4 投影纹理 254

6.12.5 着色器中的纹理查询 254

6.12.6 收集纹素 256

6.12.7 合并特殊函数 256

6.13 点精灵 257

6.13.1 带纹理的点精灵 257

6.13.2 控制点的外观 259

6.14 渲染到纹理贴图 260

6.14.1 丢弃已渲染数据 263

6.15 本章总结 264

6.15.1 纹理回顾 264

6.15.2 纹理的最好实践 265

第7章 光照与阴影 266

7.1 光照介绍 267

7.2 经典光照模型 267

7.2.1 不同光源类型的片元着色器 268

7.2.2 将计算移到顶点着色器 277

7.2.3 多个光源和材质 279

7.2.4 光照坐标系统 285

7.2.5 经典光照模型的局限 285

7.3 光照模型进阶 286

7.3.1 半球光照 286

7.3.2 基于图像的光照 289

7.3.3 球面光照 293

7.4 阴影映射 296

7.4.1 创建一张阴影贴图 297

7.4.2 使用阴影贴图 299

第8章 程序式纹理 303

8.1 程序式纹理 303

8.1.1 规则的花纹 305

8.1.2 玩具球 311

8.1.3 晶格 318

8.1.4 程序式着色方法的总结 319

8.2 凹凸贴图映射 319

8.2.1 应用程序设置 321

8.2.2 顶点着色器 323

8.2.3 片元着色器 324

8.2.4 法线贴图 326

8.3 程序式纹理的反走样 326

8.3.1 走样的来源 327

8.3.2 避免走样问题 328

8.3.3 提高分辨率 329

8.3.4 高频率的反走样 330

8.3.5 频率截断 337

8.3.6 程序式反走样的总结 339

8.4 噪声 339

8.4.1 噪声的定义 341

8.4.2 噪声纹理 345

8.4.3 权衡 348

8.4.4 一个简单的噪声着色器 349

8.4.5 湍流 351

8.4.6 大理石 353

8.4.7 花岗岩 353

8.4.8 木纹 354

8.4.9 噪声的总结 357

8.5 更多信息 357

第9章 细分着色器 359

9.1 细分着色器 359

9.2 细分面片 360

9.3 细分控制着色器 361

9.3.1 生成输出面片的顶点 362

9.3.2 细分控制着色器的变量 362

9.3.3 细分的控制 363

9.4 细分计算着色器 367

9.4.1 设置图元生成域 368

9.4.2 设置生成图元的面朝向 368

9.4.3 设置细分坐标的间隔 368

9.4.4 更多的细分计算着色器layout选项 368

9.4.5 设置顶点的位置 369

9.4.6 细分计算着色器的变量 369

9.5 细分实例:茶壶 370

9.5.1 处理面片输入顶点 370

9.5.2 计算茶壶的细分坐标 371

9.6 更多的细分技术 373

9.6.1 视口相关的细分 373

9.6.2 细分的共享边与裂缝 375

9.6.3 置换贴图映射 376

第10章 几何着色器 377

10.1 创建几何着色器 378

10.2 几何着色器的输入和输出 380

10.2.1 几何着色器的输入 380

10.2.2 特殊的几何着色器图元 383

10.2.3 几何着色器的输出 387

10.3 产生图元 389

10.3.1 几何体的裁减 389

10.3.2 几何体的扩充 390

10.4 transform feedback高级篇 394

10.4.1 多重输出流 395

10.4.2 图元查询 399

10.4.3 使用transform feedback的结果 400

10.5 几何着色器的多实例化 408

10.6 多视口与分层渲染 409

10.6.1 视口索引 409

10.6.2 分层渲染 414

10.7 本章小结 417

10.7.1 几何着色器回顾 417

10.7.2 几何着色器的经验谈 418

第11章 内存 420

11.1 使用纹理存储通用数据 420

11.1.1 将纹理绑定到图像单元 425

11.1.2 图像数据的读取和写入 427

11.2 着色器存储缓存对象 430

11.2.1 写入结构化数据 431

11.3 原子操作和同步 431

11.3.1 图像的原子操作 431

11.3.2 缓存的原子操作 439

11.3.3 同步对象 440

11.3.4 图像限定符和屏障 444

11.3.5 高性能的原子计数器 452

11.4 示例 455

11.4.1 顺序无关的透明 455

第12章 计算着色器 466

12.1 概述 466

12.2 工作组及其执行 467

12.2.1 知道工作组的位置 471

12.3 通信与同步 472

12.3.1 通信 473

12.3.2 同步 474

12.4 示例 475

12.4.1 物理模拟 476

12.4.2 图像处理 481

12.5 本章总结 485

12.5.1 计算着色器回顾 485

12.5.2 计算着色器的最佳实践 485

附录A GLUT基础知识 487

附录B OpenGL ES与WebGL 493

附录C 内置GLSL变量与函数 504

附录D 状态变量 552

附录E 齐次坐标与变换矩阵 591

附录F OpenGL与窗口系统 596

附录G 纹理、帧缓存与渲染缓存的浮点格式 612

附录H OpenGL程序的调试与优化 618

附录I 缓存对象的布局 632

术语表 635
內容試閱
OpenGL发展至今,已经超过了20年的时间。作为一个成熟而久负盛名的跨平台的计算机图形应用程序接口规范,它已经被广泛应用于游戏、影视、军事、航空航天、地理、医学、机械设计,以及各类科学数据可视化的领域。而随着网络和移动平台的飞速发展,异军突起的OpenGL ES和WebGL标准也吸引了大批开发者的眼球,而这两者与OpenGL本身同样有着千丝万缕的联系。
OpenGL支持几乎所有现有的主流操作系统平台,包括Windows、Mac OS X以及各种UNIX平台。它同时也可以用于几乎所有主流的编程语言环境当中,例如CC++、Java、C#、Visual Basic、Python、Perl等。因此,无可非议地说,OpenGL应当是目前全球最为广泛学习和使用的图形开发API接口,我们几乎可以在全世界任何一台计算机安装的软件当中找到它的身影(当然,在Windows平台下总会有OpenGL和DirectX两类API的地位与优劣之争,这又是本书内容之外的另一番故事了)。
而作为OpenGL学习的经典书籍,有着“红宝书”之名的本书也已经更新到了第8版。这一版的最大特色就是“变革”。是的,这是一本变革之书,它直接与OpenGL 4.3版本的内容相贴合,彻底以核心模式的主要函数与着色器的内容为讲解重点。如果你已经读过以前的一些修订版本,并且已经对glBegin、glLoadMatrix,或者display list这些函数和名词耳熟能详,那么不要惊讶:从这一版开始,你将再也见不到有关这些内容的介绍。即使你是一位从业数十年的OpenGL开发者,从这一刻开始,你恐怕也需要从头来过。
不过无须惊惶,你手头的已经开发了多年的OpenGL程序,依然可以在兼容模式下顺利执行。而基于可编程流水线的全新架构和接口,想必也会给有经验的开发者带来更多的思考与创新力。而对于初涉OpenGL开发的新人来说,这恰恰是一个好机会,让你们从新的起点出发,把学习和思考的重心放在以着色语言为基础的体系之上,而不是死记硬背那些程序接口,或者苦恼于繁杂的状态切换。
本书内容翔实,章节划分清晰明确,适合各种层次的读者选择性地阅读。不过,作为一个具有颠覆性质的修订版本,这一版的“红宝书”也暴露出内容讲解上的一些问题,部分章节略显臃肿冗余,而内容的衔接上也不够连贯,这样都可能让没有基础的新人感到无所适从。应当说,这也是本书未来亟待更新和改进的方面。
前言:
OpenGL图形系统是图形硬件的一种软件接口(GL表示Graphics Library,即图形库)。它使得用户可以创建交互式的程序以产生运动的3维对象的颜色图像。通过OpenGL,我们可以使用计算机图形学技术来产生逼真的图像,或者通过一些虚构的方式产生虚拟的图像。这本指南将告诉你如何使用OpenGL图形系统进行编程,得到你所期望的视觉效果。
本书的主要内容
本书包含以下一些章节:
第1章对OpenGL可以完成的工作进行了概览。它还提供了一个简单的OpenGL程序并解释了一些本质性的编程细节,它们可能会用于后继的章节中。
第2章讨论了OpenGL中最主要的特性—可编程着色器,并介绍了它们在应用程序中的初始化和使用方法。
第3章介绍了使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段。
第4章解释了OpenGL对于颜色的处理过程,包括像素的处理、缓存的管理,以及像素处理相关的渲染技术。
第5章给出了将3维场景在一个2维计算机屏幕上表现的操作细节,包括各种几何投影类型的数学原理和着色器操作。
第6章讨论了将几何模型与图像结合来创建真实的、高质量的3维模型的方法。
第7章介绍了计算机图形的光照效果模拟方法,主要是这类方法在可编程着色器中的实现。
第8章介绍了使用可编程着色器生成纹理和其他表面效果的方法细节,从而增强真实感和其他的渲染特效。
第9章解释了OpenGL管理和细分几何表面的着色器功能。
第10章介绍了一个在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术。
第11章介绍了使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法。
第12章介绍了最新的着色器阶段,将通用计算的方法融合到OpenGL的渲染流水线当中。
此外,我们也提供了一系列作为参考的附录内容。
附录A介绍了OpenGL Utility Toolkit这个专用于窗口系统操作的库。GLUT是可移植的,它可以用来实现更简短也更加可读的代码案例。
附录B介绍了OpenGL体系中的其他API,包括用于嵌入式和移动平台系统的OpenGL ES,以及用于Web浏览器内的交互式3D应用程序的WebGL。
附录C提供了有关OpenGL着色语言的详细参考文档。
附录D列出了OpenGL维护的所有状态变量,并介绍了获取其数值的方法。
附录E介绍了与矩阵变换相关的一些数学方法。
附录F介绍了不同的窗口系统相关的各种库,它们提供了各种绑定例程,以支持OpenGL渲染到本地窗口当中。
附录G对于OpenGL中所用到的浮点数格式做出了概述。
附录H介绍了OpenGL中最新的调试特性。
附录I给出了有关uniform缓存的使用的参考文档,其中使用了OpenGL定义的标准内存布局。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.