图书介绍

OpenGL超级宝典PDF|Epub|txt|kindle电子书版本网盘下载

OpenGL超级宝典
  • (美)Richard S.Wright,Jr.,(美)Michael Sweet著;潇湘工作室译 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:7115092338
  • 出版时间:2001
  • 标注页数:626页
  • 文件大小:51MB
  • 文件页数:655页
  • 主题词:三维 计算机图形学 程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

OpenGL超级宝典PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 3D图形学的基本原理3

1.1 简介3

1.2 计算机图形学简史3

1.2.1 进入CRT3

第一部分 OpenGL API基础3

1.2.2 3D概念4

1.3 3D效果研究6

1.3.1 透视法6

1.3.3 光照和明暗处理7

1.3.2 色彩和明暗7

1.3.4 纹理贴图8

1.3.5 雾化8

1.3.6 混合和透明度9

1.3.7 消除锯齿9

1.4 3D图形的常见用途10

1.4.1 实时3D10

1.5 3D编程基本原理13

1.5.1 直接模式和保留模式(场景图)13

1.4.2 非实时3D13

1.5.2 坐标系14

1.5.3 投影:将3D变为2D17

1.6 小结19

第2章 什么是OpenGL21

2.1 标准的演变21

2.1.1 OpenGL ARB22

2.1.2 使用许可和一致性22

2.2 OpenGL的工作方式23

2.1.3 OpenGL的未来23

2.2.1 通用实现24

2.2.2 硬件实现25

2.2.3 流水线25

2.2.4 状态机26

2.3 小结26

第3章 使用OpenGL27

3.1 本章主要内容27

3.2 OpenGL是API,不是语言27

3.2.1 库和头文件28

3.2.2 硬件加速28

3.3 API的规定29

3.2.3 其他实现29

3.3.1 数据类型30

3.3.2 函数命名约定31

3.4 平台无关性32

3.4.1 使用GLUT32

3.4.2 设置编程环境33

3.5 第一个程序33

3.5.1 头文件35

3.5.2 主体35

3.5.3 OpenGL图形调用37

3.6 用OpenGL绘制图形38

3.6.1 绘制矩形41

3.6.2 窗口的缩放比例41

3.7 应用OpenGL和GLUT制作动画45

3.8 3D效果50

3.9 小结51

3.10 参考函数52

3.10.1 glClearColor52

3.10.2 glFlush52

3.10.3 glOrtho52

3.10.5 glRect53

3.10.4 glViewport53

3.10.6 glutCreateWindow54

3.10.7 glutDisplayFunc54

3.10.8 glutInitDisplayMode55

3.10.9 glutKeyboardFunc55

3.10.10 glutMainLoop56

3.10.11 glutMouseFunc56

3.10.12 glutReshapeFunc57

3.10.13 glutPostRedisplay57

3.10.16 glutSolidDodecahedron,glutWireDodecahedron58

3.10.15 glutSolidCube,glutWireCube58

3.10.14 glutSolidCone,glutWireCone58

3.10.17 glutSolidIcosahedron,glutWireIcosahedron59

3.10.18 glutSolidOctahedron,glutWireOctahedron59

3.10.19 glutSolidSphere,glutWireSphere59

3.10.20 glutSolidTetrahedron,glutWireTetrahedron60

3.10.21 glutSolidTorus,glutWireTorus60

3.10.22 glutSolidTeapot,glutWireTeapot61

3.10.23 glutSpecialFunc61

3.10.24 glutSwapBuffers62

3.10.25 glutTimerFunc63

第4章 在空间中绘图:线、点和多边形65

4.1 本章主要内容65

4.2 在3D中画点66

4.3 设置3D画布66

4.4 一个3D点:顶点68

4.5 开始绘制69

4.6 设置点的大小72

4.7 在3D中画线75

4.7.1 线段的跨接和循环76

4.7.2 用直线逼近曲线77

4.7.3 设置线宽79

4.7.4 点画线81

4.8 在3D中画三角形83

4.8.1 三角形:第一个多边形83

4.8.2 绕法84

4.8.3 三角条85

