Está en la página 1de 6

Fundamentos de OpenGL

Objetivo: 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
caractersticas:

un

motor

de

Render

Manejador de shaders
Visualizador
Cargador de Modelos
Interfaz grfica desarrollada con QT

Temario
1. Introduccin
1.1.Qu son los grficos 3D?
1.2.Hardware grafico
1.3.Prctica 1: Configuracin proyecto QT
2. Flujo de trabajo de los grficos 3D
2.1.Luz ambiental
2.2.Colocacin de objetos
2.3.Propiedades de materiales
2.4.Posicin de la cmara
2.5.Render
3. Pipeline de los grficos en 3D
3.1.Shader vertex
3.2.Shader frag
4. Modelos de color
4.1.RGB
4.2.CYMK
5. Modelado geomtrico
5.1.Modelado jerrquico
5.2.Modelado volumtrico por imagenes
6. Primitivas y sus atributos OpenGL
6.1.VertexArrayObject
6.2.VertexBufferObject
6.3.glBindVertexArray
6.4.glBindBuffer
6.5.glBufferData
6.6.glDrawArrays
6.7.glDrawElements
6.8.glTriangles
6.9.glTrinaglesFan
6.10.
glTrinaglesStrip
6.11.
glTrianglesAdjacency

con

las

siguientes

6.12.
Prctica 2: Visualizacin de un objeto
7. Modelo cmara sinttica
7.1.Prctica 3: Programacin de los controles de la cmara
8. Modelos de iluminacin local
8.1.Iluminacin plana
8.2.Iluminacin de Phong (Modelo Clsico)
8.2.1. Reflexin Ambiental
8.2.2. Reflexin Difusa
8.2.3. Reflexin Especular
8.3.Prctica 4: controles de iluminacin
9. Texturizado
9.1.Mapas de texturas
9.2.Practica 5: Carga y despliegue de texturas
9.3.Bump mapping
10.Formatos de descripcin de geometra
10.1.
OBJ
10.2.
Practica 6: Construccin del Cargador OBJ
10.3.
FBX
11.Shaders GLSL
11.1.
Vertex Shader
11.2.
Frament Shader
11.3.
Prctica 7: Programacin de Shaders (Texturizado bump mapping
e iluminacin)
12.Modelos de iluminacin global
12.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 OpenGL
2. Visualizacin de un objeto
Objetivo: 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 cmara
Objetivo: 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 local
Objetivo: 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 texturas
Objetivo: introduccin a la programacin de carga de imagines en QT y
su procesamiento en OpenGL.
6. Construccin del cargador OBJ

Objetivo: 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 global
Objetivo: 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