COMPUTER GRAPHICS · RENDERING

计算机图形学可视化实验室

交互式探索计算机图形学的核心算法:从光栅化、光线追踪到全局光照与抗锯齿,每个模块均提供可调节参数的实时 SVG 可视化演示,零外部依赖,单文件运行。

8 Modules SVG + Vanilla JS Zero Dependencies Single File
01RASTERIZATION

光栅化

将连续的矢量图元(三角形)转换为离散像素网格的过程。扫描线填充算法逐行计算三角形边与水平扫描线的交点,填充交点区间内中心点位于三角形内部的像素。

扫描线填充算法
算法对每条扫描线求与三角形三条边的交点,按 x 排序后填充区间内的像素单元,模拟帧缓冲写入过程。
02RAY TRACING

光线追踪

从摄像机发射光线,在场景中追踪其与物体的交点,并递归计算反射、折射与阴影光线,构建光线反弹树以生成真实感图像。

光线反弹树
原理每条主光线命中物体后,依表面属性衍生反射光线、折射光线与指向光源的阴影光线,递归追踪直至达到深度上限。
03SHADING

着色模型

根据光照方向、表面法线与材质属性计算像素颜色。Phong 模型使用反射向量,Blinn-Phong 使用半角向量优化高光,PBR 基于微表面理论以粗糙度控制高光分布。

光照着色球体
模型漫反射 + 镜面反射组合;粗糙度越低,高光越锐利集中,粗糙度越高,高光越模糊扩散。
04TEXTURE MAPPING

纹理映射

将二维纹理图像通过 UV 坐标映射到三维几何表面。最近邻过滤直接取最近纹素,双线性过滤对相邻四个纹素加权插值,产生更平滑的结果。

UV 映射与采样
映射三角形顶点的 UV 坐标定义其在纹理空间的对应位置,渲染时根据像素重心坐标反向插值采样纹理。
05TRANSFORMATIONS

几何变换

通过平移、旋转、缩放等仿射变换矩阵对顶点进行变换,按 T·R·S 顺序组合形成模型变换矩阵,作用于齐次坐标。

矩阵变换可视化
矩阵M = T · R · S,对顶点 v' = M · v。虚线为原始形状,实线为变换后形状。
06Z-BUFFER

隐藏面消除

解决多个物体重叠时的可见性问题。画家算法按深度排序绘制,Z-Buffer 逐像素比较深度值保留最近表面,后者正确性更高。

深度缓冲算法
对比画家算法:按深度从远到近绘制;Z-Buffer:每个像素维护最小深度,逐片元比较覆盖。
07GLOBAL ILLUMINATION

全局光照

模拟光线在场景中的多次反弹,实现间接光照。路径追踪从相机发射光线随机反弹累积亮度;光子映射从光源发射光子并存储于场景中查询。

光线路径传输
算法路径追踪:双向路径随机采样;光子映射:光子→表面→查询密度估计。反弹次数越多,间接光照越充分。
08ANTI-ALIASING

抗锯齿

消除几何边缘的锯齿现象。MSAA 在像素内多点采样几何覆盖;FXAA 后处理检测边缘模糊;TAA 跨帧累积时域采样。采样数越多,边缘越平滑。

边缘采样模式
采样每个像素内的采样点位置决定覆盖度。金色点表示被几何覆盖的采样点,覆盖比例决定该像素的最终颜色混合权重。