地图3d街景怎么制作(图文分享关于城市生成插件的一些想法)
地图3d街景怎么制作(图文分享关于城市生成插件的一些想法)单体建筑通过预制件配置替换为模块拼接生成建筑白盒在如此小规模的场景中要表现出大城市的视觉效果,必然需要种种特殊的规划设计,因此城市布局多是需要策划详细设定,所以一般来说现在游戏项目主要围绕着单体建筑做文章,最需要的是建筑编辑器。以育碧为代表的现代游戏工作室往往都在建筑生成编辑上做了很多工作,常规流程是先在引擎中通过曲线工具制作出符合概念设计或者策划需求的建筑白盒,然后通过预制配置表替换为单独的模块,接着进行场景拆分,模块合并,生成HLod等一整套操作。以现有信息来看基本都是这个流程,没看见使用退火模拟,机器学习,波函数之类的骚操作。可以从视频中看到这个插件也是按照这个基本流程来做。确定街道布局
1正文
近日看到一个ue4 城市生成插件,而自己曾经做过类似的东西,正好轮到我发文,就正好聊聊我的一些想法和思考。
2城市生成工具现状
目前的市场形式来看,移动游戏市场必然不可能放弃,大规模现代城市场景对移动平台的性能压力很大,考虑到移动平台的硬件限制,城市规模一般都很小,差不多控制在10平方公里左右。
在如此小规模的场景中要表现出大城市的视觉效果,必然需要种种特殊的规划设计,因此城市布局多是需要策划详细设定,所以一般来说现在游戏项目主要围绕着单体建筑做文章,最需要的是建筑编辑器。
以育碧为代表的现代游戏工作室往往都在建筑生成编辑上做了很多工作,常规流程是先在引擎中通过曲线工具制作出符合概念设计或者策划需求的建筑白盒,然后通过预制配置表替换为单独的模块,接着进行场景拆分,模块合并,生成HLod等一整套操作。以现有信息来看基本都是这个流程,没看见使用退火模拟,机器学习,波函数之类的骚操作。可以从视频中看到这个插件也是按照这个基本流程来做。
确定街道布局
生成建筑白盒
单体建筑通过预制件配置替换为模块拼接
生成整体建筑
有幸见识过某厂内部引擎的建筑生成编辑工具,确实很完善,不愧是业内先驱。例如建筑白盒这一阶段就采用了曲线拼接的方式,对异形建筑的支持就很好。
到这建筑工具就算完成了?当然没有这么简单。
后续根据需求还需要执行室内外场景的拆分,室内外模块的合并,室内外布局加载卸载的策略,异形建筑的支持,地块切分,道路分割等等非常多的功能。
整体来讲这就是城市生成或者说是建筑生成工具在现有实际游戏中的应用,经受了多个项目的考验,几乎是城市建筑的最主流的做法。
3GPU版城市生成工具
我本科就和建筑相关,很早就在做建筑生成之类的东西,在引擎中实现过类似视频中的编辑生成功能,也用过houdini生成过一些建筑,但一直比较喜欢cityengine,也尝试在ue4中实现过类似的功能。
最终我的开发方向转为制作gpu版的城市生成工具。核心思路是通过gpu几何分割形成建筑街区,然后解析类似cga的形式语法以实现高速并行生成城市。与上文常规流程有些许不同,白盒与最终模型都是同类建筑的不同描述模式,没有所谓的切分替换。
之所以采用文本式而不是节点式的生成方案,是因为文本式更容易抽象,提取规则,当面对远大于10平方公里的城市生成以及风格更多样的建筑时优势明显。而恰如前文所说,一般现有项目城市面积也就10平方公里左右,所以这个gpu城市生成工具的开发和之前的gpu植被工具一样纯属自嗨,其实我还一直在做gpu地形生成工具呢,坚持将自嗨贯彻到底!奥力给!!
4总结
我之前写过文章聊了聊对虚拟世界,ugc生成的一些看法。现代人多数生成在城市中,那么未来的虚拟世界中必然少不了城市,以ugc的形式编辑生成虚拟城市的计算量是非常大的,这时需要极大的加速生成编辑的速度,以保证面向ugc平台的运行时效率。所以我个人认为利用gpu的并行能力完成海量建筑道路的更新生成才是未来的发展方向。