150 likes | 371 Views
Describiendo formas. Construyendo objetos en computación gráfica. Definición de objetos 3D (1/3 ). not closed, simple polyline. Polígono simple, línea poligonal cerrada. Polígono no-simple, línea poligonal cerrada. convexo. cóncavo. Líneas y líneas poligonales:
E N D
Describiendoformas Construyendoobjetos en computacióngráfica
Definición de objetos 3D (1/3) not closed, simple polyline Polígono simple, línea poligonal cerrada Polígono no-simple, línea poligonal cerrada convexo cóncavo • Líneas y líneas poligonales: • Líneas poligonales: líneas dibujadas entre puntos ordenadas • Una línea poligonal cerrada es un polígono, un polígono simple no tiene intersecciones consigo mismo • Polígonos convexos y cóncavos: • Convexo: línea entre cualesquiera dos puntos está dentro del polígono • Cóncavo: al menos una línea entre dos puntos se sale del polígono
Definición de objetos 3D (2/3) Rectángulo Cuadrado Triángulo (x, y) (0, y) r (0, x) (0, 0) • Polígonos especiales • Triángulo • Cuadrado • Rectángulo • Círculos • Conjunto de todos los puntosequidistantes a un punto llamadocentro. • La distancia del centro es el radio r • La ecuación para un círculocentrado en (0,0) es r2 = x2 + y2
6 6 5 5 4 4 3 3 2 2 1 1 0 0 1 2 3 4 5 6 7 8 9 10 10 1 2 3 4 5 6 7 8 9 Definición de objetos 3D (3/3) • Un círculo se puede aproximar con un polígono de muchos lados. • Elipse alineada a un eje: un círculo escalado en la dirección x y/o y. Escalado 2 veces en el eje x y no escalada en el eje y. El ancho cambia de 3.5 a 7.
Representando formas E3 E2 V4 V2 V3 E4 E1 E0 V0 V1 • Tablas de vértices y aristas • Propósito general, mínima sobrecarga, razonablemente eficiente • Cada vértice se lista una sola vez • Cada arista es un par ordenado de índices de la lista de vértices • Suficiente para dibujar formas y ejecutar operaciones simples (transformaciones, puntos fuera/adentro) • Las aristas se declaran en sentido contrario a las agujas del reloj por convención
Splines (1/5) - representando curvas generales • Podemos representar cualquier línea poligonal con vértices y aristas. ¿Qué hay de las curvas? • No queremos almacenar curvas como gráficos raster (por aliasing, no es escalable, consume memoria). Necesitamos una representación matemática más eficiente. • Almacenar punto de control en una lista, encontrar una forma de interpolar suavemente entre ellos. • Aproximación lineal por partes • No es liso, se ve feo sin muchos puntos de control • Funciones trigonométricas • Difíciles de manipular y controlar, computacionalmente caro de computar • Polígonos de orden alto • Relativamente barato de computar, tan solo un poco más difícil de operar que las líneas poligonales
Splines(2/5) – tipos de splines y usos V0 Spline interpolante V3 V2 Spline aproximante V5 Aproximación porpolilínea V1 V4 Los splines existen aún fuera de las computadoras. Ahora se llaman curvas flexibles. • Interpolación polinomial se usa típicamente. Los splines son curvas paramétricas de segundo o tercer orden, manejado por puntos de control o vectores de control. • Usado por primeras veces en la industria automotriz y aérea para alcanzar suavidad - incluso pequeñas diferencias pueden hacer una gran diferencia en eficiencia y calidad • Usado para: • Representando formas lisas en 2D como delineados o en 3D usando "parches" parametrizados con dos variables: s y t (ver lámina XX) • Caminos de animación para hacer "tweening" entre fotogramas • Aproximar funciones "caras" (los polinomios son más baratos que log, sen, cos,...)
Splines(3/5) – curvas de Hermite w v • Líneas poligonales son interpolaciones lineales (polinomios de primer orden) entre puntos • Dados los puntos P y Q, la línea entre los dos está dada por la ecuación paramétrica: • (1-t) y t son llamadas funciones de ponderación para P y Q • Los splines son interpolaciones polinomiales de orden alto entre puntos • Como las interpolaciones lineales pero con funciones de poderación de orden más alto, permitiendo mejores aproximaciones / curvas más lisas • Una representación - curvas de Hermite (splineinterpolante): • Determinado por dos puntos de control P y Q, un vector tangente inicial v y un vector final tangente w. • Satisface:
Splines(4/5) – Ponderación de Hermite explicada • Splinespolinomiales tienen funciones de ponderación más complejas que las líneas • Coeficientes de P y Q ahora son polinomios de tercer grado. • En t = 0: • Coeficiente de P es 1, todos los demás 0 • Derivada del coeficiente de v es 1, derivada de todas las demás es 0 • En t = 1: • Coeficiente de Q es 1, todos los demás 0 • Derivada del coeficiente de w es 1, derivada de todas las demás es 0 • Se puede secuenciar para hacer curvas más complejas Funcionespolinomiales de ponderación en la ecuación de curva de Hermite 1 coeficiente de coeficiente de coeficiente de Coeficiente de (0, 0) 1
Splines (5/5) – Curvas de Bezier • La representación de Bezier es similar a la de Hermite • 4 puntos en vez de 2 puntos y 2 vectores (P1 … P4) • Posición inicial P1, vector tangente es P2 - P1 • Posición final P4, vector tangente es P4 - P3 • Esta representación permite que el spline sea almacenado como una lista de vértices junto con un parámetro global que describa la suavidad y continuidad • Los splines de Bezier son ampliamente utilizadas para la definición de fuentes (Adobe, Microsoft) • Ver el siguiente applet paramássobre splines. www.cs.brown.edu/exploratories/freeSoftware/repository/edu/brown/cs/exploratories/applets/bezierSplines/bezier_splines_guide.html Crédito de la imagen: http://miphol.com/muse/2008/04/25/Bezier-courbes-anim.gif
"Vértices en movimiento" - Definición de objetos • Una línea se dibuja trazando un punto mientras se mueve (una dimensión agregada) • Un rectángulo se dibuja trazando los vértices de una línea a medida que se nueve perpendicularmente a sí misma (2da dimensión agregada) • Un prisma rectangular se dibuja trazando los vértices de un rectángulo a medida que se mueve perpendicularmente a sí mismo (3ra dimensión) • Un círculo se dibuja trazando un punto rotando alrededor de una distancia fija a un punto central.
Construyendo primitivas 3D Crédito de la imagen(Stanford Bunny): http://mech.fsv.cvut.cz/~dr/papers/Habil/img1007.gif • Hechos de primitivas 2D y 1D • Los triángulos son los que más se utilizan • Muchos triángulos usados para un solo objeto es una malla triangular. Los splines se utilizan para describir bordes de los "parches" - se pueden "coser" para representar superficies curvas +
Mallas de triángulos Crédito de la imagen: http://upload.wikimedia.org/wikipedia/en/f/fb/Dolphin_triangle_mesh.png • La representación más común de las formas en tres dimensiones • Todos los vértices de un triángulo se garantizan que están en un solo plano (no es cierto para cuadriláteros u otros polígonos) • Su uniformidad hace que sea simple ejecutar operaciones de mallas, tales como subdivisión, simplificación, transformación, etc. • Muchas formas diferentes de representar mallas triangulares • Másinformación:http://en.wikipedia.org/wiki/polygon_mesh • Transformación y deformación demallas • Técnicas de generaciónprocedimental
Representación de mallas triangulares • Tablas de vértices y caras, análogo a las tablas de vértices y aristas 3D • Cada vértice se lista una sola vez, los triángulos se listan como tripletes ordenados de índices a la tabla de vértices • Aristas inferidas de los triángulos • A menudo es útil almacenar las caras asociadas a los vértices (ej. para computar normales: promedio de normales de los vértices de las normales de las caras que les rodean) • Los vértices se lista en orden contrario a las agujas del reloj en la tabla de caras. • Ahora no es sólo por convención. Este orden diferencia el frente y el trasero de una cara. v4 v7 f11 v8 f10 f8 f9 v6 f0 v5 f2 f1 f3 v0 v1 v2 Diagramausadobajolicencia Creative Commons Attribution license. Created by Ben Herila based on http://upload.wikimedia.org/wikipedia/en/thumb/2/2d/Mesh_fv.jpg/500px-Mesh_fv.jpg