游戏快报

生成单建筑仅17.5分钟:腾讯AI Lab发布3D场景自动生成方案


在近日举办的 2023游戏开发者大会(Game Developers Conference)上,腾讯 AI Lab 发表了题为《AI Enhanced Procedural City Generation》的演讲,提出自研的 3D 虚拟场景自动生成解决方案,帮助游戏开发者以更低成本创造风格多样、贴近现实的虚拟城市,提升 3D 虚拟场景的生产效率。 


《AI Enhanced Procedural City Generation》效果展示


会上,腾讯展示了使用AI从零开始迅速搭建一座 3D 虚拟城市的过程,所建虚拟城市面积达到 25 平方公里,包含 130 千米路网、 4416 栋建筑以及超过 38 万个室内映射。这样一座大规模城市的“构建”,过去往往需要多名美术师以年为单位的时间才能完成,而结合AI只需要数周。 


 团队重点分享了城市布局生成、建筑外观生成、室内映射生成三大核心能力,以下为具体介绍。




01 城市布局生成


城市布局的真实感与多样化,主要来源于两方面:道路布局和建筑布局。 第一步,创造真实感的道路布局。现实中的城市路网复杂多样,布局疏密弯曲,且不少城市独具风格。


传统程序化生成的路网通常横平竖直、风格单一,要实现不同城市风格必须手动设计和反复修改,耗时至少一周。 腾讯 AI Lab 的解决方案,是让 AI 学习现实世界路网,再自动创造新道路,不仅生成结果更贴近现实,且操作简便高效:用户只需要输入城市主干道和海岸线,模型在 1 分钟内即可填充合理、多样的路网细节。


同时,工具支持实时修改输入,快速生成不同变体;也可在生成结果上进行细节微调,得到更符合需求的路网。整个过程仅需不到 30 分钟,相比手动设计效率提升近 100 倍。 



调整输入(左)快速生成不同路网(右)


具体到技术实现,首先是数据的准备,包括数据的提取、筛选、裁剪及绘制。然后,训练一个扩散模型来学习这些数据的规律,得到不同城市风格的路网生成模型,最后将该模型嵌入到路网生产管线中。 



路网生成模型


第二步,在路网基础上实现多样化的建筑布局。现有的程序化生成技术,同样只能生成风格有限的建筑轮廓,且建筑排布规律单一,实现多样性仍要依赖手工设计。 


为解决以上问题,腾讯 AI Lab 基于大量真实建筑的轮廓数据及建筑排布信息,通过生成技术学习数据中的规律,从而生成大量真实多样且符合现实世界规律的建筑轮廓及建筑排布,最后把这些生成的建筑单元填充到路网中,从而完成建筑布局的制作。以演讲展示的demo为例,操作者在路网基础上,用10分钟就完成了这一过程。




02 建筑外观生成


完成城市布局生成后,下一步是给建筑设计独特的外观。目前常用的程序化生成管线包含以下步骤:收集图片、定义建筑拆解组合方式、准备3D素材库、参考照片制作独特建筑、已有建筑随机组合出更多变体、增加装饰。


其中主要效率瓶颈在于参考照片制作单个独特建筑,所以通常只会制作少量独特建筑,而依赖随机组合产生的多样性较为有限,容易让生成的场景产生重复感。 腾讯 AI Lab 的解决方案将 AI 与程序化生成结合,加速了 2D 照片到 3D 建筑的制作过程,将单个独特建筑的制作时间降低至 17.5 分钟,使低成本、高效率生成大量多样化建筑外观成为可能。同时,借助自研的图像生成能力,批量生成大量外观独特的 2D 建筑照片,提升了建筑外观的丰富度。 


通过单张 2D 照片生成 3D 建筑,其难点是对 3D 信息的准确估计。结合建筑的结构特点,腾讯 AI Lab 创新地提出合理的先验假设,有效解决了从 2D 照片提取 3D 信息的难题,较好地实现了从单张照片提取 3D 建筑的立面结构和表观细节(如凸起的阳台、墙面凹凸等) 



从输入照片中提取建筑立面结构和表观细节


然后,将照片中检测到的各个单元,如窗户和阳台,自动映射到预先准备好的3D素材,以及将墙面映射到预先准备好的材质。以上提取的信息接入程序化管线即可完成图片到3D建筑的生成。 


将照片中检测到的单元映射到3D素材


对于图像中不可见的部分(如房顶)和易遮挡的部分(如底层),腾讯 AI Lab 通过程序化管线补全得到了完整建筑。基于以上管线他们制作了157栋独特建筑,借助这些丰富的建筑立面资产,即可变化出数以千计的建筑外观。 


批量生成建筑立面


 



03 室内映射生成


为了让城市更具真实感,通常会增加建筑窗户上的室内效果。实现的第一步是构建虚拟房间,腾讯 AI Lab 的方法是将现实中的房间拍照重建。相比于传统美术建模,可以直接获取现实房间的丰富内容和细节,提高制作效率。 具体步骤包括,给一个房间拍摄多张连续照片,估计相机位姿,训练NeRF模型,合成新视角图片作为后续材质制作的输入。 



室内映射生成步骤


 考虑游戏运行性能,腾讯AI Lab基于NeRF输出的给定视角的颜色图和深度图,制作内部映射材质实现伪三维效果。相比于业内常见的两视图方案(下图左),腾讯 AI Lab 采用三视图方案(下图右),显著减少渲染效果中的拖影,同时兼顾性能。  最后,用程序化 UV 计算,将这些“伪3D”房间填充到之前生成好的建筑外墙上,城市里即充满了各式各样的房间。 


程序化 UV 计算步骤


 


增加室内映射后的建筑效果


 基于以上技术,真实感虚拟城市所需要的多样化城市布局、多风格城市建筑等核心要素已基本具备。然后,借助程序化生成,完成路面、植被等标准元素,再把所有元素转移至游戏引擎中,增加动态变化天气、车流与行人等,一个活灵活现的虚拟城市轻松落成。  腾讯AI Lab表示,团队已在AI与游戏应用的结合上取得多项成果,包括运用AI进行游戏平衡性测试、游戏新手教学、关卡生成等。未来面向游戏行业,腾讯AI Lab 将聚焦 AI Bot 与 AIGC 两大方向,探索 AI 与游戏产业的深度融合,覆盖从游戏研发到运营的全链路 AI 解决方案,助力游戏产业发展。