如何用金属绘制密集的16位像素格式纹理?

时间:2019-03-20 18:01:33

标签: textures metal fragment-shader

我是金属的新手,我设法绘制了简单的32位rgba纹理,但是找不到如何绘制16位(5_5_5_1 bgra,5_6_5 bgr或4_4_4_4 bgra)的示例。

我认为创建纹理是可以的:

textureDescriptor.pixelFormat = MTLPixelFormatB5G6R5Unorm;
bytesPerRow = 2*textureDescriptor.width;

我想问题出在片段函数中:

fragment float4 fragmentShaderTexture(VertexTexTriangleOut in [[stage_in]],
                                 texture2d<ushort> colorTexture [[ texture(0) ]])
{



constexpr sampler textureSampler;

const ushort4 colorSample = colorTexture.sample(textureSampler, in.texCoords);

float4 colors = float4(colorSample);

return  colors;
}

0 个答案:

没有答案