OpenGL超级宝典:第三版(附CD-ROM光盘一张)

OpenGL超级宝典:第三版(附CD-ROM光盘一张) - 图书城

增改描述、封面图片

作者:
(美)赖特,(美)利普查克 著,徐波
ISBN:
9787115137203 , 711513720X
出版社:
出版日期:
2005-9-1
定价:
88.00
购买:
读过这本书吗?
最近在读 读过 想读 还不熟悉
我的评价:   
图书城书列:
加入到博客或社交网站:
我来评论这本书:
标题:
评价:
内容:
内容提要:
    本书是OpenGL编程指南,涵盖了使用新版本的OpenGL进行编程所需要的主要知识。
  全书分3个部分,共23章,另有3个附录。第一部分包括第1章到第12章,介绍经典OpenGL绘图的所有基础知识,包括3D图形和OpenGL简介,OpenGL空间绘图,几何转换,颜色、材料和光照,纹理贴图,曲线和表面,管线,交互式图形等内容。第二部分包括第13章到第15章,分别介绍了不同操作系统平台上的OpenGL功能特性和编程细节。第三部分是第16章到第23章,着重介绍OpenGL的一些高级功能以及OpenGL 1.5的新特性。附录部分给出了更多阅读建议、术语表和对OpenGL ES的简单介绍。随书光盘中包含了不同操作系统平台下的丰富的示例程序及其源代码。
  本书适合于希望精通OpenGL以便对他们的图形编程和3D图形知识进行扩展的程序员,也可以帮助那些经验丰富的OpenGL程序员学习如何移植自己的应用程序。本书既可以作为学习OpenGL的教材,也可以作为随时查阅的参考手册。
编辑推荐:
本书包括以下内容:
?在PC上创建三维物体。
?在虚拟世界中移动物体或观察者。
?利用在WINDWOS、MAC OS X和LINUX上实现更快的实时渲染的技巧。
?利用OPENGL硬件加速。
?创建交互式三维场景。
?利用新的OPENGL着色语言和可编程图形硬件。
随书光盘包括:
?所有示例程序的完整源代码。
?GLUT函数库和用于WINDOWS的RENDERMONKEY。
?RIGHT HEMISPHERE的DEEP EXPLORATION 演示版本。
?完整的PDF格式的OPENGL规范。
?附赠的OPENGL示例程序。
目录:
第一部分 经典OpenGL

第1章 3D图形和OpenGL简介 3
1.1 计算机图形的简单历史回顾 3
1.1.1 进入CRT 3
1.1.2 走向3D 4
1.2 3D效果初探 6
1.2.1 透视(视角) 6
1.2.2 颜色和着色 6
1.2.3 光照和阴影 7
1.2.4 纹理贴图 7
1.2.5 雾 7
1.2.6 混和和透明 8
1.2.7 抗锯齿 8
1.3 3D图形的常见用途 9
1.3.1 实时3D 9
1.3.2 非实时3D 10
1.4 3D编程的基本原则 11
1.4.1 立即模式和保持模式(场景图) 11
1.4.2 坐标系统 11
1.4.3 投影(从3D到2D) 14
1.5 小结 16

第2章 使用OpenGL 17
2.1 什么是OpenGL 17
2.1.1 标准的演化 18
2.1.2 API战争 19
2.2 OpenGL的工作原理 22
2.2.1 泛型实现 22
2.2.2 硬件实现 23
2.2.3 管线 24
2.3 OpenGL是API而不是编程语言 24
2.4 API规范 25
2.4.1 数据类型 25
2.4.2 函数名约定 26
2.5 平台独立性 27
2.5.1 使用GLUT 27
2.5.2 设置编程环境 28
2.5.3 你的第一个程序 28
2.5.4 用OpenGL绘制形状 32
2.6 使用OpenGL和GLUT生成动画 37
2.7 OpenGL状态机 40
2.8 OpenGL错误 41
2.9 确认版本 42
2.10 调用glHint获得线索 42
2.11 使用扩展 42
2.11.1 检查扩展 43
2.11.2 这是谁的扩展 43
2.11.3 在Windows中使用OpenGL 1.1以后的版本 44
2.12 小结 44
2.13 参考 45

