本系列博客主要尝试对可微渲染中的必要论文机器代码进行介绍,由于本人资历尚浅,编写过程中可能出现很多不正确的地方,欢迎各位在评论区指出。
可微渲染
传统的渲染方法是从三维场景转到二维图像的过程,在是实现中包括光栅化以及光线追踪等方法。伴随深度学习的发展,人们希望将渲染管线嵌入神经网络,实现通过图像对场景信息进行恢复,但是由于渲染的实现过程许多操作不可微分(比如光栅化中将几何数据转为光栅显示的像素的过程),也就自然无法求得渲染图像对场景参数的导数,进而无法实现逆向传播。
可微渲染致力于将渲染流程可微化使得可以求出渲染图像对输入的场景参数的导数。值得注意的是,可微渲染并不仅仅指逆向传播的过程,它同时包含正向和逆向两个过程,不仅需要得到渲染结果,还要得到渲染结果对输入的导数。目前主流的可微渲染往往基于两类思想:近似导数的求解过程或者近似渲染的实现过程,让像素对场景参数可导。
我们接下来会尝试介绍各种重要的可微渲染的实现。本章也作为一个目录,便于之后的检索: