第1章 Visual C++6.0开发环境 1
1.1 开发平台 2
1.1.1 工具条 3
1.1.2 项目工程 4
1.1.3 工程窗口 5
1.2 项目操作 9
1.2.1 项目配置 9
1.2.2 项目类型 10
1.2.3 转换旧的项目 12
1.2.4 同时进行多个项目 12
1.3.1 Class Wizard(类模板) 14
1.3 Visual C++6.0的其他工具 14
1.3.2 组件廊 17
1.3.3 集成调度试器 18
1.3.4 命令行工具 19
1.4 小结 19
第2章 MFC框架、文档和视 21
2.1 应用程序向导及MFC程序框架 22
2.1.1 AppWizard的作用 22
2.1.2 MFC应用程序框架 22
2.2 用AppWizard创建MFC应用程序 22
2.3 AppWizard创建的类 28
2.3.1 CDocument、CView及Frame类 29
2.3.2 CWinApp类 29
2.3.3 CObject类 30
2.4 MFC消息和命令 32
2.4.1 消息的种类 32
2.4.2 MFC中的标准命令消息处理 32
2.4.3 用Class Wizard进行消息处理 33
2.4.4 创建自定义的消息映射 34
2.4.5 消息发送 36
2.5 框架、文档和视 38
2.5.1 几个基本概念 38
2.5.2 文档 39
2.5.3 视类 44
2.5.4 文档模板 48
2.6 小结 50
第3章 计算机图形学基础知识 51
3.1 图形变换 52
3.1.1 齐次坐标 52
3.1.2 用户域和窗口区 53
3.1.3 图形的几何变换 54
3.1.4 三维形体的投影变换 56
3.2 真实感图形 59
3.2.1 隐藏面的消除 59
3.2.2 明暗效应 60
3.2.3 颜色模型 63
3.2.4 纹理 66
3.3 小节 67
第4章 初识OpenGL 69
4.1 OpenGL是什么 70
4.2 为什么要选择OpenGL 72
4.3 OpenGL是如何工作的 74
4.3.1 OpenGL运行平台 74
4.3.2 OpenGL基本工作流程 75
4.3.3 Windows系统下的OpenGL函数库 76
4.3.4 OpenGL++与OpenGL Optimizer 77
4.4 小结 78
第二篇 OpenGL入门篇 81
第5章 用MFC编写OpenGL程序 81
5.2 MFC开发OpenGL的准备 82
5.2.1 图形操作描述表 82
5.1 简介 82
5.3 Cubc--OpenGL例程 88
5.3.1 进入Visual C++ 88
5.3.2 用之前的准备 90
5.3.3 消息函数的填充 91
5.3.4 需要注意的几个问题 100
5.4 小结 102
第6章 OpenGL基础 103
6.1 OpenGL的基本语法 104
6.2 OpenGL相关函数库 105
6.3 OpenGL中的几何建模基础 106
6.3.1 点的绘制 107
6.3.2 线的绘制 115
6.4.1 窗口的刷新 138
6.4.2 颜色的指定 139
6.4.3 绘图的强制完成 139
6.4.4 消隐 140
6.5 小结 148
第7章 图形变换 149
7.1 OpenGL图形变换概述 150
7.2 投影变换 152
7.2.1 正交投影变换 153
7.2.2 透视投影变换 154
7.3 视区变换 155
7.4 裁减变换 162
7.5 几何变换 169
7.6 矩阵堆栈 172
7.7 小结 179
第8章 颜色与光照 181
8.1 OpenGL中的颜色模式 182
8.1.1 RGBA模式 182
8.1.2 颜色索引表模式 184
8.1.3 阴影模型 185
8.2 OpenGL中的光照 192
8.2.1 OpenGL光源 193
14.4 小结 197
8.2.2 OpenGL的光照模型 202
8.2.3 OpenGL中的材质 203
8.3 小结 220
第9章 混合、反走样和雾 221
9.1 混合 222
9.1.1 混合运算与函数 222
9.1.2 混合范例 224
9.2 反走样 236
9.2.1 反走样运算与函数 237
9.2.2 反走样范例 238
9.3 雾 249
9.3.1 雾的运算与函数 249
9.3.2 雾的使用范例 251
9.4 小结 264
第10章 显示列表、位图和图像 267
10.1 显示列表 268
10.1.1 显示列表的设计与相关函数 268
10.1.2 显示列表应用范例 270
10.2 位图 285
10.2.1 位图的操作及函数 285
10.2.2 位图应用范例 285
10.3 图像 300
10.3.1 图像的操作及函数 300
10.3.2 图像应用范例 306
10.4 小结 312
第11章 OpenGL纹理映射 313
11.1 OpenGL纹理概述 314
11.2 OpenGL中纹理定义 322
11.3 纹理控制 332
11.4 纹理的调节和混合 333
11.5 计算纹理坐标 334
11.6 纹理矩阵堆栈 350
11.7 小结 351
第12章 复杂图形的绘制 353
12.1 基本图元的扩展 354
12.1.1 点和线的扩展 354
12.1.2 多边形的扩展 362
12.2 法向计算 370
12.2.1 法向基本计算方法 370
12.2.2 法向定义 371
12.3 复杂图形的绘制方法 380
12.3.1 求值程序概述 380
12.3.2 求值程序 381
12.3.3 一维求值程序 381
12.3.4 二维求值程序 390
12.4 GLU和NURBS接口程序 405
12.4.1 简单的NURBS范例 405
12.4.2 修剪 414
12.5 小结 415
第三篇 Windows编程实用与提高篇 419
第13章 OpenGL与其他建模工具的接口 419
13.1 AutoCAD与3DS MAX简介 420
13.2 DXF文件格式分析 420
13.2.1 DXF文件的基本结构 420
13.2.2 实体段分析 422
13.3 DXF接口程序的编写 425
13.4 OpenGL的DXF扩展库函数的制作 430
13.5 3DS格式的数据文件的调用 431
13.6 小结 431
14.1 OpenGL的回顾 434
14.1.1 使用OpenGL 434
14.1.2 OpenGL入门 435
14.1.3 启动OpenGL 436
14.2 融合OpenGL和MFC 438
14.2.1 建立新的工程 438
14.2.2 定制 窗口” 440
14.2.3 调色板的管理 450
14.2.4 其他相关的成员函数 453
14.2.5 三维渲染 455
14.3 使用CGLEnabledView类 458
第15章 帧缓存和动画 499
15.1 缓存及其使用 500
15.1.1 帧缓存的组成 501
15.1.2 各种缓存概述 502
15.1.3 清空缓存 503
15.1.4 为写操作选择颜色缓存 503
15.1.5 缓存屏蔽 504
15.2.1 剪取测试 505
15.2 图元的测试与操作 505
15.2.2 alpha测试 506
15.2.3 模板测试 507
15.2.4 深度测试 516
15.2.5 混合、抖动及逻辑操作 516
15.3 累积缓存 518
15.3.1 场景锯齿现象的消除 519
15.3.2 运动模糊度 530
15.3.3 景深 531
15.3.4 柔和阴影 540
15.3.5 抖动 540
15.4 动画的实现 541
15.5 小结 554
第16章 打印渲染后的OpenGL场景 555
16.1 问题的提出 556
16.2 实现步骤 557
16.2.1 动画的实现 557
16.2.2 打印功能的实现 569
16.3 技术内幕 581
16.3.1 BMP图像文件格式简介 581
16.3.2 DIB、颜色以及调色板 582
16.3.3 BMP文件格式介绍 583
16.4 小结 586
附录 1 OpenGL的常数及其相关函数 589
附录 2 OpenGL常用函数简介 601