【发布时间】:2015-09-06 22:07:08
【问题描述】:
我是从精灵图集生成程序网格和 uv 映射的新手。所以我不知道我想到的解决方案是否有效、合乎逻辑和“最佳方式”,或者两者都不是。
我目前正在 Unity 中制作程序瓷砖地图“engine-y”。几天前我在这里遇到了一个问题,(我问是使用网格还是多个精灵对象)并且根据给定的答案,我现在正在使用网格生成方式。
我已经在脑海中创建了基本结构框架。我什至做了一些原型。我将通过精灵图集中的相应图块映射每个四边形的 UV。 (如果有更好的方法,请不吝赐教^^)
但我在为它们设置动画时遇到了问题。例如,对于一个“水型”瓦片,当然要进行动画处理,在精灵图集中会有不同的水精灵“帧”。
所以,我正在考虑更新“那个四边形的”UV 位置以转移到地图集中水精灵的下一帧。 但我不确定这是否是一个好方法。在更新周期中这样做是否合乎逻辑?即使动画速度很慢,它也会在一个更新周期中更新很多 uv 点。
假设我在游戏中缩小,并且屏幕中有 100x100 = 10.000 个水块,(10.000 个四边形 * 4 = 40.0000 个要更新的 uv 点),当我更新这么多内容时会对性能产生影响吗紫外线位置?
或者显卡是否对其进行了优化,以至于它甚至不明显?
如果这不是一种明智的方式,也可能不是,那么最合乎逻辑和最专业的瓷砖动画方式是什么?
注意:通过着色器计算可能有也可能没有解决方案,但我对着色器编程一无所知,所以如果最好的解决方案是使用着色器,我会毫不犹豫地学习它。如果是这样,请提供着色器编程和 UV 更新的培训资源。 (Unity 使用 ShaderLab 作为着色器)
【问题讨论】:
标签: animation unity3d sprite uv-mapping