Lo más probable es que buscando cómo ocultar las caras de los polígonos que no están orientados hacia nosotros en Processing, se llege a la página http://wiki.processing.org/w/Backface_culling; curiosa página que no resuelve la duda, ya que indica que “se puede activar” pero no indica cómo.
Una parte de la solución está en la página, en la sección de tutoriales en la misma wiki, de “OpenGL Avanzado”: http://wiki.processing.org/w/Advanced_OpenGL
La solución, para que no haya que pensar mucho, es esta:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import processing.opengl.*; import javax.media.opengl.*; // Para backface culling GL gl; void setup() { size(200,200,OPENGL); gl = ((PGraphicsOpenGL)g).beginGL(); gl.glEnable(GL.GL_CULL_FACE); gl.glCullFace(GL.GL_FRONT); } void draw() { } |
Para activar y desactivar el backface culling se utiliza:
1 2 |
gl.glEnable(GL.GL_CULL_FACE); gl.glDisable(GL.GL_CULL_FACE); |
Para cambiar el tipo de ocultación entre la cara frontal y la trasera:
1 2 |
gl.glCullFace(GL.GL_FRONT); gl.glCullFace(GL.GL_BACK); |
ATENCIÓN: por experiencia propia, Processing parece no funcionar bien como mínimo con texturas porque cambia el orden de dibujado de vértices, lo que hace que la cara frontal o trasera no pueda ser definida al gusto personal. Es decir, la frontal y la trasera, mágicamente, siempre es la misma :(