第1章
图形系统和模型
1.1
计算机图形学的应用
- 工业电子设备的信息显示(地质学、医学)
- 计算机辅助设计软件(建筑、机械、电路等设计)
- 仿真技术(飞行学习、电影特效)
- 普通计算机的用户界面(操作系统、软件)
1.2
图形系统
通用模型的组成结构:输入设备、输出设备、CPU、GPU、存储器、帧缓存。
1.3
物理图像与合成图像
一个最基本的场景,包含观察者、被观察的实体、光源。对于计算机而言,它们存在的意义,就是将内容显示到输出设备(成像),而成像的本质,即是光线经过一系列运动,到达观察者的过程。
1.4
成像系统
- 光学照相机(简单)
- 人类视觉系统(复杂)
1.5
虚拟照相机模型
1.6
应用程序编程接口
早期图形系统是二维系统,建模到绘制这一过程,是通过笔试绘图仪计算投影,模拟三维图像。如今,使用三维 API,我们只需关注三维场景,隐藏了实际的绘图实现过程,让开发更加直观、便捷。
1.7
图形绘制系统的体系结构
流水线
- 准备顶点
- 去除可视区域之外的顶点
- 关联顶点,形成图元(确定线、面等信息)
- 光栅化,图元转换为片元(确定像素映射信息)
- 根据片元,更新帧缓存
素材转换流程
顶点 => 图元 => 片元 => 像素帧
1.8
可编程流水线
现代 GPU 的绘制流水线是可编程的,也就是图形计算可以在 GPU 处完成,不仅可以释放 CPU 的计算压力,还能减少 CPU、GPU 数据传输消耗。
1.9
性能特征
现代图形卡摒弃多部件、多电路的设计方案,将所有功能集成到一个芯片,该芯片(GPU)具备整条渲染流水线,形成流水线架构。
1.10
OpenGL 版本和 WebGL
WebGL 是运行在现代浏览器的 Javascript 接口(基于 OpenGL ES 2.0),而 OpenGL ES 是服务于嵌入式系统的 OpenGL 简化版。
第2章
图形学编程
2.1
Sierpinski 镂垫
ing...
2.2
编写二维图形应用程序
ing...
2.3
WebGL 应用程序编程接口
ing...
2.4
图元和属性
ing...
2.5
颜色
ing...
2.6
观察
ing...
2.7
控制函数
ing...
2.8
Sierpinski 镂垫绘制程序
ing...
2.9
多边形和递归
ing...
2.10
三维 Sierpinski 镂垫
ing...
第3章
交互和动画
3.1
动画
ing...
3.2
交互
ing...
3.3
输入设备
ing...
3.4
物理输入设备
ing...
3.5
客户和服务器
ing...
3.6
事件驱动输入编程
ing...
3.7
位置输入
ing...
3.8
窗口事件
ing...
3.9
拾取
ing...
3.10
建立交互式模型
ing...
3.11
交互式程序的设计
ing...
第4章
几何对象和变换
4.1
标量、点和向量
ing...
4.2
三维图元
ing...
4.3
坐标系和标架
ing...
4.4
WebGL 中的标架
ing...
4.5
矩阵和向量类型
ing...
4.6
建模一个彩色立方体
ing...
4.7
仿射变换
ing...
4.8
平移、旋转和缩放
ing...
4.9
变换的齐次坐标表示
ing...
4.10
变换的级联
ing...
4.11
WebGL 中的变换矩阵
ing...
4.12
使立方体旋转起来
ing...
4.13
三维应用程序的接口
ing...
4.14
四元数
ing...
第5章
观察
5.1
经典观察和计算机观察
ing...
5.2
计算机观察
ing...
5.3
定位照相机
ing...
5.4
平行投影
ing...
5.5
透视投影
ing...
5.6
WebGL 中的透视投影
ing...
5.7
透视投影变换矩阵
ing...
5.8
隐藏面消除
ing...
5.9
显示网格
ing...
5.10
投影和阴影
ing...
5.11
阴影映射
ing...
第6章
光照和着色
6.1
光线和材质
ing...
6.2
光源
ing...
6.3
Phong 反射模型
ing...
6.4
计算向量
ing...
6.5
多边形的着色
ing...
6.6
通过递归细分逼近球面
ing...
6.7
指定光照参数
ing...
6.8
实现光照模型
ing...
6.9
球面模型的着色
ing...
6.10
基于每个片元的光照计算
ing...
6.11
非真实感着色
ing...
6.12
全局光照
ing...
第7章
离散技术
7.1
缓存
ing...
7.2
数字图像
ing...
7.3
映射方法
ing...
7.4
二维纹理映射
ing...
7.5
WebGL 的纹理映射
ing...
7.6
纹理生成
ing...
7.7
环境贴图
ing...
7.8
反射贴图示例程序
ing...
7.9
凹凸映射
ing...
7.10
融合技术
ing...
7.11
GPGPU
ing...
7.12
帧缓存对象
ing...
7.13
缓存交换
ing...
7.14
拾取
ing...
第8章
从几何到像素
8.1
图形绘制流水线的基本实现策略
ing...
8.2
图形绘制系统的四个主要任务
ing...
8.3
裁剪
ing...
8.4
线段的裁剪
ing...
8.5
多边形的裁剪
ing...
8.6
其他图元的裁剪
ing...
8.7
三维裁剪
ing...
8.8
光栅化
ing...
8.9
Bresenham 算法
ing...
8.10
多边形光栅化算法
ing...
8.11
隐藏面消除
ing...
8.12
反走样
ing...
8.13
显示方面的问题
ing...
第9章
层级建模方法
9.1
图符和实例
ing...
9.2
层级模型
ing...
9.3
机器人手臂
ing...
9.4
树与遍历
ing...
9.5
使用树数据结构
ing...
9.6
动画
ing...
9.7
图形对象
ing...
9.8
场景图
ing...
9.9
实现场景图
ing...
9.10
其他树结构
ing...
第10章
过程建模方法
10.1
基于算法的建模
ing...
10.2
基于物理的建模和粒子系统
ing...
10.3
牛顿粒子
ing...
10.4
求解粒子系统方程
ing...
10.5
约束条件
ing...
10.6
一个简单的粒子系统
ing...
10.7
基于 agent 的建模
ing...
10.8
基于语言的建模
ing...
10.9
递归方法和分形
ing...
10.10
过程噪声
ing...
第11章
曲线和曲面
11.1
曲线和曲面的表示形式
ing...
11.2
设计准则
ing...
11.3
三次参数多项式曲线
ing...
11.4
插值
ing...
11.5
Hermite 曲线和曲面
ing...
11.6
贝塞尔曲线
ing...
11.7
三次 B 样条
ing...
11.8
普通 B 样条
ing...
11.9
曲线和曲面的绘制
ing...
11.10
Utah 茶壶模型
ing...
11.11
代数曲面
ing...
11.12
曲线和曲面的细分
ing...
11.13
从数据生成网格
ing...
11.14
支持曲线和曲面的图形 API
ing...
第12章
高级绘制
12.1
超越流水线绘制结构
ing...
12.2
光线跟踪
ing...
12.3
构建一个简单的光线跟踪器
ing...
12.4
绘制方程
ing...
12.5
辐射度方法
ing...
12.6
全局光照和路径跟踪
ing...
12.7
RenderMan
ing...
12.8
并行绘制
ing...
12.9
GPU 硬件实现
ing...
12.10
隐函数和等高线图
ing...
12.11
体绘制
ing...
12.12
等值面与步进立方体
ing...
12.13
步进四面体
ing...
12.14
网格简化
ing...
12.15
直接体绘制
ing...
12.16
基于图像的绘制
ing...
附录
A
初始化着色器
ing...
B
空间
ing...
C
矩阵
ing...
D
采样和走样
ing...