计算机图形学基础
计算机图形学和计算机视觉像是一枚硬币的两面。视觉试图从观测中理解世界,图形学则试图从模型生成图像。对于三维视觉、自动驾驶仿真、神经渲染和世界模型,这两者越来越紧密。
这篇笔记整理我需要掌握的图形学基础。
1. 几何表示
图形学首先关心如何表示三维对象和场景。
常见表示包括:
- 点;
- 线;
- 三角网格;
- 曲面;
- 体素;
- 隐式函数;
- signed distance function;
- occupancy field;
- Gaussian primitives。
不同表示适合不同任务。Mesh 适合显式表面,体素适合规则空间划分,隐式场适合连续几何,Gaussian Splatting 适合高效新视角合成,occupancy 则适合感知和规划。
这些表示和三维视觉高度相关。很多视觉任务本质上是在从图像或点云中恢复某种三维表示。
2. 坐标变换
三维图形学离不开坐标变换:
- 平移;
- 旋转;
- 缩放;
- 齐次坐标;
- model/view/projection matrix;
- 世界坐标、相机坐标和屏幕坐标;
- SE(3) 和 SO(3)。
在自动驾驶中,坐标变换同样重要。相机、LiDAR、车辆、地图和其他智能体都有各自坐标系。协同感知要求把来自不同智能体的信息对齐到统一空间。
因此,图形学中的几何变换和视觉中的多视几何可以相互补充。
3. 渲染管线
经典渲染管线包括:
- 建模;
- 视图变换;
- 投影;
- 光栅化;
- z-buffer;
- shading;
- texture mapping;
- frame buffer 输出。
光栅化是实时图形学的核心,它把三维三角形转换为二维像素。z-buffer 用来处理遮挡关系。
理解渲染管线有助于我理解相机成像、遮挡、深度、可见性和仿真数据生成。
4. 光照与材质
图形学中的光照模型描述物体如何反射光。
基础内容包括:
- Lambertian reflection;
- Phong shading;
- Blinn-Phong;
- BRDF;
- texture;
- normal map;
- physically based rendering。
对于视觉模型来说,光照和材质变化会造成 domain shift。仿真到真实的差距,很大一部分来自材质、光照、噪声和传感器模型不一致。
5. Ray Tracing 与 Path Tracing
光线追踪从相机发出光线,计算它与场景的交点和光照。路径追踪进一步模拟多次反射,可以生成真实感图像。
这些方法计算成本较高,但物理意义清晰。它们对于理解真实图像形成、仿真数据和神经渲染非常有帮助。
在自动驾驶仿真中,高质量渲染可以提供更真实的训练和测试环境。
6. 神经图形学
神经图形学把神经网络用于场景表示和渲染。
重要方向包括:
- NeRF;
- neural implicit surface;
- differentiable rendering;
- 3D Gaussian Splatting;
- neural scene representation;
- view synthesis;
- simulation-to-real transfer。
NeRF 用神经网络表示 radiance field,可以从多视角图像恢复可渲染的三维场景。Gaussian Splatting 用显式高斯表示实现更高效渲染。
这些方法与三维视觉、场景重建和世界模型密切相关。
7. 与占用世界模型的联系
图形学关注如何表示和生成场景,世界模型关注如何预测场景演化。
Occupancy world model 可以看作一种面向智能体的动态场景表示。它不一定追求照片级渲染,而是关注:
- 哪些空间被占据;
- 语义是什么;
- 未来如何变化;
- 哪些区域不确定;
- 预测如何支持规划。
图形学提供了空间表示、可见性、遮挡和仿真的基础。视觉提供从观测到表示的学习方法。两者结合,可以推动更强的三维世界建模。
8. 学习目标
我学习图形学的目标不是成为渲染工程师,而是理解三维世界如何被表示、变换、投影和生成。
这会帮助我更好地研究三维感知、仿真、occupancy representation 和 future scene prediction。
Enjoy Reading This Article?
Here are some more articles you might like to read next: