Basado en mi lectura de Ch. 6 en el Libro Rojo, el cambio de las cosas que necesitan ser cambiadas para ES, pensé que el siguiente código debería haber hecho:¿Cómo podemos obtener Polygon Antialiasing en OpenGL ES para Android 1.5?
gl.glEnable(GL10.GL_POLYGON_SMOOTH);
gl.glBlendFunc(GL10.GL_SRC_ALPHA_SATURATE, GL10.GL_ONE);
gl.glHint(GL10.GL_POLYGON_SMOOTH_HINT, GL10.GL_NICEST); // no visible diff
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
gl.glColor4f(1, 1, 1, 1);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4); // first and count
etc.
Pero lo anterior falla. No hay una diferencia visible en la salida, los artefactos de alias son tan dolorosamente evidentes como antes de que se insertaran las llamadas a glEnable ... glHint.
En realidad, lo que acabo de describir fue cuando tenía GL_LINE_SMOOTH en lugar de GL_POLYGON_SMOOTH. ¡El último ni siquiera se encuentra! Entonces, ¿dónde está si no está en GL10? ¿O cómo podría haberse dejado fuera de OpenGL ES? ¿Cómo se supone que dibujemos polígonos rellenos con antialiasing si no es con GL_POLYGON_SMOOTH?
Andrés es, sin duda en algo y la respuesta es útil. Pero me deja pensando: ¿el emulador tampoco admite el anti-aliasing? Porque veo la falla en el emulador también. Por cierto: ¡lo primero que noté en el segundo enlace al que se refirió Andrés es que la pregunta no fue respondida allí! –