Graficación Computacional 10: Representaciones de Objectos en 3D
Representación por planos ortogonales Elevación Ortográfica Malla de alambre Elevación de perfil Ortográfica Malla de alambre Plano Ortográfico Malla de alambre Vista en Perspectiva
Proyecciones ortogonales consistentes (portada de Gödel, Escher, Bach: An Eternal Golden Braid, de Douglas R. Hofstadter)
Planos (o cortes) ortogonales Plano sagittal Plano sagital Plano coronal (o frontal) Plano coronal (o frontal) Plano coronal (o frontal) Plano axial, transversal, transaxial o horizontal Plano axial, transversal, transaxial o horizontal Plano axial, transversal, transaxial o horizontal Notar diferencias con los planos usados en arquitectura, diseño Industrial e ingeniería civil.
Axial Sagital Coronal
Orthogonal slices: Axial (XY), Sagittal(YZ), Coronal (ZX) ZY X Y
Programas de Modelado 3D - CGI VRML Autocad 3DS Max (Autodesk ) Milkshape Maya trueSpace (Caligari Corporation) Blender MeshLab LightWave 3D Photoshop Suite CS4 Premium Softimage (Autodesk ) Electric Image Animation System Inventor (Autodesk ) LightWave 3D (NewTek) Zbrush (Pixologic) Poser …
Modelado en 3D mediante Poliedros y mallados poligonales Superficies analíticas: v. g., cuadráticas Representaciones por barrido Métodos de Geometría Sólida Constructiva (CSG). Las técnicas para representar datos 3D, pueden constituir más bien procesos de restauración y menos de modelado (que podría no preservar detalles de interés). Entonces se denominan en su conjunto: Reconstrucción 3D
Poliedros Conjuntos de caras poligonales (planas) que conforman una superficie cerrada (hay un interior desconectado del exterior). Dicha superficie puede presentar agujeros (como donas o pretzels) y concavidades. Las caras poligonales se denominan facetas. Los poliedros regulares son referidos como objetos gráficos estándar y usualmente se sobreentiende que son convexos y de genus 0 (sin concavidades ni agujeros). Una enciclopedia de poliedros aparece en: http://www.georgehart.com/virtual-polyhedra/vp.html http://bulatov.org/polyhedra/ Cuando un poliedro tiene gran cantidad de caras poligonales, pasa a denominarse mallado poligonal y puede ser no convexo. Como cualquier polígono puede descomponerse en triángulos, siempre pueden manejarse solamente mallados triangulares, simplificando la descripción, además de ser siempre planos. Diversos paquetes de software permiten definir superficies curvas, pero al final las convierten en malla poligonales para despliegue. Los poliedros se definen por los vértices de cada cara poligonal.
Poliedros convexos
Mallado triangular cerrado = poliedro complejo no convexo
Superficies Cuadráticas Superficies 3D descritas mediante ecuaciones cuadráticas: Esferas Elipsoides (o esferoides) Cilindros (hiperboloides degenerados) Toros (donas) y toroides Conos Paraboloides Hiperboloides Son un caso especial de las superficies polinomiales o algebraicas, a su vez un caso de las superficies analíticas.
Superficies Cuadráticas - Esferas Una superficie esférica, con radio r y centro en (x0, y0, z0) se define como el conjunto de puntos (x, y, z) que satisfacen: En forma paramétrica, con ángulos de latitud y longitud:
Superficies Cuadráticas: Esferas (cont…) Z Centro en el origen Coordenadas esféricas P =( x, y, z ) r φ θ X Y
Representaciones por barrido Generan objectos con simetrías translationales, rotacionales y otros tipos. Los objetos son especificados como una curva o forma bidimensional y un barrido (regla de desplazamiento en 3D) que mueve dicha forma a través de una región del espacio. Cuando el barrido es angular (giro de la forma alrededor de un eje), se forma una superficie de revolución. La regla de desplazamiento puede ser una curva en 3D. Puede agregarse un cambio gradual de la forma, a lo largo del barrido (escala, rotación, o cambio de forma). Si la forma es una recta, se obtienen superficies regladas. Si la forma y la curva son cerradas y la forma inicial coincid punto a punto con la forma final, se obtiene un objeto cerrado.
Representaciones por Barrido – Ejemplos I Eje de Rotación Un hiperboloide (derecha) es a la vez superficie cuadrática, de revolución y reglada (líneas inclinadas en un barrido circular).
Variedades con topología singular
Representaciones por Barrido – Ejemplos II Si se tiene una pila de siluetas distintas (por ejemplo, los contornos extraídos de un conjunto de imágenes de cortes seriados de tomografía, RMN, etc), entonces se forma un objeto 3D al construir las caras laterales, uniendo por ejemplo vértices cercanos en contornos contiguos, formando un mallado triangular. Algunos autores llaman a esta categoría cilindros generalizados. El mallado debe resolver cómo unir múltiples contornos por plano (por ejemplo: ramificaciones). “Efecto Shawarma”
Métodos de Geometría Sólida Constructiva (CSG) CSG realiza modelado de sólidos al generar un objeto a partir de operaciones de conjuntos (o lógicas): Unión U (equivalentemente oper booleana OR, )* Intersección (equivantemente AND, ) Complemento c “negativo” de una forma (cavidades). Diferencia \ : A\ B= A Bc (también se usa “-”) Otras operaciones pueden obtenerse de combinaciones: Diferencia simétrica: *Nota: recordar que U U
Métodos de Geometría Sólida Constructiva (CSG) Diferencia “quitar al cubo lo que tiene del cilindro” Intersección
Métodos de Geometría Sólida Constructiva (cont…) CSG usa un conjunto pequeño de primitivas: bloques, pirámides, esferas y conos Objetos sencillos (piezas) se forman mediante las operaciones de conjuntos (o también: como operaciones lógicas o booleanas). Las piezas o componentes pueden formar a su vez otros objetos más complejos (como en un mecano), permitiendo articular partes y formando una jerarquía. El proceso continúa hasta completar el modelado.
Métodos de Geometría Sólida Constructiva (cont…) Los modelos CSG son representados como árboles CSG Objecto CSG oper1 obj1 obj2 oper3 obj4 oper2 obj3
Métodos de Geometría Sólida Constructiva (cont…)
Métodos de Geometría Sólida Constructiva (cont…)
Ray-Casting El Ray casting (cast = molde) es una prueba de intersección y se aplica determinando los objectos intersectados por un conjunto de lineas paralelas, emanando del plano XY a lo largo del eje Z, por cada pixel en XY. Nota: no es sinónimo de ray-tracing, aunque puede considerarse como variante de trazado de rayos no recursivo, o de orden “0”, e incluye otras funciones, no siempre relacionadas con renderizado. El Ray Casting se usa típicamente para implementar operadores CSG cuando los objectos son descritos con representaciones de frontera (boundary) o superficie. El plano XY se denomina plano de disparo (firing plane). Ray casting tambien se refiere a técnicas de remoción de superficie oculta, registrando las intersecciones más cercanas. Esto define una imagen en XY denominada Z-buffer.
Ray-Casting (cont…)
Operación de Conjuntos Ray Casting: Ejemplo Operación de Conjuntos Límites de Superficie Unión Intersección Diferencia (obj2 \ obj1) A,D C,B B,D
Ray-Casting (cont…) Intersecciones a lo largo de cada rayo son calculadas y reordenadas de acuerdo a la distancia al plano de disparo. Los límites de la superficies para el objeto compuesto son determinados por las operaciones de conjunto especificadas. Los nodos de un árbol CSG pueden indicar componentes (primitivas o piezas), operadores (unión,…) entre las mismas, o propiedades materiales y otras, tales como grados de libertad para permitir movimientos articulados, por ejemplo. Pueden haber en la escena diferentes superficies: poliedros, cuadráticas, funciones implícitas, splines, etc.
Ray-Casting Tres estrategias: Contínua: se calculan las intersecciones de cada rayo analíticamente o con cada polígono de cada objeto en la escena. Barrido rápido en modelos geométricos (no es aplicable Bresenham). Discreta: Usando representaciones de ocupación espacial, el rayo recorre voxel por voxel hasta hallar uno ocupado; el atributo incluye características del objeto. Barrido lento, aún con Bresenham, y ocupa mucha memoria, pero es posible realizar el ray-casting sobre objetos arbitrariamente complejos, incluyendo fractales. Híbrida: Uso de arreglos de ocupación espacial jerárquicos (multi-resolución, o también mediante octrees); los voxeles a resolución intermedia contienen lista de objetos allí presentes (o funciones), sobre los que se calculan las intersecciones como en la estrategia continua, o bien, contienen arreglos de ocupación espacial a la máxima resolución.
Representación Híbrida: Arreglos de ocupación espacial + modelos geométricos El atributo del voxel a resolución intermedia (recorrido discreto), en vez de ser un escalar o vector, es un apuntador (dirección) a una lista de diversos objetos: por ejemplo triángulos o polígonos de un mallado, parte de una curva analítica, una primitiva geométrica (cubo), un punto y una función escalar implícita tal que f(x,y,z) = u define una isosuperficie. Alternativamente, el apuntador es a un volumen discreto a mayor resolución. f (x,y,z) =u
Bresenham Algorithm(s) Applications Other Bresenham 3D Applications (besides tracing discrete lines and curves and when traversing discrete space occupancy arrays = voxels): Z-buffer – multi Z-buffers for 3D reconstructs. from projections w occlusions (laser scaner) Ray-tracing / Ray-casting Rendering - recursive reflections, shadows Collision/object detection and CSG Picking by boundary detection of non-explicit object representations. MIP (Maximum of Intensity Projection) X-Ray simulation = Integrated intensity Other functions of ray path memory Volume Rendering, 3D transfer functions Displacement of discrete image operators (discrete neighborhoods and window kernels). Profile sampling – volume analysis on the flight Stereological probes – 2D/3D texture analysis, v.g., Ratio of Extrema Density, MWRDE,… Segmentation guided by radial and sampled profile-signatures Anisothropy analysis
Bresenham Algorithm(s) Applications Other Bresenham 3D Applications II: Spherical or elliptical MIP or Intensity Projection and other projections Normal projection on a surface Internal: Depth and thickness - data projection External/internal: Signed distance field sampling Mathematical Morphology-related processing/analysis Extract stereotomical planes (slices at any orientation) – volume resampling Extract/build (some) discrete ruled surfaces, and other non-linear paths and surfaces Scan volume in any orientation (linear) Roller buffers (sliding windows -incremental neighborhoods) for analysis (histograms, texture, etc). Any (discrete) path Most of the above applications over curvilinear paths and surfaces Generalized, geodesic roller buffers.
Visualización Paramétrica: Mapeo Superficial de Distribuciones de Información Local m, z Mapa del espesor del cráneo n
Aplicaciones del Algoritmo de Bresenham Bresenham 3D – Applications (when traversing discrete space occupancy arrays = voxels): Z-buffer (or Depth buffer) - mostly for hidden surface removal Ray-tracing / Ray-casting rendering - recursive reflections, shadows collision/object detection and CSG MIP (Maximum of Intensity Projection) X-Ray simulation = Integrated intensity Displacement of discrete image operators (discrete neighborhoods and window kernels). Profile sampling – volume analysis Stereology probe – 2D/3D texture analysis, v.g., Ratio of Extrema Density, MWRDE,… Segmentation guided by radial and sampled profile-signatures Anisothropy analysis Spherical, elliptical MIP and Intensity Projection Normal projection on a surface Internal: Depth and thickness - data projection External/internal: Signed distance field sampling Mathematical Morphology-related processing/analysis Extract stereotomical planes (slices at any orientation) – volume resampling Extract/build (some) discrete ruled surfaces Scan volume in any orientation (linear) Roller buffers (sliding windows -incremental neighborhoods) for analysis (histograms, texture, etc). Any (discrete) path Most of the above applications over curvilinear paths and surfaces Generalized, geodesic roller buffers.