Tema 1: Modelado poligonal

Documentos relacionados
1 Representación por superficies de polígonos

El pipeline de visualización es el conjunto de

UNIVERSIDADES PÚBLICAS DE LA COMUNIDAD DE MADRID PRUEBA DE ACCESO A LAS ENSEÑANZAS UNIVERSITARIAS OFICIALES DE GRADO MATERIA: DIBUJO TÉCNICO II

Tema 7: Realismo Visual

MATHEMATICA. Geometría - Triángulos. Ricardo Villafaña Figueroa. Ricardo Villafaña Figueroa. Material realizado con Mathematica y Geometry Expressions

Tema 6: Realismo Visual

CUERPOS. Poliedros: Aquellos cuerpos geométricos totalmente limitados por polígonos, como por ejemplo, el prisma, la pirámide; etc.

DIBUJO TÉCNICO BACHILLERATO TEMA 8. PERSPECTIVAS AXONOMÉTRICAS. Departamento de Artes Plásticas y Dibujo

MATEMÁTICASII Curso académico BLOQUE GEOMETRÍA. TEMA 1: VECTORES

Computación Gráfica = CG = Computer Graphics

APELLIDOS Y NOMBRE:...

CUERPOS GEOMÉTRICOS (CONCEPTOS BÁSICOS)

Cuerpos Geométricos Son aquellos elementos que ocupan un volumen en el espacio se componen de tres partes: alto, ancho y largo.

M.D.T. y TOPOCAL. Técnicas de Representación Gráfica. Curso DIGTEG 2010

CUERPOS GEOMÉTRICOS. POLIEDROS

INTRODUCCIÓN DEL TEMA 2 ESPACIOS VECTORIALES

OPTIMIZACIÓN VECTORIAL

Sistemas de Información Geográfica

Tema 1 Introducción. David Vallejo Fernández. Curso 2007/2008. Escuela Superior de Informática

Geometría GUIA DE GEOMETRIA NB3

Definición de Memoria

GUÍA DE ESTUDIO PARA EL EXAMEN EXTRAORDINARIO DE GEOMETRÍA ANALÍTICA

10- Los poliedros. Aprende a reconocer los poliedros en nuestro entorno; identifica sus elementos y aprende a clasificarlos.

CÁLCULO II ESCUELA MILITAR DE INGENIERÍA MISCELÁNEAS DE PROBLEMAS VECTORES. 1. Sean A = (1, 2), B = ( 1, 3) y C = (0, 4); hallar: a) A + B

TEMA 1: GEOMETRÍA EN EL ESPACIO

UoL: La geometría del triángulo; figuras, formas y representaciones de objetos LO: Caracterización de los números figurados

Curso de AutoCAD 2010 Apunte Parte II

TEMA 7 Las formas y las medidas que nos rodean. 2. Repaso a las figuras planas elementales

Grupo de Informática Gráfica Avanzada Universidad de Zaragoza. Polígonos. Diego Gutiérrez

GEOMETRÍA ANALÍTICA EJERCITARIO DE FACULTAD DE INGENIERÍA CURSO PREPARATORIO DE INGENIERÍA (CPI) UNIVERSIDAD NACIONAL DE ASUNCIÓN

MÓDULO 8: VECTORES. Física

Fundamentos matemáticos. Tema 3 Geometría del plano y del espacio

EDUCACIÓN PLÁSTICA Y VISUAL. Trabajo de Recuperación de Pendientes Para 3º ESO. Geometría. IES Ramón Menéndez Pidal DPTO. DE DIBUJO 3º ESO 1

Diagrama de Voronoi. Ejemplo de problemas geométricos:

RESUMEN DE VARIOS CONCEPTOS BÁSICOS DE GEOMETRÍA

a) La ecuación del plano que pasa por el punto ( 1, 1, 0 ). (3 puntos) b) La ecuación del plano que es paralelo a la recta r.

BLOQUE 2 : GEOMETRÍA

Área del rectángulo y del cuadrado

INSTITUCION EDUCATIVA LA PRESENTACION

