【《梯度域渲染的几个重要算法的实现案例》4500字】_第1页
【《梯度域渲染的几个重要算法的实现案例》4500字】_第2页
【《梯度域渲染的几个重要算法的实现案例》4500字】_第3页
【《梯度域渲染的几个重要算法的实现案例》4500字】_第4页
【《梯度域渲染的几个重要算法的实现案例》4500字】_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第梯度域渲染的几个重要算法的实现案例目录TOC\o"1-3"\h\u21950梯度域渲染的几个重要算法的实现案例 1318681.1Mitsuba渲染器 1214301.2梯度域蒙特卡洛光线追踪的实现 2186471.2.1梯度域渲染实现细节 285671.3Poisson重构的实现 5138871.4Gradnet的实现 62009第2章算法改进与讨论 10244242.1依据反照率进行预处理 10161512.2Gradnet神经网络结构讨论 11Mitsuba渲染器Mitsuba是一个科研领域非常常用的开源渲染器ADDINEN.CITE<EndNote><Cite><Author>Nimier-David</Author><Year>2019</Year><RecNum>23</RecNum><DisplayText>(Nimier-David,Vicini,Zeltner,&Jakob,2019)</DisplayText><record><rec-number>23</rec-number><foreign-keys><keyapp="EN"db-id="92zvwr5wz200vjeer075twayxpwexad9t2e5"timestamp="1622408090">23</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>MerlinNimier-David</author><author>DelioVicini</author><author>TizianZeltner</author><author>WenzelJakob</author></authors></contributors><titles><title>Mitsuba2:aretargetableforwardandinverserenderer</title><secondary-title>ACMTrans.Graph.</secondary-title></titles><periodical><full-title>ACMTrans.Graph.</full-title></periodical><pages>Article203</pages><volume>38</volume><number>6</number><keywords><keyword>SIMD,raytracing,differentiablerendering,globalillumination</keyword></keywords><dates><year>2019</year></dates><isbn>0730-0301</isbn><urls><related-urls><url>/10.1145/3355089.3356498</url></related-urls></urls><electronic-resource-num>10.1145/3355089.3356498</electronic-resource-num></record></Cite></EndNote>(\o"Nimier-David,2019#23"Nimier-David,Vicini,Zeltner,&Jakob,2019),它是使用C++语言实现的,同时也支持GPU渲染。Mitsuba内部实现了多种光线追踪算饭及其加速算法,可以满足大部分科研需求。相较于其他开源渲染器,Mitsuba实现了许多前沿的实验性的渲染算法,例如Metropolis光线传输算法,以及前沿的体积渲染算法。因此,Mitsuba非常适合于想对渲染算法进行优化尝试的科研工作。另一方面,Mitsuba的高度模块化使得它可以非常容易修改,使用者可以编写各种材质,积分器等等插件,在Mitsuba的框架基础上进行优化尝试以及个性化的设计。Mitsuba对很多主流的渲染算法的实现都具有简洁、高效的特点。且很多渲染算法在使用过程中都可以进行高自由度的设置和修改。同时,Mitsuba提供一个高质量的、种类繁多的材质库,其中包含许多基于物理的真实感BSSRDF模型,同时,这些模型对大部分的渲染算法都具有很好的兼容性和灵活性,这使得Mitsuba的使用价值也非常高。基于以上描述的几个特点,我们在实验中采用Mitsuba作为算法实现的框架,通过编写基于Mitsuba的渲染器插件或者Mitsuba中已有的渲染器来进行实验。梯度域蒙特卡洛光线追踪的实现梯度域渲染实现细节实验的第一步也是实验的基础是实现一个可以直接渲染梯度图像的蒙特卡洛光线追踪渲染器。其重点是要实现根据基础光路生成周围像素的偏移光路的策略,也就是转移函数Tδx,δyx。首先需要用常规的蒙特卡洛光线追踪采样方法得到一条基础光路x,然后将x的信息记录下来,接下来需要根据选定的转移函数的偏移策略构造出经过周围上下左右像素的与基础光路相似的偏移光路,每次获得偏移光路我们都将其对应的颜色值作为相邻像素的颜色值的粗糙估计的一个样本记录下来,同时计算它与基础光路颜色值的差,作为基础光路的像素对应的梯度值的一个样本,这样便可以同时获得梯度图像和粗糙的原图图像。我们所采用的实现方式与梯度域的Metropolis光线传输ADDINEN.CITE<EndNote><Cite><Author>Lehtinen</Author><Year>2013</Year><RecNum>3</RecNum><DisplayText>(Lehtinenetal.,2013)</DisplayText><record><rec-number>3</rec-number><foreign-keys><keyapp="EN"db-id="92zvwr5wz200vjeer075twayxpwexad9t2e5"timestamp="1622198638">3</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>JaakkoLehtinen</author><author>TeroKarras</author><author>SamuliLaine</author><author>MiikaAittala</author><author>FrédoDurand</author><author>TimoAila</author></authors></contributors><titles><title>Gradient-domainmetropolislighttransport</title><secondary-title>ACMTrans.Graph.</secondary-title></titles><periodical><full-title>ACMTrans.Graph.</full-title></periodical><pages>Article95</pages><volume>32</volume><number>4</number><keywords><keyword>lighttransport,metropolis,globalillumination</keyword></keywords><dates><year>2013</year></dates><isbn>0730-0301</isbn><urls><related-urls><url>/10.1145/2461912.2461943</url></related-urls></urls><electronic-resource-num>10.1145/2461912.2461943</electronic-resource-num></record></Cite></EndNote>(\o"Lehtinen,2013#3"Lehtinenetal.,2013)这一研究工作中提到的策略是一致的。具体地,给定一条基础光路x,那么确定性的偏移光路T(x相机位置对应的节点x0一段镜面子光路Se=x一段可能存在的第二段镜面子光路Sm=x剩下的后缀子光路xc图STYLEREF1\s4SEQ图\*ARABIC\s11梯度域渲染偏移策略图示ADDINEN.CITE<EndNote><Cite><Author>Lehtinen</Author><Year>2013</Year><RecNum>3</RecNum><DisplayText>(Lehtinenetal.,2013)</DisplayText><record><rec-number>3</rec-number><foreign-keys><keyapp="EN"db-id="92zvwr5wz200vjeer075twayxpwexad9t2e5"timestamp="1622198638">3</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>JaakkoLehtinen</author><author>TeroKarras</author><author>SamuliLaine</author><author>MiikaAittala</author><author>FrédoDurand</author><author>TimoAila</author></authors></contributors><titles><title>Gradient-domainmetropolislighttransport</title><secondary-title>ACMTrans.Graph.</secondary-title></titles><periodical><full-title>ACMTrans.Graph.</full-title></periodical><pages>Article95</pages><volume>32</volume><number>4</number><keywords><keyword>lighttransport,metropolis,globalillumination</keyword></keywords><dates><year>2013</year></dates><isbn>0730-0301</isbn><urls><related-urls><url>/10.1145/2461912.2461943</url></related-urls></urls><electronic-resource-num>10.1145/2461912.2461943</electronic-resource-num></record></Cite></EndNote>(\o"Lehtinen,2013#3"Lehtinenetal.,2013)从图4-1可以更直观地看出这个偏移策略的含义,简单来说,也就是在镜面表面上的节点按照镜面反射或者投射的规则进行,在非镜面的情况下,尽量使得偏移光路与基础光路重合。通过这样的策略,可以最大程度地获得与基础路径相似的偏移路径,使得两条路径具有很强的相关性。当然,这个偏移策略并不适用于所有的情况,在无法找到满足上述条件的偏移路径的情况下,就应该选择丢弃这条基础路径。 我们在Mitsuba中的Pathtracer积分器的基础上实现了这个梯度域的采样算法,可以成功地渲染出梯度图像和粗糙的原图,在测试场景上的渲染的结果如下面几张图所示:图STYLEREF1\s4SEQ图\*ARABIC\s12x方向梯度图STYLEREF1\s4SEQ图\*ARABIC\s13y方向梯度图STYLEREF1\s4SEQ图\*ARABIC\s14粗糙原图渲染中所设置的采样数是64spp。此测试场景具有一定的特殊性,可以看到,场景的光源在房间半开的门背后,因此,大部分情况下采样到的光路都会被门所遮挡而对最终像素颜色几乎没有贡献。再加上采样数较少,最终渲染得到的无论是梯度图像还是原图都有很大的噪音。可以看到,在梯度图像中,即便是本应该很光滑的墙面上仍然存在很多早点,可以预测,这些早点对后续的重构工作来说是一个非常大的挑战。另外,在一些边界的区域,例如地板的纹理以及们的边框处,梯度信息被很好地捕捉到了,结合我们之前讨论的梯度图像能在重构的过程中对高频信息提供很好的指导,这些边界处的信息可能会非常清晰地体现在降噪后的图像中。桌子上的几个茶壶的材质各不相同,其中有两个茶壶分别是镜面反射和镜面透射的材质,因此,此场景的难度和多样性可以作为测试梯度域渲染算法一个很好的例子。得到这三张图片后,我们可以根据(3.7)式进行Poisson重构,得到降噪后的图像。Poisson重构的实现在图像处理领域,Poisson重构是一个非常经典且常用的数学方法,用传统的迭代法实现Poisson重构已经非常成熟。因此这一部分的实现非常直接,通过Poisson重构,我们得到的降噪后的图像如图4-5所示:图STYLEREF1\s4SEQ图\*ARABIC\s15Poisson重构降噪后的图像可以看到,梯度域渲染算法的降噪效果十分显著。在墙这类本应该十分平滑的区域,重构后的图像在将原图平滑化的同时,也保留了高亮度区域附近的精细的渐变效果。在门和地板这类有纹理的平整表面,在粗糙的原图中纹理几乎难以辨认,而在降噪后的图像中纹理细节以及高频信息得到了很好的保留。对于两个镜面材料的茶壶,在原图中几乎难以辨认茶壶的轮廓,高光细节和透射的颜色更是十分模糊,而在重构后的图像中这些细节都被还原了出来。但降噪结果中的局限性和缺点也十分明显:在一些几何不连续的边界处,例如墙角,茶壶和桌面的接触处,可以看到十分明显的人工痕迹和噪点存在。这些情况也就是之前提得到奇点。在这些点附近梯度渲染算法中给出的偏移路径生成策略并不能很好地处理,最终呈现在梯度图像中的信息量十分匮乏。另外,即便是在较为平整的区域,由于之前提到的原因导致梯度图像本身噪音很大,那么以梯度图像为指导重构出来的图像无法避免地存在很多肉眼可见的噪点。在后面的小节中我们将尝试用其他方法或者讨论优化这些缺点的可能性。Gradnet的实现在实现了梯度渲染的基础上,我们可以代替传统的Poisson重构用神经网略进行重构过程。在之前的章节中我们讨论了梯度域渲染与神经网络结合的一篇相关工作Gradnet的算法细节,根据(3.11)到(3.18)式描述的损失函数的形式,一阶网络的损失函数,以及预处理、后处理的方法,我们可以很容易实现一个基于Pytorch的神经网络框架。为了更加直观地给出Gradnet的实现细节,图4-6给出了Gradnet的网络框架图示:图STYLEREF1\s4SEQ图\*ARABIC\s16Gradnet网络结构图示从图中可以看到,Gradnet采用了经典的U-net结构,整个网络氛围两个分支,一个分支是一阶损失分支,用来计算(3.15)式中所定义的一阶损失函数中的未知梯度项G,这个分支以粗糙原图,梯度图像,辅助特征作为输入,以G作为输出;另一个分支便是通过梯度图像和粗糙的原图重构出降噪后的图像的主要分支,这个分支在一开始又分为两个子分支,分别是梯度分支和数据分支。其中梯度分支以梯度图像作为输入,可以先对梯度图像进行一定的预处理,减小离群像素对最终重构结果的影响;数据分支以粗糙的原图和辅助特征作为输入,可以先根据辅助特征对原图进行一定程度上的预降噪。之后再将两个分支进行合并,综合考虑两个分支的约束,最后根据(3.17)式提供的损失函数计算损失。 在进行网络的训练之前,我们利用之前实现的基于Mitsuba的梯度渲染器构造数据集。其中,我们以之前的客厅场景为例给出辅助特征,也就是深度,法向量,反照率的一些例子,直观地通过图片给出辅助特征所提供的信息,如下图所示:图STYLEREF1\s4SEQ图\*ARABIC\s17法向量示例图STYLEREF1\s4SEQ图\*ARABIC\s18深度示例图STYLEREF1\s4SEQ图\*ARABIC\s19反照率示例可以看到,法向量可以提供光路第一个交点附近局部的几何信息;深度图可以提供整体的场景尺度信息;而反照率可以提供物体表面的纹理、颜色信息。这些信息在重构的过程中都可以起到非常好的指导作用。 我们用另外一些场景来展示Gradnet的降噪效果:图STYLEREF1\s4SEQ图\*ARABIC\s110Gradnet降噪效果示例1图STYLEREF1\s4SEQ图\*ARABIC\s111Gradnet降噪效果示例2图STYLEREF1\s4SEQ图\*ARABIC\s112Gradnet降噪效果示例3从结果中可以看到,Gradnet相比起传统的Poisson重构,得到的降噪后的图像可以更加的平滑,在一些几何边界处也不存在明显的人工痕迹,相比之下有效果很大的提升。但另一方面,可以看到Gradnet倾向于使得某些表面的颜色过于平滑,以至于由阴影产生的一些高频结构在重构后的图像中被弱化了,如图4-12。另外,一些比较尖锐的纹理效果,如图4-10,也在重构后的图像中被过模糊了。 同时,我们在之前所展示的客厅场景中进行测试。我们选取一个特殊的相机角度使得场景的关注点聚焦在桌上的镜面透射茶壶上,由于镜面透射的情况比较复杂,我们通过这个例子可以从细节上观察Gradnet的局限性。如图4-13所示,输入图像的噪音非常严重,桌面和门的纹理几乎难以辨认,光滑的墙面上也分布着大量噪点。Gradnet降噪器对所有第一个与场景焦点在茶壶上的像素进行了过度的平滑化处理,尤其是在茶壶的边缘处,折射的效果被淡化了。另外,光路透过茶壶的交点处墙边和桌面的颜色也没有被很好地还原出来。门楣附近由软阴影形成的颜色渐变效果也没有在降噪后的图像当中体现出来。图STYLEREF1\s4SEQ图\*ARABIC\s113Gradnet降噪效果示例4 可见,对于梯度图像和原图噪音过大的情况,Gradnet的降噪效果非常不理想,出现了很多颜色偏差、细节丢失、边缘模糊的痕迹。由此可见,基于神经网络的梯度域渲染还有很大有待改进的空间。算法改进与讨论从上一章节的实验结果可以看出,梯度域的渲染还有很多局限性以及需要优化的方面。首先便是复杂场景或是低采样数的情况下,梯度图像和原图的噪音过于严重,尤其是在几何不连续处,这导致重构后的图像仍然受梯度图像中大量离群像素的影响而有很多人工痕迹。Gradnet通过对辅助特征的充分利用以及神经网络的应用可以获得非常平滑的结果,但却往往会丢失很多细节信息。基于以上一些光差,我们提出一些可能的优化方向并进行讨论和实验。依据反照率进行预处理受到KPCNADDINEN.CITE<EndNote><Cite><Author>Bako</Author><Year>2017</Year><RecNum>18</RecNum><DisplayText>(Bakoetal.,2017)</DisplayText><record><rec-number>18</rec-number><foreign-keys><keyapp="EN"db-id="92zvwr5wz200vjeer075twayxpwexad9t2e5"timestamp="1622374736">18</key></foreign-keys><ref-typename="JournalArticle">17</ref-type><contributors><authors><author>SteveBako</author><author>ThijsVogels</author><author>BrianMcwilliams</author><author>MarkMeyer</author><author>JanNováK</author><author>AlexHarvill</author><author>PradeepSen</author><author>TonyDerose</author><author>FabriceRousselle</author></authors></contributors><titles><title>Kernel-predictingconvolutionalnetworksfordenoisingMonteCarlorenderings</title><secondary-title>ACMTrans.Graph.</secondary-title></titles><periodical><full-title>ACMTrans.Graph.</full-title></periodical><pages>Article97</pages><volume>36</volume><number>4</number><keywords><keyword>MonteCarlorendering,MonteCarlodenoising,globalillumination</keyword></keywords><dates><year>2017</year></dates><isbn>0730-0301</isbn><urls><related-urls><url>/10.1145/3072959.3073708</url></related-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论