来自GDC2018的Talk:Procedural World Generation of ‘Far Cry 5’
主讲者 Etienne Carrier,法国人,Ubisoft Montreal的TA,之前在Frima Studio担任TA.
主要展示的是FarCry引擎DUNIA2中场景编辑流程和其中Houdini制作方法. 个人比较有用的是pipeline方法和细讲的两个工具:Cliff Tool和Biomes Tool
1.工作流程
工作是以基于高度图的Terrain为基础的,在其上可以制作水域/道路/栅栏/峭壁/植被/雾气/世界地图
2.Pipeline
依赖Houdini Engine,前文甚至讲到他们有专门的多个build机每晚重新生成场景数据。。。
引擎输出一些资源路径,地块信息,biome分布图和一些mask;倒回来是高度图和材质分布图,一些点云数据之后根据点云在引擎里实例化东西:可以是植被,石头,Decal,特效等等
3. 峭壁
主要为了搞Strarification,拆峭壁的mesh然后remesh是容易想到,但他们居然真的把模型横着切了。。。。
切完还随机按噪波分了两组,估计是不让横向线条太明显,切成的碎块还要挤出减面。。。。
再上个顶点色把给贴图加点横向线条的颜色
shading方式在另一个talk:Terrain Rendering in ‘Far Cry 5’里讲了,大概是一个简化的triplannar
如果纯triplannar再加贴图混合的话,那得48次贴图采样,开销太大了
所以一个疯狂的主意,stochastic blending,这样混合的时候采一次就行了
虽然效果可能有点瑕疵吧但还能接受,最重要的是减少了不少采样次数。
嗯还会模拟峭壁冲刷出来,在下面放一些石头。。。
导出的时候,峭壁是单独的几何体(会切进sector),另外还有一些点云啊mask啥的
4. 生态群落(Biomes)
似曾相识,去年的Horizon Zero Dawn也是这个思路,不过Horizon没用Houdini,biome的组合直接节点式工具集成在引擎里美术可以自己做,而FarCry得TA在houdini里调配置,烘进引擎。
原始数据是来自terrain的一堆蒙版
美术在引擎里编辑的东西是以蒙版的形式导入Houdini的
每一个Biomes里会存Sub Biome,比如mountain这个biomes里有 mountain trees, mountain grass. 每个biome在houdini里就是一个节点(他们叫Recipe),里面包含了植被资源的分布设置。
植被会有竞争,因此设置了一些priority参数,Horizon那个好像更复杂一点
大小跟attribute的大小关联,可以曲线拉profile
混合比例可以调整
tint颜色也可以ramp出来
树根的地形会略有起伏,metaball一个蒙版出来然后ramp一个profile结合进去就行
ok地面也是有tint颜色的,不过大部分地表不都被instancing植被覆盖了这些看的到嘛
5. 结论
其实最牛逼的组早就把Procedural工具都集成在引擎里了,像Guerrilla的Horizon,Ubisoft的Ghost Recon,Assasin。不过用Houdini Engine的好处是prototyping非常快,应该也就这两年才开始应用的比较多,也可以快速开发出来半引擎的Procedural系统出来,比较亲民,算是后发优势了。
比较遗憾的是远哭这个talk没讲城镇的生成,这都是Ghost Recon和Assasin集成在引擎里的东西,可能也是远哭没这个需求。所以从这个意义上来说,这个talk在技术上有一定启发意义但是并没有那么屌,真正有意义的是为我们讲了一条可行的结合Houdini Engine开发Procedural系统的操作教程。
GDC2018还有另一个Talk:Technical Artist Bootcamp Procedural Islands of ‘Dauntless’,是一个小团队用UE4结合Houdini Engine开发的talk,偏向非写实渲染,但是基本框架和这个talk很相似,都讲了pipeline,峭壁/biomes,point instancing。在下一篇中会讲到。
大佬图裂了