从零实现软光栅渲染器:架构分析、核心技术与重构路线

本文是对 SimpleRenderer 项目的全面复盘。该项目是一个基于 CPU 的软件光栅化渲染引擎,不依赖任何图形 API,从零实现了完整的渲染管线。本文将从项目架构、核心技术、关键实现细节三个维度进行分析,并给出后续的重构方向。

水体渲染
真实感水体的渲染是一个跨越几何学与光学的复合系统,而卡通化的水体则是在真实感水体基础进行简化与风格化处理。本文按"几何动力学 → 光学材质 → 表层细节与系统整合"三大模块组织,在每一模块的关键位置标注其与浅水方程的耦合点,最终给出渲染层与物理交互层的全局通信闭环架构。
现代渲染管线架构

在现代 GPU 架构下,渲染管线的演进本质上是 “权衡顶点处理(Draw Call / 几何提交)、片元算力(ALU)与显存带宽(Bandwidth)三者关系” 的历史。

真实感皮肤渲染综述 — 从 BSSRDF 到屏幕空间可分离 SSS

皮肤是数字人渲染中最具挑战、也是最值得深挖的材质之一。 本文按照「提出问题 → 物理建模 → 实时近似的演进 → 工程落地 → 横向对比」的脉络,系统梳理近 20 年实时皮肤渲染的主流方案,重点解析 Pre-IntegratedSeparable SSS (4S)Spherical Gaussian (SG) 三大里程碑技术。

「PBR 系列」第五篇 · 次表面散射与能量补偿:从 BSSRDF 到 Kulla-Conty
PBR 的最后两块拼图是高维次表面散射(皮肤、玉石)和单次散射的能量找回(Kulla-Conty)。前者把 4D 的 BRDF 推广到 8D 的 BSSRDF,靠扩散剖面 + Gaussian Sum 在屏幕空间或纹理空间近似;后者通过预积分 LUT 把单次散射 Cook-Torrance 丢失的能量加回,让粗糙金属在白炉测试中真正达到能量守恒。本篇收尾整个 PBR 系列。
「PBR 系列」第四篇 · 布料与 Sheen 渲染:从 Charlie 到丝绸天鹅绒之辨
布料是 GGX 微表面框架的第一个真正"破例"——纤维的环形反射和绒毛感无法用传统 NDF 表达。Charlie 与 Ashikhmin Velvet 是两个工业候选 NDF,配合 V_Charlie / V_Ashikhmin / V_Neubelt 几何项,再加上 sheen color、subsurface color 两参数,就能用同一个模型架构覆盖从棉麻到丝绸到天鹅绒的全谱系。本篇详解布料 BRDF 的物理动机、数学选型、以及 UE4、Filament、Unity SRP 的工程实践。
「PBR 系列」第三篇 · 实时化工程实践:IBL、Filament 与 URP 源码
Disney 的数学要在每帧 16ms 内跑完 100 万像素,靠的不是更快的 GPU,而是 Karis 在 UE4 引入的 **Split Sum 近似**——把 IBL 卷积积分拆成「预滤波 cubemap × BRDF LUT」两次纹理采样。本篇详解这套工程化方案,对照 Filament 标准模型和 Unity URP 源码,最后给出移动端的 ALU 与带宽妥协指南
「PBR 系列」第二篇 · Disney Principled BRDF 全解析:从十一参数到 BSDF 扩展
Disney Principled BRDF 的革命性不在数学——大多数公式在 2012 年前已存在——而在于它**第一次为 PBR 定义了一套面向美术的参数体系**。BaseColor、Metallic、Roughness、Anisotropic、Sheen、Clearcoat、Subsurface 等 11 个参数后来成为整个游戏行业的资产标准。本篇逐参数拆解,并梳理 2015 年 BSDF 扩展。
「PBR 系列」第一篇 · 理论基石:从渲染方程到 Cook-Torrance 框架
PBR 不是某一个公式,而是一个由「渲染方程 + 微表面理论 + 能量守恒 + 互易性」构成的框架。Cook-Torrance 把镜面 BRDF 拆成 D / G / F 三项,于是后续四十年的工作都可以归类到对这三项的精修——以及对 Lambert 漫反射的扩展。
「PBR 系列」总览:基于物理的渲染从理论到引擎落地
本系列共五篇,沿着「物理理论 → Cook-Torrance 框架 → Disney 工业化 → 引擎工程化 → 扩展模型」的脉络,系统梳理基于物理的渲染(PBR)从 1970 年代微表面理论到 2020 年代分层材质前沿的全链条。每一篇可独立阅读,但顺序串联起来能形成一张完整的 PBR 知识地图。