您的位置:首页 > 其它

基于物理的渲染WardBRDF模型

2018-02-07 10:45 375 查看
      Notes on the Ward BRDF 1 介绍WardBRDF在1992年作为经验模型被引入用来测量BRDF数据,它有几个优点超过了以往的模型 并且广泛应用于计算机图形学,它只使用了几个简单可控的参数,可以模拟各项异性的的表面,表现效果相当好。本文的目的是澄清和纠正一些WardBRDF的实现细节,第2部分我会讨论BRDG的有效性和蒙特卡罗采样对于渲染算法的必要性。Ward为BRDF提供了有效的采样方案,不过它并没有提供相关的概率密度函数,为了数学的准确性,需要提供正确的加权生成样本。第3章我们会讨论如何导出这样的概率密度函数,并在方程中给出具体结果。BRDF的衣柜强大的但是应用较少的功能是将其最大值绑定在一系列方向上的能力。第4章会讨论如何高效的定义某方向上的各项同性的WardBrdf空间包围体。1.1符号我们在三维空间讨论中,常用粗体表示归一化的三维向量(比如 V),在实际使用中向量可由三维坐标表示,也可以在球形极坐标系下用θ and φ两个角度来表示,我们可以把三维向量表示法和角度表示法用下面的公式相互转换:

两个方向的标量的点积等于他们之间角度的余弦值(例如,v·z =cosθv),使用3D矢量时,可以通过对其各项求和来计算点积(例如,u·v = uxvx + uyvy + uzvz)。

图1:球形极坐标示例 方向v可以用两个角度θv和φv来充分描述。 θv是角度在v和z轴之间。 φv是x轴和v之间的角度投影到x-y平面上。 BRDF(双向反射分布函数)描述光是如何在表面上散射,表面上的一点有入射和出射两个方向,常用i,o来表示。图2,在z轴与局部表面法线相同的表面上构造坐标系通常是很方便的,其x和y轴位于曲面的切线平面上。各项异性中,xy方向必须与各项异性方向一致,他们可以任意选择各项同性。Ward BRDF使用的是定义在入射和出射方向中间的半方向H。它可以通过增加I和O为三维向量并重整计算:半角是出于microfacet BRDFs和产生更现实的亮点比替代品如Phong。

图2:BRDF计算中使用的坐标系。z轴等于局部表面法线n,x和y轴位于曲面的切线平面上。双向反射分布函数是两个方向的函数,入射方向,i,和向外方向O(例如,眼睛和光的方向)。半角向量H被定义为介于i和o之间,在Ward BRDF中起着重要作用。 

2 WardBRDF原WardBRDF定义为两个分量之和,第一个是漫反射项ρD /π,漫反射很容易理解,所以我们不作解释,第二部分是由高斯各项异性光泽叶用三个参数定义,用ρs, αx, and αy表示:

其中ρs控制叶的大小,αx, and αy控制在各项异性的两个主方向的波瓣宽度,如果αx = αy 则改叶是各项同性的、在定义了双向反射分布函数后,Ward给出了一个近似值,这是为了更精简计算[Ward 1992, Equation5b].没有理由不使用这个近似值,以下矢量方程更精准和高效:

由于公式中h在分子和分母的次方一样,可以用一种半矢量化方程来表示,显然方程三和四是等价的,通过将三维向量h去表示。h如下:

2.1采样在蒙特卡洛绘制算法中,一个好的双向反射分布函数采样技术是必不可少的。采样时,我们将入射向量i作为给定或者固定的,并希望在通过BRDF的计算分布中产生输出向量o,Ward为他的BRDF提供了一个抽样,但无意中在方程中 省略了反正切向量,在0 <u、v<1的范围内给出了两个均匀的随机变量u和v,正确的采样方程是:

必须计算保证φH和2πv角在同一象限,这些采样方程计算u和v的半方向h,然后用H和i产生方向O:

如果新产生的分布向量o完全匹配BRDF,那么所有的采样都可以得到相同的权重,然而对于大部分情况这是很难出现的,为了计算正确的采样权重,我们需要知道生成的方向o的实际概率密度函数PO,Ward的概率密度函数为:

 这个概率,通过设计,相当接近沃德BRDF(见方程3),但不完全匹配它。下一节将介绍如何找到抽样概率函数以及如何导出方程。正确的权重函数w(o)应该应用于蒙特卡洛算法中的样本(例如路径跟踪):



