Unity Texture vs 2d数组

时间:2016-09-26 15:51:41

标签: c# unity3d

我需要在Unity中以二维数组存储一些图层数据。我的问题是。哪种最好(速度和实用性的混合),将它存储在Unity纹理或简单的2D阵列中?

1 个答案:

答案 0 :(得分:2)

纹理只是一个2D数组,可以通过GPU上的存储和转换进行优化。

数字的大小由您选择的格式决定。一个常见的是4个花车:红色,绿色,蓝色和alpha。 GPU允许更有效的转换,但它将它们限制为Unity的着色器语言支持的转换。在GPU上打开和关闭纹理是一个缓慢的过程,这可能是一个相关的问题。

在CPU端使用2D阵列更灵活但速度更慢。编程和调试更容易,因为您可以使用C#工具链。

我建议在CPU上使用2D数组,除非:

  1. 您需要经常渲染数组(例如每一帧)
  2. 你已经实现了CPU端,它是一个性能瓶颈
  3. 将数据存储在GPU上可能是premature optimization