Sie sind auf Seite 1von 4

CONECTAR JAVA CON OPENGL

Nils Murrugarra Llerena nineil.cs@gmail.com


http://inf.unitru.edu.pe/~nineil/

Resumen: En este documento veremos la manera de conectar Java con Opengl


(JOGL), veamos a continuación los pasos que debemos realizar:

1. Descargar de
http://download.java.net/media/jogl/builds/archive/jsr-231-
1.1.1-rc4/ el archivo: jogl-1.1.1-rc4-windows-i586.zip
2. Descomprimir y copiar la carpeta lib a D: y cambiar nombre por opengl
3. Crear el proyecto graficos en NetBeans
4. Crear las siguientes clases:
a. JavaRenderer

package graficos;

import javax.media.opengl.GL;
import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.glu.GLU;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.media.opengl.GLCanvas;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.awt.Color;

public class JavaRenderer extends JPanel implements GLEventListener


{
public JavaRenderer()
{

public void drawSquare(GLAutoDrawable gLDrawable,float x1, float y1, float lado)


{
final GL gl = gLDrawable.getGL();
gl.glBegin(GL.GL_QUADS);
gl.glVertex3f(x1,y1,0);
gl.glVertex3f(x1,y1+lado,0);
gl.glVertex3f(x1+lado,y1+lado,0);
gl.glVertex3f(x1+lado,y1,0);
gl.glEnd();
}

public void display(GLAutoDrawable gLDrawable)


{
final GL gl = gLDrawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT);
gl.glColor3f(0,128*1/255,1);
gl.glLoadIdentity();
this.drawSquare(gLDrawable,-1,-1,1/2.0f);
gl.glFlush();
}

public void displayChanged(GLAutoDrawable gLDrawable, boolean modeChanged,


boolean deviceChanged)
{

public void init(GLAutoDrawable gLDrawable)


{
final GL gl = gLDrawable.getGL();
gl.glClearColor(1,1,1,0);
}

public void reshape(GLAutoDrawable gLDrawable, int x, int y, int width, int height)
{

public void reshape(GLAutoDrawable gLDrawable,int width, int height)


{
final GL gl = gLDrawable.getGL();
gl.glViewport(0,0,width,height);
gl.glMatrixMode(GL.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrtho(-1,1,-1,1,-1,1);
gl.glMatrixMode(GL.GL_MODELVIEW);
}
}
b. panelRender

package graficos;
import java.awt.*;
import java.awt.Event.*;
import javax.swing.*;
import java.awt.Color;

import javax.media.opengl.GLCanvas;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class panelRender extends JPanel


{
GLCanvas canvas;

public panelRender()
{
this.setBorder(BorderFactory.createEtchedBorder());
//this.setBackground(Color.GREEN);
this.setSize(300,300);
canvas = new GLCanvas();
canvas.addGLEventListener(new JavaRenderer());
canvas.setSize(300,300);
add(canvas);
canvas.requestFocus();

this.setVisible(true);
}
}
c. aplRender, que en realidad es un frame

package graficos;

public class aplRender extends javax.swing.JFrame {

panelRender panelR;

public aplRender() {
initComponents();
panelR=new panelRender();
//this.add(panelR);
this.getContentPane().add(panelR);
}

public static void main(String args[])


{
aplRender apl=new aplRender();
apl.setVisible(true);
}
}
5. Compilemos
Al compilar nos salen algunos errores.

6. Añadir las siguientes rutas al path del sistema:


a. D:\opengl
7. Añadiendo Librería
Añadamos las librerías jogl.jar y gluegen-rt.jar al proyecto, la librería debe
encontrarse en: D:\opengl. Vamos al panel de la izquierda en el ítem libraries,
add Jar Fólder y añadimos las librerías.
8. Ahora al realizar la compilación todo sale ok.
9. Analicemos el código: Clase JavaRendered
a. drawSquare: Función usada para dibujar un cuadrado.
b. Display: Función q se ejecutara para realizar los dibujos.
c. Init: Función que inicializa el gráfico
d. reshape: Función pare redibujar el panel cuando este cambia su
tamaño.
Todo el código empleado puede ser entendido mediante un manual de Opengl.
En la clase panelRender usa una clase GLCanvas lo cual es un canvas igual que
en Java pero usado especialmente para Opengl.

10. Compilamos y ejecutamos

Das könnte Ihnen auch gefallen