Doble Titulación en Ingeniería Telemática e Ingeniería Informática

Doble Grado en Ingeniería Telemática e Ingeniería Informática

Fórmate para ser un ingeniero experto en Redes y Tecnologías de Internet y adquiere a la vez las certificaciones oficiales de CCNA y CCNP

Programación de gráficos 3D

Descripción
En la asignatura de Gráficos se espera que el alumno sea capaz de programar un sistema de visualización de gráficos 3D en tiempo real y comprender los conceptos teóricos y los cálculos en los que se basan sus algoritmos.
Tipo asignatura
Tercer - Obligatoria
Semestre
Primero
Curso
2
Créditos
5.00
Conocimientos previos

Dado que la parte práctica de la asignatura se apoya mucho en la programación con el lenguaje C, es necesario tener conocimientos previos de este lenguaje.

También es importante contar con una buena base de álgebra, ya que muchos conceptos están relacionados con sistemas matriciales, proyecciones y espacios vectoriales.

Objetivos

La asignatura pretende que el alumno adquiera una formación consistente en la generación de gráficos 2D / 3D, de cara a su aplicación posterior en el mundo de videojuegos, animación y de las realidades virtual y aumentada.

Se cubren todos los puntos fuertes y fundamentales de cualquier aplicación gráfica, desde la base matemática necesaria, hasta el conocimiento de librerías gráficas accesibles y utilizadas a nivel mundial.

Además, se introducen los conocimientos para programar aplicaciones de gráficos en tiempo real usando C++.

Contenidos

Tema 1. Introducción a los gráficos
- Conceptos básicos de gráficos - pantallas, buffers, colores, Rasterización: Dibujar a pantalla en 2D, Mundos virtuales: dibujar por objeto o por píxel, Operaciones vectoriales y matriciales

Tema 2. Conceptos básicos para gráficos en tiempo real
- Transformaciones, espacios de coordenadas y representaciones matriciales, Cámaras y visualización de matrices, Proyecciones y Matrices de Perspectiva y Proyección Ortográfica

Tema 3. Canalización moderna de la programación de aplicaciones en tiempo real
- Introducción a OpenGL, El pipeline moderno de hardware, Introducción a la programación con Shaders

Tema 4. Iluminación y composición de escenas, técnicas avanzadas
- Conceptos básicos de luz e iluminación, Ley de Lambert, Sombreado de Gouraud, Iluminación local mediante la ecuación de Phong, Iluminación por cara, por vértice, por píxel, Prueba de visibilidad, eliminación de superficies ocultas, búfer Z, recorte y composición, Texturas

Tema 5. Programación en OpenGL y C ++
- Introducción a la programación en OpenGL, Buffers, Arrays y Objetos, Uso de GLM y GLUT, Utilizar librerías externas para cargar contenidos, Programación en lenguaje GLSL Shaders, Implementación de técnicas de iluminación, Implementación de técnicas avanzadas

Metodología

Cada semana de clases se dividen entre dos sesiones: una sesión de teoría (1 hora, clase magistral) y otra de practicas (2 horas, clase de taller). En general, en las sesiones practicas se implementan la teoría que se ha aprendido esta semana.

Las sesiones prácticas son vinculadas con las sesiones de teoría, ya que la asignatura es muy práctica y los alumnos estarán programando continuamente.

Evaluación

Las evaluaciones son: un examen final, cuatro prácticas, y un proyecto final.

Criterios evaluación

La contribución de cada una de las notas es:
Examen final: 35% (Altamente significativa)
Prácticas: 25%
Entrega 1: 5% (Moderadamente significativa)
Entrega 2: 5% (Moderadamente significativa)
Entrega 3: 5% (Moderadamente significativa)
Entrega 4: 10% (Moderadamente significativa)
Proyecto final: 40% (Altamente significativa)

Bibliografía básica

- Akenine-Moller, Tomas, Eric Haines, and Naty Hoffman. Real-time rendering. AK Peters/CRC Press, 2019.
- Neider, Jackie, Tom Davis, and Mason Woo. OpenGL programming guide. Vol. 14. Reading, MA: Addison-Wesley.(7th ed)
- Foley, James D. Introduction to Computer Graphics. Addison-Wesley Professional; (January 1, 1993)
- https://learnopengl.com/

Material complementario