天美高级TA:浅谈大世界场景自动生成技术

腾讯天美J2工作室高级技术美术

本人是一名负责程序化生成方向的 TA,个人兴趣领域主要在大世界场景自动生成方向。

以往的场景生产基本都依赖于美术自由发挥,这样虽然可以更好地发挥美术的艺术创造力,但需要大量的人工来堆砌资源,而且一旦场景设计做了修改,整个场景的美术资源基本都需要推倒重做,因此传统场景生产的开发效率和修改成本都比较高。

为了能够加速场景的生产效率,程序化生成技术就成了不二的选择,这也是我目前最关注的新兴技术之一。

在程序化生成的流程搭建中,程序化 TA 主要负责模块拆分的设计,生成规则的抽样,生成算法的实现,以及程序化生成工具流的搭建。

基于数据源,很多东西都是可以通过程序化生成来制作的,如地形地貌的生成,河流的生成,植被的生成,基建的生成(道路,桥梁,建筑,街区),氛围的生成(如材质受酸雨的腐蚀,建筑从上自下的脏迹)等。

简而言之,程序化生成技术可以在仅需提供少量曲线数据,以及模块资源的情况下,自动化地将整个场景生成出来。

程序化生成具体是如何实现的?主要分为几个步骤。

01、获取数据源

如河流的分布,湖泊的范围轮廓,道路的分布信息,建筑的轮廓信息等,这部分一般可以使用曲线+属性的方式来表述。

由真实地图的 OSM 数据导入 Houdini 中形成的路 ,河流数据

生成方法分为两种,一种是通过算法生成独立的模型,这种方法比较适用于游戏中特殊模型的生成,如不规则的交汇路口,弧度比较大的护栏等。

另一种是使用预先准备好的资产,根据一定的规则,将模型分布在对应的点云数据上。比如草,树木,路灯这种一个点云代表一个物体的。又或者是类似于建筑模块这种,一组点云数据代表一个物体的,如图:

《黑客帝国觉醒:虚幻引擎 5 体验》建筑模块拆分示意图

大型建筑立面的墙可以用几种模块拼接生成。这种拼接方式的好处是能够节省模型、贴图的资源量,并且在游戏中可以使用 Instance Draw 的方式进行绘制,从而降低实时渲染的开销。

04、场景装饰物的填充和环境氛围的填充

比如建筑的挂件,街道上的路灯,护栏等。这些都可以通过抽样一些分布规则,通过自动撒点的方式进行生成。

比如如果设计师希望表达一种偏末世的场景,可以根据地势的走向,对场景生成一些环境氛围元素,例如:被水淹过的道路上可以生成一些青苔,建筑上可以生成藤蔓,根据不同季节,植被颜色,茂密程度可以有所调整,被海啸袭击过的区域植被,地形损毁程度的模拟等。

在大世界的程序化生成方向,最近令我印象比较深刻的内容是由 Epic Games 推出的《黑客帝国觉醒:虚幻引擎 5 体验》。

《黑客帝国觉醒:虚幻引擎 5 体验》

这款技术 Demo 介绍了一套完善的、基于 Houdini 的现代城市的程序化生成方案,它不仅考虑了如何对真实物件效果的还原,还考虑到了如何使用更省的方式实现效果,从而减少性能及资源量方面的压力。

声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

(0)
上一篇 2022年6月5日
下一篇 2022年6月5日

相关推荐