新浪博客

球面高斯函数与SVBRDF之一

2018-05-09 16:40阅读:
本文系“All-Frequency Rendering of Dynamic, Spatially-Varying Reflectance”的阅读笔记。

概述


1. 本文讨论在如下条件下的实时渲染(real-time Rendering):
a. 静态场景(Static Scene)​
b. 动态​的(可以交互调整参数)、空变的(Spatially-varyingBRDF
c. 环境光源(Environmental Lights)、点光源(Point Lights

2. 主要特征:
a. 全频率阴影(all-frequency Shadow)​
3. SVBRDFSpatially-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. 采用 SSDFsSpherical Signed Distance Functions)表述可见性(Visibility),SSDF​ 具有如下好的特性:
a. 非线性(可见性分布具有非线性、不连续、高频特征)
b. 允许在相邻点之间插值
c. 没有重影现象(ghosting-free)​
d. ​与 BRDF 的乘法计算代价小
e. 适合 GPU 实现

介绍



​真实世界中的物体,在其表面不同位置、从不同角度进行观察,总是表现出不同的反射属性。为了渲染具有真实感的图像,除了要考虑光照环境、遮挡关系,还需要考虑这种空间、角度的变化性。​物体表面这种随空间位置、角度变化的反射属性,一般采用 6D SVBRDF 进行刻画:
球面高斯函数与SVBRDF之一

Precomputed Radiance Transfer

PRT (预计算辐亮度传递)通过预先计算并保存光照相关数据实现实时的真实感渲染。在面临复杂的光照环境与 BRDF、尖锐的阴影、 光泽(glossy)表面时,PRT 需要保存巨量的预计算数据。
为了降低数据量,球面调和函数被用来压缩预计算数据。此类方法在降低数据量的同时,也限制了入射光分布、可见性、BRDF 关于方向的变化,尖锐的阴影、高频的镜面反射都只能被忽略。
一些 PRT 方法将 BRDF ​与可见性的乘积保存在稀疏的表面顶点上(per-vertex)。这类方法的缺陷是:
a. 稀疏的表面顶点无法表述空间上的明显变化
b. 预计算保存的是 BRDF 与可见性的乘积,这导致对 BRDF 参数的编辑需要重新进行耗时的预计算

将 BRDF 与可见性分开处理

​本文的方法是将 BRDF 与可见性分开,根据各自的特征分别采用不同的方法来拟合、近似。
忽略间接光照的前提下,PRT 等于:
球面高斯函数与SVBRDF之一
积分中总共有四项,分别处理如下:
1. SVBRDF
SV​BRDF 采用微表面反射模型:
球面高斯函数与SVBRDF之一
注意到,几何项 G 和菲涅尔项 F 变化非常缓慢:
球面高斯函数与SVBRDF之一
因此,可以近似用 NDF 代表 SVBRDF,从而 SVBRDF 从 6D 函数近似为 4D 函数:
球面高斯函数与SVBRDF之一
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 的一般形式:
球面高斯函数与SVBRDF之一
​对于满足如下条件:
球面高斯函数与SVBRDF之一
v 的取值范围围成的球面面积,可以通过对微分立体角的积分​来表示:
球面高斯函数与SVBRDF之一
​对于确定的 epsilon (例如:epsilon = 0.1), 上述面积可以看作 lamda 的函数:
球面高斯函数与SVBRDF之一
SG 的旋转:
球面高斯函数与SVBRDF之一
SG 的内积(inner product):
球面高斯函数与SVBRDF之一
SG 的向量积(vector product
球面高斯函数与SVBRDF之一
SG 混合(SG mixture
球面高斯函数与SVBRDF之一
​注意 SG 不是正交基函数,球面函数对 SG 展开的运算量(O(n^2))要远大于对正交基(例如:球面调和函数)展开的运算量(O(n))。

反射率的 SG 表述


BRDF 分解为漫反射项和镜面反射项,并分别进行处理:
球面高斯函数与SVBRDF之一
​下文中重点讨论镜面反射项。

参数化的 BRDF

​本文中只讨论基于微表面理论的 BRDF 模型:
球面高斯函数与SVBRDF之一
​其中,Mo 项包含了微表面几何遮挡、菲涅尔反射,由于此项变化缓慢,可以采用很简洁的近似。
​其中,D 项是 NDF ,包含着高频信息,对各向同性的微表面模型,采用一个 SG 来近似,对各向异性模型,采用几个 SG 来近似。
Cook-Torrance​ 模型为例:
球面高斯函数与SVBRDF之一
​可以采用如下 SG 来近似 NDF :

我的更多文章

下载客户端阅读体验更佳

APP专享