球面高斯函数与SVBRDF之一
2018-05-09 16:40阅读:
本文系“All-Frequency Rendering of Dynamic,
Spatially-Varying Reflectance”的阅读笔记。
概述
1.
本文讨论在如下条件下的实时渲染(real-time
Rendering):
a. 静态场景(Static
Scene)
b.
动态的(可以交互调整参数)、空变的(Spatially-varying)BRDF
c. 环境光源(Environmental
Lights)、点光源(Point Lights)
2. 主要特征:
a. 全频率阴影(all-frequency
Shadow)
3.
SVBRDF(Spatially-varying
BRDF)的实现方法:
a. 采用微表面反射模型(Microfacet
Model)来表述 SVBRDF
b.
采用很少数量的球面高斯函数(
Spherical
Gaussian,后文简称:
SG)近似
SVNDF
1)
Spatially-varying Normal
Distribution Function,
空变法线分布函数,
NDF 是微表面反射模型中最重要的一项
2)
SG 要通过一个弯曲操作(warp
Operator),再与微表面反射模型的菲涅尔项、几何项相乘
c. 对参数化
SVBRDF
(采用微表面反射模型的解析形式)的拟合可以实时进行,从而支持对
SVBRDF
参数的交互式编辑
d. 对测量
SVBRDF
(由测量结果集合生成的查找表)需要一个非线性拟合的预处理
4. 采用
SSDFs
(
Spherical Signed Distance
Functions)表述可见性(
Visibility),
SSDF
具有如下好的特性:
a.
非线性(可见性分布具有非线性、不连续、高频特征)
b.
允许在相邻点之间插值
c.
没有重影现象(ghosting-free)
d. 与
BRDF 的乘法计算代价小
e. 适合
GPU 实现
介绍
真实世界中的物体,在其表面不同位置、从不同角度进行观察,总是表现出不同的反射属性。为了渲染具有真实感的图像,除了要考虑光照环境、遮挡关系,还需要考虑这种空间、角度的变化性。物体表面这种随空间位置、角度变化的反射属性,一般采用
6D SVBRDF 进行刻画:
Precomputed Radiance Transfer
PRT
(预计算辐亮度传递)通过预先计算并保存光照相关数据实现实时的真实感渲染。在面临复杂的光照环境与
BRDF、尖锐的阴影、
光泽(
glossy)表面时,
PRT
需要保存巨量的预计算数据。
为了降低数据量,球面调和函数被用来压缩预计算数据。此类方法在降低数据量的同时,也限制了入射光分布、可见性、BRDF
关于方向的变化,尖锐的阴影、高频的镜面反射都只能被忽略。
一些 PRT 方法将 BRDF
与可见性的乘积保存在稀疏的表面顶点上(per-vertex)。这类方法的缺陷是:
a.
稀疏的表面顶点无法表述空间上的明显变化
b. 预计算保存的是
BRDF 与可见性的乘积,这导致对 BRDF
参数的编辑需要重新进行耗时的预计算
将 BRDF 与可见性分开处理
本文的方法是将
BRDF 与可见性分开,根据各自的特征分别采用不同的方法来拟合、近似。
忽略间接光照的前提下,
PRT 等于:

积分中总共有四项,分别处理如下:
1. SVBRDF
SVBRDF 采用微表面反射模型:

注意到,几何项
G 和菲涅尔项
F 变化非常缓慢:
因此,可以近似用
NDF 代表
SVBRDF,从而
SVBRDF 从 6D 函数近似为 4D 函数:

2. 可见性
可见性采用
SSDF 近似。
SSDF
是关于方向向量的函数,对于球面上任意一个方向,
SSDF
的值是:从这个方向到最近的可见(未被遮挡)边界的角距离(
angular
distance,两个方向的点积)。
3. clamped cosine
采用
SG 近似。
4. 入射辐亮度
L
a) 环境光源采用
cube-map pyramid
b) 点光源采用
SG
球面高斯函数
球面高斯函数(
Spherical
Gaussains,简称:
SG)是由一类对称环绕在某一个轴周围的球面函数,是一类球面径向基函数(
Spherical
radial basis function,简称:
SRBF)。
SRBF 还包含有:
a. von Mises-Fisher
distribution
b. the Abel-Poisson
kernel
c. zonal
harmonics
d. high-order
monomials
SG 的一般形式:

对于满足如下条件:
v 的取值范围围成的球面面积,可以通过对微分立体角的积分来表示:

对于确定的
epsilon
(例如:
epsilon = 0.1), 上述面积可以看作
lamda 的函数:

SG 的旋转:

SG 的内积(
inner product):

SG 的向量积(
vector product)

SG 混合(
SG mixture)

注意
SG 不是正交基函数,球面函数对
SG
展开的运算量(
O(n^2))要远大于对正交基(例如:球面调和函数)展开的运算量(
O(n))。
反射率的 SG 表述
BRDF 分解为漫反射项和镜面反射项,并分别进行处理:

下文中重点讨论镜面反射项。
参数化的 BRDF
本文中只讨论基于微表面理论的
BRDF 模型:

其中,
Mo
项包含了微表面几何遮挡、菲涅尔反射,由于此项变化缓慢,可以采用很简洁的近似。
其中,
D 项是
NDF
,包含着高频信息,对各向同性的微表面模型,采用一个
SG 来近似,对各向异性模型,采用几个
SG 来近似。
以
Cook-Torrance 模型为例:

可以采用如下
SG 来近似
NDF :