资源大小: 118.03MB
发布时间: 2013-02-18
文件格式: pdf
下载次数: 4
分享到:

下载地址:

下载地址1
(本站为飞网专业下载站,域名:down.cfei.net)

资源简介:

中文名: OpenGL超级宝典(第4版)原名: OpenGL(R) SuperBible: Comprehensive Tutorial and Reference (4th Edition)别名: OpenGL蓝宝书, OpenGL编程作者: (美)Richard S. WrightBenjamin LipchakNicholas Haemel译者: 张琪付飞资源格式: PDF版本: 扫描版出版社: Posts&Telecom; Press书号: 978711523584X发行时间: 2010年9月地区: 大陆语言: 简体中文简介: 内容介绍:  本书是OpenGL及3d图形编程最好的入门指南,涵盖了使用最新版本的opengl进行编程所需要的主要知识。  全书分3个部分,共22章,另有3个附录。第一部分包括第1章到第14章,介绍如何构建一个使用OpenGL的程序,如何设置3d渲染环境,以及如何创建基本对象和光线并对他们进行着色。然后,深入研究使用OpenGL和它的一些高级特性及不同的特殊效果。第二部分包括第15章到第18章,分别介绍了OpenGL中支持可编程硬件[特别是在OpenGL着色语言(glsl)中]的新特性。第三部分是第19章到第22章,着重介绍OpenGL是如何支持和连接Windows、MAC OS X、Linux和掌上设备。附录部分给出了更多阅读建议、术语表和api参考介绍。  本书适合希望精通OpenGL以便对他们的图形编程和3d图形知识进行扩展的程序员阅读,也可以帮助那些经验丰富的OpenGL程序员学习如何移植自己的应用程序。本书既可以作为学习OpenGL的教材,也可以作为随时查阅的参考手册。作者介绍:  Richard S. Wright,Jr.,星彩石软件系统公司(Starstone Software Systems,Inc.)的创建者和总裁,使用OpenGL开发多媒体仿真软件。他开发过范围从游戏到科学应用程序、从数据库可视化工具到教育软件的OpenGL商业应用程序,他曾是OpenGL ARB的Real 3D代表。  Benjamin Lipchak,管理着AMD的一个OpenGL ES驱动小组。他原来领导着Khronos生态技术小组,建立了OpenGL SDK并创建了OpenGL管线时事通信。  Nicholas Haemel,AMD Graphics Products Group(图形产品开发小组)的一位开发者,也是本书第3版的技术审稿人; 参与了本书的GLX和OpenGLcES部分的写作.目录: 第一部分 “旧约”——经典属性第1章 3D图形和OpenGL的介绍1.1 计算机图形的简单历史回顾1.1.1 进入电子时代1.1.2 走向3D1.2 3D效果初探1.2.1 透视(视角)1.2.2 颜色和着色1.2.3 光照和阴影1.2.4 纹理贴图1.2.5 雾1.2.6 混和和透明1.2.7 抗锯齿1.3 3D图形的常见用途1.3.1 实时3D1.3.2 非实时3D1.3.3 着色器1.4 3D编程的基本原则1.4.1 立即模式和保持模式1.4.2 坐标系统1.4.3 投影:从3D到2D1.5 总结第2章 使用OpenGL2.1 什么是OpenGL2.1.1 标准的演化2.1.2 API战争2.1.3 OpenGL的未来2.2 OpenGL的工作原理2.2.1 通用实现2.2.2 硬件实现2.2.3 管线2.3 OpenGL是API而不是编程语言2.3.1 标准函数库和头文件2.3.2 头文件自定义2.4 API特定细节2.4.1 数据类型2.4.2 函数名约定2.5 平台独立性2.5.1 使用GLUT2.5.2 第一个程序2.5.3 用OpenGL绘制形状2.6 使用OpenGL和GLUT生成动画2.7 OpenGL状态机2.8 OpenGL错误2.9 确认版本2.10 使用glHint获取线索2.11 使用扩展2.11.1 检查扩展2.11.2 这是谁的扩展2.12 总结第3章 空间绘图:几何图元和缓冲区3.1 在3D中绘制点3.2 设置3D画布3.3 3D空间中的点:顶点3.4 绘制图形3.4.1 画点3.4.2 第一个例子3.5 设置点的大小3.6 在3D空间中画直线3.6.1 线带和线环3.6.2 用直线构成近似曲线3.6.3 设置直线的宽度3.6.4 直线点画3.7 在3D空间中绘制三角形3.7.1 三角形:第一种多边形3.7.2 环绕3.7.3 三角形带3.7.4 三角形扇3.8 创建实心物体3.8.1 设置多边形的颜色3.8.2 隐藏表面消除3.8.3 剔除:隐藏表面,提高性能3.8.4 多边形模式3.9 其他图元3.9.1 四条边的多边形:四边形3.9.2 通用多边形3.9.3 填充多边形,重新讨论点画3.9.4 多边形的创建规则3.9.5 细分和边界3.10 其他缓冲区技巧3.10.1 使用缓冲区目标3.10.2 操纵深度缓冲区3.10.3 用剪刀进行裁剪3.10.4 使用模板缓冲区3.10.5 创建模板图案3.11 总结第4章 几何变换:管线4.1 本章是不是枯燥的数学课4.2 理解变换4.2.1 视觉坐标4.2.2 视图变换4.2.3 模型变换4.2.4 模型视图对偶性4.2.5 投影变换4.2.6 视口变换4.3 矩阵:3D图形的数学基础4.3.1 什么是矩阵4.3.2 变换管线4.3.3 模型视图矩阵4.3.4 单位矩阵4.3.5 矩阵堆栈4.3.6 一个原子例子4.4 使用投影4.4.1 正投影4.4.2 透视投影4.4.3 一个远处缩小的例子4.5 高级矩阵操作4.5.1 加载矩阵4.5.2 自己执行变换4.5.3 变换的迭加4.6 使用照相机和角色在OpenGL中移动4.6.1 角色帧4.6.2 欧拉角:“卢克!请使用帧”4.6.3 照相机管理4.6.4 综合应用4.7 总结第5章 颜色、材料和光照:基础知识5.1 什么是颜色5.1.1 光的波动性5.1.2 光的粒子性5.1.3 人眼作为光子检测器5.1.4 计算机作为光子检测器5.2 PC颜色硬件5.3 PC显示模式5.3.1 屏幕分辨率5.3.2 颜色深度5.4 在OpenGL中使用颜色5.4.1 颜色立方体5.4.2 设置绘图颜色5.4.3 着色5.4.4 设置着色模型5.5 现实世界的颜色5.5.1 环境光5.5.2 散射光5.5.3 镜面光5.5.4 综合考虑5.6 现实世界的材料5.6.1 材料属性5.6.2 向材料添加光照5.6.3 计算环境光效果5.6.4 散射和镜面光效果5.7 向场景添加光照5.7.1 启用光照5.7.2 设置宇宙背景发射光5.7.3 设置材料属性5.8 使用光源5.8.1 哪种方式最合适5.8.2 表面法线5.8.3 指定法线5.8.4 单位法线5.8.5 寻找法线5.8.6 设置光源5.8.7 设置材料属性5.8.8 指定多边形5.9 光照效果5.9.1 镜面亮点5.9.2 镜面光5.9.3 镜面反射5.9.4 镜面指数5.9.5 法线均衡5.10 综合讨论5.10.1 创建聚光灯5.10.2 绘制聚光灯5.11 阴影5.11.1 什么是阴影5.11.2 实现压平的代码5.11.3 一个阴影例子5.11.4 重新回顾球体世界5.12 总结第6章 颜色和材料的更多细节6.1 混合6.1.1 组合颜色6.1.2 修改混合方程式6.1.3 抗锯齿6.1.4 多重采样6.2 应用雾6.2.1 雾方程式6.2.2 雾坐标6.3 累积缓冲区6.4 其他颜色操作6.4.1 颜色掩码6.4.2 颜色逻辑操作6.4.3 alpha测试6.4.4 抖动6.5 总结第7章 OpenGL中的图像7.1 位图7.1.1 一个位图例子7.1.2 设置光栅位置7.2 像素包装7.3 像素图7.3.1 经过包装的像素格式7.3.2 一个颜色更丰富的例子7.3.3 移动像素7.3.4 保存像素7.4 像素的更多乐趣7.4.1 像素缩放7.4.2 像素转移7.4.3 像素映射7.5 图像“子集”和管线7.5.1 颜色矩阵7.5.2 颜色查找7.5.3 代理7.5.4 其他操作7.5.5 卷积7.5.6 最小最大值操作7.6 总结第8章 纹理贴图:基础知识8.1 加载纹理8.1.1 使用颜色缓冲区8.1.2 更新纹理8.1.3 将纹理贴图到几何图形8.1.4 纹理矩阵8.2 一个简单的2D例子8.3 纹理环境8.4 纹理参数8.4.1 基本过滤8.4.2 纹理环绕8.4.3 带纹理的卡通8.4.4 Mip贴图8.5 纹理对象8.6 总结第9章 纹理贴图:高级知识9.1 辅助颜色9.2 各向异性过滤9.3 纹理压缩9.3.1 压缩纹理9.3.2 加载压缩纹理9.4 纹理坐标生成9.4.1 物体线性贴图9.4.2 视觉线性贴图9.4.3 球体贴图9.4.4 立方体贴图9.5 多重纹理9.5.1 多重纹理坐标9.5.2 一个多重纹理例子9.6 纹理组合器9.7 点块纹理9.7.1 使用点9.7.2 纹理应用9.7.3 点参数9.8 总结第10章 曲线和表面10.1 内部支持的表面10.1.1 设置二次方程状态10.1.2 绘制二次方程图形10.1.3 用二次方程进行建模10.2 Bézier曲线和表面10.2.1 参数方程表示形式10.2.2 求值器(evaluator)10.3 NURBS10.3.1 从Bézier到B样条10.3.2 结点10.3.3 创建NURBS表面10.3.4 NURBS属性10.3.5 定义表面10.3.6 修剪10.3.7 NURBS表面10.4 分格化(tessellation)10.4.1 分格器(tessellator)10.4.2 分格器回调函数10.4.3 指定顶点数据10.4.4 综合应用10.5 总结第11章 这就是管线:更快的几何图形渲染11.1 显示列表11.1.1 批处理11.1.2 预批处理11.1.3 使用显示列表的一些注意事项11.1.4 转换到显示列表11.2 顶点数组11.2.1 加载几何图形11.2.2 启用数组11.2.3 数据在哪里11.2.4 用数据绘图11.2.5 索引顶点数组11.3 顶点缓冲区对象11.3.1 管理和使用缓冲区对象11.3.2 回到Thunderbird11.4 总结第12章 交互式图形12.1 选择12.1.1 为图元命名12.1.2 在选择模式下工作12.1.3 选择缓冲区12.1.4 挑选12.1.5 层次式挑选12.2 反馈12.2.1 反馈缓冲区12.2.2 反馈数据12.2.3 用户定义标记12.3 一个反馈例子12.3.1 对物体加上标签以便反馈12.3.2 步骤1:选择物体12.3.3 步骤2:从物体获取反馈信息12.4 总结第13章 遮挡查询:消除不必要的工作13.1 遮挡查询之前的世界13.2 边框13.3 对查询对象进行查询13.4 最佳实践13.5 总结第14章 深度纹理和阴影14.1 作为光源14.1.1 使场景正好占据整个窗口14.1.2 去掉不必要的东西14.2 一种新类型的纹理14.3 首先绘制阴影14.4 然后是光照14.4.1 投影阴影贴图:“为什么”14.4.2 投影阴影贴图:“怎么做”14.4.3 阴影比较14.5 只用两个就够了14.6 关于多边形偏移14.7 总结第二部分 “新约”——新的发展第15章 可编程管线:这已不是旧式的OpenGL15.1 旧的被淘汰15.1.1 固定的顶点处理15.1.2 固定的片断处理15.2 新的占主导15.2.1 可编程顶点着色器15.2.2 固定功能胶水15.2.3 可编程片断着色器15.3 初窥OpenGL着色语言15.4 管理高层着色器15.4.1 着色器对象15.4.2 程序对象15.5 变量15.5.1 基本类型15.5.2 结构15.5.3 数组15.5.4 限定符15.5.5 内置的变量15.6 表达式15.6.1 操作符15.6.2 数组访问15.6.3 构造函数15.6.4 成分选择15.7 控制流15.7.1 循环15.7.2 if/else15.7.3 discard15.7.4 函数15.8 总结第16章 顶点着色:自行转换、光照和Texgen16.1 初次试验16.2 散射光照16.3 镜面光照16.4 改善镜面光照16.5 基于顶点的雾16.6 基于顶点的点大小16.7 自定义的顶点变换16.8 顶点混合16.9 总结第17章 片断着色器:增强像素处理的威力17.1 颜色转换17.1.1 灰度17.1.2 调棕色17.1.3 反色17.1.4 热信号17.1.5 基于片断的雾17.2 图像处理17.2.1 模糊17.2.2 锐化17.2.3 膨胀和侵蚀17.2.4 边缘检测17.3 光照17.3.1 散射光照17.3.2 多重镜面光照17.4 过程纹理贴图17.4.1 棋盘纹理17.4.2 沙滩球纹理17.4.3 玩具球纹理17.5 总结第18章 高级缓冲区18.1 像素缓冲区对象18.1.1 如何使用PBO18.1.2 PBO的优点18.1.3 实际使用PBO18.1.4 可以使用PBO的命令18.2 帧缓冲区对象18.2.1 如何使用FBO18.2.2 离屏渲染18.2.3 渲染到纹理18.2.4 多个渲染目标18.3 浮点纹理18.3.1 高动态范围18.3.2 OpenEXR文件格式18.3.3 调和映射(tone mapping)18.4 更白、更亮18.4.1 绘制场景18.4.2 亮度渲染18.4.3 借助于高斯模糊18.4.4 把各部分相加18.4.5 再次使用PBO18.5 总结第三部分 “新约外传”——扩展应用第19章 Wiggle:Windows上的OpenGL19.1 Windows上的OpenGL实现19.1.1 泛型OpenGL19.1.2 可安装客户驱动程序19.1.3 Mini客户驱动程序19.1.4 Mini驱动程序19.1.5 Vista上的OpenGL19.1.6 扩展OpenGL19.2 基本的窗口渲染19.2.1 GDI设备环境19.2.2 像素格式19.2.3 OpenGL渲染环境19.3 综合应用19.3.1 创建窗口19.3.2 使用OpenGL渲染环境19.3.3 其他Windows消息19.4 OpenGL和Windows字体19.4.1 3D字体和文本19.4.2 2D字体和文本19.5 全屏渲染19.5.1 创建一个无边框窗口19.5.2 创建一个全屏窗口19.6 多线程渲染19.7 OpenGL和WGL扩展19.7.1 简单扩展19.7.2 使用新入口19.7.3 自动魔法扩展19.7.4 WGL扩展19.8 总结第20章 Mac OS X上的OpenGL20.1 GLUT20.1.1 创建一个GLUT项目20.1.2 应用程序框架20.1.3 Ditching Cocoa20.2 使用Carbon的OpenGL20.2.1 为OpenGL进行设置20.2.2 设置像素格式20.2.3 位图字体20.3 使用Cocoa的OpenGL20.3.1 创建一个Cocoa程序20.3.2 综合运用20.4 全屏渲染20.4.1 显示管理20.4.2 AGL全屏支持20.5 总结第21章 Linux上的OpenGL21.1 基础知识21.2 安装21.2.1 安装Mesa21.2.2 安装硬件驱动程序21.2.3 其他安装细节21.2.4 安装GLUT21.2.5 生成OpenGL应用程序21.3 GLUT21.4 GLX——处理X Window接口21.4.1 显示和X21.4.2 配置管理和画面21.4.3 窗口和渲染表面21.4.4 环境管理21.4.5 同步21.4.6 GLX字符串21.4.7 其他关于GLX的内容21.5 综合运用21.6 总结第22章 OpenGL ES:嵌入式OpenGL22.1 精简的OpenGL22.1.1 ES指什么22.1.2 历史概述22.2 版本选择22.2.1 ES 1.022.2.2 ES 1.122.2.3 ES 2.022.2.4 ES SC22.3 ES环境22.3.1 应用程序设计的注意事项22.3.2 有限环境的处理22.3.3 定点数学22.4 EGL:新的窗口环境22.4.1 EGL显示22.4.2 创建一个窗口22.4.3 环境管理22.4.4 呈现缓冲区和渲染同步22.4.5 更多EGL相关内容22.5 处理嵌入式环境22.5.1 流行操作系统22.5.2 嵌入式硬件22.5.3 供应商特定扩展22.5.4 个人玩家22.6 实施OpenGL ES22.6.1 设置环境22.6.2 设置OpenGL ES状态22.6.3 渲染22.6.4 清除工作22.7 总结


飞网下载站,免费下载共享资料,内容涉及教育资源、专业资料、IT资源、娱乐生活、经济管理、办公文书、游戏资料等。