图文分享 |如何通过机器学习生成游戏地形

文章 此情可待成追忆
2021-4-2 14:29 330人浏览 0人回复
Hello . 大家好
今天给大家带来机器学习生成地形的分享

前言

文章链接:
https://80.lv/articles/using-machine-learning-for-terrain-creation/

视频链接:
 https://vimeo.com/522871731Join conversation

近期机器学习或者说AI方面的内容又火起来了,找到一篇比较好实现的文章分享给大家,也顺手蹭个热度。


 
1
介绍

我叫FranciscoMúrias,最近,我一直在探索Houdini以及机器学习在内容生成中的潜力。我在波尔图大学(葡萄牙)攻读计算机科学学士学位,在那里我学习了编程。然后,在Teesside大学(英格兰)攻读3D游戏艺术硕士学位,在那里学习了Houdini,Unreal Engine等工具,并有机会在毕业论文期间探索机器学习在游戏中的一些应用。


2
机器学习与地形生成

机器学习就是使用样本数据来“训练”一个拟合的计算机算法,从而获得“映射功能”,该算法可以将一组输入大致的解析为有用的输出。机器学习在游戏和CG中广泛应用,艺术家和程序员不断为它寻找新的用途。节省艺术家的时间,专注于更有创造性的事情。

现实地形生成是一个非常复杂的问题,在过去的三十年中,研究人员研究了各种生成地形的方法,这些方法各有优缺点。我这个项目是探索如何仅基于简单的草图就可以实时生成详细的,带有实际腐蚀效果的地形。

地形在游戏中一般都是通过高度图来表示,非常适合机器学习。而且我们还拥有现实世界的地形数据,USGS拥有几乎整个美国陆地的准确地形高度图。所以这两个因素使它成为机器学习应用程序实验的理想用例。

使用工具生成的一些示例:
 



3
GAN

GAN就是条件生成对抗网络模型,根据自动处理的真实世界地形数据(通过Houdini收集)进行训练,运行神经网络模型并在实时3D预览中展示结果。通过从训练数据中学到的特征来生成任意数量的真实虚拟地形,而无需手动定义任何过程规则或参数属性。
 

cGAN系统由两个相互竞争的网络组成:一个不断合成新地形的生成器,以及一个将生成的地形与真实示例进行比较的鉴别器。这两个网络相互竞争,学习如何制作更适合训练示例的地形。
 


为了收集用于训练模型的训练数据,我使用了Houdini 的PDG使该任务自动化。
1.读取设定的坐标
2.从USGS服务器下载文件
3.解压缩文件
4.将高度信息分成小块
5.处理每个图块以计算峰谷线
6.将结果映射到匹配的图像并保存
 


整个数据收集管道均基于SideFX的ML数据准备示例,该示例采用了一种出色的方法,并且可以教您如何使用PDG系统。
 


4
交互工具

我构建了一个自定义工具,使用户能够绘制峰谷线,机器学习算法会自动实时生成最终地形。
 


使用ModernGL开发的自定义3D预览器可以快速迭代和可视化结果。这是我的第一个主要Python应用程序,我发现Python是启动和构建这种自定义应用程序的绝佳语言。它拥有一个优秀的社区和一个活跃的Discord服务器,那里挤满了愿意帮助您入门的人。

最后使用Gaea生成细节,最后就可以将生成的地形导入任何游戏引擎,并用作3D地形的基础。
 


5
挑战

我相信该工具证明了ML应用在游戏中的巨大潜力。该项目未来开发的目标是概括同一网络中不同要素的地形生成,并在创作阶段用不同类型的草图区分它们。同时我会继续研究ML,并扩展ML在游戏中的使用。
 
6
总结

这位老哥用机器学习快速生成一个低精度的高度图,然后通过gaea的侵蚀获取各种分布图,值得学习借鉴,感兴趣的可以按照这个思路整一个。

嘉宾 FranciscoMúrias
访谈 Ellie Harisova


- End -

路过

雷人

握手

鲜花

鸡蛋

最新评论

相关分类
热门教程
返回顶部
客服