III: Geometría para maestros. Capitulo 1: Figuras geométricas

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Un poliedro es un cuerpo geométrico que tiene todas sus caras planas y formadas por polígonos.

Materia: Matemática de Tercer Año Tema: Pendiente

Matemáticas UNIDAD 12 SECTOR. Material de apoyo complementario para el docente REPASO DE CUERPOS GEOMÉTRICOS Y TRANSFORMACIONES DE FIGURAS PLANAS

POLÍGONOS POLÍGONOS. APM Página 1

Algebra lineal y conjuntos convexos

RECTAS, PLANOS EN EL ESPACIO.

GEOMETRÍA DE 6º DE E.P. MARISTAS LA INMACULADA.

SISTEMASS DE REPRESENTACIÓNN Geometría Básica

PSU Matemática NM-4 Guía 23: Isometrías. Nombre: Curso: Fecha: -

EJERCICIOS DE GEOMETRÍA PLANA. 1. Hallar las ecuaciones paramétricas de la recta r que pasa por el punto ( 2, 2) tiene como vector director el vector

Diagonal: es un segmento que une dos vértices no consecutivos del poliedro. Puede trazarse en una misma cara o entre distintas caras.

y cualquier par (x, y) puede escalarse, multiplicarse por un número real s, para obtener otro vector (sx, sy).

Mapping de texturas. Víctor Theoktisto

Poliedros Regulares Convexos

PATG. Rosa Mª Sánchez Banderas

Polígonos regulares, el triángulo de Sierpinski y teselados

ESCALARES Y VECTORES

RAZONAMIENTO GEOMÉTRICO

Coordenadas de un punto

Uso de representaciones geométricas para facilitar la transición de la aritmética al álgebra 1

Curso SIG. Curso SIG Conceptos Básicos y Funciones. Conceptos Básicos y Funciones. Representaciones del mundo. Curso SIG - Pablo Rebufello 1

SOLUCIONES MINIMOS 2º ESO TEMA 8 CUERPOS GEOMÉTRICOS

Academia de Matemáticas T.M Geometría Analítica Página 1

ACTIVIDADES DE 2ºESO DE EPV DEL PRIMER TRIMESTRE Nombre y apellidos: TEMA 1: TRAZADOS BÁSICOS

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Problemas métricos. Ángulo entre rectas y planos

Recuerda lo fundamental

LICEO SOROLLA C TEMA 4: DISEÑO 3D EN AUTOCAD

MATEMÁTICAS (GEOMETRÍA)

ejerciciosyexamenes.com GEOMETRIA

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

Además del grado, para medir la amplitud de los ángulos usamos los minutos y los segundos.

UNIDAD I.- INTRODUCCIÓN A LA GRAFICACIÓN POR COMPUTADORA

2 Representación poligonal

CUERPOS GEOMÉTRICOS. Los cuerpos geométricos son porciones de espacio limitadas por superficies planas o curvas.

6. Mosaicos y movimientos. en el plano

Una Aplicación Informática para la Enseñanza de las Transformaciones Geométricas 3D

Tema 5: Modelos de Iluminación y Sombreado

PROBLEMAS DE CORTE EUCLIDIANO

Ámbito científico tecnológico

Punto. Recta. Semirrecta. Segmento. Rectas Secantes. Rectas Paralelas. Rectas Perpendiculares

INSTITUCIÓN EDUCATIVA GABRIEL TRUJILLO CORREGIMIENTO DE CAIMALITO, PEREIRA

EDUCACIÓN SECUNDARIA 1 MATEMÁTICAS UNIDAD 6. GEOMETRIA EN EL PLANO. FUNCIONES y GRÁFICAS. POLÍGONOS Y CIRCUMFERENCIAS. PERÍMETROS Y ÁREAS.

Tema 6: Trigonometría.

Unidad I Triángulos rectángulos

Dr. GEO. Versión 10.12

Tema 5: Tratamiento de imágenes fijas.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

DIBUJO MECÁNICO PROYECCIONES Y NORMATIVA

