2012-07-26 14 views
6

Tengo un sombreador OpenGL que usa gl_TexCoord como lo hace la siguiente. Pero en OpenGL ES, gl_TexCoord no es compatible. Me pregunto qué puedo hacer para refactorizar el código para que funcione en OpenGL ES.cuál es la contraparte para gl_TexCoord en 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)); 
    } 

    ... 
} 

Respuesta

6

No hay ninguna. Lo hace manualmente con un varying definido por el usuario, pasado desde su sombreador de vértices. Eso es todo lo que alguna vez fue de todos modos; un resultado por vértice que tomó su sombreador de fragmentos.

+0

lo tengo. Además, ¿cuál es la diferencia entre gl_TexCoord [0] y gl_TexCoord [3]? ¿Algún artículo/documento al que se pueda hacer referencia para entender eso? – tom

+0

@tom: Es una * matriz *. Eso es lo que significa la sintaxis '[]' en la mayoría de los idiomas. –

+0

Eso es seguro. Estaba tratando de entender para qué son gl_TexCoord [0] y gl_TexCoord [3]. En el código que heredé, hacía referencia a gl_TexCoord [0] y gl_TexCoord [3], pero no a gl_TexCoord [1] y gl_TexCoord [2], por lo que me preguntaba por qué. ¿Alguna sugerencia? – tom

Cuestiones relacionadas