金属纹理格式
Metal Texture Formats
我在 Swift 中声明了一个金属纹理,格式为 .bgra8Unorm
。现在在金属计算 kernel
中,我使用 half
数据类型访问它(我相信 Apple 示例就是这样做的)。
texture2d<half, access::sample> inTexture [[ texture(0) ]]
是否会以这种方式访问 bgra8Unorm
纹理(通过采样器)and/or 将其自动写回并自动将 half
值打包和解包为 8 位整数?当我向纹理写入负 half
值时会发生什么?
Yes。当写入具有标准化无符号整数分量的纹理时,值被有效地限制在 [0, 1],然后按格式的最大值(在本例中为 255)进行缩放。
我在 Swift 中声明了一个金属纹理,格式为 .bgra8Unorm
。现在在金属计算 kernel
中,我使用 half
数据类型访问它(我相信 Apple 示例就是这样做的)。
texture2d<half, access::sample> inTexture [[ texture(0) ]]
是否会以这种方式访问 bgra8Unorm
纹理(通过采样器)and/or 将其自动写回并自动将 half
值打包和解包为 8 位整数?当我向纹理写入负 half
值时会发生什么?
Yes。当写入具有标准化无符号整数分量的纹理时,值被有效地限制在 [0, 1],然后按格式的最大值(在本例中为 255)进行缩放。