第1章 概论 1
第2章 Visual C++Windows编程基础 5
2.1 Visual C++6.0开发环境 5
2.2 Wizard创建Win32应用程序 7
2.3 Windows编程基础 9
第3章 画点与画线 16
3.1 显示分辨率与颜色 16
3.2 DirectDraw显示模式及画点、画线 18
3.3 画点的子程序 27
3.4 汉字点阵显示 32
3.5 画线 35
第4章 二维、三维图形变换 44
4.1 几何变换的数学基础 44
4.2 二维图形几何变换 45
4.3 三维图形几何变换 63
4.4 基本变换子程序设计 66
4.5 投影变换 75
第5章 实体建模理论和数据结构 78
5.1 三维建模程序运行结果示例 78
5.2 数学模块和图形界面模块 84
5.3 顶点和小平面数组 96
5.4 物体数据文件(.dat)格式 96
5.5 装入和存储顶点和小平面数据——将.dat文件从磁盘读入内存中,或反之 97
5.6 画一个线框小平面 101
5.7 在屏幕上画一个实体小平面 101
第6章 给画面增加物体 103
6.1 初始化物体列表 109
6.2 对物体列表ObjList赋值 109
6.3 给画面增加边缘反射镜面 110
6.4 从磁盘文件*.SCN给画面增加物体 110
6.5 从一个函数给画面增加物体 111
第7章 在屏幕上排序和显示物体 112
7.1 对放置到屏幕上的物体进行排序 120
7.2 在屏幕上放置物体(PlaceObjectOnScreen) 121
7.3 显示物体和反射(DisplayObjectsInScene) 122
第8章 三维建模程序 123
8.1 观测者和光源向量 131
8.2 装入描述文件Model.des 132
8.3 仿射变换 132
8.4 求出小平面的法向向量 132
8.5 光照模型 133
8.6 检查小平面是否可见 135
8.7 反射物体的屏幕缓冲区Refl 135
8.8 获得小平面屏幕坐标 135
8.9 在屏幕上画一个实体小平面 136
8.10 显示画面文件.SCN 136
8.11 HelloModel.cpp程序 137
第9章 生成物体的数据库 152
9.1 增加顶点 154
9.2 生成顶点前的初始化 154
9.3 生成圆锥体和金字塔的数据文件 155
9.4 为一个圆柱体生成数据文件 157
9.5 为一个半球生成数据文件 159
9.6 为一个圆球生成数据文件 162
9.7 为方程式生成数据文件 165
9.8 为一个环生成数据文件 168
9.9 为旋转实体生成数据文件 170
第10章 画面文件 175
10.1 CubePlan.SCN 175
10.2 SphrWall.SCN 175
10.3 FourCol.SCN 177
10.4 Well.SCN 178
10.5 Shapes.SCN 181
10.6 SolOfRev.SCN 183
10.7 StakTors.SCN 184
10.8 PlotEqn1.SCN~PlotEqn4.SCN 185
第11章 光线跟踪基础 187
11.1 光线跟踪(Ray-trace)原理概述 187
11.2 定义画面的格式文件.RT 188
第12章 光线跟踪程序 217
12.1 光线跟踪程序概述 229
12.2 装入一个.RT文件 233
12.3 扫描画面 245
12.4 跟踪光线 246
12.5 生成纹理的表面、确定颜色 259
12.6 结束光线跟踪 266
第13章 光线跟踪生成的.CPR文件的图像转换 268
13.1 光线跟踪.CPR文件转256色粗格式图像数据文件 268
13.2 粗格式图像数据转256色或16M色.BMP文件 275
附录A VESA VBE显示模式设置 285
A.1 显示模式枚举程序VbeTest.c 285
A.2 DOS视频中断 294
A.3 在VESA显示模式下画点 296
参考文献 299