Modelado Avanzado en 3d

Créditos
6
Tipos
Obligatoria de especialidad (Gráficos y Realidad Virtual)
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
CS
Este curso abarca las técnicas, algoritmos y estructuras de datos utilizados para adquirir, representar y consultar modelos geométricos de sólidos y superficies. El curso cubre diversas técnicas de modelado, incluyendo representaciones de fronteras, representaciones implícitas, instanciación y combinaciones booleanas de sólidos, así como modelado procedimental. También discutiremos estructuras de datos efectivas para representar varios tipos de objetos, así como el proceso de adquisición de modelos a partir de objetos reales.

Profesorado

Responsable

  • Carlos Andujar Gran ( )

Otros

  • Alvaro Vinacua Pla ( )
  • Oscar Argudo Medrano ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
7.1111

Competencias

Competencias Técnicas de cada especialidad

Computer graphics and virtual reality

  • CEE1.1 - Capacidad de comprender y saber aplicar las tecnologías actuales y las que en el futuro se utilicen para el diseño y evaluación de aplicaciones gráficas interactivas en tres dimensiones, tanto cuando prime la calidad de imagen como cuando lo haga la interactividad o la velocidad, así como comprender los compromisos inherentes y las razones que los ocasionan.

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Capacidad para aplicar el método científico en el estudio y análisis de fenómenos y sistemas en cualquier ámbito de la Informática, así como en la concepción, diseño e implantación de soluciones informáticas innovadoras y originales.

Competencias Transversales

Actitud frente al trabajo

  • CTR5 - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.

Razonamiento

  • CTR6 - Capacidad de razonamiento crítico, lógico y matemático. Capacidad para resolver problemas dentro de su área de estudio. Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales. Capacidad de diseñar y realizar experimentos sencillos, y analizar e interpretar sus resultados. Capacidad de análisis, síntesis y evaluación.

Objetivos

  1. Entender los fundamentos de los sistemas de modelado geométrico
    Competencias relacionadas: CEE1.1, CG1, CTR5, CTR6,
  2. Entender y ser capaz de implementar esquemas de representación de sólidos.
    Competencias relacionadas: CEE1.1, CG1, CTR6,
  3. Entender los detalles de la Representación de Fronteras (BRep): características, implementación, operaciones y algoritmos sobre BReps.
    Competencias relacionadas: CEE1.1, CTR6,
  4. Entender los detalles de los Modelos de Descomposición Espacial (voxelizaciones, octrees): características, implementación, y operaciones sobre este tipo de representaciones.
    Competencias relacionadas: CEE1.1, CTR6,
  5. Entender los detalles de los Modelos de Geometría Constructiva de Sólidos (CSG): características, implementación, y operaciones sobre este tipo de representaciones.
    Competencias relacionadas: CEE1.1, CTR6,
  6. Ser capaz de implementar scripts (Python) y programas (C++) para resolver problemas de modelado geométrico usando diferentes esquemas de representación de modelos 3D.
    Competencias relacionadas: CEE1.1, CTR5, CTR6,
  7. Entender las técnicas de modelado procedural, incluyendo fractales, sistemas L y gramáticas CGA.
    Competencias relacionadas: CEE1.1, CTR5, CTR6,
  8. Entender las técnicas de modelado implícito: campos escalares, algoritmos de extracción de superfícies, metaballs y algoritmos asociados.
    Competencias relacionadas: CEE1.1, CTR6,

Contenidos

  1. Fundamentos del modelado 3D
    Elementos de un sistema de modelado geométrico. Modelos de sólidos. Conjuntos de puntos cerrados, acotados y regulares. Superficies 2-variedad. Niveles de abstracción en modelado geométrico.
  2. La representación de fronteras (BRep)
    Poliedros. Componentes conexas, caras, bucles, aristas y vértices. Género de una superficie. Ecuación de Euler para poliedros. Relaciones de incidencia. Creación de modelos BRep. Operaciones booleanas. Curvas y superficies para modelado geométrico
  3. Subdivision surfaces
    Superficies de subdivisión. Interpolación y aproximación. Regla de actualización. Clasificación. Subdivisión Catmull-Clark.
  4. Modelos CSG
    Geometría Sólida Constructiva. Árboles CSG. Operaciones básicas. Test de punto interior a CSG.
  5. Space decomposition models
    Voxelizaciones. octárboles. Classic, Face y Extended octrees. Representación de octrees. Operaciones básicas sobre octrees.
  6. Implicit modeling
    Campos escalares. Reconstrucción de superficies a partir de campos escalares. Moléculas blobby, metaballs y objetos blandos.
  7. Estructuras de datos para mallas triangulares
    Ecuación de Euler para mallas triangulares. Representaciones basadas en caras, vértices y aristas. La estructura de datos basada en semi-aristas. API para procesamiento de geometría.
  8. Tests geométricos
    Estimación de planos normales y tangentes en vértices de mallas poligonales. Curvatura discreta en los vértices de la malla. Calidad de malla. Prueba de no autointersección.
  9. Procedural modeling
    Fractales. Sistemas Lindenmayer (sistemas L). Gramáticas estocásticas y paramétricas. Gramáticas CGA. Modelado generativo.
  10. Digitalización de geometría
    Proceso para la adquisición de modelos 3D. Tecnologías. Registro y fusión.

Actividades

Actividad Acto evaluativo


Clases de teoría

El material se presentará en clases a lo largo del cuatrimestre. Se espera que el estudiante realice lecturas y ejercicios complementarios, para ser presentados en fecha posterior o entregados.
Objetivos: 1 2 3 4 5 7 8
Teoría
23h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
40h

Implementación de una selección de algoritmos

Se asignará una selección de algoritmos relevantes para implementar en sesiones de laboratorio y por su cuenta. Es posible que se le solicite presentar su solución en la clase. Debe entregar código fuente completamente funcional que se ejecute en la plataforma indicada. Los lenguajes usuales son C++ y Python.
Objetivos: 1 2 3 4 5 6 7 8
Teoría
0h
Problemas
0h
Laboratorio
27h
Aprendizaje dirigido
0h
Aprendizaje autónomo
56h

Final exam

At the end of the term you will have a final exam, which may be a take-home.

Semana: 17
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Partial exam

At the middle of the term you will have a partial exam, which may be a take-home.

Semana: 7
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Metodología docente

The teaching methodology will be based based on weekly theory classes and lab classes. Course concepts will be introduced in the theory classes. Exercises will be used to consolidate these concepts, which will be further developed in the lab sessions.

The lab sessions basically involve the teacher presenting the guidelines for the practical work (split by sessions) and the concepts bearing on the software to be used. Students will complete the design and programming of the various applications bearing on the course contents. The exercises will be carried out individually.

Método de evaluación

Partial: mark based on the student's performance in the partial exam

Exam: mark based on the student's performance in the final exam

Lab: grade stem from the student's implementations of selected algorithms (including occasionally their presentation of their
solution in a laboratory class)

The final grade for the course will be computed as:

Final Grade = 0.4 Exam + 0.3 Partial + 0.3 Lab

Bibliografía

Básica:

Complementaria:

Capacidades previas

Álgebra lineal, geometría 2D y 3D, y programación.

En el laboratorio se usa C++ y Python, por lo cual se requiere como mínimo experiencia en C/C++.

Se recomienda también disponer de formación básica de Gráficos por Computador (pipeline, shaders, OpenGL).