阿里云数据可视化产品DataV的三维交互团队近期研发了基于虚幻引擎与AIGC的中国城市三维场景的一站式生成服务,本文以建筑生成为切入点,从方法论出发逐步为大家展开一个宏大的、高度智能化的真实世界打造之旅。
各位好,我们是阿里云数据可视化产品DataV的三维交互团队,近期我们研发了基于虚幻引擎与AIGC的中国城市三维场景的一站式生成服务,我们将会陆续推出数篇技术文章对此次实践进行解析,本文是系列文章的第一篇,以建筑生成为切入点,从方法论出发逐步为大家展开一个宏大的、高度智能化的真实世界打造之旅。随着智慧城市产业的日渐成熟,低成本、高效率的三维城市场景构建需求日渐强烈。不同的国家/地区、不同的文化背景,往往会影响一座城市的宏观风貌和微观细节,这也一直是自动化三维城市场景生成面临的挑战;很多国外开源方案直接照搬,能满足技术指标,却往往不能从宏观上找准中国城市风貌的神韵。为了能够自动化、工程化、普适化地生成“中国城市”场景,阿里云DataV发起了“山海计划”;希望在尊重中国城市风貌的框架下,借助AIGC的技术能力,为智慧城市项目提供数字化底座。
视频:“山海计划”城市生成效果预览
我们团队一直在基于自身的产品体系,支持阿里云城市大脑以及其他很多数字孪生城市的建设。随着城市大脑的推广和标准化,我们也产生了标准化高效供应三维城市场景的需求。于是我们总结出了这样的一个目标,自动化、工程化、普适化地生产中国城市场景,更直观的来说,我们最初的输入就是我们手上的地理信息数据,最后我们会做到立等片刻,让地理数据变成这样的,颇具真实感的视觉效果,并且全国大部分城市适用。
我们的技术方案是如何形成的呢?当然,现实中这个形成过程是复杂曲折的,但我们可以给出一个极简的版本。首先我们分析一下已有的经典技术方案,比如UE的“黑客帝国”城市示例,它主要通过程序化的instance模型放置构建城市,效果非常炸裂,但也大量依赖优秀的模型资产和美术资产。
而从我们团队自身的禀赋出发呢,作为数据类产品的研发团队,我们擅长和数据打交道,三维美术资产非我们所长。另外,我个人曾经是建筑师,做过多年的建筑参数化设计,所以我们希望在程序化几何建模上找到解法。
于是我们看向UE新特性Dynamic-Mesh以及它的插件GeometryScript,它的高性能动态生成能力与极强的扩展性给了我们启发。当然,目前在UE中要媲美经典程序化建模还不现实,但UE有强大材质系统可以在细节上发力,减轻几何生成方面的压力。所以下一个问题就是材质和纹理从哪里来?
购买商城纹理素材存在不完善或不匹配的问题,我们还是希望自力更生。所以我们又自然而然的看向了当前最大的技术趋势之一AIGC,我们相信AI图像生成可以为我们提供了另辟蹊径的可能性。至此,我们的解决方案框架的主体就形成了。数据驱动,负责宏观的城市格局;程序化生形,负责中观的建筑形体;AI生图,负责微观的细节质感。当然我们也了解,没有绝对完美的逻辑模型,我们必须要提供人工介入调整的空间,而恰好DynamicMesh的动态调整能力完美的满足了这一点。
现在我们再回头看这个目标,自动化、工程化、以及刚刚根据团队自身禀赋与业务目标推导出来的轻资产这些特征我们都有信心可以做到,但普适化和中国特色我们是否可以做到,这不是技术能够回答的。所以下面我们带着这个粗略的框架与我们的疑问进入我们的实践的第一环节,考量数据与城市格局。
首先我们希望在宏观上找准中国城市风貌的神韵。在我们主观感受上,中国的城市除了部分旧区之外,往往具有规整的建筑排布,和统一的色调分块。这个背后或许呼应着我们国家90年代左右发生的2件事。第一是颁布了城市规划法,我们有了法定的城市规划。下图是一张控制性详细规划图,占比一半以上的黄色部分就是住宅用地。第二件事就是98房改,中国的住宅进入了楼盘开发模式,这些黄色的部分多数会被建成统一规整的住宅楼盘。由此,中国的城市化进程开始加速,城市风貌也开始变得规整。除了规整,还有一个特征就是高耸。土地要承载涌入城市的人口就必须集约化利用,于是住宅越来越高大,中国住宅的外观和公共建筑是有很大区别的,所以这种特点在城市风貌中越来越突现。
在统一的国情与法规之下,上述一系列的变化在全国各地都在发生。所以,我们从自己的角度找到了中国城市风貌的神韵特征,也肯定地回答了之前的“能否全国普适”与“能否具有中国特色”2个问题。并且我们明确了数据方面的策略:以“引入地块数据”为核心进行一系列建筑数据增强。具体的数据处理技术方案,我们将在后续的文章中进行解析,敬请期待。
随着虚幻引擎5的推出,承载其动态几何能力的DynamicMesh逐渐走入用户视野,基于其上的Modeling Mode(编辑器手工建模模式)、Geometry Script(程序化几何生成插件)展现出了非凡的参数化设计能力和高性能的Mesh操作与变动能力。我们意识到有机会在UE当中实现诸如Blender、Rhino、Revit等软件的参数化设计能力,并在过程中深度的与UE5的引擎能力进行结合。依据过去的建筑师行业经验与参数化建模实践积累,我们策划并开发了多层级的几何工具,一部分的还原了建筑行业构筑“计算机辅助设计”的流程,以此打造到顺畅的建筑逻辑模型构建技术基底。底层计算层
在c++当中,提供了一些标准的计算几何能力,简单的诸如计算轮廓内角、求取轮廓重心、多种逻辑等分线条等等,复杂的诸如Mesh表面撒点、经典计算几何算法(Voronoi等)集成等以及对Dynamic Mesh进行底层信息获取和通用操作的能力,诸如查询Mesh的拓扑信息、获取Mesh裸边等等。
三维设计层
第二层是三维设计层,类似DCC软件的基础能力,它是以蓝图函数库为载体,提供点线面的通用几何处理与逻辑判断。为此,我也引入了一些UE之外的线条操作的几何概念,以支撑建筑设计学科的一些典型思路。功能诸如:线条最近点求取,平面投影、范围细分等等。
建筑设计层
在一、二层基础上,我们构建了第三层:建筑设计层,可以一定程度上类比BIM软件,它的主要是以DynamicMesh Actor为载体,提供参数化生成带有建筑属性的构件的能力。
应用案例
下面我们举两个例子来展示多级几何工具的逐层构建关系。
首先是凹凸形体的工具,通过线段首尾分段与线段偏移,我们构建了一个定义凹凸形体及其材质的工具,它可以大量复用在如阳台,办公楼转角,主入口内凹等等,非常简单但很通用。
第二个例子是山墙判断,我们可以通过判断内角度数、判断各边边长来找出建筑的侧面,再给以不同的呈现,突出这种板式建筑形体的典型特征。
接下来我们开始基于蓝图类,尝试完整建筑逻辑模型的构建。同样我们也介绍两种逻辑。
以结构逻辑为导向
第一种是以建筑结构为导向的思路,主要用在公共建筑,它的形式语言主要遵循梁、柱、板等结构构件的逻辑。通过横向构件、竖向构件、整体框架的自身尺寸变化、节奏变化以及组合关系变化,可以组合出海量的常见的公共建筑形态。
以空间与功能布局为导向
第二种逻辑是以空间功能布局为导向,这种逻辑主要用于住宅,它的立面会非常直观的对应户型的布局,只要我们掌握了不同房间的空间规律,就可以构建合理的住宅外立面。比如住宅建筑中,不同大小的户型对应着不同的建筑面宽,也具有典型的房间排布规律,比如“客厅-次卧-主卧”,根据建筑面宽去划分出大小户型,再划分出下一级的房间,就可以适配不同轮廓数据的住宅建筑了。
平面布局逻辑为导向
作为主要用于中观、宏观尺度进行智慧应用的三维城市场景,鸟瞰视角也非常重要,为此我们也探索了一些屋顶平面布局的逻辑模型,来丰富建筑屋顶。比如基于分割算法,对一些老旧片区的屋顶进行正交为主的区域划分,布局出棚屋、花池、菜园等等。最终得到这样的具有中国特色与烟火气的旧城风貌。这也很符合我们的一些特点,农耕文明为主,看到屋顶有种菜的就知道是中国城市。
公共建筑屋顶更多的是管线与设备,它们恰好也主要是正交形态分布的,所以我们用了同样的基础工具,但不做划分,而是模拟一些左右转向的路径,来形成管线走向和设备布局。其他屋顶逻辑
另外还有一些常见的屋顶装饰结构和坡屋顶,包括常见的两面坡、四面坡。所有相同类型的建筑也会有完全不同的主色调、主材料和细节,于是我们为不同的逻辑模型建立对应的数据结构来管理和拓展风格。最后在数据的判定与驱动下,支持整个城市在视觉上达到以下两个特性:终于,我们的数据驱动和建筑逻辑模型工作可以合流了,我们来看看把这些建筑生成出来是什么样子。粗看觉得还行,但细看还是有很多可以找茬的地方。建筑类型数据补充判定
首先我们发现数据里有不少建筑的用地性质信息是缺失的,程序选择了错误的逻辑模型进行生成。(有的办公楼生成成了住宅,有的住宅成了办公楼。)这是因为开源地块数据没有覆盖所有建筑轮廓,所以我们基于建筑学与建筑规范中的一些常识与经验,依据我们的建筑属性集信息,对未知用地性质的建筑进行大致的归类,把它们分到最有可能的一种用地性质类型当中。裙楼策略
其次,红框里的商业综合体,本该是裙楼与塔楼的形体关系,结果因为地理信息数据的存储结构原因,成了另一种奇怪的咬合关系。这个问题之前在数据处理的时候已经提到,属于裙楼判定问题。我们依然是利用属性集来进行判断,找出明显具有裙楼塔楼形体特征的轮廓组来执行特殊的分层逻辑,使用预先计算好的整体轮廓来构成裙楼。而不满足条件的则按原逻辑执行。建筑风格风格统一
最后,也是最明显的问题,同一个住宅小区的色彩和风格不统一。针对这个问题我们在数据处理阶段早有准备,我们建立地块风格表以及建筑轮廓组风格表来综合处理风格统一问题,每个新遍历到的建筑数据都会先去查找这两个表,找到就读取,没有找到就自己创建。不同的建筑逻辑模型,有不同的风格判定逻辑,但判断的依据都是我们的建筑属性集,至于判断的方法就是多种多样的了,并且可以不断迭代不断细化的,所以这里也就不进行展开了。做好了这些工作,我们再来生成一遍城市,问题大部分得到了解决。逻辑问题大部分解决后,下面一个环节我们介绍一下AIGC方面的应用。AI在我们的实践中扮演了各种各样的角色。基于Stable Diffusion的Control Net,我们最容易想到的是输入一些简单线稿,由AI产出真实图像。同时我们可以通过脚本来定义线稿的图形语义,包括不限于法线、接受颜色的区域、反光度等等,高效生产Tiling类的材质。同样的方法也可以用来生成更复杂的住宅立面贴图,只需要画一个大致的住宅线稿给AI,这个时候AI可以充当建筑设计助理了,它会遵循我们期望的矢量结构,补全了大部分的细节。AI还可以从建筑助理升级到建筑师,我们可以不用动脑筋去构造一个线稿,直接文生图,让它去创作,它会返回更加逼真丰富的结果。只需CV识别或简单打标,一样可以进行前面提到的材质生产。当然,我们的地理信息数据可以直接作为控制性信息,通过ai生成地面环境贴图,它在鸟瞰视角是足够丰富真实的。所以这个时候AI又当起了规划师或者景观设计师。并且它提供的结果不只是一种真实感,而是可能还具有一定的逻辑,比如在这里,根据建筑的布局,AI做了一次不错的步行道路规划,主要的步行动线、进入建筑的支路、以及与城市支路的连接处都设置得非常合理。AI甚至某种意义上还能作为“打光师”存在,像这样复杂的、有氛围的夜景灯光质感可以直接通过日景贴图输入AI进行生成,它们可以作为一种光照贴图非常有效的支撑夜景的打造。结合UE的材质与蓝图系统的能力,我们可以良好的解决建筑对气候天光变化的响应,也能解决开关灯比例、亮度、色温和随机性等等细节问题。另外,AI生成的夜景图片也天然的可以良好解决室内灯光的多样性问题,例如酒店中各个房间的不同灯光表现(大灯、夜灯、阅读灯)体现出来的整体亮度、色温、窗帘开关情况在AI这里都可以产生丰富的状态区分。最终我们甚至没有在场景中单独一盏传统意义上的灯光,仅靠建筑材质自发光与道路铺设低开销的粒子光就可以打造出逼真的城市夜景质感,在渲染上是非常轻量级的表现。关于轻资产与轻量级:整个探索过程我们没有美术人员,也几乎没有预制模型,刚刚看到的36km2的城市,最终建筑模型100M,无优化策略下达到2K40+帧。从研发和应用两个角度,都是轻资产轻量级的解决方案。也是良好的数字孪生城市基座。关于AIGC:在AI生成三维模型还没有大规模应用的当下,我们可能需要更多思考如何去筑巢引凤,让日趋成熟的AI生图能够在3D技术应用中有一定程度的落地,抓住一部分的技术红利。关于程序化生形:程序化生形并不新鲜,但集成在主流游戏引擎中并逐步形成生态,这将会是一个宏大的图景,如何各类专业领域的三维工具能力进入到游戏引擎当中,其生产过程与生产内容也充分享受到视效、交互、叙事等利好的加持,那么利好之处就可能非常多了,本文能展示的仅仅是冰山一角了。八、DataV x Epic Fab:面向生态伙伴的“智慧城市”开发方案
基于DataV“山海计划”的UE引擎插件已经登陆Epic Fab,广大UE引擎开发者可以通过该插件免费体验城市历史悠久的广州场景三维资产,详细资源地址见附录。
一个完整的智慧城市项目,除了三维城市场景,承载业务数据的数据面板也是核心功能。除了支持三维城市场景生成的“山海计划”,DataV也为智慧城市项目提供了完整的数据看板解决方案,提供200+基础图表、三维/二维地图组件,支持API、MySQL、SQL Server、Polar DB、人大金仓、达梦等30+数据源,提供低代码交互编辑器,实现二三维无缝交互联动。同时DataV也通过了中国信通院首批数据可视化产品信创适配测试认证,为企业信创改造提供了可靠解决方案。通过DataV与UE引擎,广大开发者可以低成本获得“智慧城市”开发方案,不用在三维渲染引擎、三维场景生成、数据看板开发等基础工具平台上耗费更多精力,将更多精力放在满足用户业务需求上,从而提升智慧城市项目的交付质量。2024 Unreal Fest Shanghai分享现场演讲AI的快速发展推动了各行各业的智能化转型和创新,随之而来的是对AI应用的迫切需求。本方案介绍的是使用AI设计平台PAI-ArtLab,快速生成符合企业特定风格的Logo商标图、设计图、宣传图、海报图等,大大节省了人力、时间成本,保证图片生成质量且提高图片产出效率。
点击阅读原文查看详情。