金属中的 yuv10 位纹理
yuv10 bits texture in Metal
我正在尝试将我的 openGL 着色器转换为金属着色器,以便将 yuv10 位纹理转换为 rgba 纹理。
对于 openGL,我使用的是这个 GLSL 代码 from this link
我做了转换,但结果不是我想要的。
我想是因为我用了
tex2d.sample(sampler2d, x, y).rgba;
而不是
texelFetch(tex, ivec2(sourceColumnIndexY, texcoordDenorm.y)
在 Metal 中有没有等同于 texelFetch 的东西?
你并没有真正用什么方式解释"the result is not the one I expected"。您也没有解释输入纹理使用的金属像素格式等内容。
反正texelFetch()
对应的Metal函数就是纹理类型的read()
成员函数。例如,texture2d<T>
有这两个成员函数:
Tv read(uint2 coord, uint lod = 0) const
Tv read(ushort2 coord, ushort lod = 0) const
其中 Tv
是分量类型为 T
的 4 分量向量。
我正在尝试将我的 openGL 着色器转换为金属着色器,以便将 yuv10 位纹理转换为 rgba 纹理。
对于 openGL,我使用的是这个 GLSL 代码 from this link
我做了转换,但结果不是我想要的。
我想是因为我用了
tex2d.sample(sampler2d, x, y).rgba;
而不是
texelFetch(tex, ivec2(sourceColumnIndexY, texcoordDenorm.y)
在 Metal 中有没有等同于 texelFetch 的东西?
你并没有真正用什么方式解释"the result is not the one I expected"。您也没有解释输入纹理使用的金属像素格式等内容。
反正texelFetch()
对应的Metal函数就是纹理类型的read()
成员函数。例如,texture2d<T>
有这两个成员函数:
Tv read(uint2 coord, uint lod = 0) const
Tv read(ushort2 coord, ushort lod = 0) const
其中 Tv
是分量类型为 T
的 4 分量向量。