如何利用2D图像直接生成3D?在3D游戏盛行、AR/VR和元宇宙受关注的当下,这似乎是一个亟待解决的问题。不管是对于3D平台,还是3D内容开发者,都难免面临着缺少内容资源的困扰。
除了手动3D建模外,游戏工作室通常也会采用摄影测量法来生成物理场景的3D数据,但这个过程同样复杂繁琐,不仅依赖人工设置拍摄方案,扫描后期的合成部分还需要烘焙、纹理参数化等多个手动调整步骤。而且硬件成本高、渲染管道复杂等等。因此,如果可以将现有的大量2D图像自动转化或合成为3D,那么将有望缩减大量的人工3D建模时间。
为了解决这一问题,谷歌这些年来一直在探索NeRF方案,也就是神经辐射场的3D合成技术。对于谷歌来讲,构建未来的3D地图、AR导航等应用,将需要大量3D物理场景数据,而通过NeRF模型,似乎可以直接将2D网图、自动驾驶汽车传感数据转化成3D环境模式。除此之外,谷歌在NeRF基础上还研发了mip-NeRF360技术,可根据多张2D照片合成支持360°查看的场景内部结构和3D物体。
尽管如此,NeRF方案中的几何、材料和照明数据通常与神经网络纠缠,无法直接支持场景编辑。而且还需要使用MarchingCubes等工具,从神经网络中提取几何图像,才能在传统图形引擎中应用。这可能会导致较差的表面质量,尤其是在三角形数量较少的情况下。即使神经算法模型可以分割形状、材质和照明信息,目前其效果还不够理想,3D重建的质量较差。
因此,为了自动生成可直接导入图形引擎的3D模型,NVIDIA在今年的IEEECVPR会议上公布了一项新的方案:3DMoMa。与市面上其他3D合成方案不同,3DMoMa可生成三角网格组成的3D模型,并可直接导入图形引擎。这项方案的重点是,可直接导入支持三角形建模的3D建模引擎、游戏引擎、电影渲染器,可以在手机、浏览器上运行。3DMoMa生成的3D模型自带三角形网格,这也是3D开发通用的语言,而将3D模型生成自动化,将有望加速艺术、游戏、影视等内容创作。
这意味着,不需要人工建模,就可以直接将2D图片转化成3D模型,并用来开发3D游戏、AR/VR等内容。利用3DMoMa,建筑师、设计师、艺术家、游戏开发者可快速创作3D对象,并修改比例、更改模型的材质,甚至可以修改照明效果。
我们知道,多边形(Polygon)是3D建模的一种方式,除此之外还有曲面建模、参数化建模、逆向建模等方式。逆向建模是一种不同的建模思路,其中还分为点云逆向建模、照片逆向建模、三维扫描逆向建模等技术。无论使用哪种逆向建模方案,结果通常都是转化为多边形或三角面的数字模型。
点云建模、三维扫描我们比较熟悉,比如用激光雷达、无人机等摄像头方案捕捉3D场景的点云数据,或是用手机进行3D扫描和建模等等。照片逆向建模方面,除了NVIDIA的3DMoMa外,谷歌采取了不同的方式,即利用神经辐射场NeRF模型来进行3D合成渲染,通过体积纹理来提取纹理数据,并利用可微分的切面和环境照明。
3DMoMa正是基于逆向渲染流程,可从2D图片中提取3D信息、材质和照明数据。而逆向渲染指的是,从一系列静态图片中获取物体的形状和材质信息,以及场景中的光照信息、相机参数,然后重建并合成3D物体模型或3D场景。NVIDIA表示:长期以来,逆向渲染被看作是统一计算机视觉和计算机图形学的“圣杯”。
和基于神经网络的多视图重建方法不同,3DMoMa合成的三角形网格的纹理和环境照明可根据空间位置而动态变化,无需修改就能直接在传统图形引擎中应用。3DMoMa生成的模型可用于高级场景编辑、材质分解和高质量视图插值。3DMoMa将逆向渲染任务的每一部分指定为由GPU加速的可微分元素,然后利用AI算法和NVIDIAGPU的原始算力来合成3D模型。
除了逆向渲染方式,3DMoMa还有一个关键点是可学习表面网格的拓扑结构和顶点位置,因此合成的3D几何模型更加准确。此外,3DMoMa还可以合成支持空间变化的材料,或是HDR环境照明。细节方面,3DMoMa采用基于图像的照明模型,场景中的环境光由高分辨率立方体贴图合成。
NVIDIA表示:自动化3D建模的努力可以节省大量的生产成本或允许更快、更多样化的内容创建。接下来,将继续优化3DMoMa的着色模型,包括考虑全局照明、阴影等元素,从而提升二次照明渲染的效果。参考: