《OpenGL编程精粹》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:杨柏林等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2010
  • ISBN:9787111315766
  • 页数:370 页
图书介绍:本书讲述如何使用OpenGL进行编程。从实际应用的角度出发,全书以OpenGL在实际应用中频繁出现的技术重点和难点为讲解内容,完全以对实例的精心讲解贯穿全书,并在各个实例中穿插OpenGL和3D图形学的相关原理和概念,舍弃OpenGL中与实际3D图形应用开发关联不大的琐碎知识细节,以一种全新的方式引导读者快速掌握实际开发中所必须掌握的最重要,最实用的概念、原理和编程技巧,事半功倍的进入相关开发领域。本书中的实例代码都是从大量实际应用中精心筛选出来的,并经过适当的修改、完善和严格测试。

第1章 OpenGL图形开发快速入门 1

1.1 OpenGL基础知识 1

1.1.1 OpenGL的历史 1

1.1.2 OpenGL的特点 2

1.2 3D图形学理论入门 2

1.2.1 点 3

1.2.2 向量 4

1.2.3 矩阵 6

1.2.4 变换 8

1.2.5 投影 13

1.2.6 裁剪 15

1.2.7 光照 16

第2章 OpenGL程序框架 18

2.1 窗口渲染环境 18

2.1.1 GDI设备环境 18

2.1.2 OpenGL渲染环境 22

2.2 窗口创建 25

2.2.1 Win32 SDK风格的框架 26

2.2.2 面向对象风格的框架 42

2.3 增加环境设置选项 60

第3章 OpenGL基本图形的绘制 64

3.1 OpenGL的数据类型 64

3.2 函数命名的语法 64

3.3 OpenGL是一种状态机 65

3.4 OpenGL变换 65

3.4.1 视点变换 66

3.4.2 模型变换 67

3.4.3 投影变换 67

3.4.4 视口变换 70

3.4.5 裁剪变换 70

3.5 OpenGL基本图形的绘制 70

3.6 OpenGL基本图元的属性细节 74

第4章 OpenGL颜色及3D图形的绘制 76

4.1 计算机颜色 76

4.2 OpenGL颜色模式 76

4.3 着色模式 77

4.4 顶点数组 77

4.5 3D彩色物体绘制实例 78

第5章 OpenGL光照和材质 83

5.1 光照及材质介绍 83

5.2 OpenGL光照模型 84

5.2.1 法线向量 84

5.2.2 创建光源 85

5.2.3 选择光照模型 87

5.2.4 启用光照 88

5.3 材质 88

5.3.1 材质的定义 88

5.3.2 颜色材质模式 89

5.4 光照实例 90

5.5 材质实例 93

第6章 显示列表 96

6.1 使用显示列表的优势 96

6.2 显示列表的适用场合 96

6.3 创建显示列表 97

6.4 执行显示列表 97

6.5 管理显示列表 98

6.6 显示列表实例 98

第7章 位图和图像 102

7.1 位图 102

7.1.1 位图与字符 102

7.1.2 绘制位图 102

7.1.3 绘制位图实例 103

7.2 图像操作 105

7.2.1 像素读写 105

7.2.2 像素复制 106

7.2.3 像素缩放 107

7.2.4 像素操作实例 107

第8章 纹理映射 110

8.1 简介 110

8.2 纹理映射的过程 110

8.2.1 纹理定义 110

8.2.2 纹理控制 111

8.2.3 纹理映射方式 112

8.2.4 指定纹理坐标 113

8.2.5 纹理对象 114

8.3 纹理资源载入 114

8.3.1 BMP位图介绍 114

8.3.2 TGA介绍 116

8.3.3 纹理资源的载入 118

8.4 纹理映射实例 121

第9章 混合 126

9.1 混合因子 126

9.2 启用混合 127

9.3 实现步骤 127

9.4 混合实例 128

第10章 字体 132

10.1 OpenGL显示英文字体 132

10.1.1 平面文字的显示 132

10.1.2 立体文字的显示 137

10.2 OpenGL显示中文 142

10.2.1 3D文字的显示 142

10.2.2 平面文字的显示 145

第11章 反走样 150

11.1 行为控制 150

11.2 点和直线的反走样 151

11.3 多边形的反走样 152

第12章 雾 156

12.1 概述 156

12.2 启用雾 156

12.3 设置雾的属性 156

12.4 雾坐标 157

12.5 雾效实例 158

第13章 网格化 163

