您好,欢迎来到聚文网。 登录 免费注册
OpenGL编程指南

OpenGL编程指南

  • 装帧: 平装
  • 出版社: 机械工业出版社
  • 作者: (美)Dave Shreiner;王锐;(美)Graham Sellers 等 著
  • 出版日期: 2014-10-01
  • 商品条码: 9787111481133
  • 版次: 1
  • 开本: 16开
  • 页数: 651
  • 出版年份: 2014
定价:¥129 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
本书共12章,主要内容有:靠前章概述OpenGL主要特性和功能;第2章讨论OpenGL中很主要的特性——可编程着色器;第3章介绍使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段;第4章阐释OpenGL对于颜色的处理过程,包括像素的处理、缓存的管理以及像素处理相关的渲染技术;第5章介绍在一个二维计算机屏幕上表现三维场景的操作细节;第6章讨论将几何模型与图像结合来创建真实的、高质量的三维模型的方法;第7章介绍计算机图形的光照效果模拟方法;第8章介绍使用可编程着色器生成纹理和其他表面效果的方法细节;第9章解释OpenGL管理和细分几何表面的着色器功能;靠前0章介绍在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术;靠前1章介绍使用OpenGL帧缓存和缓存内存实现不错渲染技术和非图形学应用的相关方法;靠前2章介绍了近期新的着色器阶段,将通用计算的方法融合到OpenGL的渲染流水线当中。
作者简介
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什么是OpenGL1
1.2初识OpenGL程序2
1.3OpenGL语法6
1.4OpenGL渲染管线7
1.4.1准备向OpenGL传输数据8
1.4.2将数据传输到OpenGL8
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.2OpenGL的初始化过程12
1.5.3第一次使用OpenGL进行渲染21
第2章着色器基础25
2.1着色器与OpenGL26
2.2OpenGL的可编程管线26
2.3OpenGL着色语言概述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.1uniform块46
2.4.2指定着色器中的uniform块47
2.4.3从应用程序中访问uniform块48
2.4.4buffer块53
2.4.5in/out块54
2.5着色器的编译54
2.5.1我们的LoadShaders()函数58
2.6着色器子程序58
2.6.1GLSL的子程序设置59
2.6.2选择着色器子程序60
2.7独立的着色器对象62
第3章OpenGL绘制方式64
3.1OpenGL图元64
3.1.1点65
3.1.2线、条带与循环线66
3.1.3三角形、条带与扇面66
3.2OpenGL缓存数据69
3.2.1创建与分配缓存69
3.2.2向缓存输入和输出数据71
3.2.3访问缓存的内容75
3.2.4丢弃缓存数据80
3.3顶点规范80
3.3.1深入讨论VertexAttrib-Pointer81
3.3.2 静态顶点属性的规范84
3.4OpenGL的绘制命令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颜色与OpenGL110
4.3.1颜色的表达与OpenGL111
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.5OpenGL矩阵174
5.3OpenGL变换177
5.3.1高级技巧:用户剪切178
5.4transform feedback179
5.4.1transform feedback对象180
5.4.2transform feedback缓存181
5.4.3配置transform feedback的变量183
5.4.4transform feedback的启动和停止187
5.4.5transform 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.13维纹理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使用和生成mipmap247
6.11.3计算mipmap级别251
6.11.4mipmap细节层次控制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.4transform 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
附录AGLUT基础知识487
附录BOpenGL ES与WebGL493
附录C内置GLSL变量与函数504
附录D状态变量552
附录E齐次坐标与变换矩阵591
附录FOpenGL与窗口系统596
附录G纹理、帧缓存与渲染缓存的浮点格式612
附录HOpenGL程序的调试与优化618
附录I缓存对象的布局632
术语表635

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网