Gráficos por computadora usando JOGL
()
Información de este libro electrónico
Relacionado con Gráficos por computadora usando JOGL
Libros electrónicos relacionados
Aprender Internet Explorer 8 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesProgramación y desarrollo de algoritmos con C++ Calificación: 0 de 5 estrellas0 calificacionesDesarrollo de Aplicaciones Metro Style Calificación: 0 de 5 estrellas0 calificacionesAprender Windows 7 multimedia y nuevas Ttecnologias con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesIntroducción al modelado basado en agentes: Una aproximación desde Netlogo Calificación: 0 de 5 estrellas0 calificacionesProgramación con Qt y Arduino. Calificación: 0 de 5 estrellas0 calificacionesAprender AutoCAD 2013 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesAprender 3DS Max 2012 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesColecciones de datos y algoritmos en Python: de cero al infinito Calificación: 0 de 5 estrellas0 calificacionesTécnicas de análisis de imagen, (2a ed.): Aplicaciones en Biología Calificación: 0 de 5 estrellas0 calificacionesAprender Windows 8.1 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesIntroducción a la programación en C. Un enfoque práctico. Calificación: 0 de 5 estrellas0 calificacionesSketchUp Pro 2014 Nuevas Funciones Calificación: 0 de 5 estrellas0 calificacionesAprender DREAMWEAVER CC con 100 ejercicios Calificación: 0 de 5 estrellas0 calificacionesIntroducción a los Algoritmos y las Estructuras de Datos 1: Introducción a los Algoritmos y las Estructuras de Datos, #1 Calificación: 0 de 5 estrellas0 calificacionesAnálisis numérico en fenómenos de transporte. Casos de estudio Calificación: 0 de 5 estrellas0 calificacionesDiseño de experimentos. Estrategias y análisis en ciencias e ingenierías Calificación: 0 de 5 estrellas0 calificacionesAprender Dreamweaver CS4 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesUF1866 - Instalación y configuración de servicios en equipos de telefonía Calificación: 0 de 5 estrellas0 calificacionesPrograme juegos con actionscript 3.0 Calificación: 0 de 5 estrellas0 calificacionesLaboratorio En Un Chip: O mea tau ma'i taugofie mo le su'esu'eina o fa'ama'i o tagata, e ono fa'agata ai fale su'esu'e Calificación: 0 de 5 estrellas0 calificacionesUNVirtualLab: un laboratorio virtual basado en OpenModelica Calificación: 0 de 5 estrellas0 calificacionesIntroducción Al Psoc5Lp: Teoría y aplicaciones práctica Calificación: 0 de 5 estrellas0 calificacionesDesarrollo del proyecto de la red telemática. IFCT0410 Calificación: 0 de 5 estrellas0 calificacionesLaboratorio de Picosatélites de la Universidad Distrital Francisco José de Caldas Calificación: 0 de 5 estrellas0 calificacionesRectona Óptica: Generación de energía a partir del calor Calificación: 0 de 5 estrellas0 calificacionesDiseño del Teclado Calificación: 0 de 5 estrellas0 calificacionesCodey-B y El Código Python: El Niño Que Codificó El Mundo Calificación: 0 de 5 estrellas0 calificacionesUF1876 - Atención a usuarios e instalación de aplicaciones cliente. Calificación: 0 de 5 estrellas0 calificacionesRaspberry Pi (2ª Edición) Calificación: 0 de 5 estrellas0 calificaciones
Aplicaciones empresariales para usted
Design Thinking para principiantes: La innovación como factor para el éxito empresarial Calificación: 4 de 5 estrellas4/5Aprender Excel 2016 con 100 ejercicios prácticos Calificación: 0 de 5 estrellas0 calificacionesWord 2016 Paso a Paso Calificación: 5 de 5 estrellas5/5Ciencia de datos: La serie de conocimientos esenciales de MIT Press Calificación: 5 de 5 estrellas5/5Scrum Las Estrategias del Juego: Es Póker, No Ajedrez Calificación: 5 de 5 estrellas5/5Descubre los secretos de SAP Ventas y distribucion Calificación: 0 de 5 estrellas0 calificacionesDAX Lenguaje para el análisis de datos Calificación: 0 de 5 estrellas0 calificacionesExcel 2021 y 365 Paso a Paso: Paso a Paso Calificación: 5 de 5 estrellas5/5Cómo Ganar Dinero por Internet con Inteligencia Artificial Emprende tu negocio digital con ChatGPT, Escríbelo.ia, Playground AI, You.com, Canva, Midjourney, Dall-E 2, Amazon... Calificación: 0 de 5 estrellas0 calificacionesAprender fórmulas y funciones con Excel 2010 con 100 ejercicios prácticos Calificación: 4 de 5 estrellas4/5Excel 2016 Paso a Paso Calificación: 4 de 5 estrellas4/5Fórmulas DAX para PowerPivot: Una guía simple hacia la revolución de Excel Calificación: 5 de 5 estrellas5/5Monetización de ChatGPT: aproveche el poder de AI: Spanish Calificación: 1 de 5 estrellas1/5Tablas dinámicas con Excel 2016: Hojas de cálculo Calificación: 3 de 5 estrellas3/5Excel y SQL de la mano: Trabajo con bases de datos en Excel de forma eficiente Calificación: 1 de 5 estrellas1/5Excel 2016 Avanzado: Hojas de cálculo Calificación: 2 de 5 estrellas2/5Tablas dinámicas y Gráficas para Excel: Una guía visual paso a paso Calificación: 0 de 5 estrellas0 calificacionesOFFICE 2019 para todos: Fácil y práctico Calificación: 0 de 5 estrellas0 calificacionesFinanzas Personales para Mujeres Solteras Cómo Ahorrar Dinero si Gano Poco Haz Más con Menos Calificación: 5 de 5 estrellas5/5Cómo ganar dinero con el poder del correo electrónico Calificación: 0 de 5 estrellas0 calificacionesEl Mundo Genuino-Arduino: Curso práctico de formación Calificación: 0 de 5 estrellas0 calificacionesModelo para el gobierno de las TIC basado en las normas ISO Calificación: 5 de 5 estrellas5/5Big data con python: Recolección, almacenamiento y proceso Calificación: 0 de 5 estrellas0 calificacionesAprende sobre la Ingeniería de Software Calificación: 0 de 5 estrellas0 calificacionesRaspberry Pi 4 Manual Completo Calificación: 5 de 5 estrellas5/5Aplicaciones contables con Microsoft Excel Calificación: 0 de 5 estrellas0 calificacionesDesarrollo Web en Java Calificación: 3 de 5 estrellas3/5Cómo crear un blog profesional exitoso Calificación: 0 de 5 estrellas0 calificacionesTablas dinámicas en Excel 2013: Hojas de cálculo Calificación: 5 de 5 estrellas5/5
Comentarios para Gráficos por computadora usando JOGL
0 clasificaciones0 comentarios
Vista previa del libro
Gráficos por computadora usando JOGL - Oscar Gabriel Caballero Martínez
Capítulo 1
Principios de gráficos por computadora
Para tener un panorama más amplio sobre la historia de los gráficos por computadora a continuación se enlistan algunas fechas y eventos importantes en el desarrollo cronológico de la evolución de esta actividad.
1.1 Desarrollo cronológico
Durante la Segunda Guerra Mundial se realizó un proyecto de simulación de vuelo para entrenar pilotos. Se llevó a cabo en el MIT y estuvo a cargo de Jay Forrester [Benstead, 2009]. Se concluyó hasta 1951. Llevó el nombre de Whirl-wind.
figura01Figura 1.1 Computadora Whirl-wind
Fuente: https://en.wikipedia.org/wiki/Whirlwind_I
En 1959, IBM y General Motors lograron modelar autos en 3D. Para 1962 Ivan Sutherland creó el Sketchpad, programa informático que permitía la manipulación directa de objetos gráficos: fue el primer programa de dibujo por computadora.
En 1963 Doug Englebart inventó el "ratón", herramienta importante para la manipulación de gráficos en una computadora, además de que ayuda a dibujar objetos con mayor facilidad. Para 1969 nace SIGGRAPH (Special Interest Group for Graphics), organismo que se encarga de estandarizar las técnicas para graficar en dispositivos electrónicos.
En el año de 1972 la Universidad de Utha desarrolla algoritmos y técnicas, como el sombreado de Goraud y Phong, el algoritmo del pintor y el algoritmo z-buffer, que son actualmente estudiados en los niveles básicos para el desarrollo de efectos visuales [Villar, 2009].
A princípios de los 80’s salen a la venta las computadoras Apollo, Macintosh e IRIS.
figura02Figura 1.2 Macintosh y Silicongraphics
Fuente: Macintosh.org & silicongraphics.org
En 1985 se crea un API estándar: GKS-> PHIGS
En el año de 1986 se realiza el primer cortometraje por computadora: Luxo Jr.
figura03Figura 1.3 Luxo Jr.
Fuente: pixar.org.
Para1990 aparece el primer producto de animación: Studio 3D de Autodesk.
figura04Figura 1.4 3D Studio Max.
Fuente: www.fiuxi.net/autodesk-3d-studio-max-8-full-medicina.html
En 1995 se realiza la primera película animada por computadora: Toy Story.
figura05Figura 1.5 Woody y Buzz
Fuente: www.mundodisney.net/juegos/toy/009/
Para generar una escena es importante seguir una serie de pasos para tener una mejor presentación.
1.2 principios generales
Modelado: Estudia los diversos tipos de modelos matemáticos usados para representar la forma de los objetos que se utilizan en una escena [Shreiner, 2013; Villar, 2009].
figura06Figura 1.6 Modelado Geométrico
Fuente: Apuntes Villar Patiño.
Render: Es el proceso en el que se usan cálculos y algoritmos computacionales para dibujar un objeto tridimensional de manera realista aplicando color, texturas y efectos de iluminación.
Para generar un rendereo primero se coloca el color a la imagen y posteriormente la iluminación.
La totalidad del proceso de render se presenta en la figura 1.7. A partir de figuras geométricas o una imagen se aplican los comandos para cada uno de los pixeles y por medio de las texturas permite una mejor representación de la figura, ya que al aplicarle a cada fragmento las operaciones pertinentes, podemos enviar al frame la figura para que sea dibujada [Hearn, 2006; Villar, 2009].
figura07Figura 1.7 Pasos a seguir para el rendereo.
Fuente: Apuntes Villar Patiño.
Animación: Es el control computacional de una secuencia de imágenes u objetos a lo largo del tiempo
figura08Figura 1.8 Maya Autodesk y Valiente de Pixar
Fuente: ielp1990blogspot.mx/2012/12/maya.html y pixar.org
Interacción: Estudia lo relativo a la creación, en hardware y software, de interfases de usuario.
– Para el hardware, se identifican los dispositivos que deben contener las computadoras para un mejor manejo.
• Adaptador gráfico.
• Monitores.
• Dispositivos de entrada y salida.
– Para el software, se tienen las siguientes identificaciones que permiten manejar la interacción de una mejor forma.
• GUI: Interfaz Gráfica del Usuario, por sus siglas en inglés.
• API: Conjunto de funciones y procedimientos que pueden ser usados por un programa para un fin específico.
Capítulo 2
Programación con Java Open Graphics Library 2. (JOGL2)
Para poder programar en JOGL2 [jogamp, 2016] es necesario tener las librerías que utiliza para su programación en Java (ver Apéndice A) y a su vez, configurar NetBeans para ligar las librerías a los proyectos que se crean (ver Apéndice B).
Lo primero que debe hacerse es generar, a partir del proyecto de trabajo, un archivo tipo class para transcribir el programa; para ello, dentro de NetBeans hacemos lo siguiente: con el botón derecho del mouse abrimos el menú en el proyecto y en la opción de Java Class podremos construir el programa. Ver figura 2.1
figura09Figura 2.1 Ventana de NetBeans para crear un Java Class.
Fuente: Elaboración propia
Al hacer lo anterior se pone el nombre de la clase en la ventana, como se muestra en la figura 2.2. Hay que recordar que los nombres de las clases en Java deben comenzar con una letra mayúscula; si el nombre que se desea transcribir es de dos o más palabras, cada nueva palabra comienza con Mayúsculas.
figura10Figura 2.2 Poner nombre a una clase.
Fuente: Elaboración propia
Al oprimir el botón de finalizar (Finish) se tendrá abierto el editor para transcribir programas en Java que genera un archivo *.class. Para ver cómo se trabaja con JOGL se transcribirá el siguiente código [jogamp, 2016].
1. package Graficacion;
2.
3. import com.jogamp.opengl.GLAutoDrawable;
4. import com.jogamp.opengl.GLEventListener;
5. import com.jogamp.opengl.awt.GLCanvas;
6. import com.jogamp.opengl.util.Animator;
7. import java.awt.Frame;
8. import java.awt.event.WindowAdapter;
9. import java.awt.event.WindowEvent;
10. /**
11. *
12. * @author Caballero Martínez Oscar Gabriel
13. * Caballero Jiménez Oscar Emilio
14. * Caballero Jiménez Mariana
15. * Jiménez Jacinto Verónica
16. *
17. * @Group 2803
18. *
19. * @Fecha 10/febrero/2016
20. *
21. * @Materia Graficación por Computadora
22. *
23. */
24. public class Ventana implements GLEventListener {
25. public static void main(String[] args) {
26. Frame frame = new Frame(Ventana.java
);
27. GLCanvas canvas = new GLCanvas();
28. canvas.addGLEventListener(new Ventana());
29. frame.add(canvas);
30. frame.setSize(640, 480);
31. final Animator animator = new Animator(canvas);
32. frame.addWindowListener(new WindowAdapter() {
33. @Override
34. public void windowClosing(WindowEvent e) {
35. // Run this on another thread than the AWT event queue to
36. // make sure the call to Animator.stop() completes before
37. // exiting
38. new Thread(new Runnable() {
39. public void run() {
40. animator.stop();
41. System.exit(0);
42. }
43. }).start();
44. }
45. });
46. // Center frame
47. frame.setLocationRelativeTo(null);
48. frame.setVisible(true);
49. animator.start();
50. }
51. @Override
52. public void init(GLAutoDrawable glad) {
53. }
54. @Override
55. public void dispose(GLAutoDrawable glad) {
56. }
57. @Override
58. public void display(GLAutoDrawable glad) {
59. }
60. @Override
61. public void reshape(GLAutoDrawable glad, int i, int i1, int i2, int i3){
62. }
63. }
Código 2.1 Ventana.java
Al ejecutar el programa anterior tendremos la siguiente salida.
figura11Figura 2.3 Programa "Ventana".
Fuente: Elaboración propia.
Como siempre se trabajará con el mismo código, se escribirá en la plantilla original de los archivos class que crea NetBeans el código anterior pero con generalidades. Para ello es necesario abrir la plantilla.
figura12Figura 2.4 Menú para modificar la plantilla de los class.
Fuente: Elaboración propia.
Posteriormente, en las plantillas asociadas a Java se abre la referente a los archivos class con el editor.
figura13Figura 2.5 Abrir con el editor los class
Fuente: Elaboración propia.
Y se escriben las siguientes líneas:
1. import com.jogamp.opengl.GLAutoDrawable;
2. import com.jogamp.opengl.GLEventListener;
3. import com.jogamp.opengl.awt.GLCanvas;
4. import com.jogamp.opengl.util.Animator;
5. import java.awt.Frame;
6. import java.awt.event.WindowAdapter;
7. import java.awt.event.WindowEvent;
8.
9. /**
10. *
11. * @authors Caballero Jiménez Mariana
12. * Caballero Jiménez Oscar Emilio
13. * Caballero Martínez Oscar Gabriel
14. * Jiménez Jacinto Verónica
15. *
16. * @Tema: Libro
17. *
18. * @Fecha ${date}
19. *
20. */
21. public class ${name} implements GLEventListener {
22. public static void main(String[] args) {
23. Frame frame = new Frame(${name}.java
);
24. GLCanvas canvas = new GLCanvas();
25. canvas.addGLEventListener(new ${name}());
26. frame.add(canvas);
27. frame.setSize(640, 480);
28. final Animator animator = new Animator(canvas);
29. public void windowClosing(WindowEvent e) {
30. // Run this on another thread than the AWT event queue to
31. // make sure the call to Animator.stop() completes before
32. // exiting
33. new Thread(new Runnable() {
34. public void run() {
35. animator.stop();
36. System.exit(0);
37. }
38. }).start();
39. }
40. });
41. // Center frame
42. frame.setLocationRelativeTo(null);
43. frame.setVisible(true);
44. animator.start();
45. }
46. @Override
47. public void init(GLAutoDrawable glad) {
48. }
49. @Override
50. public void dispose(GLAutoDrawable glad) {
51. }
52. @Override
53. public void display(GLAutoDrawable glad) {
54. }
55.