第3章 在空间中绘图(几何图元和缓冲区) 55
3.1 在3D中绘制点 55
3.2 设置3D画布 56
3.3 3D空间中的点――顶点 57
3.4 绘制图形 58
3.5 设置点的大小 60
3.6 在3D空间中画直线 62
3.6.1 线带和线环 63
3.6.2 用直线构成近似曲线 64
3.6.3 设置直线的宽度 64
3.6.4 直线点画 66
3.7 在3D空间中绘制三角形 68
3.7.1 三角形――第一种多边形 68
3.7.2 环绕 68
3.7.3 三角形带 69
3.7.4 三角形扇 69
3.8 创建实心物体 70
3.8.1 设置多边形颜色 72
3.8.2 隐藏表面消除 72
3.8.3 剔除:隐藏表面,提高性能 73
3.8.4 多边形模式 75
3.9 其他图元 75
3.9.1 四条边的多边形――四边形 75
3.9.2 通用多边形 76
3.9.3 填充多边形,回顾点画 76
3.9.4 多边形创建规则 79
3.9.5 细分和边界 80
3.10 其他缓冲区技巧 82
3.10.1 使用缓冲区目标 82
3.10.2 操纵深度缓冲区 83
3.10.3 用剪刀进行裁剪 84
3.10.4 使用模版缓冲区 85
3.11 小结 88
3.12 参考 88

第4章 几何转换――管线 100
4.1 本章是不是枯燥的数学课 100
4.2 理解转换 101
4.2.1 视觉坐标 101
4.2.2 视图转换 102
4.2.3 模型转换 102
4.2.4 模型视图二元性 103
4.2.5 投影转换 104
4.2.6 视口转换 104
4.3 矩阵――3D图形的数学基础 105
4.3.1 什么是矩阵 105
4.3.2 转换管线 105
4.3.3 模型视图矩阵 106
4.3.4 单位矩阵 108
4.3.5 矩阵堆栈 109
4.3.6 一个原子例子 110
4.4 使用投影 112
4.4.1 正投影 112
4.4.2 透视投影 113
4.4.3 一个远处缩小的例子 114
4.5 高级矩阵操作 116
4.5.1 载入矩阵 117
4.5.2 自己执行转换 118
4.5.3 把转换放在一起 120
4.6 使用照相机和角色在OpenGL中移动 121
4.6.1 角色帧 121
4.6.2 欧拉角:“卢克!请使用帧” 122
4.6.3 照相机管理 122
4.7 综合应用 123
4.8 小结 127
4.9 参考 128

第5章 颜色、材料和光照基础知识 134
5.1 什么是颜色 134
5.1.1 光的波性 134
5.1.2 光的粒子性 135
5.1.3 人眼作为光子检测器 136
5.1.4 计算机作为光子检测器 136
5.2 PC颜色硬件 137
5.3 PC显示模式 137
5.3.1 屏幕分辨率 138
5.3.2 颜色深度 138
5.4 在OpenGL中使用颜色 139
5.4.1 颜色立方体 139
5.4.2 设置绘图颜色 140
5.4.3 着色 140
5.4.4 设置着色模型 142
5.5 现实世界的颜色 142
5.5.1 环境光 143
5.5.2 散射光 143
5.5.3 镜面光 143
5.5.4 综合考虑 143
5.6 现实世界的材料 144
5.6.1 材料属性 144
5.6.2 向材料添加光照 144
5.6.3 计算环境光效果 144
5.6.4 散射和镜面光效果 145
5.7 向场景添加光照 145
5.7.1 启用光照 145
5.7.2 设置光照模型 146
5.7.3 设置材料属性 146
5.8 使用光源 148
5.8.1 哪种方式最合适 148
5.8.2 表面法线 149
5.8.3 指定法线 149
5.8.4 单位法线 150
5.8.5 寻找法线 151
5.8.6 设置光源 152
5.8.7 设置材料属性 153
5.8.8 指定多边形 153
5.9 光照效果 154
5.9.1 镜面加亮 154
5.9.2 镜面光 154
5.9.3 镜面反射 155
5.9.4 镜面指数 156
5.9.5 法线均衡 157
5.10 综合讨论 158
5.10.1 创建亮点 158
5.10.2 绘制光点 159
5.11 阴影 162
5.11.1 什么是阴影 163
5.11.2 实现压平的代码 163
5.11.3 一个阴影例子 164
5.11.4 重新回顾球体世界 166
5.12 小结 167
5.13 参考 167

