Curso OpenGL

7
Fundamentos de OpenGL Objetivo: Fundamentar los conceptos de la computación y la programación de gráficos 3D para su implementación mediante el desarrollo de un motor de Render. Metas: Desarrollar un motor de Render con las siguientes características: Manejador de shaders Visualizador Cargador de Modelos Interfaz gráfica desarrollada con QT Temario 1. Introducción 1.1. ¿Qué son los gráficos 3D? 1.2. Hardware grafico 1.3. Práctica 1: Configuración proyecto QT 2. Flujo de trabajo de los gráficos 3D 2.1. Luz ambiental 2.2. Colocación de objetos 2.3. Propiedades de materiales 2.4. Posición de la cámara 2.5. Render 3. Pipeline de los gráficos en 3D 3.1. Shader vertex 3.2. Shader frag 4. Modelos de color 4.1. RGB 4.2. CYMK 5. Modelado geométrico 5.1. Modelado jerárquico 5.2. Modelado volumétrico por imagenes 6. Primitivas y sus atributos OpenGL 6.1. VertexArrayObject

description

Indice propuesta temario para curso de OGL

Transcript of Curso OpenGL

Fundamentos de OpenGLObjetivo: Fundamentar los conceptos de la computacin y la programacin de grficos 3D para su implementacin mediante el desarrollo de un motor de Render.Metas: Desarrollar un motor de Render con las siguientes caractersticas: Manejador de shaders Visualizador Cargador de Modelos Interfaz grfica desarrollada con QT

Temario1. Introduccin1.1. Qu son los grficos 3D?1.2. Hardware grafico 1.3. Prctica 1: Configuracin proyecto QT 2. Flujo de trabajo de los grficos 3D2.1. Luz ambiental2.2. Colocacin de objetos2.3. Propiedades de materiales 2.4. Posicin de la cmara2.5. Render3. Pipeline de los grficos en 3D3.1. Shader vertex3.2. Shader frag4. Modelos de color4.1. RGB4.2. CYMK5. Modelado geomtrico 5.1. Modelado jerrquico5.2. Modelado volumtrico por imagenes6. Primitivas y sus atributos OpenGL6.1. VertexArrayObject6.2. VertexBufferObject6.3. glBindVertexArray6.4. glBindBuffer6.5. glBufferData6.6. glDrawArrays6.7. glDrawElements6.8. glTriangles6.9. glTrinaglesFan6.10. glTrinaglesStrip6.11. glTrianglesAdjacency6.12. Prctica 2: Visualizacin de un objeto 7. Modelo cmara sinttica7.1. Prctica 3: Programacin de los controles de la cmara8. Modelos de iluminacin local 8.1. Iluminacin plana8.2. Iluminacin de Phong (Modelo Clsico)8.2.1. Reflexin Ambiental8.2.2. Reflexin Difusa8.2.3. Reflexin Especular8.3. Prctica 4: controles de iluminacin9. Texturizado9.1. Mapas de texturas9.2. Practica 5: Carga y despliegue de texturas 9.3. Bump mapping10. Formatos de descripcin de geometra10.1. OBJ10.2. Practica 6: Construccin del Cargador OBJ10.3. FBX11. Shaders GLSL11.1. Vertex Shader 11.2. Frament Shader 11.3. Prctica 7: Programacin de Shaders (Texturizado bump mapping e iluminacin)12. Modelos de iluminacin global12.1. Radiosidad 12.2. Taza de rayos (ray tracing)12.3. Prctica 8: Controles de iluminacin global

