实时环境光 上
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 预处理如下
Prefiltering of the environment lighting,类似 specular 的 mipmap
对于 Spherical map, 更好的 Filter 不应当是 uniform 的,应当是球面上的
等于 模糊 IBL
对于 Diffuse
需要做半球积分,即半球 Prefilter
BRDF 项
五维度参数,不能直接预计算
假设 DFG 中的 F 选用 Shlick,D(NDF) 选用 Beckmann 的 distribution
那么只剩下三个参数 :反射率,入射角(不是入射方向,入射方向算两个参数 θ & φ),粗糙度
BRDF 公式除以并乘以 F 项,提取出 R0 到积分外部,不作为积分内的参数空间
最后更新于