Rust 游戏如何放置数以百万计的草、岩石和树木

问题描述

Rust 在其地图上有数以百万计的草、岩石和树木实例,最大可达 8 公里。

草是在运行时动态放置在玩家周围吗?如果是这样,是在 GPU 上以某种方式完成还是使用着色器完成?

在我的游戏中,我们使用顶点颜色和光线投射来放置植被,并存储在运行时通过间接 GPU 实例化进行初始化的变换数据。

但是,我无法想象这会与树木之类的东西很好地扩展。场景中真的有成千上万的网格碰撞器一直在活动吗? 我想也许他们可能会在场景中存储所有这些网格碰撞器,并且可以标记游戏对象,如果你用工具点击它,它会向它添加一个“树”组件。

我是否采用“事先生成所有内容,在运行时实例化”的方法朝着正确的方向前进?

我已经对此进行了测试,它确实有效,产生了 2400 万个实例(光线投射需要 20 分钟),然后使用这些实例初始化 GPU。

这很酷,尽管它会导致我的 Unity 编辑器在一段时间后崩溃(内存泄漏?)。

也许您在运行之前存储实例,然后当您启动专用服务器时,您会进行所有光线投射并放置所有树木、岩石和其他交互式对象。

但我担心,如果我尝试存储 10000 个游戏对象(用于交互,例如可砍伐的树木、可开采的岩石),性能就会下降。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)