一、先容读后感来自 Revisiting Physically Based Shading at Imageworks, SIGGRAPH 2017 course,by Kulla and Conty。这篇文章先容了一种快速的抵偿微概况模子能量损失的近似方式,为产业界常用的一种“相当简单”的抵偿微概况能量损失的方式。 二、布景在利用微概况模子的时辰,越是粗糙的物体能量损失越是严重。以下图所示: 随着粗糙度从左往右变大,我们模子也变得越暗,也就意味能量越低。具体可经过白炉测试看出,以下图所示: 对所用模子,利用各偏向完全一样的情况光。由于能量守恒,理论上模子入射和出射能量连结分歧(此处没有色彩的能量吸收)。但现实上越右侧的(粗糙度更大)的模子能量损失越多。这是由于微概况斟酌G项时,只做了一次入射遮挡和出射遮挡。 对于粗糙的物体,光芒能够会在微概况间弹射屡次。是以一次的遮挡计较是不够的。以下图所示,越是粗糙的物体,其在微概况间的弹射应当更屡次。 是以我们需要一种方式来抵偿该能量,固然一种在微概况间作path tracing的方式是合适物理的。例如[Multiple-scattering microfacet BSDFs with the Smith model,Heitz et al.2016]就尝试在物理上切确描写能量损失。可是在实时衬着范畴,该方式效力明显太低。是以此处先容了一种快速的抵偿微概况能量损失的近似方式。该方式为The Kulla-Conty Approximation,其用一种经历性的方式抵偿了能量损失。 三、道理第一步,论文给出了E( )的表达式,表达给定偏向下, radiance为1时的积分,即irradiance,此时= sin θ。以下图所示: 那末假定入射为1,反射为E( ),那末给定偏向下,一次弹射需要补充的能量则为1-E( )。 第二步,论文及其“自然”地想到了关系式(以下)以表达brdf的对称性,该式的积分应即是1-E( )。 第三步,解出常值C。具体解法以下: 是以积分式内的表达式为第二步所求式。即(以下图) 第四步,那明显只要晓得了E( )与E(avg)便可以获得一次弹射的能量损失。一个无剖析解的积分,我们可以用得当的估计较方式获得数值解。分析参数可得,E( )只和和roughness有关,E(avg)只与roughness有关。是以E( )可用一张二维纹理存储,E(avg)可用一维纹理存储。以下所示: 由以上4步可以完全计较出一次弹射的能量损失,成果以下图。明显抵偿后,粗糙的物体比本来更“亮”了,能量连结了分歧性。 (无抵偿成果) (有抵偿成果) 到此为止,我们完成磷泼方式的一般内容,该文用设想的公式模拟一次弹射的能量变化(无色彩)。那末假如brdf有色彩呢,假如是屡次呢?接下来请看。 我们晓得色彩意味着吸收,而吸收为能量损失。我们尝试计较该部分“应当”损失的能量。即方式为:先假定模子无色彩E( ),然后计较有色彩时的brdf能量损失F(avg),最初补上。方式以下: 第一步,F(avg)表达均匀每次反射的能量,计较方式与上面类似,以下: 第二步,那末一次弹射的有色彩的能量为F(avg)E(avg),损失为F(avg)(1-E(avg))F(avg) E(avg)。那末屡次弹射的有色彩能量损失为,以下图推导: 第三步,按照等比数列求和公式,我们可得和为: 该式为终极应抵偿能量成果,乘上该成果,我们可得: (无抵偿成果) (有抵偿成果) 四、结论 该论文对于分歧材质和情况还有很多分析,此处不多做先容。接下来贴出我实现的成果。 E() E(avg) (用重要性采样的积分红果,上图为能量抵偿,下图为原图,粗糙度从左往右递增) (用Cosθ加权采样的的积分红果,上图为能量抵偿,下图为原图,粗糙度从左往右递增,可见此方式在低粗糙度时,用该方式加权时计较结果欠好) 五、援用https://www.bilibili.com/video/BV1YK4y1T7yY?p=10 (Games202课程) https://fpsunflower.github.io/ckulla/data/s2017_pbs_imageworks_slides_v2.pdf (原文PPT) https://dl.acm.org/doi/abs/10.1145/2897824.2925943 ([Multiple-scattering microfacet BSDFs with the Smith model,Heitz et al.2016]) 最初 给对图形学有爱好的同学保举yanlinqi教员在B站的课,相信你一定会受益匪浅。 |