第6章 颜色和材料的更多细节 174
6.1 混合 174
6.1.1 组合颜色 174
6.1.2 修改混合方程式 177
6.1.3 抗锯齿 177
6.2 雾 181
6.3 累积缓冲区 183
6.4 其他颜色操作 185
6.4.1 颜色掩码 185
6.4.2 颜色逻辑操作 185
6.4.3 Alpha测试 186
6.4.4 抖动 186
6.5 小结 186
6.6 参考 187

第7章 OpenGL中的图像 191
7.1 位图 191
7.2 像素包装 195
7.3 像素图 196
7.3.1 经过包装的像素格式 198
7.3.2 一个颜色更丰富的例子 198
7.3.3 移动像素 200
7.3.4 保存像素 201
7.4 像素的更多乐趣 203
7.4.1 像素缩放 208
7.4.2 像素转移 208
7.4.3 像素映射 211
7.5 图像“子集” 212
7.6 小结 222
7.7 参考 223

第8章 纹理贴图基础知识 239
8.1 载入纹理 239
8.1.1 使用颜色缓冲区 242
8.1.2 更新纹理 242
8.2 将纹理贴图到几何图形 243
8.3 一个简单的2D例子 244
8.4 纹理环境 249
8.5 纹理参数 250
8.5.1 基本过滤 250
8.5.2 纹理环绕 251
8.5.3 带纹理的卡通 252
8.5.4 Mip贴图 256
8.6 纹理对象 259
8.7 小结 266
8.8 参考 266

第9章 纹理贴图高级知识 279
9.1 第二颜色 279
9.2 各向异性过滤 281
9.3 纹理压缩 282
9.3.1 压缩纹理 283
9.3.2 载入压缩纹理 284
9.4 纹理坐标生成 284
9.4.1 物体线性贴图 289
9.4.2 视觉线性贴图 290
9.4.3 球体贴图 291
9.4.4 立方体贴图 292
9.5 多重纹理 294
9.5.1 多重纹理坐标 295
9.5.2 一个多重纹理例子 295
9.6 纹理组合器 298
9.7 小结 300
9.8 参考 300

第10章 曲线和表面 306
10.1 内部支持的表面 306
10.1.1 设置二次方程状态 307
10.1.2 绘制二次方程图形 308
10.1.3 用二次方程进行建模 311
10.2 Bézier曲线和表面 312
10.2.1 参数方程表示形式 313
10.2.2 求值器 314
10.3 NURBS 321
10.3.1 从Bézier到B样条 321
10.3.2 结点 322
10.3.3 创建NURBS表面 322
10.3.4 NURBS属性 323
10.3.5 定义表面 323
10.3.6 修剪 324
10.3.7 NURBS表面 326
10.4 镶嵌 326
10.4.1 镶嵌器 327
10.4.2 镶嵌器回调函数 327
10.4.3 指定顶点数据 328
10.4.4 综合应用 328
10.5 小结 332
10.6 参考 332

第11章 这就是管线――更快的几何图形渲染 353
11.1 模型装配101 353
11.2 显示列表 363
11.2.1 批处理 363
11.2.2 预批处理 364
11.2.3 使用显示列表的一些注意事项 365
11.2.4 转换到显示列表 365
11.3 测量性能 366
11.4 顶点数组 370
11.4.1 载入几何图形 373
11.4.2 启用数组 374
11.4.3 数据在哪里 374
11.4.4 进行绘图 375
11.4.5 索引顶点数组 376
11.5 小结 385
11.6 参考 385

第12章 交互式图形 395
12.1 选择 395
12.1.1 为图元命名 396
12.1.2 在选择模式下工作 397
12.1.3 选择缓冲区 398
12.1.4 挑选 399
12.1.5 层次式挑选 401
12.1.6 反馈 404
12.1.7 反馈缓冲区 404
12.1.8 反馈数据 405
12.1.9 用户定义标记 405
12.2 一个反馈例子 406
12.2.1 对物体加上标签以便反馈 406
12.2.2 步骤1:选择物体 408
12.2.3 步骤2:从物体获取反馈信息 409
12.3 小结 411
12.4 参考 411

第二部分 OpenGL无处不在