4.8.4 三角扇形86

4.9 建立实心对象86

4.9.2 移除被挡住的表面90

4.9.1 设置多边形的颜色90

4.9.3 剔除:为了性能而隐藏表面92

4.9.4 多边形模式94

4.10 其他图元95

4.10.1 四个边的多边形:四边形95

4.10.2 通用多边形96

4.10.3 填充多边形或点画修改96

4.10.4 多边形的构造规则101

4.10.5 剖面和边缘102

4.12.1 glBegin104

4.11 小结104

4.12 参考函数104

4.12.2 glCullFace105

4.12.3 glEdgeFlag106

4.12.4 glEnd108

4.12.5 glFrontFace108

4.12.6 glGetPolygonStipple109

4.12.7 glLineStipple110

4.12.8 glLineWidth111

4.12.9 glPointSize113

4.12.10 glPolygonMode114

4.12.11 glPolygonStipple115

4.12.12 glVertex116

第5章 在空间中移动:坐标变换119

5.1 本章主要内容119

5.2 本章与数学119

5.3 了解变换120

5.3.1 眼坐标120

5.3.2 视图变换122

5.3.3 模型变换122

5.3.4 模型视图的对偶性123

5.3.5 投影交换124

5.3.6 视见区变换125

5.4 矩阵125

5.4.1 什么是矩阵125

5.4.2 变换的流程图126

5.4.3 模型视图矩阵126

5.4.4 单位矩阵129

5.4.5 矩阵堆栈132

5.4.6 原子核示例133

5.5.1 正射投影136

5.5 使用投影136

5.5.2 透视投影137

5.5.3 一个非常前卫的示例140

5.6 高级矩阵处理143

5.6.1 加载矩阵144

5.6.2 执行自己的变换144

5.6.3 其他变换145

5.7 小结145

5.8 参考函数145

5.8.1 glFrustum145

5.8.3 glLoadMatrix146

5.8.2 glLoadIdentity146

5.8.4 glMatrixMode147

5.8.5 glMultMatrix148

5.8.6 glPopMatrix148

5.8.7 glPushMatrix149

5.8.8 glRotate149

5.8.9 glScale150

5.8.10 glTranslate150

5.8.11 gluLookAt151

5.8.13 gluPerspective152

5.8.12 gluOrtho2D152

第6章 颜色、光照和材质155

6.1 本章主要内容155

6.2 何谓颜色156

6.2.1 光是一种光波156

6.2.2 光是一种粒子156

6.2.3 人的光子侦测器157

6.2.4 计算机作为光子生成器158

6.3 PC机的颜色硬件159

6.4.2 颜色深度160

6.4.1 屏幕分辨率160

6.4 PC机的显示模式160

6.5 在OpenGL中使用颜色161

6.5.1 颜色立方本161

6.5.2 设置绘图颜色163

6.5.3 明暗处理163

6.5.4 设置明暗处理模型165

6.6 现实世界中的颜色166

6.6.1 环境光167

6.6.2 散射光167

6.6.4 不同光源混合168

6.6.3 镜面光168

6.7.1 材质属性169

6.7.2 给材质加光线169

6.7 现实世界中的材质169

6.7.3 计算环境光的效果170

6.7.4 散射光和镜面光的效果170

6.8 场景中加光线171

6.8.1 使光源生效171

6.8.2 设置光照模型171

6.8.3 设置材质属性172

6.9.1 选择方法175

6.9 使用光源175

6.9.2 法线矢量176

6.9.3 指定一条法线176

6.9.4 单位法线178

6.9.5 找法线179

6.9.6 设置光源181

6.9.7 设置材质属性183

6.9.8 指定多边形183

6.10.2 镜面光185

6.10 光照效果185

6.10.1 镜面光的亮斑185

6.10.3 镜面光反射率186

6.10.4 镜面指数187

6.10.5 法线的平均188

6.11 所有效果的综合190

6.11.1 创建聚光灯191

6.11.2 绘制聚光灯193

6.12 阴影197

6.12.2 压平物体的代码198

6.12.1 何谓阴影198

