Вы находитесь на странице: 1из 6

CONTENIDO TEMATICO TEMA: OPENGL Introduccin..........................................................................................3 Qu es openGL?.................................................................................4 Por quin fue desarrollado OpenGL?...............................................5 Implementacin de OpenGL...5 Propsitos de OpenGL.........................................................................

6 OpenGL para Java......................................................................6 Cdigo de programa..7 Programa ejecutndoce13 Bibliografa.............................................................................................14 Introduccin En el presente trabajo se desarrollaran las especificaciones de openGL para java, tomando en cuenta el despliegue y estructuracin de openGL. Para introducir a las aplicaciones de openGL para java es necesario conocer caractersticas de que es openGL y aplicaciones, todo lo anterior contenido en este trabajo de una manera explicativa para que sea lo mas clara posible para sus lectores. Un punto importante retomado en dicho trabajo es que se definirn los propsitos de la existencia de openGL, as como sus implementaciones, estas caractersticas se consideran importantes para toda aquella persona que desee realizar algunas de estas aplicaciones, sirviendo de informacin introductoria. OPENGL QUE ES OPENGL? OpenGL es una especificacin estndar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan grficos 2D y 3D. A grandes rasgos, OpenGL es una especificacin, es decir, un documento que describe un conjunto de funciones y su comportamiento exacto. A partir de ella, los fabricantes de hardware crean implementaciones (bibliotecas de funciones creadas para enlazar con las funciones de la especificacin OpenGL, utilizando aceleracin hardware cuando sea posible). Dichos fabricantes tienen que superar pruebas especficas que les permitan calificar su implementacin como una implementacin de OpenGL. OpenGL significa Graphic Library. No es por lo tanto ningn lenguaje de programacin, sino tan slo un conjunto de libreras que son utilizadas a travs de lenguajes de programacin (en este caso VisualC++) para conseguir un interfaz software entre las aplicaciones y el hardware grfico. La librera esta formada por unas 150 instrucciones diferentes que se utilizan para especificar los objetos y las operaciones necesarias para desarrollar aplicaciones interactivas tridimencionales. Los modelos se deben construir partiendo de un

pequeo conjunto de "primitivas geometricas" como puntos, lineas y poligonos. A cambio, OpenGL, ofrece algo muy valioso: la independencia con respecto a la plataforma de hardware y el sistema operativo en que se trabaje, brindando con ello una enorme portabilidad a sus productos. Asi, OpenGL, permite: *Construir formas geomtricas a partir de primitivas. *Ubicar los objetos en el espacio tridimencional y seleccionar el punto de vista de la escena. *Aplicar el color a los objetos, ya sea mediante una asignacin explcita de la aplicacin, apartir de las condiciones de iluminacion o mediante la utilizacin de texturas. *Convertir la descripcion matemtica de los objetos y la informacin sobre el color en pixels de la pantalla, proceso que se llama rasterizacin. Aunque OpenGL est esta concebido para disear aplicaciones interactivas y facilita al usuario herramientas como la seleccin sus capacidades resultan insuficientes para, entre otras cosas, crear interfaces grficas con un grado mayor de interactividad. Estas limitaciones condujeron al desarrollo de las librerias AUX y GLUT . Las librerias AUX presentan numerosas insuficiencias, y su aplicacin se limita. POR QUIEN FUE DESARROLLADO OPENGL? Fue desarrollada por Silicon Graphics Inc. (SGI) en 1992.[] Su nombre viene del ingls Open Graphics Library, cuya traduccin es biblioteca de grficos abierta (o mejor, libre, teniendo en cuenta su poltica de licencias[] ). IMPLEMENTACION DE OPENGL OpenGL se utiliza en campos como CAD, realidad virtual, representacin cientfica y de informacin, simulacin de vuelo o desarrollo de videojuegos, en el que su principal competidor es Direct3D de Microsoft Windows. Existen implementaciones eficientes de OpenGL suministradas por fabricantes para Mac OS, Microsoft Windows, Linux, varias plataformas Unix, y PlayStation 3. Existen tambin varias implementaciones software que permiten que OpenGL est disponible para diversas plataformas sin soporte de fabricante. Es de sealar la biblioteca de software libre / cdigo abierto Mesa 3D, una API de grficos basada totalmente en software y completamente compatible con OpenGL. Sin embargo, para evitar los costes de la licencia para ser denominada formalmente como una implementacin de OpenGL, afirma ser simplemente una API muy similar. PROPOSITOS DE OPENGL OpenGL tiene dos propsitos principales: * Ocultar la complejidad de la interfaz con las diferentes tarjetas grficas, presentando al programador una API nica y uniforme. * Ocultar las diferentes capacidades de las diversas plataformas hardware, requiriendo que todas las implementaciones soporten el conjunto completo de caractersticas de OpenGL (utilizando emulacin software si fuese necesario). OPENGL PARA JAVA JOGL es una librera de Java para poder acceder directamente, gracias a los plugins de NetBeans. Con JOGL podemos crear desde juegos tridimensionales, en 3D, hasta aplicaciones con una mayor funcionalidad y mayor vistosidad en