PRESENTACIÓN TODOS LOS APUNTES Y HOJAS DE EJERCICIOS ESTÁN EN EL BLOG QUE HE CREADO PARA MIS CLASES:

Contenido GPU (I) Introducción Sombreadores. Operadores. Vértice Píxel Geometría. Textura Raster HDR

APLICACIÓN DXF_TO_CTE PARA LA CONVERSIÓN DE ARCHIVOS DXF A CTE

GEOMETRÍA MÉTRICA EN UN TETRAEDRO Manuel Díaz Regueiro Instituto de Bachillerato "Juan Montes". Lugo.

Como es habitual, retocaremos a nuestro gusto el estilo de los objetos gráficos.

Geometría Básica 43 UNIVERSIDAD DE LOS ANDES - TÁCHIRA DEPARTAMENTO DE CIENCIAS CARRERA EDUCACIÓN BÁSICA INTEGRAL

DISTANCIA ENTRE DOS PUNTOS EN EL PLANO CARTESIANO.

PROGRAMACIÓN LINEAL PROGRAMACIÓN LINEAL.

Transcripción:

Tema 1: Modelado poligonal José Ribelles SIU020 Síntesis de Imagen y Animación Departamento de Lenguajes y Sistemas Informáticos, Universitat Jaume I Tema 1: Modelado poligonal 1

Hoy veremos... 1 Introducción 2 Orígenes de información poligonal 3 Representación 4 La Normal 5 Consolidación 6 Poĺıgonos y OpenGL Introducción Tema 1: Modelado poligonal 2

Introducción Modelado poligonal Se denomina modelo al conjunto de datos que describe a un objeto y que puede ser utilizado por un sistema gráfico para ser visualizado. Modelado poligonal es cuando se utilizan poĺıgonos para describir la geometría. El triángulo es la primitiva más utilizada. Introducción Tema 1: Modelado poligonal 3

Introducción Ventajas Exactitud visual. Velocidad. Introducción Tema 1: Modelado poligonal 4

Introducción Conceptos Teselado: proceso de división de un poĺıgono en poĺıgonos más pequeños. Triangulación: proceso de división de un poĺıgono de n lados en triángulos (caso particular de teselado). Consolidación: conjunto de operaciones útiles para almacenamiento y dibujado del modelo. Optimización: proceso por el que se agrupan u ordenan los datos con el fin de dibujarse de manera más rápida. Simplificación: proceso por el que se elimina información que bajo algún criterio resulte innecesaria o insignificante. Introducción Tema 1: Modelado poligonal 5

Hoy veremos... 1 Introducción 2 Orígenes de información poligonal 3 Representación 4 La Normal 5 Consolidación 6 Poĺıgonos y OpenGL Orígenes de información poligonal Tema 1: Modelado poligonal 6

Orígenes de información poligonal Posibles fuentes Describir la geometría a mano. Modelado procedural: programas que generan la geometría. Transformar datos de modelos de superficies o volumétricos. Programas de modelado. Muestreo de un modelo real, digitalizador 3D. Fotogrametría: reconstrucción 3D a partir de imágenes. Escaner 3D. Orígenes de información poligonal Tema 1: Modelado poligonal 7

Hoy veremos... 1 Introducción 2 Orígenes de información poligonal 3 Representación Caras independientes Vértices compartidos Tiras y abanicos de triángulos Tiras de triángulos generalizadas 4 La Normal 5 Consolidación 6 Poĺıgonos y OpenGL Representación Tema 1: Modelado poligonal 8

Mallas de triángulos Una malla representa una superficie donde vértices y aristas se comparten. La mayor parte de los modelos lo forman mallas de triángulos. Representación Tema 1: Modelado poligonal 9

Mallas de triángulos Es importante representarlos de manera eficiente para: Reducir el espacio de almacenamiento. Reducir el consumo de ancho de banda. Reducir el tiempo de dibujado. Tipos de representación: Caras independientes. Vértices compartidos. Tiras y abanicos de triángulos. Representación Tema 1: Modelado poligonal 10

