C# 统一纹理与二维阵列

C# 统一纹理与二维阵列,c#,unity3d,C#,Unity3d,我需要在一个2D数组中统一存储一些图层数据。我的问题是。哪一个最好(速度和实用性的结合),将其存储在统一纹理或简单的2D数组中 纹理只是一个2D数字数组,可以通过GPU上的存储和转换进行优化 数字的大小由您选择的格式决定。一个常见的是4个浮动:红色,绿色,蓝色和阿尔法。GPU允许更高效的转换,但它将转换限制为Unity的着色器langauge支持的转换。在GPU上加载和卸载纹理是一个缓慢的过程,这可能是一个相关的问题 在CPU端使用2D阵列更灵活,但速度较慢。编程和调试更容易,因为您可以使用C#

我需要在一个2D数组中统一存储一些图层数据。我的问题是。哪一个最好(速度和实用性的结合),将其存储在统一纹理或简单的2D数组中

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

数字的大小由您选择的格式决定。一个常见的是4个浮动:红色,绿色,蓝色和阿尔法。GPU允许更高效的转换,但它将转换限制为Unity的着色器langauge支持的转换。在GPU上加载和卸载纹理是一个缓慢的过程,这可能是一个相关的问题

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

我建议在CPU上使用2D阵列,除非:

  • 需要频繁渲染阵列(例如,每帧)
  • 您已经在CPU端实现了它,这是一个性能瓶颈

  • 将您的数据存储在GPU上可能很困难

    首先考虑:这是图像数据吗?你使用这些数据做什么?Wel它可以解释为图像数据,它们主要是整数矩阵。如果你的主要用途不是存储你想在3D模型上用作纹理或精灵的图像,那么将其存储在2D数组中