Articulo de referencia

Enlaces Java para OpenGL

Java Binding para la API de OpenGL es una especificación de API JSR (JSR 231) para la plataforma Java, Standard Edition que permite usar OpenGL en Java (plataforma de software) ...

Java Binding para la API de OpenGL es una especificación de API JSR (JSR 231) para la plataforma Java, Standard Edition que permite usar OpenGL en Java (plataforma de software) . [ 1 ] También existe Java Binding para la API de OpenGL ES (JSR 239) para la plataforma Java, Micro Edition .

conceptos de programación

Las llamadas a la API principal de OpenGL y a la biblioteca GLU están disponibles desde Java a través de una capa de abstracción muy similar a la API original de OpenGL en C , a excepción de las rutinas GLU NURBS , que no están expuestas a través de la API pública.

Todas las bibliotecas específicas de la plataforma (disponibles a través de la API CGL para Mac OS X , GLX para X Window System y WGL para Microsoft Windows ) también se abstraen para crear una forma independiente de la plataforma de seleccionar atributos de Framebuffer y realizar operaciones de Framebuffer específicas de la plataforma.

Las extensiones específicas de la plataforma no están incluidas en la API pública. Cada implementación puede optar por exportar algunas de estas API a través de las llamadas al método GL.getPlatformGLExtensions() (archivado el 17 de febrero de 2011 en Wayback Machine ) y GL.getExtension(String) (archivado el 17 de febrero de 2011 en Wayback Machine ), que devuelven objetos cuyos tipos de datos son específicos de la implementación dada.

Ejemplo

Este ejemplo muestra cómo dibujar un polígono (sin código de inicialización ni de repintado). [ 2 ] Aquí está la implementación de referencia en C :

int DrawGLScene ( GLvoid ) { glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glLoadIdentity (); glTranslatef ( -1.5f , 0.0f , -6.0f ); // Mover a la izquierda 1.5 unidades glBegin ( GL_TRIANGLES ); // Dibujar usando triángulos glVertex3f ( 0.0f , 1.0f , 0.0f ); // Arriba glVertex3f ( -1.0f , -1.0f , 0.0f ); // Abajo a la izquierda glVertex3f ( 1.0f , -1.0f , 0.0f ); // Abajo a la derecha glEnd (); glTranslatef ( 3.0f , 0.0f , 0.0f ); glBegin ( GL_QUADS ); // Dibujar un cuadrilátero glVertex3f ( -1.0f , 1.0f , 0.0f ); // Esquina superior izquierda glVertex3f ( 1.0f , 1.0f , 0.0f ); // Esquina superior derecha glVertex3f ( 1.0f , -1.0f , 0.0f ); // Esquina inferior derecha glVertex3f ( -1.0f , -1.0f , 0.0f ); // Esquina inferior izquierda glEnd (); glFlush (); return TRUE ; }

Lo cual se traduce en la siguiente implementación en Java :

public void display ( GLAutoDrawable glDrawable ) { final GL gl = glDrawable . getGL (); gl . glClear ( GL . GL_COLOR_BUFFER_BIT | GL . GL_DEPTH_BUFFER_BIT ); gl . glLoadIdentity (); gl . glTranslatef ( - 1.5f , 0.0f , - 6.0f ); // Mover a la izquierda 1.5 unidades gl . glBegin ( GL . GL_TRIANGLES ); // Dibujar usando triángulos gl . glVertex3f ( 0.0f , 1.0f , 0.0f ); // Arriba gl . glVertex3f ( - 1.0f , - 1.0f , 0.0f ); // Abajo a la izquierda gl . glVertex3f ( 1.0f , - 1.0f , 0.0f ); // Abajo a la derecha gl . glEnd (); gl . glTranslatef ( 3.0f , 0.0f , 0.0f ); gl . glBegin ( GL . GL_QUADS ); // Dibujar un cuadrilátero gl . glVertex3f ( - 1.0f , 1.0f , 0.0f ); // Arriba a la izquierda gl . glVertex3f ( 1.0f , 1.0f , 0.0f ); // Arriba a la derecha gl . glVertex3f ( 1.0f , - 1.0f , 0.0f ); // Abajo a la derecha gl . glVertex3f ( - 1.0f , - 1.0f , 0.0f ); // Abajo a la izquierda gl . glEnd (); gl.glFlush ( ) ; }

Implementaciones

Véase también

Referencias

  1. "JSR 231: JavaBinding para la API de OpenGL" . Proceso de la comunidad Java . Consultado el 6 de febrero de 2011 .
  2. Tomado del tutorial de Nehe, archivado el 6 de abril de 2007 en Wayback Machine , cuyo código se puede usar libremente en otros lugares.
  3. "JSR-000231 Java Bindings for the OpenGL API" . Java Community Process . Consultado el 6 de febrero de 2011. Para facilitar la máxima participación de la comunidad en el Java Binding para la API de OpenGL, utilizamos el proyecto JOGL en java.net, disponible en jogl.dev.java.net. El código fuente de JOGL se encuentra allí, bajo una licencia de código fuente permisiva (principalmente licencia BSD, excepto cuando utilizamos código licenciado de terceros). Tomamos una instantánea del código de este proyecto cada pocos meses, ejecutamos el Technology Compatibility Kit en el código fuente y, posteriormente, lo convertimos oficialmente en la Implementación de Referencia para cada lanzamiento formal del Java Binding para la API de OpenGL.
  • Página web de JSR para el enlace Java para la API OpenGL
  • Página web de JSR para el enlace Java para la API de OpenGL ES
  • Página principal de JOGL
  • Especificación JSR 231 (borrador)