Caras independientes Cada cara almacena sus vértices. (x3, y3, z3) F0 F1 (x4, y4, z4) F2 F3 (x5, y5, z5) s t r u c t t r i a n g u l o { vector3 coordenadas [ 3 ] ; } Triangulos [ ntriangulos ] ; (x0, y0, z0) (x1, y1, z1) (x2, y2, z2) Triangulos[] = { { x0, y0, z0, x1, y1, z1, x3, y3, z3 }, { x1, y1, z1, x4, y4, z4, x3, y3, z3 }, { x1, y1, z1, x2, y2, z2, x4, y4, z4 }, { x2, y2, z2, x5, y5, z5, x4, y4, z4 } } Representación Tema 1: Modelado poligonal 11

Vértices compartidos Cada cara almacena índices a una lista de vértices. (x3, y3, z3) F0 F1 (x4, y4, z4) F2 F3 (x5, y5, z5) s t r u c t v e r t i c e { f l o a t c o o r d e n a d a s [ 3 ] ; } V e r t i c e s [ nvertices ] ; s t r u c t t r i a n g u l o { unsigned i n t indices [ 3 ] ; } T r i a n g u l o s [ n T r i a n g u l o s ] ; (x0, y0, z0) Vertices[] = { {x0, y0, z0}, {x1, y1, z1}, {x2, y2, z2}, {x3, y3, z3}, {x4, y4, z4}, {x5, y5, z5} } (x1, y1, z1) (x2, y2, z2) Triangulos[] = { { 0, 1, 3 }, { 1, 4, 3 }, { 1, 2, 4 }, { 2, 5, 4 } } Representación Tema 1: Modelado poligonal 12

Ejercicio Dado un tetraedro, calcula la diferencia en bytes que existe entre almacenarlo utilizando el método de caras independientes y el de vértices compartidos. Asume que: cada vértice almacena tres coordenadas, y que almacenar una coordenada o un índice cuesta los mismo, es decir, 4 bytes. Representación Tema 1: Modelado poligonal 13

Tiras y abanicos de triángulos Incremento de prestaciones al enviar grupos de triángulos que comparten vértices, por qué se produce?, se produce siempre?, qué podemos concluir? v3 v0 v3 v0 v4 v1 v4 v1 v5 v5 v2 AbanicoTriangulos[] = { 1, 0, 3, 4, 5, 2 } v2 TiraTriangulos[] = { 0, 3, 1, 4, 2, 5 } Representación Tema 1: Modelado poligonal 14

Ejercicio Señala las secuencias de vértices correctas que representan la siguiente malla poligonal como una tira de triángulos (pueden haber varias respuestas correctas): 1 3 2 4 1 0 5 2 0 1 5 4 2 3 3 0 5 1 4 2 3 4 3 2 4 1 5 0 Representación Tema 1: Modelado poligonal 15

Tiras de triángulos generalizadas v6 v3 v4 v5 v3 v4 v5 v0 v1 v2 v0 v1 v2 Representación Tema 1: Modelado poligonal 16

Ejercicio Obtén una secuencia de vértices correcta que represente la siguiente malla poligonal como una única tira de triángulos. Representación Tema 1: Modelado poligonal 17

Hoy veremos... 1 Introducción 2 Orígenes de información poligonal 3 Representación 4 La Normal 5 Consolidación 6 Poĺıgonos y OpenGL La Normal Tema 1: Modelado poligonal 18

La Normal Es habitual que para cada vértice se almacenen atributos como el color, la normal o las coordenadas de textura. Estos atributos se interpolan a través de cada triángulo para definir una función continua sobre el total de la superficie de la malla. Y son necesarios para mejorar significativamente la calidad visual. La Normal Tema 1: Modelado poligonal 19

La Normal Uno de los atributos más importantes es la Normal. La normal es un vector perpendicular a la superficie en un punto, cómo obtenerla? Ya que el producto vectorial no es commutativo, hay que establecer un orden y obtener todas las normales de manera consistente. La Normal Tema 1: Modelado poligonal 20