6.12.3 一个阴影示例200

6.13 小结203

6.14 参考函数204

6.14.1 glColor204

6.14.2 glColorMask205

6.14.3 glColorMaterial206

6.14.4 glCullFace207

6.14.5 glFrontFace207

6.14.6 glGetMaterial208

6.14.7 glGetLight209

6.14.8 glLight210

6.14.9 glLightModel211

6.14.10 glMaterial213

6.14.11 glNormal213

6.14.12 glShadeModel215

第二部分 OpenGL渲染组成219

第7章 OpenGL中的光栅图形219

7.1 本章主要内容219

7.2 绘制位图219

7.3 位图字体222

7.3.1 建立简单的字体库223

7.3.2 删除位图字体224

7.3.3 使用位图字体绘制225

7.3.4 显示格式化的文本225

7.3.5 简单的文本绘制程序227

7.4 彩色拉图——像素贴图228

7.5 Windows.BMP文件查看器230

7.5.1 关于Windows位图文件230

7.5.2 读取.BMP文件231

7.5.3 显示位图232

7.5.4 缩放图像233

7.6 使用透明度绘制图像234

7.7 绘制索引图像236

7.8 拍摄图像的全景237

7.9 读取图像237

7.10 复制图像240

7.11 编写.BMP文件240

7.13 参考函数242

7.13.1 glCopyPixels242

7.12 小结242

7.13.2 glDrawPixels243

7.13.3 glPixelMap244

7.13.4 glPixelStore245

7.13.5 glPixelTransfer246

7.13.6 glPixelZoom247

7.13.7 glReadPixels248

第8章 纹理贴图251

8.1 本章主要内容251

8.2 纹理贴图基础252

8.3.1 定义1D纹理253

8.3 定义纹理图像253

8.3.2 定义2D纹理254

8.3.3 纹理模式254

8.3.4 纹理滤镜255

8.3.5 纹理坐标256

8.3.6 纹理绕转256

8.4 综合应用——1D纹理示例257

8.5 2D纹理示例258

8.6 使用多个纹理图像258

8.6.2 在内存中保存纹理对象259

8.6.1 管理纹理对象259

8.6.3 一个简单的纹理对象加载器260

8.7 地形查看程序263

8.8 自动生成纹理坐标267

8.9 多贴图的纹理268

8.9.1 定义多贴图纹理268

8.9.2 自动生成多贴图269

8.9.3 控制细节的级别270

8.9.4 在地形查看器中添加多贴图270

8.10 使用纹理加光照效果271

8.12 3D纹理275

8.11 替换纹理图像数据275

8.13 小结276

8.14 参考函数277

8.14.1 glTexCoord277

8.14.2 glTexEnv278

8.14.3 glTexGen278

8.14.4 GlTexImage1D280

8.14.5 GlTexImage2D280

8.14.6 GlTexImage3D281

8.14.7 glTexParameter282

9.2 确定任务285

第9章 3D建模与物体合成285

9.1 本章主要内容285

9.2.1 选择投影286

9.2.2 选择光照和材料属性287

9.2.3 显示结果288

9.3 构造模型——每次创建一个部件289

9.3.1 螺帽290

9.3.2 螺杆294

9.3.3 螺纹297

9.3.4 组合模块301

9.4 预处理模型303

9.4.1 显示表303

9.4.2 纹理数组307

9.4.3 顶点数组显示表318

9.5 小结318

9.6 参考函数318

9.6.1 glArrayElement318

9.6.2 glDrawArrays319

9.6.3 glEnableClientState/glDisableClientState319

9.6.4 glCallList320

9.6.5 glCallLists321

9.6.6 glColorPointer322

9.6.7 glDeleteLists323

9.6.8 glDrawElements323

9.6.9 glDrawRangeElements324

9.6.10 glEdgeFlagPointer325

9.6.11 glEndList325

9.6.12 glGenLists326

9.6.13 glInterleavedArrays327

9.6.14 glIsList328

9.6.15 glListBase329

9.6.16 glNewList330

9.6.17 glNormalPointer331

9.6.18 glTexCoordPointer331

