【问题标题】:Unity Texture vs 2d arrayUnity Texture vs 2d 数组
【发布时间】:2016-09-27 00:59:22
【问题描述】:

我需要在 Unity 中以二维数组的形式存储一些图层数据。我的问题是。将其存储在 Unity Texture 或简单的 2D 数组中哪个最好(速度和实用性的结合)?

【问题讨论】:

  • 首先考虑:是图片数据吗?您将这些数据用于什么目的?
  • 可以理解为图像数据,它们大多是整数矩阵。
  • 如果您的主要用途不是存储要用作 3D 模型上的纹理或精灵的图像,请将其存储在 2D 数组中

标签: c# unity3d


【解决方案1】:

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

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

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

我建议在 CPU 上使用二维数组,除非:

  1. 您需要经常渲染数组(例如每一帧)
  2. 您已经在 CPU 端实现了它,这是一个性能瓶颈

在 GPU 上存储数据可能是 premature optimization

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2014-12-27
    • 1970-01-01
    相关资源
    最近更新 更多