GRAFICACIÓN
3D
REPRESENTACION
DE OBJETOS EN TRES DIMENSIONES
La representación gráfica en 3D ofrece la
posibilidad de crear mundos virtuales en un ordenador, lo cual unido a la
visualización permite al usuario explorar y entender, rápidamente, sistemas complicados.
Esto es posible gracias al avance de lenguajes orientados a objetos, que
ofrecen la posibilidad de crear software de mejor calidad y más fácil de
mantener.
Entre las diferentes herramientas de visualización,
representación 3D y procesamiento de imágenes, cabe destacar VTK (Visualization
Toolkit), código abierto cuyo núcleo está implementado en C++ y que soporta envolturas
(“wrappers”) para TCL, Python y Java; permitiendo el desarrollo de aplicaciones
complejas de un modo eficiente y mediante scripts sencillos. Por todo ello, VTK
se emplea en la visualización médica, la visualización industrial,
reconstrucción de superficies a partir de digitalización láser o nubes de puntos
desorganizados, etc.
En lo que sigue veremos los conceptos básicos
en los que se basa VTK para poder generar una escena y, mediante una serie de
ejemplos, desarrollados en Python, llegaremos a crear nuestras propias escenas
de visualización.
VISUALIZACION
DE OBJETOS
Existen distintos modos de entender lo que es
una "grafica tridimensional", aunque todos se refieren a
ilustraciones que -en realidad- son solo bidimensionales. La forma ms conocida
-y antigua- es la estereoscópica, que se basa en la diferente visión de los dos
ojos y produce el efecto de profundidad mediante lentes con filtros rojo y
verde (uno para cada ojo).
Otra estuvo en pleno auge hace un par de años y
se conoce como "auto estereograma": son los "puntitos" que
no parecen representar nada pero, con buenos ojos, paciencia, esfuerzo para
desenfocar la vista (...y posteriores posibles dolores de cabeza) permiten ver
figuras con "profundidad".
Ambas técnicas se benefician hoy del computador
para su producción. Pero ninguna de estas permite obtener varias vistas de un
mismo objeto o de un mismo paisaje.
La técnica para esto es otra: es la que usan
arquitectos e ingenieros para diseñar edificios, muebles y máquinas. En otras
palabras, se necesitan planos o, ms precisamente, juegos de coordenadas de
todos los vértices, ecuaciones que representen los vectores (aristas rectas o
curvas) y muchos, muchos cálculos para hacer aparecer un objeto en cierta posición
y luego en otra. Y aún más instrucciones y cálculos para posicionar fuentes de
luz, proyectar sombras, ajustar colores en función de la distancia, etc. Esto
es lo que hizo las aplicaciones profesionales de CAD (diseño asistido por
computador) primero en grandes computadores o en máquinas especializadas
(estaciones gráficas) y hoy se están popularizando como aplicaciones de 3D al
alcance de cualquier aficionado. Por cierto se necesita siempre cierto
"poder de cómputo" y no cualquier Macintosh o PC sirve.
TRANSFORMACIONES
TRIDIMENSIONALES
Las transformaciones tridimensionales se pueden
representar con matrices de 4 X 4, siempre y cuando usemos representaciones de
coordenadas homogéneas de los puntos en el espacio tridimensional. Así, en
lugar de representar un punto como (x, y, z), lo hacemos como (x, y, z, W),
donde dos de estos cuádruplos representan el mismo punto si uno es un
multiplicador distinto de cero del otro: no se permite el cuádruplo (0, 0, 0,
0). Como sucede en el espacio bidimensional, la representación estándar de un
punto (x, y, z, W) con W ≠ 0 se indica (x/W, y/W, z/W, 1).
La transformación de un punto a esta forma se denomina
homogeneización, igual que antes. Además los puntos cuya coordenada W es cero
se llaman puntos en el infinito.
Las transformaciones geométricas
tridimensionales que se estudian son tres en concreto: traslación, escalado y
rotación.
TRASLACIÓN
Nos permitirá cambiar la posición de un objeto,
moviéndolo en línea recta desde una posición inicial a la posición final.
Requiere 3 parámetros:
Tx = Desplazamiento en X
Ty = Desplazamiento en Y
Tz = Desplazamiento en Z
Las nuevas coordenadas se obtienen mediante las
siguientes ecuaciones:
x’= x+Tx
y’= y+Ty
z’= z+Tz
Donde:
Tx, Ty,Tz > 0 Desplazamiento positivo
Tx, Ty,Tz < 0 Desplazamiento negativo
Tx,Ty,Tz = 0 No hay desplazamiento
La matriz que utilizamos en la Traslación es
de la forma:
Y al realizar la matriz el resultado grafico es
el siguiente:
ESCALACION
La matriz para la transformación de escalación
de una posición P = (x, y, z) con respecto del origen de las coordenadas.
Consiste en cambiar el tamaño de un objeto. Las nuevas coordenadas se obtienen
mediante las siguientes ecuaciones:
− x’= x Sx
− y’= y Sy
− z’= z Sz
Requiere 3 parámetros:
Sx = Factor de escalación en X
Sy = Factor de escalación en Y
Sz = Factor de escalación en Z
Sx,Sy,Sz > 1 Aumenta la dimensión
Sx,Sy,Sz < 1 Disminuye la dimensión
Sx,Sy,Sz = 1 Se mantiene la dimensión
La matriz que se utiliza para la escalación es
de la forma:
La resultante de la matriz dentro de una
grafica tridimensional seria:
ROTACIÓN
Para generar una transformación de rotación,
debemos designar un eje de rotación respecto del cual girara el objeto, y la
cantidad de rotación angular, es decir, un ángulo (θ).
Una rotación tridimensional se puede
especificar alrededor de cualquier línea en el espacio.
Los ejes de rotación más fáciles de manejar son
aquellos paralelos a los ejes de coordenadas.
Los ángulos de rotación positiva producen giros
en el sentido opuesto a las manecillas del reloj con respecto al eje de una
coordenada, si el observador se encuentra viendo a lo largo de la mitad
positiva del eje hacia el origen de coordenadas.
Los ángulos de rotación positiva producen giros
en el sentido opuesto a las manecillas del reloj con respecto al eje de una
coordenada, si el observador se encuentra viendo a lo largo de la mitad
positiva del eje hacia el origen en coordenadas.
Se forma una matriz de rotación inversa al
sustituir el ángulo de rotación θ por –θ. Los valores negativos para los
ángulos de rotación generan rotaciones en una dirección en el sentido del
reloj, de modo que se produce la matriz identidad cuando se multiplica
cualquier matriz de rotación por su inverso.
Consiste en girar un objeto alrededor de uno de
los ejes de coordenadas. Respecto al eje Z
Por ejemplo, las nuevas coordenadas se obtienen
mediante las siguientes ecuaciones:
− x’= x cos(α)- y sen(α)
− y’= x sen(α)+ y cos(α)
− z’= z
Donde α es el ángulo de giro
Las matrices que se utilizan para cada eje de
coordenadas son las siguientes:
Y gráficamente los resultados son:
Rotación con respecto al eje X
Rotación con respecto al eje Y
Rotación con respecto al eje Z
COMPOSICION DE TRANSFORMACIONES TRIDIMENCIONEALES
La composición de transformaciones
tridimensionales es la transformación de dos traslaciones sucesivas.
Es decir que resulta de la multiplicación de
nuestra matriz de puntos de la figura original, por el resultado de la
multiplicación de la matriz de la primera traslación por la matriz de la
segunda traslación.
De esta manera de estas operaciones matriciales
obtenemos los nuevos puntos de nuestra figura trasladada.
LINEAS Y
SUPERFICIES CURVAS
Las representaciones de líneas y superficies
son de aplicación a los procesos de diseño de formas y de desarrollo de planos
constructivos. A los tradicionales puntos de vista de si debe determinarse la
enseñanza para todas las aplicaciones o por el contrario si debe consistir en
una formación de gran contenido geométrico-proyectivo se une la utilización de
ordenadores. Para conjugar estas tendencias el autor expone la representación
de curvas y superficies de aplicación técnica: Punto, recta, plano,
circunferencia, otras curvas planas, hélice cilíndrica, poliedros regulares,
superficies radiadas, esfera, etc. El estudio de algunas superficies como las
desarrollables, muy importantes en los trazados de construcción naval.
Finalmente analiza las ecuaciones analíticas, absolutamente imprescindibles
para su representación por ordenador.
Los métodos más eficientes para determinar la
visibilidad de objetos con superficies curvas son la proyección de rayos y los
métodos basados en árbol octal. Con la proyección de rayos, calculamos las
intersecciones entre los rayos y las superficies y localizamos la distancia de
intersección más pequeña a lo largo del trayecto del rayo. Con los arboles
octales, simplemente exploramos los nodos de adelante hacia atrás para
localizar los valores de color de superficie. Una vez definida una
representación en árbol octal a partir de las definiciones de entrada de los
objetos, todas las superficies visibles se identifican con el mismo tipo de
procesamiento.
No es necesario realizar ningún tipo especial
de consideración para diferentes tipos de superficies, ya sean curvas o de
cualquier otra clase. Una superficie curva también puede aproximarse mediante
una malla poligonal, y entonces podemos utilizar algunos de los métodos de
identificación de superficies visibles previamente expuestos. Pero para algunos
objetos, como las esferas, puede que sea más eficiente, además de más preciso
utilizar el método de proyección de rayos y las ecuaciones que describen la
superficie curva.
Representación de superficies curvas Podemos
representar una superficie como una ecuación implícita de la forma
f(x,y,z)=0
O con una representación peramétrica. Las
superficies de tipo spline, por ejemplo, se suelen describir mediante ecuaciones para métricas.
En algunos casos, resulta útil obtener una
ecuación explicita de la superficie, como por ejemplo una ecuación que nos de
la altura con respecto a un plano de tierra xy: Z=f(x,y) Muchos objetos de
interés, como las esferas, elipsoides, cilindros y conos tienen representación
mediante ecuaciones cuadráticas.
Estas superficies se suelen utilizar comúnmente
para modelar estructuras moleculares, cojinetes, anillos y ejes. Los algoritmos
de líneas de barrido y de proyección de rayos requieren a menudo técnicas de
aproximación numérica para resolver la ecuación de la superficie en el punto de
intersección con una línea de barrido o con un rayo de un pixel. Se han
desarrollado diversas técnicas, incluyendo cálculos en paralelo e
implementaciones hardware de gran velocidad, para resolver las ecuaciones de
intersección con superficies curvas para los objetos más comúnmente utilizados.
Superficies cuadráticas
Una clase de objetos que se utiliza con
frecuencia son las superficies cuadráticas, se describen con ecuaciones de
segundo grado (cuadráticas). Incluyen elipsoides, toros, paraboloides e hiperboloides.
Las superficies cuadráticas particular las esferas y elipsoides, son elementos
comunes de las escenas gráficas y es frecuente que estén disponibles en los
paquetes de gráficas como primitivc los cuales se pueden elaborar objetos más
complejos.
Esfera
En las coordenadas cartesianas, una superficie
esférica con radio r que se centra en el origen de las coordenadas se define
como el conjunto de puntos (x, y, z) satisfacen la ecuación eje de x2 + y2 + z2
= r2. También podemos describir la superficie esférica en forma paramétrica, al
utilizar los ángulos de latitud y longitud (figura 10-8): x = r cos, -7r/2 <
$< ir/2
y = r eos $sen0, -77 < 8 < TT 2 = rsen
La representación paramétrica en las ecuaciones
10-8 proporciona un rango simétrico para los parámetros angulares 6 y. En forma
alternativa, podríamos despejar las ecuaciones paramétricas al utilizar coordenadas
esféricas estándar, donde el ángulo 6 se especifica como la latitud. Entonces,
0 se define obre el rango O < ó < K, y 0 con frecuencia se toma en el
rango O < 0 < 2n. También > podríamos establecer la representación al
utilizar los parámetros u y v definidos obre el rango de O a 1 al sustituir § -
nú y 0 = 2iw.
Elipsoide
Una superficie elipsoide se puede describir
como una extensión de una superficie esférica, donde los radios en tres
direcciones mutuamente perpendiculares entre si. una representación paramétrica
para la elipsoide en términos del ángulo de ititud $ y el ángulo de longitud 6
en la figura 10-8 es x = rv eos eos 9, y = ry coscasen8,
Toro
Un toro es un objeto en forma de dona, como se
ilustra en la figura 10-11. Se puede generar al girar una circunferencia u otro
cónico alrededor de un eje específico. Las presentaciones para métricas para un
toro son similares a las de una elipse, excepto que el ángulo se extiende a lo
largo de 360°. Al utilizar ángulos de latitud longitud <|) y 0, podemos
describir la superficie del toro como el conjunto de puntos eje satisfacen
x = rx(r + eos )cos 8, ~ TT < ^ < TT y =
r (j + cos(/> )sén#, —ir < 0< TT 2 = r,sen
Las llamadas curvas y superficies de Bézier.
Este tipo de curvas y su generalización a superficies proporcionan hoy en día
una de las principales herramientas para la representación de figuras en la
mayoría de aplicaciones del Diseño Asistido por Computador (CAD) y han dado
lugar a una rama de esta disciplina conocida con el nombre de Diseño Geométrico
Asistido por Computador (CAGD).
Las Curvas de Bézier se denominan curva de
Bezier a un método de definición de una curva en serie de potencias. El método
consiste en definir algunos puntos de control, a partir de los cuales se
calculan los puntos de la curva. Describiremos el método de construcción
recursivo conocido como algoritmo de De Castel jau.
Para dos puntos, la curva es un segmento recto,
definido en forma par amétrica por interpolación de los puntos extremos: P =
(1-u)P0 + uP1. Donde los Pi son los puntos de control y uÎ[0,1] el parámetro.
Las curvas de Bezier son adecuadas para representar tramos aislados de una
curva libre cualquiera. Para representar la curva entera, se puede hacer una
unión “suave” de varias curvas de Bezier.
La unión suave de curvas independientes se
denomina spline. Superficies Existen muchas variantes útiles para construir
superficies, la más sencilla de comprender es el producto cartesiano o tensorial
de curvas de Bezier o de NURBS. Para definir una superficie como un producto
cartesiano, debemos asumirla como una función de dos parámetros (u,v): En las
superficies, las condiciones de borde son mucho más importantes que para las
líneas, porque al renderizar se verán efectos luminosos indeseables si la
normal no pasa suavemente de un tramo a otro. Hay muchos tipos de superficies,
pero casi todos pueden traducirse o representarse como NURBS, a veces
recortadas. De hecho la mayoría de los paquetes de software (al menos los mas
técnicos) transforman cualquier otra posibilidad en una NURBS para el
intercambio de archivos
CONCLUSION:
Hoy
por hoy, la representación gráfica 3D y su visualización forman parte de
nuestra vida cotidiana; basta fijarse en el mundo del entretenimiento, en la
industria del juego y en el soporte de hardware y software para tales fines.
¿Quién en su ordenador personal no ha instalado un juego, visto una película,
renderizada en 3D?
No hay comentarios.:
Publicar un comentario