Estoy trabajando en una aplicación de iPhone que utiliza OpenGL ES 2 para su dibujo. Sé que típicamente las coordenadas de textura están definidas en el rango de 0-1, pero idealmente me gustaría asignarlas de 0 a 1023 (el tamaño de mi TextureAtlas) por motivos de legibilidad. He visto un código de muestra que define las coordenadas de esta manera, pero no he podido averiguar qué llamadas anteriores se hicieron para eso. glMatrixMode(GL_TEXTURE)
parece que podría estar involucrado, pero no estoy muy seguro de cómo implementarlo.Coordenadas de textura OpenGL en Pixel Space
Mi objetivo final sería lograr algo como esto, donde la textura que estaría utilizando dentro de los atlas se encuentra en la plaza 48px parte superior izquierda:
GLshort texcoords[]={
48,48,
0,48,
48,0,
0,0,
};
glVertexAttribPointer(ATTRIB_TEXTUREPOSITON, 2, GL_SHORT, 0, 0, texcoords);
glEnableVertexAttribArray(ATTRIB_TEXTUREPOSITON);
Una cosa más ... asegúrese de tener 'precision highp float;' en la parte superior del sombreador. Si su textura es más grande que 1024x1024, mediump no le dará la precisión suficiente para muestrear cada píxel de la textura. –