2012-07-26 17 views
6

Ho uno shader OpenGL che usa gl_TexCoord come fa il seguente. Ma in OpenGL ES, gl_TexCoord non è supportato. Mi chiedo cosa posso fare per rifattorizzare il codice per farlo funzionare su OpenGL ES.qual è la contropartita per gl_TexCoord in OpenGL ES 2.0

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

    ... 
} 

risposta

6

Non ce n'è uno. Lo fai manualmente con uno varying definito dall'utente passato dal vertex shader. Questo è tutto ciò che è stato comunque; un output per vertice che il tuo shader di frammenti ha assunto.

+0

capito. inoltre, qual è la differenza tra gl_TexCoord [0] e gl_TexCoord [3]? qualsiasi articolo/documento che potrebbe essere referenziato per capirlo? – tom

+0

@tom: è un * array *. Questo è ciò che la sintassi '[]' significa nella maggior parte delle lingue. –

+0

Questo è sicuro. Stavo cercando di capire che cosa sono gl_TexCoord [0] e gl_TexCoord [3]. Nel codice che ho ereditato, faceva riferimento a gl_TexCoord [0] e gl_TexCoord [3], ma non gl_TexCoord [1] e gl_TexCoord [2], quindi mi chiedevo perché. Eventuali suggerimenti? – tom