在 Metal Texture Set 中,Metal 1v2, 2v2, ... 4v1 是什么意思?

In a Metal Texture Set, what is meant by Metal 1v2, 2v2, ... 4v1?

XCode 为属性检查器中的纹理集提供一组可选择的 on/off 特征:

内存: 1GB 2GB 3GB 4GB

图形: 金属1v2 金属2v2 金属 3v1 金属 3v2 金属 4v1

这些是什么意思?

一般来说,切换这些框之一(在设备、内存或图形等标题下)会添加一个新的 "dimension",您可以同时专门化一项资产。例如,如果您切换 "iPad",您实际上是在说,"In addition to the assets I might be providing for iPhone, I want to provide images specifically for iPad." 这些图像可能与相应的 iPhone 图像不同(例如,它们可能具有更大的尺寸)。

此专业化主要服务于 App Thinning,这是一组在通过 App Store 交付应用程序时通过剥离不适用的资产来交付更小的应用程序包的技术。例如,iPad 项资产只会交付给 iPad 秒,而 iPhone-specific 项资产只会交付给 iPhone 秒。

在您询问的情况下,"Memory" 是指设备内存 (RAM),"Graphics" 是指设备支持的最小 Metal feature set family and version。为这些插槽之一指定图像表示只要设备至少具有必需的内存并且至少具有指定的 Metal GPU 系列和版本,它就应该包含在应用程序包中。

至于为什么在可用选项和最新的一组 Metal family/version 对之间没有 1:1 映射,我不知道。我的假设是,支持的像素格式在 1v2 和 1v4 之间没有差异。