9.6.19 glVertexPointer332

第10章 实际效果:混色与雾化335

10.1 本章主要内容335

10.2 混色335

10.2.1 使用混色方法制作透明效果336

10.2.2 混色与消除锯齿338

10.2.3 在画图程序中使用混色338

10.2.4 再访地形查看程序339

10.3 雾化341

10.3.1 画具有深度感的茶壶342

10.3.2 其他雾化类型342

10.3.3 雾的距离343

10.4 回到地形查看程序343

10.6.2 glFog344

10.6.1 glBlendFunc344

10.5 小结344

10.6 参考函数344

第11章 缓冲区:不只是为了实现动画347

11.1 本章主要内容347

11.2 缓冲区是什么347

11.2.1 WIN32环境中的缓冲区348

11.3 利用WIN32函数配置缓冲区350

11.3.2 设置像素格式350

11.3.1 获取设备场境350

11.2.3 渲染场境350

11.2.2 设备场境350

11.3.3 创建所需的调色板352

11.3.4 创建渲染场境353

11.4 利用GLUT函数设置缓冲区354

11.5 选择所需的缓冲区354

11.6 颜色缓冲区354

11.6.1 双缓冲355

11.6.2 立体缓冲355

11.6.3 交换缓冲区355

11.7.1 启用深度对比356

11.7.2 深度对比356

11.7 深度缓冲区356

11.7.3 深度值357

11.7.4 深度缓冲区的应用359

11.7.5 深度缓冲区的另一个应用359

11.7.6 切除部分场景360

11.8 模版缓冲区361

11.8.1 使用模版缓冲区361

11.8.2 模版缓冲区函数362

11.8.3 绘制到模版缓冲区362

11.9 累积缓冲区364

11.9.1 利用累积缓冲区实现运动模糊365

11.9.2 利用累积缓冲区实现消除锯齿366

11.9.3 使用全屏消除锯齿的代价368

11.10 小结368

11.11 参考函数368

11.11.1 glAccum368

11.11.2 glClearColor369

11.11.3 glClearDepth369

11.11.4 glClearIndex369

11.11.7 glDepthRange370

11.11.6 glDepthFunc370

11.11.5 glClearStencil370

11.11.8 glDrawBuffer371

第12章 超越直线和三角形373

12.1 本章主要内容373

12.2 二次曲面374

12.2.1 改变绘制二次曲面的方式374

12.2.2 绘制柱体375

12.2.4 绘制锥体376

12.2.5 绘制盘状体376

12.2.3 纹理和柱体376

12.2.6 盘状体和纹理377

12.2.7 绘制部分圆盘377

12.2.8 绘制球体377

12.2.9 球体和纹理378

12.3 绘制一根铅笔378

12.4 复杂多边形380

12.4.1 GLU1.1和GLU1.2380

12.4.2 创建镶嵌对象381

12.4.3 回调函数381

12.4.4 绘制凹多边形383

12.4.5 绘制复杂多边形384

12.5 综合使用二次曲面和多边形镶嵌工具386

12.5.1 建立F-16的模型387

12.5.2 绘制F-16的模型390

12.6 镶嵌高度场(网格)391

12.6.1 使用三角长条绘制高度场391

12.6.2 三角长条方法的加强392

12.6.3 其他镶嵌算法393

12.7 改进地形查看程序393

12.8 小结393

12.9.1 gluCylinder394

12.9 参考函数394

12.9.2 gluDeleteQuadric395

12.9.3 gluDeleteTess395

12.9.4 gluDisk395

12.9.5 gluNewQuadric396

12.9.6 gluNewTess396

12.9.7 gluPartialDisk396

12.9.8 gluQuadricCallback397

12.9.9 gluQuadricDrawStyle397

12.9.11 gluQuadricOrientation398

12.9.10 gluQuadricNormals398

12.9.12 gluQuadricTexture399

12.9.13 gluSphere399

12.9.14 gluTessBeginContour400

12.9.15 gluTessBeginPolygon400

12.9.16 gluTessCallback400

12.9.17 gluTessEndContour401

