2012-07-26 118 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 2012-07-26 22:29:07

+0

@tom:這是一個*數組*。這就是'[]'語法在大多數語言中的含義。 – 2012-07-26 22:30:05

+0

這是肯定的。我試圖瞭解gl_TexCoord [0]和gl_TexCoord [3]是什麼。在我繼承的代碼中,它引用了gl_TexCoord [0]和gl_TexCoord [3],但沒有gl_TexCoord [1]和gl_TexCoord [2],所以我想知道爲什麼。有什麼建議麼? – tom 2012-07-26 22:50:19