2017-11-13 5 views
-1

yuv10ビットのテクスチャをrgbaテクスチャに変換するために、私のOpenGLシェーダをメタルシェーダに変換しようとしています。 metalのyuv10ビットテクスチャ

はOpenGLと私はこのGLSLコード from this link

私は、変換をしたを使用していたが、結果は私が期待されるものではありません。

私が代わりに

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

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

を使用しているため、それは金属のtexelFetchへの任意の等価はありだと思いますか?

答えて

1

あなたは「結果が私が期待したものではない」ということを本当に説明していません。また、入力テクスチャに使用しているMetalピクセル形式のようなものについては説明しませんでした。

いずれにしても、texelFetch()に対応するメタル関数は、単にテクスチャタイプのメンバー関数read()です。例えば、texture2d<T>は、これら2つのメンバーの機能を有する:

Tvコンポーネントタイプ Tで4成分ベクトルである
Tv read(uint2 coord, uint lod = 0) const 
Tv read(ushort2 coord, ushort lod = 0) const 

+0

ありがとうございました。これはまさに私が探していたものです。そして今、それは動作します。 – vtruant

関連する問題