12.9.18 gluTessEndPolygon401

12.9.19 gluTessProperty401

12.9.20 gluTessVertex402

13.1 本章主要内容403

第13章 曲线和曲面403

13.2 曲线和曲面404

13.2.1 参数表示法404

13.2.2 控制点405

13.2.3 连续性405

13.3 求值程序406

13.3.1 2D曲线406

13.3.2 计算曲线411

13.3.3 3D曲面411

13.4 NURBS415

13.3.4 光照和法线矢量415

13.4.2 结点416

13.4.1 从贝塞尔到B样条416

13.4.3 创建一个NURBS曲面417

13.4.4 NURBS属性418

13.4.5 定义曲面418

13.4.6 修整420

13.6 参考函数422

13.6.1 glEvalCoord422

13.5 小结422

13.4.7 Nuros曲线422

13.6.2 glEvalMesh423

13.6.3 glEvalPoint424

13.6.4 glGetMap424

13.6.5 glMap426

13.6.6 glMapGrid429

13.6.7 gluBeginCurve430

13.6.8 gluBeginSurface430

13.6.9 gluBeginTrim431

13.6.10 gluDeleteNurbsRenderer432

13.6.12 gluEndSurface433

13.6.11 gluEndCurve433

13.6.13 gluEndTrim434

13.6.14 gluGetNurbsProperty434

13.6.15 gluLoadSamplingMatrices435

13.6.16 gluNewNurbsRenderer436

13.6.17 gluNurbsCallback437

13.6.18 gluNurbsCurve439

13.6.19 gluNurbsProperty439

13.6.20 gluNurbsSurface441

13.6.21 gluPwlCurve442

第14章 交互式图形445

14.1 本章主要内容445

14.2 选定446

14.2.1 命名图元446

14.2.2 使用选定模式448

14.2.3 选定缓冲区449

14.2.4 检选451

14.2.5 分层检选453

14.3.1 反馈缓冲区457

14.3 反馈457

14.3.2 反馈数据458

14.3.3 处理标记器459

14.4 反馈示例459

14.4.1 标注反馈对象460

14.4.2 第一步:选择对象462

14.4.3 第二步:获取对象的反馈464

14.6 参考函数466

14.6.1 glFeedbackBuffer466

14.5 小结466

14.6.2 glInitNames468

14.6.3 glLoadName468

14.6.4 glPassThrough469

14.6.5 glPopName469

14.6.6 glPushName470

14.6.7 glRenderMode471

14.6.8 glSelectBuffer473

14.6.9 gluPickMatrix474

15.2 OpenGL图像扩展的基本知识477

15.1 本章主要内容477

第15章 用OpenGL制作图像477

15.3 颜色矩阵478

15.4 卷绕(过滤)481

15.4.1 锐化卷绕滤镜482

15.4.2 使卷绕滤镜变模糊482

15.5 直方图均衡482

15.5.1 获取直方图数据483

15.5.2 获取最小数据和最大数据483

15.6 小结483

15.7.2 glConvolutionFilter2DARB484

15.7 参考函数484

15.7.1 glConvolutionFilter1DARB484

15.7.3 glGetHistogramARB485

15.7.4 glGetMinMaxARB485

15.7.5 glHistogramARB486

15.7.6 glMinMaxARB486

15.7.7 glResetHistogramARB486

15.7.8 glResetMinMaxARB487

16.1 本章主要内容489

16.2 可用的扩展489

第16章 常用的OpenGL扩展489

16.3 何时使用扩展490

16.4 检查扩展的可用性490

16.4.1 访问扩展函数490

16.4.2 扩展常量491

16.5 交换线索扩展492

16.6 顶点淘汰扩展494

16.6.1 使用顶点淘汰扩展494

16.6.2 Terrain示例中的顶点淘汰495

16.7.1 检查多纹理扩展496

16.7 多纹理扩展496

16.7.2 使用多纹理扩展497

16.8 小结498

16.9 参考函数498

16.9.1 glActiveTextureARB498

16.9.2 glAddSwapHintRectWIN499

16.9.3 glCullParameterfvSGI499

