目前大多数渲染采用光栅化来处理,what?以opengl为例吧,看一下pipleline如下:
3D场景通过以上pipeline渲染成2D图像,已经非常成熟,而且越来越逼真。但是如果反过来呢?也就是从2D信息重建3D场景就变得比较复杂了,这个领域也发展很多年了,称谓逆向图形学(Inverse Graphics)。其实可微渲染方法就属于解决逆向图形问题的方法。
1、什么是可微渲染(Differentiable Rendering)?
1)可微一定可导
2)可以将渲染的输入(材质、场景、光照等)作为各种参数,最终结果对参数求导。可微渲染的目标就是提供可微渲染函数,计算该函数对于不同场景参数的导数。
3)传统的光栅化渲染管线不可微,主要是光栅化、深度混合、遮挡等阶段都是离散的
但是一旦渲染器可微分,就可以集成到优化或者神经网络管线中(比如:梯度下降算法使用导数来调整参数,并通过使用梯度反向传播技术调整权重来训练神经网络),从而解决逆向图形问题:比如2D到3D的重建或者光传输优化等。
2、那如何做到可微呢?