寻找好的移动Unity地形着色器

独立游戏开发商的日记:第44章

最近,我一直在为自己的游戏寻找一款出色的地形着色器。 Unity附带的一个非常裸露,以至于它甚至不支持基于高度的混合。 什么?!?

由于基于高度的混合对于我来说几乎是必须的,因此我知道内置的着色器不会将其剪切掉,因此,我去了Unity Asset Store,看看能找到什么。 事实证明,有几个不错的选择。 突出的是:

完整的地形着色器(57美元)

救济地形包(40美元)

MegaSplat(50美元)

MicroSplat(免费)

查看该列表,考虑到MicroSplat是免费的,我决定从那里开始,但并不令人失望。 MicroSplat支持基于高度的混合,并且在移动设备上非常出色。 我是否提到过它也是免费的?!

就是说,我认为值得参加比赛,因此我购买了MegaSplat和Complete Terrain Shader进行测试。 我可能也最终会购买救济地形包,但是我在MegaSplat和Complete Terrain Shader方面的经验都非常差,我决定减少损失并坚持使用MicroSplat。

您问其他着色器有什么坏处吗? 好吧,尽管它们都是很好的着色器,充满了功能,但令我惊讶的是它们的速度很慢。 也许如果我是为PC或游戏机开发的,那没什么大不了的,但是在移动设备上,它们根本没有性能。

MicroSplat的开发人员(Jason Booth)声称:

“ MicroSplat使用一种新的着色器技术来显着优化具有4种以上纹理的地形的渲染。 它比CTS / RTP等着色器的性能高出300%以上,而且速度如此之快,您可以启用诸如镶嵌和三边形纹理化之类的功能,并且仍然可以在大多数情况下执行大多数着色器。”

那么,如果MicroSplat这么好,为什么免费呢? 好吧,事实证明MicroSplat的核心是免费的,但是开发人员出售了几个模块,这些模块为MicroSplat添加了其他高级功能。 考虑一下,这是一笔相当不错的交易。 MicroSplat核心是免费的,并且包括基于高度的混合等功能,因此,如果您仅需要基于高度的混合,则无需支付任何费用。

就是说,如果您需要更多高级功能,则只需购买所需的模块,它们的价格就非常便宜。 一个模块特别引起了我的注意,它只有12美元:纹理群集。

您问MicroSplat的纹理群集解决什么问题? 地形化时总是困扰我的一件事是可见的平铺:

在上面的屏幕截图中,草纹理的平铺非常明显。 我真的很讨厌那个!

当然,有解决此问题的方法。 您可以制作具有几个不同草纹理层的多层着色器。 然后,您可以手动绘制地形,在这些草层变体之间进行混合,以最大程度地减少可见的平铺。 另一种选择是在地形上策略性地放置树木,岩石等物品,以隐藏图块。

但是,这两个选项都需要大量的手动工作,正如我之前多次说过的那样,当您作为独立的枪支独立游戏开发商工作时,时间是您最宝贵的资源。 只要您找到消除人工工作的方法,就应该这样做!

那么,MicroSplat的纹理群集是什么,它们如何帮助解决该平铺问题? Jason Booth是这样描述他们的:

“虽然Unity Terrain仅限于32个控制纹理,但是“纹理聚类”将每个控制纹理转换为3个纹理,这些纹理在高度上混合在一起并因噪声而变化。 这将创建一个复杂且程序化的表面,该表面不显示平铺伪像,并且比标准纹理具有更多的变化。 您还可以使用3个较小的纹理而不是1个较大的纹理,从而提高了质量并节省了内存。”

如果听起来令人困惑,则图片应有助于清除问题:

将上面的屏幕截图与第一个屏幕截图进行比较,区别就像白天和黑夜。 将3种不同的草纹理混合在一起,从而几乎消除了拼贴。 凉! 还有……不……手工工作!

因此,如果您正在为Unity寻找出色的免费/低成本地形着色器,那么我绝对建议您使用MicroSplat,特别是如果您正在为移动设备进行开发时。

下周见。

PS:如果您想了解有关MicroSplat的纹理簇的更多信息,Jason Booth会提供一个不错的概述视频,您可以在这里查看: