yuv10 位金属纹理



我正在尝试将我的 openGL 着色器转换为金属着色器,以将 yuv10 位纹理转换为 rgba 纹理。

使用openGL,我正在使用此链接中的GLSL代码

进行了转换,但结果不是我预期的。

我想这是因为我使用

 tex2d.sample(sampler2d, x, y).rgba;

而不是

texelFetch(tex, ivec2(sourceColumnIndexY, texcoordDenorm.y)

有没有等同于金属中的纹素提取?

你并没有真正解释"结果不是我期望的结果"。你也没有解释你对输入纹理使用的金属像素格式之类的事情。

无论如何,对应于texelFetch()的 Metal 函数只是纹理类型的read()成员函数。例如,texture2d<T>具有以下两个成员函数:

Tv read(uint2 coord, uint lod = 0) const
Tv read(ushort2 coord, ushort lod = 0) const

其中Tv是分量类型为 T 的 4 分量向量。

相关内容

  • 没有找到相关文章

最新更新