cuanto a grficos se refiere. JOGL es una librera que utiliza el JNI de Java para acceder a las funcionalidades de C, por lo que el acceso a las funciones implementadas de OpenGL en JOGL, son realmente rpidas. Adems de ofrecer todas las funciones de OpenGL, tiene una perfecta implementacin con las libreras grficas de Java AWT y Swing, por lo que podemos llegar a embeber OpenGL no solo dentro de la ventana, sino en controles, como por ejemplo crear efectos tridimensionales en botones. Desde la pgina de plugins para NetBeans, podremos instalar el plugin de JOGL para NetBeans que nos ofrece adems de una plantilla de aplicaciones JOGL, multitud de ejemplos para poder empezar a desarrollar. El sistema para instalar el plugin es descargar dicho plugin desde la pgina de NetBeans y luego en paquetes disponibles dentro de la seccin de actualizaciones (plugins) de NetBeans, encontramos una nueva categora de JOGL desde la que podemos instalar todo lo que necesitamos. Si se quiere instalar las libreras de JOGL independientemente de NetBeans o queremos ver algunos ejemplos o descargas como el JavaDoc de JOGL, se puede buscar en la pgina oficial del proyecto JOGL.

Cdigo de programa package graficacion; //Librerias a utilizar: import com.sun.opengl.util.Animator; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.media.opengl.GL; import javax.media.opengl.GLAutoDrawable; import javax.media.opengl.GLCanvas; import javax.media.opengl.GLEventListener; import javax.media.opengl.glu.GLU; /** * author: KaTTyKCBo */ public class EJeMPLo1 implements GLEventListener { public static void main(String[] args) { Frame frame = new Frame("ReCTaNGuLo eN JOGL!!! By KaRLa & JaCKy");//Cambia el ttulo del del frame GLCanvas canvas = new GLCanvas(); canvas.addGLEventListener(new EJeMPLo1()); frame.add(canvas); frame.setSize(800, 650); // Cambia el tamao del frame, el primer parmetro

cambia el ancho y el segundo el alto. final Animator animator = new Animator(canvas); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // Run this on another thread than the AWT event queue to // make sure the call to Animator.stop() completes before // exiting new Thread(new Runnable() { public void run() { animator.stop(); System.exit(0); } }).start(); } }); // Center frame frame.setLocationRelativeTo(null); frame.setVisible(true); animator.start(); } public void init(GLAutoDrawable drawable) { // Use debug pipeline // drawable.setGL(new DebugGL(drawable.getGL())); GL gl = drawable.getGL(); System.err.println("INIT GL IS: " + gl.getClass().getName()); // Enable VSync gl.setSwapInterval(1); // Setup the drawing area and shading mode gl.glClearColor(0.40f, 0.0f, 0.55f, 0.0f); // CaMBia eL CoLoR De FoNDo, eL PRiMeR PaRaMeTRo eS Para color rojo, el segundo es para verde, el tercero es para azul y el ultimo es para negro. } public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) { GL gl = drawable.getGL(); GLU glu = new GLU(); if (height <= 0) {

height = 1; } final float h = (float) width / (float) height; gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL.GL_PROJECTION); gl.glLoadIdentity(); glu.gluPerspective(70.0f, h, 1.0, 20.0); //El primer parmetro cambia el tamao de la forma, el segundo parmetro es para el ancho. gl.glMatrixMode(GL.GL_MODELVIEW); gl.glLoadIdentity(); } public void display(GLAutoDrawable drawable) { GL gl = drawable.getGL(); // Limpia el rea de dibujo gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); // Reset the current matrix to the "identity" gl.glLoadIdentity(); gl.glTranslatef(-0.45f, 0.0f, -5.0f);//El primer parmetro cambia la posicin X de la figura, el segundo parametro cambia la posicin Y de la figura, el tercer parmetro cambia la posicin Z de la figura //Inicia el dibujo del Rectngulo gl.glBegin(gl.GL_POLYGON); gl.glColor3f(1.75f, 0.0f, 0.6f); // Cambia el color de el rectngulo gl.glVertex3f(-1.0f, 1.0f, 0.0f); // Cambia la posicin de arriba a la izquierda gl.glVertex3f(2.0f, 1.0f, 0.0f); // Cambia la posicin de arriba a la derecha gl.glVertex3f(2.0f, -1.0f, 0.0f); // Cambia la posicin del fondo a la derecha gl.glVertex3f(-1.0f, -1.0f, 0.0f); // Cambia la posicin del fondo a la izquierda gl.glEnd(); //Termina el dibujo del Rectngulo // Flush all drawing operations to the graphics card gl.glFlush(); } public void displayChanged(GLAutoDrawable drawable, boolean modeChanged, boolean deviceChanged) { } } PROGRAMA EJECUTNDOSE BIBLIOGRAFA es.wikipedia.org/wiki/OpenGL - 69k

opengl.softonic.com/ - 54k en.wikipedia.org/wiki/OpenGL - 98k www.opengl.org/ - 56k -

Вам также может понравиться