在近日举办的 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 解决方案,助力游戏产业发展。