2012-07-26 20 views
6

次のようにgl_TexCoordを使用するOpenGLシェーダがあります。しかし、OpenGL ESでは、gl_TexCoordはサポートされていません。 OpenGL ESでコードをリファクタリングして動作させるには、どうすればいいのでしょうか?OpenGL ES 2.0のgl_TexCoordに相当するもの

void main() 
{ 
    //scene depth calculation 
    float depth = linearize(texture2D(inputImageTexture2,gl_TexCoord[0].xy).x); 
    if (depthblur) 
    { 
     depth = linearize(bdepth(gl_TexCoord[0].xy)); 
    } 

    ... 
} 

答えて

6

ありません。頂点シェーダから渡されたユーザ定義のvaryingで手動で行います。とにかくそれは今までのすべてです。フラグメントシェーダが取った頂点ごとの出力。

+0

というものがあります。さらに、gl_TexCoord [0]とgl_TexCoord [3]の違いは何ですか?それを理解するために参照できる任意の記事/文書? – tom

+0

@tom:*配列*です。これはほとんどの言語で '[]'の構文が意味するものです。 –

+0

それは確かです。私はgl_TexCoord [0]とgl_TexCoord [3]が何であるかを理解しようとしていました。私が継承したコードでは、gl_TexCoord [0]とgl_TexCoord [3]を参照していましたが、gl_TexCoord [1]とgl_TexCoord [2]はありませんでした。助言がありますか? – tom