13.1 网格化步骤 163

13.2 创建网格化对象 163

13.3 网格化回调函数 164

13.4 网格化属性 165

13.5 定义多边形 166

13.6 删除网格化对象 166

13.7 网格化实例 166

第14章 二次几何体 176

14.1 渲染二次几何体步骤 176

14.2 二次对象 176

14.3 二次对象的属性 176

14.4 二次图元 177

14.5 实例 178

第15章 贝赛尔曲线和曲面 183

15.1 求值程序 183

15.2 贝赛尔曲线 183

15.2.1 启用求值程序 183

15.2.2 定义一维求值程序 183

15.2.3 执行一维求值程序 184

15.2.4 贝赛尔曲线实例 185

15.3 贝赛尔曲面 186

15.3.1 启用求值程序 186

15.3.2 定义二维求值程序 186

15.3.3 执行二维求值程序 187

15.3.4 贝赛尔曲面实例 187

第16章 多重纹理 191

16.1 OpenGL扩展 191

16.1.1 扩展名 191

16.1.2 使用OpenGL扩展 192

16.2 多重纹理 192

16.3 多重纹理实例 193

第17章 凹凸映射 201

17.1 凹凸映射的一般原理 201

17.1.1 介绍 201

17.1.2 切空间 201

17.1.3 原理 202

17.2 浮雕凹凸映射 202

17.2.1 原理 202

17.2.2 实现方法 203

17.3 本章实例 204

第18章 环境映射 217

18.1 环境映射介绍 217

18.2 环境映射分类 218

18.2.1 球形映射 218

18.2.2 立方体映射 219

18.3 环境映射实例 220

18.3.1 Sphere Mapping实例 220

18.3.2 Cube Mapping实例 227

第19章 镜面反射 232

19.1 模板缓存 232

19.1.1 模板缓存的启用 232

19.1.2 设置、清除模板缓存区 233

19.1.3 模板测试 233

19.2 镜面反射实例 235

第20章 阴影 240

20.1 介绍 240

20.2 阴影生成方法 240

20.2.1 平面投射 240

20.2.2 阴影图 241

20.2.3 阴影体 242

20.3 阴影实例 243

20.3.1 平面投射实例 243

20.3.2 阴影体实例 248

第21章 拾取 257

21.1 介绍 257

21.1.1 基本步骤 257

21.1.2 名字栈 258

21.1.3 命中记录 259

21.1.4 拾取 259

21.2 拾取实例 260

第22章 骨骼动画 267

22.1 介绍 267

22.2 骨骼蒙皮动画 268

22.2.1 基本原理 268

22.2.2 实现 268

22.3 本章实例 269

第23章 摄像机漫游 278

23.1 介绍 278

23.2 摄像机漫游 278

23.3 漫游实例 287

第24章 天空绘制 292

24.1 天空盒 292

24.2 天空顶 293

24.3 天空绘制实例 294

24.3.1 天空盒实例 294

24.3.2 天空顶实例 299

第25章 地形渲染 308

25.1 LOD技术简介 308

25.2 ROAM模型 308

25.3 ROAM简单实例 309

25.4 ROAM地形实例 319

第26章 粒子系统 327

26.1 粒子系统简介 327

26.2 粒子系统类 328

26.3 暴雪实例类 330

第27章 OpenGL着色语言 339

27.1 OpenGL着色语言简介 339

27.2 OpenGL着色语言环境设置 340

27.2.1 着色器创建流程 340

27.2.2 创建一个着色器 341

27.2.3 创建一个程序 342

27.2.4 查询函数与清理工作 344

27.2.5 OpenGL与OpenGL着色语言的通信 346

27.3 GLSL语法基础 349

27.3.1 数据类型 349

27.3.2 变量限定符 350

27.3.3 流控制 350

27.3.4 函数 350

27.4 实例分析 351

27.4.1 GLSL简单实例 351

27.4.2 颜色处理实例 354

27.4.3 变形实例 356

第28章 OpenGL ES应用基础 359

28.1 OpenGL ES和EGL 359

28.1.1 OpenGL ES介绍 359

28.1.2 EGL介绍 360

28.2 OpenGL ES初始化方法 362

28.3 OpenGL ES应用实例 363

28.3.1 OpenGL ES在Windows CE上的使用 363

28.3.2 OpenGL ES在BREW上的使用 364

28.3.3 OpenGL ES在Java上的使用 366

参考文献 368