Você está na página 1de 17

(JOGL)

JAVA OPENGL
INTRODUCCIN
Java OpenGL (JOGL) es una biblioteca que permite
acceder a OpenGL mediante programacin en Java.
Actualmente est siendo desarrollado por el Game
Technology Group de Sun Microsystems, y es la
implementacin de referencia para JSR-231 (Java
Bindigs for OpenGL).
JOGL permite acceder a la mayora de caractersticas
disponibles para los programadores de C, con la
excepcin de las llamadas a ventanas realizadas en
GLUT (ya que Java contiene sus propios sistemas de
ventanas, AWT y Swing), y algunas extensiones de
OpenGL.
DISEO
La API OpenGL, escrita en C, es llamada por JOGL
gracias a la Java Native Interface (JNI). Por tanto, el
sistema en el que se est programando debe tener
soporte para OpenGL para que pueda funcionar JOGL
correctamente.
JOGL se diferencia de otras bibliotecas Java para
OpenGL en que simplemente expone las funciones de la
OpenGL, basadas en un lenguaje procedural (lenguaje
C), por medio de mtodos contenidos en unas pocas
clases, en lugar de intentar realizar un mapeo completo
del cdigo OpenGL para transformarlo y adaptarlo al
paradigma de orientacin a objetos.
DISEO
Esta decisin en el diseo tiene sus ventajas y
sus desventajas. La naturaleza procedural y de
mquina de estados de OpenGL es
inconsistente con la forma habitual de
programar en Java, lo cual puede dejar
perplejos a muchos programadores. Sin
embargo, la conversin directa realizada de las
funciones OpenGL a mtodos Java, permite la
conversin del cdigo de aplicaciones C ya
existentes mucho ms simple.
FUNCIONAMIENTO
Las clases que se involucran en el funcionamiento de JOGL
son las siguientes:
GLDrawable
GLCanvas
GLJPanel
GLCapabilities
GLDrawableFactory

Estas son la interfaz bsica que est en el mundo de los


grficos. En esta parate hay que recordar que un
inconveniente de trabajar con OpenGL es que el sistema de
ventanas se lleva con GLUT, por lo que es homologo a C,
entonces para JOGL tenemos AWT y Swing.
FUNCIONAMIENTO
Event Listener-Model: Este es el modelo que utiliza Java
para responder a las acciones del usuario. A veces se
utiliza hilo de comunicacin dentro de programas. A
veces no son eventos generados por el usuario en
absoluto. Dentro de este modelo, el GLEventListener,
nos proporciona el Listener de java, como medio de
comunicacin en el momento de que se quiera
empezara dibujar.

GLDrawable es una interface. Todos los dibujos de


JOGL de OpenGL drawing pasaran en GLDrawables.
FUNCIONAMIENTO

GLCanvas y GLJPanel ambas son clases que


implementa GLDrawable. Tanto como en el
programa esten involucrados todo el
GLCanvases y todo el GLJPanels no habra
problemas enla ejecucin de los programas.
Este es el polimorfismo. El GLDrawables
empezara a pasar con el GLEventListeners.
FUNCIONAMIENTO
El diagrama siguiente muestra el
funcionamiento en un diagrama UML de JOGL,
donde se observa como se mezclan las
distintas clases que se mostraron en el
funcionamiento del JOGL
IMPLEMENTACIN
1. Inicie NetBeans y entre en el menu Tools|Plugins.
2. Presione el botn add y elija la opcin Downloaded
plugins list y presione Install.
IMPLEMENTACIN

3. Vaya a la pestaa de Settings y asegrese


de que el centro de actualizaciones este
habilitado.
IMPLEMENTACIN
4. Cambie a la pestaa de Available Plugins, busque OpenGL
y verifique que se encuentran todos los paquetes que se
quieren instalar.
5. Finalice la instalacin presionando Install.
IMPLEMENTACIN
CLASES Y MTODOS
Clase GLUT

Constructor:

public GLUT()

Mtodos:

public void glutWireSphere(double radius, int slices, int stacks)


public void glutSolidSphere(double radius, int slices, int stacks)
public void glutWireCone(double base, double height, int slices, int stacks)
public void glutSolidCone(double base, double height, int slices, int stacks)
public void glutWireCylinder(double radius, double height, int slices, int stacks)
public void glutSolidCylinder(double radius, double height, int slices, int stacks)
public void glutWireCube(float size)
public void glutSolidCube(float size)
public void glutWireTorus(double innerRadius, double outerRadius, int nsides, int rings)
public void glutSolidTorus(double innerRadius, double outerRadius, int nsides, int rings)
CLASES Y MTODOS
Clase GLU

Constructor:

public GLU()

Mtodos:
gluNewQuadric()

gluLookAt(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double
centerZ, double upX, double upY, double upZ)

gluCylinder(GLUquadric quad, double base, double top, double height, int slices, int stacks)
EJEMPLO

Este programa dibuja una pirmide 3D


mediante JOGL.

Você também pode gostar