Está en la página 1de 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 continuacin los pasos que debemos realizar:
1. Descargar de http://download.java.net/media/jogl/builds/archive/jsr-2311.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. Aadir las siguientes rutas al path del sistema: a. D:\opengl 7. Aadiendo Librera Aadamos las libreras jogl.jar y gluegen-rt.jar al proyecto, la librera debe encontrarse en: D:\opengl. Vamos al panel de la izquierda en el tem libraries, add Jar Flder y aadimos las libreras. 8. Ahora al realizar la compilacin todo sale ok. 9. Analicemos el cdigo: Clase JavaRendered a. drawSquare: Funcin usada para dibujar un cuadrado. b. Display: Funcin q se ejecutara para realizar los dibujos. c. Init: Funcin que inicializa el grfico d. reshape: Funcin pare redibujar el panel cuando este cambia su tamao.

Todo el cdigo 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

También podría gustarte