【问题标题】:What determines how much RAM textures take up?是什么决定了 RAM 纹理占用多少?
【发布时间】:2017-11-27 10:04:48
【问题描述】:

这取决于纹理的物理尺寸还是其他因素?

假设我有两个空纹理:

  • 纹理 1 - 1KB,1024x1024
  • 纹理 2 - 1KB,32x32

它们会占用相同数量的 RAM 吗?

【问题讨论】:

  • 一旦在内存中,第一个将占用超过 4MB。后者,4K。公式为:X * Y * 4
  • 投反对票的人能否给出具体原因?我会说这是一个很好的问题(除了格式)。

标签: android memory-management libgdx textures


【解决方案1】:

纹理实际上是texture pixel 的数组。

如果您有一个维度为 1024 x 1024 的纹理,则表示总计 1048576 texture pixel 。每个单元由具有redgreenbluealpha 分量的颜色表示,其中每个分量为一个字节,因此存储该纹理所需的大小为1048576*4=4194304 字节大小(即4MB)。

Texture on disk (in any compressed form like png..) 
   |
   V
Decompressed When loaded into Memory(RAM) by <-> CPU 
   |
   V
Rendering is done by GPU so texture array need to be in copied to VRAM

单一数量的 RAM 或相同数量的 RAM ?

RAM 中没有不同的大小。

【讨论】:

  • 纹理可以在RGBA8888以外的深度加载,并且可以用ETC1压缩加载,所以不一定是每像素4字节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多