Ejercicio Observa la siguiente descripción poligonal de un objeto. Las ĺıneas que comienzan por v se corresponden con los vértices e indican sus coordenadas. El primero es el número 1 y los demás se enumeran de forma consecutiva. Las ĺıneas que comienzan por f se corresponden con las caras e indican qué vertices lo forman. v 0 0 0 f 1 3 2 v 0 0 1 f 1 4 3 v 1 0 1 f 1 2 5 v 1 0 0 f 2 6 5 v 0 1 0 f 3 2 6 v 0 1 1 f 3 6 7 v 1 1 1 f 3 4 7 v 1 1 0 f 4 8 7 f 4 1 8 f 1 5 8 Dibújalo en papel, qué objeto representa? Están todas sus caras definidas en el mismo orden? En qué sentido están definidas, horario o antihorario? La Normal Tema 1: Modelado poligonal 21

Hoy veremos... 1 Introducción 2 Orígenes de información poligonal 3 Representación 4 La Normal 5 Consolidación 6 Poĺıgonos y OpenGL Consolidación Tema 1: Modelado poligonal 22

Consolidación Operaciones habituales Merging: transformar poĺıgonos que están almacenados como separados en una malla poligonal Orientación: hacer que las caras estén todas definidas en el mismo sentido Solidez: averiguar si solo un lado de la malla es visible Normales: calcular las normales en cada vértice, por qué? y qué ocurre en los pliegues? Consolidación Tema 1: Modelado poligonal 23

Ejercicios Busca en la bibliografía soluciones que te permitan implementar las operaciones de consolidación: Merging, Orientación y Solidez. Cómo calcularías la normal en un vértice? Ejercicio Describe un modelo poligonal de un Cubo de lado 1 centrado en el origen de coordenadas. Dibújalo en papel. Obten la lista de vértices y la de triángulos. Ten cuidado y define todas sus caras en el mismo orden. Cuántos vértices te salen? Añade ahora las normales para cada vértice. Tienes el mismo número de vértices? Consolidación Tema 1: Modelado poligonal 24

Hoy veremos... 1 Introducción 2 Orígenes de información poligonal 3 Representación 4 La Normal 5 Consolidación 6 Poĺıgonos y OpenGL Primitivas geométricas Modelado Visualización Poĺıgonos y OpenGL Tema 1: Modelado poligonal 25

Primitivas geométricas OpenGL no proporciona mecanismos para describir o modelar objetos geométricos complejos, sino que proporciona mecanismos para especificar cómo dichos objetos deben ser dibujados. El punto, el segmento de ĺınea y el triángulo. Cada primitiva se define especificando sus respectivos vértices. Dibujo de puntos: gl.points Dibujo de ĺıneas: Segmentos sueltos: gl.lines Secuencia o tira de segmentos: gl.line STRIP Secuencia cerrada de segmentos: gl.line LOOP Triángulos Triángulos sueltos: gl.triangles Tira de triángulos: gl.triangle STRIP Abanico de triángulos: gl.triangle FAN Las primitivas geométricas se forman agrupando vértices, y estas se agrupan a su vez para definir objetos de mayor complejidad. Poĺıgonos y OpenGL Tema 1: Modelado poligonal 26

Modelado Solemos asociar el concepto de vértice con las coordenadas. El concepto de vértice es más general entendiéndose como una agrupación de datos llamados atributos. Los atributos más utilizados son la posición, la normal y el color. El programador puede incluir como atributo cualquier información. Como OpenGL requiere que la información que vaya a visualizarse se disponga en vectores... s t r u c t v e r t i c e { G L f l o a t coordenadas [ 3 ] ; G L f l o a t c o l o r [ 3 ] ; } V e r t i c e s [ n V e r t i c e s ] ; s t r u c t t r i a n g u l o { GLuint i n d i c e s [ 3 ] ; } Triangulos [ ntriangulos ] ; Poĺıgonos y OpenGL Tema 1: Modelado poligonal 27