图3:这里显示的是一个扩散盒与Ward BRDF球(ρS = 0.75,αx =αy = 0.15)。左半球图像是采用均匀半球采样的参考解。中间的图片用的是的均匀采样(w(O)=ρS),而右图像使用正确的样本权重(公式10)以前的经验通常认为WardBRDF采样可以同样使用相同的权重,但是如图3所示对于宽叶和特殊角度问题容易导致较大误差,所以我们需要从公式10 中得到正确的采样权重。某些同学可能认为在美学上中间的图会效果更佳,但是对于WardBRDF来说左侧和右侧的图在数学上才是正确的。WardBrdf内部定义了渐变放暗的效果,[Duer 2005]已经提出修改它的方程来减少这种效应,然而这超出了本文的范围。 3 推导抽样概率在这一部分内容中,我们将回顾如何给出一个给定抽样变换的概率密度函数,并展示如何用这个理论来寻找WardBRDF各项同性情况下的概率函数。我们重点关注二维概率密度,其他维度也是类似的原理。 3.1 理论我们定义一个二维空间的随机概率密度[s1,s2] ∈ S ,给定一个空间T,从S空间到T空间的转换后定义为[t1,t2] ∈ T 。我们要计算从S到T的转换矩阵Pt。为了方便理解,我们假定该转换在区域上是可逆的,对随机变量在区域B的概率Pb,是通过整合其概率密度分布区域相对其关联测量给出的dt1 dt2:

概率密度必须有相关的度量方法,尽管关联通常都是隐式的,给定一个区域B ⊆ T,让AB⊆ S,B中的点属于集合S,这两个式子应该相等 (i.e. P(AB) =P(B)) ,因为他们都是相同事件,因此有:

将变量变换原理应用于第一微积分中,得到:

其中Jacobian行列式的绝对值由偏导数定义:

由于这些方程适用于任何集合B,我们可以用它们来求解概率密度为:

3.2 Ph到Po的应用我们想专门通过一般理论来处理半角方向h来寻找采样方法的概率密度函数的具体情况。这种采样方法采用两个均匀的随机数u和v,将他们转化为半角向量h,然后利用h产生输出向量o。首先讨论h的概率密度Ph,然后将其与输出向量O的概率密度Po联系起来。我们用公式15把u,v用s1 s2 θh代替,φh代替为t1  t2,但有一个小小的困难。我们正在改变一个非欧里几何空间的方向和使用范围,并使用Ph值作为立体角,我们调整了这个包括立体角测量的1/sinθh额外的因素:我们使用的实际情况是,PUV(U,V)= 1由于u和v是均匀地分布在单位空间内。



图4.坐标系中向量i在z轴,表面法线N位于x-z平面,从图1来看我们可以使用两个立体角方向:θ  and φ 。在h和o的关系可用:

表示我们还需要用Ph来计算Po,H和O之间的关系可以用图4所示的特殊坐标框来表示,该图中,入射方向i用作z轴,为了清楚的分辨她们,我们将使用这些特殊的坐标和一个星标标出所有的球面角,h和o在这些坐标系中的关系是:

,我们可以使用公式15,作简单的修改来得到立体角:

对h向量的变换可在[Torrance and Sparrow 1967] and [Ashikhmin and Shirley 2000].中查看3.3各项同性的例子现在为了演示如何将这些方程应用于一个特定的情形,我们将得到更简单的各项同性情况下的采样概率密度,当ax=ay时 WardBRDF是各项同性的,我们可以简单的写成a,在这种情况下BRDF可以简化为:

各项同性采样方程简化为:

我们可以倒推各项同性方程:



图5 BRDF的包围盒最大值,入射和法线方向固定,反射点被假定为原点,然后我们计算反射方程的上限,在一组方向上定义包围盒B允许

。然后我们可以用公式16,就θH和φH来计算u和v的偏导数:

上面的公式没有绝对值操作是因为 它总是为正数,角度在0-90范围内。最后利用公式17我们可以得到各项同性情况中取样输出方向O的概率密度:

对于各项异性,方程9的推导类似。大家可以试试看。4. BRDF的包围盒一个有效的BRDF操作是把它的最大值包围在一组方向上。虽然对于采样这是一个不太常见的操作。但他说一个操作所需要的强大的渲染算法,在本节中,我们将介绍如何计算各项同性WardBRDF的一个合理的方法。扩展内容留到以后讲。当包围BRDF时,入射方向的i和表面的点是固定的,但是方向是可以改变的,如图5所示,我们可以使向量B在指定方向输出向量集合。为了简单起见,让我们假设表面反射点在原点,让v是一个三维向量,箭头表示它可以具有任意长度,而不是标准化向量,我们可以计算o的上限函数。一个标准化的解决方案是使用区间运算。通过使用区间等价替换每个运算符 并将其包围空间表示为区间,计算会变简单。但不幸的是,这些区间界限往往相当分散,尤其是当初间隔较大的。所以我们将继续寻找一个方向或者一组参数,使包围圈附件的点这是一个严格的上限区间。

图6,使用公式27计算包围盒上限值cosθ的例子 4.1余弦包围盒现在我们开始计算余弦包围盒的上限值,如果我们用一个坐标系 表面发现N为z轴 我们可以:

Cosθ的导数vz总是为正数,因此我们可以取代vz用包围盒的最大值:

现在分子是固定的,我们可以选择vx和vu最小化或者适当最大化分母。、

如图6所示例子,我们选择vz的最大值,但是vx和vy 我们选择其平方的最大或最小值。因此可以从-2到1,max(vx)=1,then max(vx) = 1, but max(v 2 x ) = 4 and min(v 2 x ) = 0. 4.2 各项同性包围结合各项同性WardBRDF(公式18),我们开始包围它的指数项用来计算tanθ的最小值,或者说since 0 ≤ θh ≤ π/2,我们可以计算一个cosθh = (h·n).上限。我们将使用图4的坐标系,因为简单的描述了o和h的关系。通过表达h和n为基于球面坐标和注意其φ向量,我们可以得到:

当θn固定后,我们需要选择合适的θhcosφ 的导数总是为正的,因此可以用最大值代替它。用图4的坐标系来表示

我们可以计算cosφ 的包围盒最大值,也可以用公式27近似处理。对于θh的情况更加复杂,我们可以计算 cosθ边界区的可能值。然后用公式27将其最大值和最小值结合起来,最后用三角函数半角公式:

为了把cosθ限定在区间内,要从这个间隔中选择适当的值,我们需要知道(h,n)的最大化值。我们也可以cosθ代替(h,n),用最大值代替cosφ,然后计算出θh的导数使其等于0 ,那么θh可以得到:

这两个公式都很有必要,以防max(cosφh )为负,但是θh不被允许为0,因此我们必须用公式纠正:

注意这个面的入射角,当

时最大,然而偏离入射面后,我们需要明确解决最大角度,因为半角方向的波瓣在反射方向是不对称的,因此我们需要设定一个范围

现在我们来选择cos包围盒的最大值按公式31得到最接近值,我们最终的到的包围盒:

我们也可以用公式27算cos的上限值,同时(h  n)也可以通过公式转换:

given that 0 ≤ θh ≤ π/2.我们把这些集合在各项同性WardBRDF上提供所需包围范围。 5 结论本文中,我们讨论了WardBRDF的一些重要问题,我们回顾了如何有效地评估和抽样WardBRDF,如何我们推导出Ward抽样方案相关的概率密度,并给出了样本使用的正确权重。对于数学正确性,这些权重必须在使用Ward抽样的蒙特卡洛算法中使用。我们还描述了如何在一组方向上有效地将各向同性Ward BRDF绑定到需要BRDF边界的渲染算法中。原文来自Notes on the Ward BRDFhttps://www.graphics.cornell.edu/~bjw/wardnotes.pdf以下是各项异性渲染效果图,不过本例子中的公式是比较原始的,在Physically Based Shading at Disney一文中介绍的公式效果表现更好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: