普通的渲染过程通常是将3D场景扔进渲染器获得2D图像,而在图形学领域还有一个研究方向叫逆向绘制(Inverse Rendering)。就是给你2D图像,获得生成这张图像所需的3D场景信息,这个信息可以是3D几何,灯光,材质,视角中的一种或多种。 以前大家做逆向绘制都是从2D图像出发,和CV的研究方式比较接近。这个可能主要是因为以前做一次绘制的时间太耗时了。而现在神经网络上的Forward-Backward 这种优化方式证明了非常大的潜力,现在GPU的计算力也越来越厉害。所以在做逆向绘制的时候也就把前向的绘制过程引入进来。Mistuba 2
在这样的框架下,做逆向绘制有以下过程:
1. 定义了目标图片 A ,目标是找到能够生成这张图片的3D 场景B,
2. 一开始会做一个初始的3D 场景 B’, 这个场景可以是错的,或者大致是对的
3. 拿着个B’ 送到渲染器中,渲染得到图片 A’
4. 这一步就是和 神经网络类似了,比较 A 和 A’ 的差别,计算出Loss
5. 将 Loss Backprop 到场景B’ 中的不同参数上,比如 材质参数,镜头参数,修改这些参数的值,获得新的场景 B1’
6. 和训练神经网络一样,继续 3-5 这个过程。
differentiable rendering可微分渲染
最新推荐文章于 2025-03-16 13:37:33 发布