16.9.4 glMultiTexCoord*ARB499

16.9.5 wglGetProcAddress500

17.1 本章主要内容505

第三部分 OpenGL for Windows:OpenGL与Win32505

第17章OpenGL像素格式和渲染场境505

17.2 OpenGL在Windows上的实现506

17.2.1 通用OpenGL506

17.2.2 可安装的客户驱动程序506

17.2.3 小型客户驱动程序506

17.2.4 小型驱动程序507

17.3 基本Windows渲染507

17.3.1 GDI设备场境508

17.3.2 像素格式510

17.3.3 OpenGL渲染场境516

17.4 综合应用517

17.4.1 创建窗口518

17.4.2 使用OpenGL渲染场镜522

17.4.3 其他Windows消息526

17.5 Windows调色板528

17.5.1 颜色匹配528

17.5.2 调色板调停529

17.5.3 为OpenGL创建调色板530

17.5.4 调色板的创建与处理535

17.6.1 3D字体和文本537

17.6 OpenGL和Windows字体537

17.6.2 2D字体和文本540

17.7 全屏幕渲染540

17.7.1 创建无框窗口540

17.7.2 创建全屏窗口541

17.8 多线程渲染544

17.9 小结545

17.10 参考函数545

17.10.1 ChoosePixelFormat545

17.10.2 DescribePixelFormat547

17.10.3 GetPixelFormat550

17.10.4 SetPixelFormat550

17.10.5 SwapBuffers550

17.10.6 wglCreateContext551

17.10.7 wglCreateLayerContext552

17.10.8 wglCopyContext553

17.10.9 wglDeleteContext553

17.10.10 wglDescribeLayerPlane554

17.10.11 wglGetCurrentContext556

17.10.12 wglGetCurrentDC557

17.10.14 wglShareLists558

17.10.13 wglMakeCurrent558

17.10.15 wglSwapLayerBuffers559

17.10.16 wglUseFontBitmaps560

17.10.17 wglUseFontOutlines561

第18章 非视窗渲染563

18.1 脱屏渲染的基本知识563

18.1.1 脱屏渲染的制约563

18.1.2 为渲染创建脱屏缓冲区563

18.1.4 共享显示表565

18.1.3 撤消脱屏缓冲区565

18.2 保存为.BMP文件566

18.3 打印图像568

18.4 图元文件570

18.4.1 创建增强的图元文件设备场境570

18.4.2 图元文件和OpenGL视见区571

18.4.3 从Terrain查看程序中生成图元文件571

18.5 小结571

19.1 本章主要内容573

19.2 实时的速度573

第19章OpenGL实时编程573

19.3 Windows动画技巧575

19.3.1 计时器用于动画575

19.3.2 简化WM_PAINT机制580

19.3.3 事件插入循环582

19.3.4 使用渲染线程584

19.4 实时中的“真实”591

19.4.1 基于时间的关键帧592

19.4.2 实际限制593

19.4.3 实时响应594

19.5 场景图基本知识600

19.5.1 使景色散乱601

19.5.2 模型淘汰604

19.6 其他实时技巧607

19.6.1 Direct X607

19.6.2 通用的OpenGL性能提示607

19.7 小结608

A.1 1.1版(1995年12月)611

A.2 1.2版(1998年3月)611

附录A OpenGL更新摘要611

第四部分 附录611

附录B 阅读资料613

B.1 Windows编程方面的书籍613

B.2 OpenGL方面的书籍613

B.3 3D图形方面的书籍613

B.4 Web站点614

附录C OpenGL状态机615

C.1 OpenGL的基本状态函数615

C.2 保存和恢复状态616

C.2.1 绘制状态618

C.2.2 深度缓冲区状态619

C.2.3 模版缓冲区状态619

C.2.4 亮度状态619

C.2.5 纹理状态619

C.2.6 像表状态620

C.3 参考函数620

C.3.1 glDisable、glEnable620

C.3.2 glIsEnabled622

C.3.3 glPopAttrib622

C.3.4 glPushAttrib622

附录D 词汇表623

热门推荐