实时环境光 上

Distance Field Soft Shadow

Distance field soft shadow

速度快,效果好,但是存储困难

Distance Function 距离函数

定义空间中的一个点,到任意物体表面的总的最小距离

可以得到几何上,像素上的过度

The Usages of Distance Fields

  • Ray marching 光线步进每步的安全距离

  • determine the percentage of occlusion 某个点都的大概的被遮挡的概率

  • infinite resolution characters 无限分辨率字符

Ray Matching

光线步进,向摄像机往像素点射出的方向,让光线前进一段距离,并对当前位置进行采样。

Usage

生成 3D 纹理存储场景 SDF,光线步进 SDF 采样出的距离,如果到目标光栅化物体深度前,进入其他物体内部,说明处在阴影中。

受光强度可以通过最小 SDF 距离得到。

  • Pros

    • Fast

    • High quality

  • Cons

    • Precomputation

    • heavy stoage

    • Artifact

Environment Lighting

来自于无限远的入射光

Image-Based Lighting IBL, 解渲染方程

  • p:反射率

  • w :方向

  • Ω:上半球面方向集合

  • θ:光线和法线的夹角

  • i:入射

  • o :出射

不考虑遮挡

需要积分所有入射光

  • General solution - 通用方法,积分,蒙特卡洛积分

  • 可能会慢,shader 里不能做大量采样

Split Sum

拆分渲染方程积分相加的方法

Observation 观察

对于某一条出射光,对于 glossy 和 diffuse 有两种入射光贡献 lobe

假定材质着色只由漫反射和高光反射构成,漫反射 smooth,高光反射积分域小。都满足积分拆分公式的 g(x)

Split render equation

BRDF 项满足 g(x), 便拆分光照项到外部,光照项在 BRDF 积分域的积分,除以积分域对 1 的积分

对于 Specular

需要积分的区域是和粗糙度正相关的立体角,所以对 EnvMap 预处理如下

  1. Prefiltering of the environment lighting,类似 specular 的 mipmap

  2. 对于 Spherical map, 更好的 Filter 不应当是 uniform 的,应当是球面上的

  3. 等于 模糊 IBL

对于 Diffuse

需要做半球积分,即半球 Prefilter

BRDF 项

五维度参数,不能直接预计算

假设 DFG 中的 F 选用 Shlick,D(NDF) 选用 Beckmann 的 distribution

那么只剩下三个参数 :反射率,入射角(不是入射方向,入射方向算两个参数 θ & φ),粗糙度

BRDF 公式除以并乘以 F 项,提取出 R0 到积分外部,不作为积分内的参数空间

最后更新于