ShadingModel与Lighting

一,经典经验光照模型

Lambert ——> 半 Lambert

Phong ——> BlinPhong

二,基础PBR光照模型

0,本质约定

(1)能量守恒
(2)Fresnel 菲涅尔反射
(3)微表面模型 Microfacet
(4)漫反射 + 镜面反射
(5)粗糙度控制高光形状
(6)金属/非金属材质区分
(7)IBL 环境光

1,渲染方程中的BRDF

(1)最核心的三个材质参数:Diffuse,F0,Roughness。

注:Normal一般是属于的模型参数,但是NormalMap却属于材质参数了。

注:非金属的F0一般是0.04到0.08,而金属的F0则是有颜色的。

(2)最核心的计算项F,Kd。

F是镜面反射强度,高光主要贡献(不仅用到了F0,而且与视线角度强相关)。

D与G项都是对高光形状进行辅助控制的。

kd = 1 - F,镜面越强漫反射越弱,同时维持能量守恒。

2,SG

Diffuse,Specular,Glossiness

F0 = Specular

3,MR

更好的Specular约束,防止出错。

BaseColor,Metaillic,Roughness

Diffuse = BaseColor * (1 - Metallic)

F0 = lerp ( 0.04, BaseColor, Metallic )

三,MatCap

半球的正投影,把半球面压扁成一个圆盘:
1,只关心在ViewSpace下,面朝摄像机的情况;
2,球体特性,越靠近视觉中心,法线越垂直(R,G = 0);
但对Sample UV来讲,中心其实是(0.5,0.5) 。
即ViewSpace下Normal越垂直,UV越接近0.5, Normal越偏,越远离0.5

四,Global Lighting

1,Precomputed GI

(1)Lightmap

(2)Radiosity

(3)PRT

(4)Irradiance Volume

2,Image-Based Lighting

(1)Irradiance Map

(2)Prefiltered Environment Map(Roughness) 与 BRDF LUT

3,Probe

(1)Reflection Probe

(2)Light Probe

(3)Irradiance Probe

(4)DDGI / RTXGI

4,Screen-Space GI

(1)SSAO / GTAO

(2)SSR

(3)SSGI

5,Voxel-Based GI

(1)Voxel Cone Tracing

(2)Sparse Voxel Octree GI

(3)LPV

6,Ray / Path-Based GI

(1)Ray Traced GI

(2)Path Tracing

(3)Photon Mapping

(4)ReSTIR GI

7,Cache / Neural GI

(1)Irradiance Cache

(2)Radiance Cache

(3)Neural Radiance Cache

五,BumpMapping

1,Normal Mapping

1.1 TangentSpace

2,Height Map

3,Parallax Mapping

3.1.1 原版

3.1.2 Steep Parallax Mapping

3.1.3 Parallax Occlusion Mapping(POM)

4,Displacement Mapping

5,Detail Normal

六,Gamma

1,Gamma编码的意义(0.45次幂)

人眼对暗部更敏感, 但8位低精度LDR表示范围有限, 所以需要手动分配更多空间去维持。

2,用法案例

(1)从DCC导出时,BaseColor一般默认都会Gamma编码,在UE里则相应需要勾选SRGB。

但对于Normal,Roughness,Metallic这些属性来讲则不需要。

(2)线性空间Shading,但写入Final RT前,需要根据 swapchain / 显示模式做对应的输出转换;
显示链路会按声明的色彩空间和传递函数显示。(LDR:Gamma,HDR:PQ / HLG 等)

七,HDR管线

1,主要特点

(1)高精度光照贴图:存储真实数据。

(2)高精度存储RT:在渲染过程中维持住高精度。

(3)ToneMapping映射到 “设备可显示区间 ”,SDR是【0,1】,但支持HDR的设备可能不同。

(4)显示器是否支持HDR影响最终输出链路:不支持则会回退到Gamma流程。

支持通过PQ/HLG等HDR编码后写入更高精度的RT(10bit / 12bit),最后由显示器解码。

2,对后处理管线的影响

2.1 Before ToneMapping

(1)DOF

(2)TAA

(3)SSR Input

(4)Exposure

(5)Bloom / Glare

2.2 After ToneMapping

(1)Color Grading