Visualización Tres pasos previos: 1 Almacenar el modelo poligonal en buffer objects. 2 Obtener los índices de las variables del Shader que representan los atributos de los vértices. 3 Especificar para cada atributo dónde y cómo se encuentran almacenados así como habilitar los vectores correspondientes. Dibujar indicando tipo de primitiva y número de elementos. Listado 1: Paso 1 i d B u f f e r V e r t i c e s = g l. c r e a t e B u f f e r ( ) ; g l. b i n d B u f f e r ( g l. ARRAY BUFFER, i d B u f f e r V e r t i c e s ) ; g l. b u f f e r D a t a ( g l. ARRAY BUFFER, new F l o a t 3 2 A r r a y ( V e r t i c e s ), g l. STATIC DRAW) ; i d B u f f e r I n d i c e s = g l. c r e a t e B u f f e r ( ) ; g l. b i n d B u f f e r ( g l. ELEMENT ARRAY BUFFER, i d B u f f e r I n d i c e s ) ; gl. bufferdata ( gl. ELEMENT ARRAY BUFFER, new Uint16Array ( Triangulos ), gl. STATIC DRAW) ; Poĺıgonos y OpenGL Tema 1: Modelado poligonal 28

Visualización Listado 2: Paso 2 <script id= vertexshadersource type= x shader /x vertex > a t t r i b u t e vec3 VertexPosition ; a t t r i b u t e vec3 VertexColor ; v a r y i n g vec4 colorout ; v o i d main ( ) { colorout = vec4 ( VertexColor, 1.0) ; gl Position = vec4 ( VertexPosition, 1. 0 ) ; } </s c r i p t > <s c r i p t i d= f r a g m e n t S h a d e r S o u r c e t y p e= x s h a d e r /x fragment > p r e c i s i o n mediump f l o a t ; v a r y i n g vec4 colorout ; v o i d main ( v o i d ) { g l F r a g C o l o r = colorout ; } </s c r i p t >... // c o m p i l a y e n l a z a e l Shader vertexpositionattribute = gl. getattriblocation ( program, VertexPosition ) ; v e r t e x C o l o r A t t r i b u t e = g l. g e t A t t r i b L o c a t i o n ( program, V e r t e x C o l o r ) ; Poĺıgonos y OpenGL Tema 1: Modelado poligonal 29

Visualización Listado 3: Paso 3 y dibujado g l. b i n d B u f f e r ( g l. ARRAY BUFFER, i d B u f f e r V e r t i c e s ) ; gl. vertexattribpointer ( vertexpositionattribute, 3, gl.float, false, 2 3 4, 0) ; gl. vertexattribpointer ( vertexcolorattribute, 3, gl.float, false, 2 3 4, 3 4) ; g l. e n a b l e V e r t e x A t t r i b A r r a y ( v e r t e x P o s i t i o n A t t r i b u t e ) ; g l. e n a b l e V e r t e x A t t r i b A r r a y ( v e r t e x C o l o r A t t r i b u t e ) ; g l. b i n d B u f f e r ( g l. ELEMENT ARRAY BUFFER, i d B u f f e r I n d i c e s ) ; gl. drawelements ( gl. TRIANGLES, ntriangulos 3, gl.unsigned SHORT, 0) ; Poĺıgonos y OpenGL Tema 1: Modelado poligonal 30

Ejercicio Contesta de manera razonada a cada una de las siguientes preguntas: Cuál es el número mínimo de buffers que necesitas en WebGL para almacenar un modelo poligonal que utiliza la representación de vértices compartidos si para cada vértice almacenas coordenadas y normal? Cuántos triángulos crees que se pintarían con la siguiente orden (ten en cuenta que al tratarse de una tira pueden haber triángulos degenerados): gl.drawelements(gl.triangle STRIP, 30, gl.unsigned SHORT, 12) Discute la veracidad de la siguiente afirmación: es interesante hacer que todas las caras de una malla poligonal estén orientadas de la misma forma ya que así una malla poligonal representada por vértices compartidos ocuparía menos espacio. Poĺıgonos y OpenGL Tema 1: Modelado poligonal 31