视觉成果超赞!轻易画个草图就能生成3D交互游戏场景!腾讯XR出品
文章链接:名目地址:
亮点直击
3D内容生成是许多计算机图形运行的外围,包括视频游戏、电影制造、虚构事实和增强事实等。本文提出了一种基于深度学习的翻新方法,用于从用户的轻易揭示(如手绘草图)智能生成互动和可玩的3D游戏场景。基于草图的输入提供了一种人造且方便的形式,以传播用户在内容创作环节中的设计用意。为了克制学习中的数据无余应战(即缺乏少量的3D场景训练数据),
本文的方法应用了预训练的2D去噪分散模型来生成场景的2D图像作为概念指点。在这个环节中,驳回isometric投影形式来去除未知的相机姿态,同时失掉场景规划。经过生成的isometric图像,经常使用预训练的图像了解方法将图像宰割成无心义的局部,如低空物体、树木和修建,并提取2D场景规划。这些宰割和规划随后被输入到程序化内容生成(PCG)引擎中,如Unity或Unreal等3D视频游戏引擎,以创立3D场景。生成的3D场景可以无缝集成到游戏开发环境中,并且可以间接启动游戏。宽泛的测试标明,咱们的方法能够高效地生成高品质和互动性强的3D游戏场景,其规划与用户的用意严密关系。
方法
下图2提供了流程的概述,该流程包括三个关键模块:草图指点的isometric生成、视觉场景了解和程序化3D场景生成。
A. 草图指点的isometric生成
1) 2D isometric图像生成 :从用户的轻易草图开局,首要义务是生成3D场景的2D概念图。为此,本文提出经常使用预训练的2D图像(去噪)分散模型,经过isometric投影模型生成3D场景的斜视图。isometric投影是一种不凡的正交相机投影,其中具有相反维度的坐标轴长度相等,且每对坐标轴之间的角度为120°重要经常使用这种投影形式,由于它在处置遮挡时更为方便。驳回ControlNet来为用户提供对生成场景规划的准确控制。ControlNet准许预训练的文本到图像分散模型在去噪步骤中启动额外的空间条件化。用N通道的独热编码启动草图基础条件化,其中每个通道对应一个共同的草图类别(例如修建、路线、水体、桥梁等)。与更罕用的RGB像素域条件化相比,独热示意具有较方便的训练复杂度,并且准许类别堆叠。
本文的方法只有用户提供一个蕴含恣意数量类别的手绘草图。一旦草图提供后,本文的方法应该能够用适合和兼容的内容填补空白区域。例如,假设用户画了一些房子,模型应该能够生成与这些房子人造对齐的路线网络和树木,从而构成谐和的场景。为了使输入草图具有这种灵敏性,模型应该使用具有多样化组合的草图启动训练。例如,相反的水域图可以与不同的路线关联,或许相反的路线可以与不同的修建结合。因此,启动了草图类别过滤,经过随机删除每个类别来增强草图。如下图3所示,经过去除其余类别但保管路线,参考图像的草图被增强为新的草图。
上述增强数据的训练不能间接启动,由于一切增强的草图都对应于相反的实在值,如上图3所示。为了处置这个疑问,本文引入了一个新的损失函数,即草图感知损失(SAL)。为每个草图创立一个soft-mask,并将其作为损失权重矩阵运行,以激励ControlNet的监视关注草图中的有效区域。权重经过经常使用高斯核卷积草图mask 取得,如上图3两边列所示。这象征着接近用户草图的区域运行更高的权重,反之亦然。设ω,最终的mask 被归入到以下损失中。
2) 2D 空白地形提取 :为了复原场景中对应的 3D 地形,须要一张洁净的空白地形参考图像(即“基底图”)。在生成的 2D isometric图像中,由于前风物体的存在,依然有一些地形的遮挡区域。例如,修建物远侧的低空无法见。与普通的修补义务不同,这一义务具有应战性,由于修补区域不得蕴含任何前风物体。现有的基于高低文的修补方法由于缺乏先验常识而难以填补如此大的ma s k。虽然基于分散的生成修补方法展现了后劲,的最先进(SOTA)方法,如 RePaint、EditBench 和 Stable Diffusion XL Inpaint (SDXL-Inpaint),即使经常使用精心设计的揭示,也未能发生令人满意的结果。(参见下图6)
为了处置这个疑问,本文对 SDXL-Inpaint 启动 LoRA 微调,以学习基底图和前景mask 的散布。为了克制缺乏isometric基底数据集启动训练的阻碍,从三种类型的数据源中搜集了训练数据集:具有前风物体的isometric图像、空白地形的透视图像和地形纹理图像。在使用具有前风物体的isometric图像启动训练时,修补mask 的设计要求与前风物体没有堆叠。另一方面,另外两种类型的训练数据经常使用从其余isometric图像中随机提取的前景mask ,与随机状态交叉。
a) 训练指标:原始的 SDXL-Inpaint 构建自一个 9 通道输入的 UNet,损失函数定义为:
其中
在修补模型的训练阶段,一切三种类型的训练数据都会被彻底打乱并随机抽样。
另一个阻碍修补性能的阻碍是训练和推理之间去噪散布的偏移。这种偏移有两种体现形式:在训练时期,mask区域是背景,而在推理时期,mask区域是前景。此外,虽然经过将伪前景mask与随机状态相交来模拟实在的前景mask,但仍存在细微的差异。Step-Unrolled Denoising (SUD) 分散技术旨在处置这个疑问。在修补环节中适配了这一技术,如上方算法1所述。须要留意的是,SUD 步骤仅在训练的前期阶段运行,由于它仅在预测能够发生正当结果时有效。
B. 视觉场景了解
将3D场景分解为三个重要组成局部:地形高度图、纹理贴图图和前风物体。高度图控制地形的状态。纹理贴图图及其相应的纹理砖块选择地形的纹理和色彩。贴图图理论在游戏引擎中经常使用,作为瓦片纹理的透明分解,以取得纹理化的地形。前风物体的实例和姿态确定了搁置在场景中的3D物体的类型、位置和方向。
1) 地形高度图 :在基底图修补之后,场景中仍有一些区域局部被遮挡,例如山的反面。从修补后的2D地形图中重建一个粗略但密封的3D地形网格。这个网格将成为解析游戏地形参数的基础,使得在游戏环境中生成高保真场景成为或许。与依赖增量场景重建的先前方法不同,本文的方法应用了isometric视角,这提供了环境的片面概述,最小化了遮挡。这能够仅经常使用一张图像复原场景的大局部色彩和深度消息。为了推断场景深度,驳回 Depth-Anything 方法,而后将 RGB-D 图像从新投影到空间中以取得有色点云。接着,经常使用 Poisson 重建技术重建完整的网格。
粗略的色彩参考还包括水域区域,这些区域按前述方法启动宰割。关于水域类别,不只在场景中参与水体资产,还降落这些区域的地形高度,以确保地形位于水位以下。
2) 纹理贴图图 :粗略的地形网格在旋转到 BEV 时提供了粗略的色彩参考。但是,间接经常使用这图像作为地形的纹理将造成游戏中视觉成果含糊、品质低下。盛行的游戏引擎(例如 Unity、UE)经常使用 N 种纹理砖块和 N 通道贴图图来处置地形纹理,其中贴图图作为对应纹理砖块的透明分解。详细来说,经过经常使用 Segment Everything 对 BEV 中地形网格的渲染 RGB 图像启动宰割来失掉纹理贴图图,并经常使用 Osprey 为每个宰割mask(例如草地、岩石、路线)取得语义类别。而后,咱们从相应类别的纹理砖块列表中智能筛选,并将其调配给地形。这确保了地形纹理即使在近距离检查时也坚持明晰。
C. 程序化 3D 场景生成
经过应用前一模块中取得的语义和几何了解,咱们可以结合程序生成技术启动场景创立,经常使用 3D 资产检索或生成。最后,3D 场景在现成的 3D 游戏引擎(如 Unity 或 Unreal Engine)中组成并渲染。在此上班中,经常使用 Unity 游戏引擎来构建3D 互动环境,由于 Unity 提供了贵重的提升配置,用于地形、植被和动画,确保提升的运转时性能。其余游戏引擎或 3D 平台(如 Blender)也可以轻松经常使用。
鉴于高度图、贴图图和选定的纹理砖块,可以轻松将它们运行到 Unity 地形资产中。这提供了一个具有高分辨率纹理的基本 3D 地形。依据纹理类型,可以指定可以在其上搁置或成长的植被和小物体。例如,草地纹理或许包括草、花和岩石等资产,这些资产经常使用已建设的程序内容生成技术普及地形。关于较大的物体,经常使用前风物体的宰割实例(例如修建物、桥梁)来口头物体检索或 3D 物体生成。关于前者,经过比拟 CLIP 分数,从 Objaverse 数据集中搜查最相似的 3D 物体实例。关于后者,经常使用最新的 2D 到 3D 资发生成 AI 模型(如 LRM 或其余 [3]、[38]、[39])生成 3D 资产。这些生成的 3D 物体而后依照前面步骤中预计的前风物体姿态搁置到场景中,成功 3D 场景。
结果
A. 训练和推理细节
钻研者们搜集了数据集区分训练ControlNet和修复模型。ControlNet数据集包括10,000个由SDXL生成的isometric视角游戏场景图像,这些图像与来自InstructBlip的相应文本揭示和关系草图配对。这些草图是经过结合多个StoA基础模型的结果生成的,包括Grounding DINO、Segment Anything和Osprey。由于没有isometric底图作为实在值,从三个起源筹划了一个修双数据集:5,000张带有前风物体的isometric图像,4,000张手动过滤的空地透视图像,以及1,000张纯纹理图像。
B. isometric2D图像生成
下图5展现了经常使用ControlNet和修复模型在多种用户草图和揭示下生成的代表性结果。这些结果展现了ControlNet准确追随草图规划并运行揭示批示的场景品格的才干。即使前景mask 笼罩了图像的大局部区域,修复模型也生成了与完整的isometric图像分歧的洁净底图。
如图5所示,ControlNet为用户的草图提供了灵敏性,可以顺应如图5a和5b中的繁多水类场景,以及图5c中的三种不同类别场景。在经常使用相反草图的状况下,图5a和5b经过运行不同的文本品格生成了不同的场景。如何平衡草图条件和文本揭示指点的影响是关键。SAL增强版ControlNet经过准许不准确的用户草图简化了这一平衡环节。它偶然会参与额外的物体或裁减区域,以成功用户的设计用意。例如,在图5b中,河流和瀑布人造地结合在一同,满足了文本和草图的要求。在图5c中,参与了八栋修建,以合乎“领有许多修建的城镇”这一短语,同时尊重了用户绘制的原始草图。
C. 修复对比
咱们将修复结果与SDXL-Inpaint在前面图6中的isometric图像启动了对比。本文经常使用的正向揭示是“一个空的地形图,外表上没有任何突出的物品。这是一片没有修建物、植被或桥梁的景观。”负向揭示为“修建物、植被、树木、桥梁、伪影、低品质”。咱们的模型成功生成了洁净且分歧的底图,而SDXL-Inpaint则偏差于用伪影代替修建物和树木。
D. 视觉场景了解
在给定2Disometric图和空白底图的状况下,视觉场景了解模块复原了前风物体的实例级语义宰割,预算了isometric深度,复原了粗略的地形网格,渲染了俯瞰高度图和黑白图像,宰割了纹理图,并复原了前风物体的位置。下图7显示了生成的高度图、俯瞰物体位置和提取的物体参考图像的示例。
E. 程序化3D场景生成
下图8展现了从前面图1、图5a和图5c的isometric图像生成的三个3D场景。结果显示,这些3D场景的规划和纹理品格与关系的草图和isometric图像高度分歧。第一个场景中的物体是从Objaverse中检索的,而第二个和第三个场景中的物体是经过经常使用从isometric图像提取的物体实例图像生成的。这些物体不只与场景的纹理品格谐和婚配,而且依据俯瞰图(BEV)的足迹在3D场景中智能且准确地缩放、定向和定位。须要留意的是,由于材质组成和光照灵活的变动,造成3D场景的渲染图像与参考图像之间存在细微的色彩差异。更多示例结果见图9和图10。
F. 局限性
本文目前的成功驳回了一个多阶段的pipeline,触及许多两边阶段。失误很容易累积,有时须要用户从不同的噪声种子从新开局。一种潜在的处置方案是同时生成多种形式,如RGB、语义、深度、外表材质和物体足迹,并融合这些两边结果,直到取得连接的最终结果。同时生成前景和背景层也是一个或许的处置方案,例如运行新提出的LayerDiffusion方法。目前,在本文的pipeline中,地形纹理和地形资料仅经过检索地形数据库取得,这限度了地形纹理的多样性。未来方案开发基于分散的纹理生成模型,相似于[45]、[46]。
论断
本文提出了一种名为Sketch2Scene的新方法,用于依据用户的轻易草图和文本揭示生成3D互动场景。为了处置3D场景缺乏大规模训练数据的重要应战,应用并改良了预训练的大规模2D分散模型。为现有的分散模型提供了两个翻新:(1) SAL增强的ControlNet,(2) 逐渐倒退的分散修复。与其余用于3D场景生成的最重生成技术(例如,经常使用SDS损失或间接三平面回归)相比,本文的方法生成了高品质的互动3D场景,并且可以将活泼的3D资产无缝集成到现有的游戏引擎中,为许多下游运行做好预备。
原文链接: