前置知识: 计算机基础

计算机图形学

00:00
8 min Intermediate 2026/6/14

计算机图形学:图形变换、光栅化、光照模型、着色与渲染管线

1. 图形学基础

1.1 坐标系统

坐标系说明
模型空间物体局部坐标
世界空间全局坐标
观察空间相机坐标
裁剪空间投影后坐标
屏幕空间像素坐标

1.2 变换矩阵

平移

缩放

旋转(绕 Z 轴)

1.3 MVP 变换

2. 投影

2.1 透视投影

近大远小,符合人眼视觉:

其中 为近裁剪面距离, 为远裁剪面距离。

2.2 正交投影

平行投影,无近大远小:

3. 光栅化

3.1 三角形光栅化

将三角形覆盖的像素标记为”内部”。

判断点在三角形内

使用叉积判断:

3.2 重心坐标

三角形内任意点 可表示为:

3.3 Z-Buffer 算法

维护深度缓冲区,解决遮挡问题:

for each triangle:
    for each pixel in triangle:
        if z < zbuffer[x][y]:
            zbuffer[x][y] = z
            framebuffer[x][y] = color

时间复杂度: 为三角形数 × 每个三角形的像素数)

空间复杂度:(帧缓冲 + 深度缓冲)

4. 光照模型

4.1 Phong 光照模型

分量含义说明
环境光 全局光照常量
漫反射 Lambert 反射与视角无关
镜面反射 高光与视角有关

Blinn-Phong 改进:用半程向量 替代

4.2 着色频率

着色方式计算位置效果
Flat 着色每个面面片感强
Gouraud 着色每个顶点较平滑
Phong 着色每个像素平滑

5. 纹理映射

5.1 纹理坐标

将2D纹理映射到3D表

5.2 纹理过滤

方法质量性能
最近差(锯齿)最快
线性中等
线性最好(Mipmap)较慢

Mipmap:预计算多级纹理,据像素与纹理的距离选择级别:

5.3 法线贴图

用纹理存储法线方向,模拟而不增加几何复杂

其中 为切线空间变换矩阵, 为纹理中的法线。

6. 渲染管线

6.1 图形渲染管线

顶点数据 → 顶点着色器 → 图元装配 → 几何着色器 → 光栅化 → 片段着色器 → 混合 → 帧缓冲
阶段编程功能
顶点着色器MVP 变换
元装配组装
几何着色生成/修改
光栅化生成
片段着色器着色、纹理
混合测试、混合

6.2 光线追踪

从相机发射光线,与场景求交:

for each pixel:
    ray = generate_ray(pixel)
    hit = trace_ray(ray, scene)
    color = shade(hit)

递归光线追踪:在交处继续发射反射/折射光线。

加速结构

结构构建时间查询时间
BVH
KD-Tree
八叉

6.3 路径追踪

蒙特卡洛方法求解渲染方程:

通过采样估计积分:

收敛

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式