【Heskey带你玩渲染】SIGGRAPH2021-复杂光源的表示与渲染

[SIG2021] Neural Complex Luminaires: Representation and Rendering

1.渲染难

为什么要研究复杂光源的渲染?由于复杂光源表面会包裹着很复杂的mesh,所以复杂光源的渲染很难收敛。光线在传输的过程中很容易就被中断,即使能够找到一条路径,路径的深度也会很高,需要的计算量会上升。所以,渲染很难。

2.光源难以描述

光源周围的网格体一般情况下都会很复杂,要表示一个精细的光源需要很大的存储空间,光线与mesh的求交计算很麻烦。论文中提出的方法就是使用一张预计算的light field去描述复杂的光源,把光源附近的复杂光照的传输过程直接记录在光源表面的包围体上,这个包围体的形状可定,但它必须紧紧包裹住光源。在这张light field中,记录了包围体在各个点,任意方向接受到的radiance。

但即使前人们有了这个思路,light field的问题也会带来很多困扰,就比如light field作为一张volume texture,它占用的内存很大,如果要提高渲染的速度,减少消耗,那么后果就是:这张light field的分辨率会很低,假设light field的分辨率是256*256*256,那么需要的内存高达16GB,即使占用了很高的内存,复杂光源的内部的精细几何结构也难以精确地恢复出来。

3.解决方法

在2020年的某一天,Nerf出现了,基本思想就是使用ray marching + MLP网络压缩来表示radiance field,这种方法能够重现场景中的细节,并且存储消耗很低(只需要存储神经网络)。但是,Nerf更多的是关注representation,不能直接应用到标准的渲染流程中。

为了集成到标准的渲染流程,就需要对这个复杂光源进行重要性采样,重要性采样的过程也用一个网络来表示,用神经网络来近似每一个着色点能够看到的一个低分辨率16*16的light field,用这张light field指导重要性采样。

我们不仅仅需要知道看向复杂光源时,包围几何体上的light field,也要知道,视线是怎么穿过包围几何体(光可能会穿过包裹住复杂光源的包围体),看到场景中其它元素的(可以理解为复杂光源的透明度)。用包围体包裹住复杂光源,用light field来近似复杂光源内部的光照传输,并使用神经网络来压缩

evaluation network如下:

image

posted @ 2022-03-10 14:09  Heskey0  阅读(343)  评论(0编辑  收藏  举报

载入天数...载入时分秒...