Practicas:1. Configuracin proyecto QT:Objetivo: sentar la base y la configuracin de un proyecto en QT para la implementacin de OpenGL2. Visualizacin de un objetoObjetivo: sentar la base de las bases del flujo del pipeline de openGL para el despliegue de un objeto.3. Programacin de los controles de la cmaraObjetivo: Sentar la base de la representacin de la cmara en un espacio 3D y adems introducir a la programacin de interfaces en QT utilizando widgets de botones.4. Controles de iluminacin localObjetivo: Sentar las bases de la iluminacin local e introducir a la programacin de controles ms elaborados en la interfaz grfica de QT.5. Carga y despliegue de texturasObjetivo: introduccin a la programacin de carga de imagines en QT y su procesamiento en OpenGL.6. Construccin del cargador OBJObjetivo: Programar las funciones para el procesamiento en openGL de los datos cargados a partir de un archivo obj para lograr su despliegue y texturizado.7. Programacin de Shaders (Texturizado bump mapping e iluminacin)Objetivo: Sentar las bases del uso de cada shader para su implementacin en el texturizado de bump mapping e iluminacin.8. Controles de iluminacin globalObjetivo: Programacin avanzada de shaders para la implementacin de iluminacin global, as como reforzar los conceptos de la utilizacin de los shaders.

Motor de render Manejador de shaders en Qt 5.4+ y OpenGL 3.3+ Visualizador Cargador de modelos: simple complejo Interfaz grfica en Qt 5.4+ Manejador de escenas en Qt 5.4+ y OpenGL 3.3+. Metodos remotos (RCF cliente/servidor).Curso de 6 meses de escuelita y 2 de implementacin codo a codo.Carlos: Organizar que se tenga el control total de Holos, fungir como supervisor, recibir las mejoras de las mejoras de Joel a Victor y Ruben para hacer la mejora final, decisin final de la implementacin.Joel: documentacin tcnica de holos.JL: Me debe documentacin de holos (bpmn, transaccionales).Rubn: manual - requisitos.Que conceptos se van a ver, de bsicos a ms complejos.

Introduccin Durante el siguiente curso aprenderemos conceptos bsicos de grficos 3D por computadora, as como el manejo bsico de la librera de grficos OpenGL. Dentro del curso entre otros temas se abordaran, modelos de color, modelos de iluminacin, texturizado.Qu son los grficos 3D por computadora?Son representaciones visuales que utilizan una representacin tridimensional de datos geomtricos, generalmente cartesianos, que se almacenan en la computadora para los fines como la realizacin de clculos y renderizar imgenes 2D. Esto quiere decir que un grfico 3D es aquella representacin grfica que posee coordenadas X, Y, Z (horizontal, vertical y profundidad).Las representaciones 3D nos brindan un nmero significativo de ventajas sobre los grficos en 2D. Las imgenes que pueden ser generadas por las aplicaciones graficas 3D, son capaces de alcanzar un nivel ms alto de fotorealismo, ya que se pueden implementar tcnicas de sombreado, iluminacin, reflexin y texturas de manera tcnicamente ms correcta. Tambin nos ayudan a hacer cambios ms fcilmente en la iluminacin, tamao y las propiedades de material de los objetos as como nuestro punto de vista.Las imgenes altamente fotorealistas creadas en una computadora se emplean para diversos propsitos dentro de las cuales se pueden destacar las animaciones y efectos especiales, simulaciones de vuelo, diseo mecnico interactivo, entornos de realidad virtual entre otras aplicaciones. Es por eso que el campo de la computacin grfica actualmente se encuentra dividido en diversas reas.Hardware grfico.Existen diferentes tipos de hardware grficos y se dividen en hardware grfico de entrada, hardware grfico de salida y hardware de procesamiento grfico. Hardware grfico de entrada. Son aquellos dispositivos que nos permiten digitalizar una imagen o nos permiten hacer clculos para llegar a una representacin grfica digital. Dentro de los ms comunes se encuentran las cmaras y el escner. Hardware grfico de salida. Tambin conocidos como dispositivos de despliegue estos son bsicamente todos aquellos dispositivos que sirven para desplegar una imagen a partir de una computadora. Aqu es donde se sitan las pantallas, displays y proyectores con sus diferentes variantes. Hardware de procesamiento grfico. Comnmente conocidos como tarjetas grficas o GPU (Graphics Processing Unit). Este es un procesador dedicado nicamente al clculo de grficos. Este procesador trabaja en conjunto con el CPU aligerando su carga de trabajo y liberndolo para dedicarse a otro tipo de clculos como los de inteligencia artificial y clculos de fsica, dentro de una aplicacin grafica interactiva como por ejemplo los videojuegos.Flujo de trabajo de los grficos 3D