第13章 Windows上的OpenGL Wiggle 417
13.1 Windows上的OpenGL实现 417
13.1.1 泛型OpenGL 418
13.1.2 可安装客户驱动程序(ICD) 418
13.1.3 Mini客户驱动程序(MCD) 418
13.1.4 Mini驱动程序 419
13.1.5 扩展OpenGL 419
13.2 基本的窗口渲染 420
13.2.1 GDI设备环境 420
13.2.2 像素格式 421
13.2.3 OpenGL渲染环境 426
13.3 综合应用 427
13.3.1 创建窗口 427
13.3.2 使用OpenGL渲染环境 430
13.3.3 其他Windows消息 433
13.4 Windows调色板 434
13.4.1 颜色匹配 434
13.4.2 调色板仲裁 435
13.4.3 为OpenGL创建调色板 436
13.4.4 调色板的创建和销毁 439
13.5 OpenGL和Windows字体 440
13.5.1 3D字体和文本 441
13.5.2 2D字体和文本 442
13.6 全屏渲染 444
13.6.1 创建一个无边框窗口 444
13.6.2 创建一个全屏窗口 445
13.7 多线程渲染 447
13.8 OpenGL和WGL扩展 448
13.8.1 简单扩展 448
13.8.2 使用新入口 449
13.8.3 WGL扩展 449
13.9 小结 470
13.10 参考 470

第14章 MacOS X上的OpenGL 482
14.1 基础知识 482
14.1.1 框架 482
14.1.2 使用GLUT API 483
14.2 使用AGL和Carbon API 483
14.2.1 像素格式 483
14.2.2 管理渲染环境 484
14.2.3 执行双缓冲渲染 485
14.2.4 你的第一个AGL程序 485
14.2.5 使用位图字体 494
14.3 使用Cocoa API 504
14.3.1 NSOpenGL类 504
14.3.2 你的第一个Cocoa程序 505
14.4 小结 512
14.5 参考 512

第15章 GLX:Linux上的OpenGL 516
15.1 基础知识 516
15.1.1 使用OpenGL和X11函数库 516
15.1.2 使用GLUT函数库 518
15.1.3 Linux上的OpenGL 518
15.1.4 OpenGL模拟:Mesa 519
15.2 X Window系统的OpenGL扩展 519
15.2.1 X Window系统基础知识 519
15.2.2 选择画面 519
15.2.3 管理OpenGL渲染环境 520
15.2.4 创建OpenGL窗口 521
15.2.5 双缓冲窗口 521
15.2.6 综合应用 521
15.3 为OpenGL创建位图字体 528
15.4 离屏渲染 537
15.4.1 使用GLX Pixmap 537
15.4.2 使用Pbuffer 541
15.5 使用Motif函数库 546
15.5.1 GLwDrawingArea和GLwMDrawingArea 546
15.5.2 回调资源 547
15.5.3 函数 548
15.5.4 综合应用 549
15.6 小结 557
15.7 参考 557

第三部分 下一代OpenGL

第16章 缓冲区对象 565
16.1 顶点数组 566
16.1.1 生成球状微粒云彩 566
16.1.2 启用顶点数组 567
16.1.3 使用更多的球体 568
16.2 迁移到缓冲区对象 569
16.2.1 缓冲区对象管理 570
16.2.2 用缓冲区对象进行渲染 571
16.3 把数据载入到缓冲区对象 571
16.3.1 把数据复制到缓冲区对象 571
16.3.2 直接映射缓冲区对象 572
16.4 补遗 575
16.5 小结 576
16.6 参考 576

第17章 遮挡查询 581
17.1 遮挡查询之前的世界 581
17.2 边框 584
17.3 对查询对象进行查询 587
17.4 小结 589
17.5 参考 589

第18章 深度纹理和阴影 593
18.1 作为光源 
前言:
我第一次听说OpenGL是在1992年的San Francisco Win32开发人员会议上,当时Windows NT 3.1还处于早期的Beta版本(或晚期的Alpha)阶段。许多厂商参加了会议,并纷纷表态将对这个激动人心的图形新技术提供支持。在众多厂商之中,有一家叫做SGI(Silicon Graphics,Inc)的公司。SGI公司的代表展示了他们的图形工作站,并播放了一些特效视频演示,这些特效都来自于一些流行的电影。但是,他们到会的主要目的是推广一种新的叫做OpenGL的3D图形标准。它基于SGI专用的IRIS GL,并进行了革新,使之成为一种图形标准。引人注目的是,Microsott也表示要在Windows NT上对OpenGL提供支持。 直到Windows NT 3.5的Beta版本..
我来评论这本书
联系客服 - 加入到博客 - 图书目录 - 关于图书城.COM - 对外合作 - 购书指南 - 可以在线阅读吗?
English Version: BookGadget
图书城.COM © TuShuCheng.com - 京ICP备06069800