Consultar ensayos de calidad


Certificado - Espacio tridimensional, Fundamentos basicos del modelado en 3D, Visualización de Objetos



Representación de objetos en tres dimensiones
El diseño ayudado por ordenador representa un gran ahorro de esfuerzo y tiempo. Ademas se consiguen resultados extraordinarios con respecto a los procedimientos clasicos de diseño. Los programas de diseño industrial o arquitectónico admiten tres maneras de representación de objetos.


Modelos bidimensionales del objeto o parte de él. Se reproducen separadamente las diferentes caras, planos o cortes para ser estudiados y modificados. Normalmente se utiliza una representación formal del objeto, obteniendo sus vistas desde diferentes puntos de visualización. Se denominan vistas principales de un objeto, a las proyecciones ortogonales del mismo sobre 6 planos, dispuestos en forma de cubo. También se podría definir las vistas como, las proyecciones ortogonales de un objeto, según las distintas direcciones desde donde se mire. Si situamos un observador según las seis direcciones indicadas por las flechas, obtendríamos las seis vistas posibles de un objeto. 



Modelos tridimensionales que incluyan únicamente un conjunto de puntos y líneas en el espacio. Estos modelos se llaman “wireframe” o alambrado (armazón de alambre). El objeto así representado rota en diferentes angulos para su estudio o transformación definitiva. Existen varias formas de representación en modo wireframe: 
1. Representación alambrica: Activa este modo de sombreado. 
2. Representación alambrica det: Se muestran bordes alambricos e iluminación 
3. Area de trabajo: Muestra los objetos como area de trabajo solamente. El areade trabajo se define como la caja mas pequeña que abarca completamente un objeto.


Modelos sólidos que incluyen el dibujo de superficies y son los mas completos y complejos. 
1. Suavizado + Resaltes: Activa este modo de sombreado, que permite ver la homogeneidad e iluminación de los objetos. También puede presentar mapas en la superficie de objetos. Esto sucede mapa a mapa, pero puede presentar tantos mapas como desee simultaneamente en el visor. Los mapas sólo aparecen en objetos que tienen coordenadas de mapeado. 
2. Suavizado: Muestra suavizado, pero no resaltes 

Espacio tridimensional 

El espacio 3D es un espacio matematico virtual creado por el programa de diseño 3D. Este espacio esta definido por un sistema cartesiano de tres ejes: X, Y, Z. El punto donde salen las líneas virtuales que definen los ejes se llama origen y sus coordenadas son (0, 0, 0). En este espacio virtual se crean, modifican y disponen los diferentes objetos tridimensionales que van a componer la escena. 




Fundamentos basicos del modelado en 3D 

El 3D es una mera representación de coordenadas, que conforman estructuras envueltas por una textura. 
Por tanto, primero se deben construir un modelo, para ello hay técnicas de modelado comunes, en las cuales se encuentran: 


1. Estructuras Predefinidas: Aquellas estructuras ya armadas por el sistema. Existen tres tipos: 
1. Primitivas: caja, cono, esfera, geo esfera, cilindro, tubo, anillo, piramide, tetera y plano
2. Primitivas Extendidas: hedra, nudo toroide, caja 'redondeada', cilindro'redondeado', tanque de aceite, capsula, sprindle, forma L, gengon, forma c, anillo ondulado, hose, prisma. 
3. Librerías: son formas armadas, disponibles en 3d Max 7; puertas, ventanas, arboles, escaleras. 
2. Box Modeling: Como su nombre lo indica, es el modelado de figuras complejas a través de una caja. Empleando un modificador de mallas, Edith Mesh, podran ir extendiendo la caja, convirtiéndola en otra cosa. 
3. NURBS Modeling: Es una técnica para construir mallas de alta complejidad, de aspecto organico ó curvado, que emplea como punto de partida splines (figuras 2d) para mediante diversos métodos, crear la malla 3d anidando los splines. 

Renderizado

El renderizado es un proceso de calculo complejo desarrollado por un ordenador destinado a generar una imagen 2D a partir de una escena 3D. Así podría decirse que en el proceso de renderización, la computadora 'interpreta' la escena 3D y la plasma en una imagen 2D. 

La renderización se aplica a los graficos por ordenador, mas comúnmente a la infografía. En infografía este proceso se desarrolla con el fin de imitar un espacio 3D formado por estructuras poligonales, comportamiento de luces, texturas, materiales, animación, simulando ambientes y estructuras físicas verosímiles, etc. Una de la partes mas importantes de los programas dedicados a la infografía son los motores de render los cuales son capaces de realizar técnicas complejas como radiosidad, raytrace (trazador de rayos), canal alpha, reflexión, refracción, iluminación global, etc. 

Cuando se trabaja en un programa dediseño 3D por computadora, no es 
posible visualizar en tiempo real el acabado final deseado de una escena 3D compleja ya que esto requiere una potencia de calculo demasiado elevada. Por lo que se opta por crear el entorno 3D con una forma de visualización mas simple y técnica y luego generar el lento proceso de renderización para conseguir los esultados finales deseados. 


Proyecciones
En dos dimensiones, las operaciones de visión transfieren puntos bidimensionales en el plano coordenado mundial a puntos bidimensionales en el plano de coordenadas del dispositivo. Las definiciones de objetos, sujetados contra el marco de una ventana, se delinean en un puerto de visión (viewport). Estas coordenadas de dispositivo normalizadas se convierten después en coordenadas de dispositivo y el objeto se despliega en el dispositivo de salida. 
 
En tres dimensiones, la situación es un poco mas complicada, ya que ahora tenemos algunas alternativas como la forma en que se van a generar las vistas. Podríamos visualizar una escena desde el frente, desde arriba o bien desde atras. También podríamos generar una vista de lo que observaríamos si estuviéramos parados en medio de un grupo de objetos. Ademas, las descripciones tridimensionales de objetos deben proyectarse en la superficie de visión plana del dispositivo de salida. 

La visualización en nuestro caso significa información del mundo real en la pantalla. La visualización 2D son las operaciones de transferencia de puntos bidimensionales en el plano coordenado del mundo en el plano coordenadodel dispositivo. 

Existen dos métodos basicos para proyectar objetos tridimensionales sobre una superficie de visión bidimensional. Estas dos maneras, dependen de si todos los puntos del objeto pueden proyectarse sobre la superficie a lo largo de líneas paralelas o bien los puntos pueden proyectarse a lo largo de líneas que convergen a una posición denominada centro de proyección. En ambos casos, la intersección de una línea de proyección con la superficie de visión determina las coordenadas del punto proyectado sobre este plano de proyección. 


Proyecciones






Visualización de Objetos


El universo 3D entero no es completamente observable en una pantalla 2D.
Sino que solo una parte del mismo sera visible, en un determinado momento, bajo una determinada posición y orientación de camara.






La camara mencionada anteriormente representa el ojo desde el cual se esta observando el universo 3D en un determinado momento, y se la denomina Frustum. El Frustum es una figura geométrica de aspecto piramidal, que delimita la región de espacio del universo 3D que terminara siendo visible en pantalla.





Consiste en una piramide rectangular compuesto por seis planos: near plane, far plane, left plane, right plane, top plane y bottom plane. El volumen encerrado entre estos planos dependera de los valores configurados de la camara: Position: lugar en el espacio en donde se encuentra la camara, en un momento determinado

Look at: dirección hacia donde apunta la camara en un momento determinado, partiendo desde laposición especificada anteriormente.

Near distance: distancia que existe entre la posición de la camara y el near plane del Frustum. Indica la distancia a partir de lo cual todo empieza a ser visible. Aquello que se encuentre entre la camara y el near plane, es decir, demasiado cerca al ojo de la camara, no sera visible.

Far distance: distancia maxima a la que un objeto sera visible. Determina la posición del far plane del Frustum. Es analogo a la visibilidad maxima que puede ver el ojo.

Aspect Ratio: es relación entre el ancho y el alto de la pantalla 2D sobre la que se va a proyectar el mundo 3D. Se calcula dividiendo el ancho de la pantalla por el alto de la misma. Ratio = width / height

FOV: indica el angulo de visión respecto del eje Y. Es lo que determina el ensanchamiento de la piramide del Frustum, desde el near plane al far plane. Normalmente toma un valor entre 40° y 60°.

Todos los triangulos de todos los modelos del universo 3D que se encuentren dentro del volumen del Frustum seran visibles en pantalla (exceptuando aquellos que se interponen ante otros). Aquellos triangulos que se encuentran parte dentro del Frustum y parte afuera, seran recortados hasta dejar solo la parte de los mismos que es visible (triangle splitting). A este proceso de determinar que triangulos caen dentro del volumen de visión se lo denomina Frustum Culling, y puede ser realizado en distintas etapas: a nivel de la aplicación o directamente por el adaptador de video.





Una vez que se ha calculado los triangulos que se encuentran dentrodel Frustum, habra que tener en cuenta que algunos estaran tapando a otros, en lo que respecta a al ojo de la camara. Por lo tanto no todos los triangulos dentro del Frustum terminaran convirtiéndose realmente en pixels de pantalla. A este proceso se lo denomina Occlusion Culling.





Por lo tanto el concepto de Rendering consiste en calcular, para una camara determinada, dentro de un universo 3D determinado, que pixels deberan ser dibujados en pantalla. El proceso de Rendering es bastante complejo e involucra varias etapas.

Gracias a la existencia de APIs graficas como OpenGL y DirectX, junto con el apoyo de los adaptadores de video, el programador normalmente no debe ocuparse de todo este proceso de transformación. Sino que se limita a especificar la geometría del mundo que quiere representar en el modelo lógico de 3D dimensiones, y luego la API grafica en cuestión sera la encargada de transformar ese mundo 3D en una matriz bidimensional de pixels.



Transformaciones Tridimensionales


Muchos de nuestros objetos del universo 3D seran estaticos, como paredes, terrenos y objetos de decoración, pero otros objetos requeriran movimiento. En 3D existen tres tipos de movimientos basicos que combinados conforman todas las alternativas necesarias. Estos movimientos se denominan transformaciones, dado que consisten en transformaciones lineales de coordenadas y son los siguientes

· Traslación (translation): consiste en mover cada punto por una distancia constante, en una dirección específica.



· Rotación(rotation): movimiento de un objeto siguiendo una ruta circular









· Escalado (scaling): incrementa o disminuye el tamaño de un objeto, por un factor de escalar.




Transformation Matrix

Para aplicar cada uno de los tres movimientos a una malla compuesta por triangulos, sería necesario desplazar cada uno de los vértices de la misma al lugar correspondiente.
Esta operación es engorrosa para objetos de mucha complejidad y se torna aún mas complicado cuando se quieren acumular movimientos, por ejemplo: trasladarse, luego rotar y luego volver a trasladarse.



Es por ello que las APIs graficas cuentan con una herramienta destinada a facilitar el movimiento de objetos denominada Transformation Matrix. Esta matriz tiene una estructura de 4x4








La matriz es utilizada para representar todas las transformaciones necesarias para mover un objeto 3D en el universo. Los valores contenidos en la matriz son utilizados para mover, rotar y escalar objetos. Cada fila de la matriz representa la coordenada en el universo de cada eje. La primer fila contiene la posición del eje X, la segunda del eje Y y la tercera del eje Z. Cada elemento de la matriz representa una porción de la transformación. La matriz es inicialmente cargada con la matriz identidad.

La ventaja de almacenar los movimientos de los objetos 3D con esta matriz y no con vectores sueltos es que todos los movimientos, rotaciones y escalados a hacer a un objeto en un cuadro de animación pueden almacenarse en una sola matriz. Esto es graciasa la multiplicación de matrices.

Si queremos mover un objeto, después rotarlo y luego volverlo a mover podemos crear las matrices necesarias para cada movimiento y luego multiplicarlas todas, y así obtener una sola matriz resultante que engloba todo el movimiento completo.



De esta forma, la API grafica solo recibe una única matriz que representa el movimiento total de un objeto 3D en un momento determinado, y se reduce el almacenamiento de memoria requerido.




Transformaciones Tridimensionales


Muchos de nuestros objetos del universo 3D seran estaticos, como paredes, terrenos y objetos de decoración, pero otros objetos requeriran movimiento. En 3D existen tres tipos de movimientos basicos que combinados conforman todas las alternativas necesarias. Estos movimientos se denominan transformaciones, dado que consisten en transformaciones lineales de coordenadas y son los siguientes

· Traslación (translation): consiste en mover cada punto por una distancia constante, en una dirección específica.



· Rotación (rotation): movimiento de un objeto siguiendo una ruta circular









· Escalado (scaling): incrementa o disminuye el tamaño de un objeto, por un factor de escalar.




Transformation Matrix

Para aplicar cada uno de los tres movimientos a una malla compuesta por triangulos, sería necesario desplazar cada uno de los vértices de la misma al lugar correspondiente.
Esta operación es engorrosa para objetos de mucha complejidad y se torna aún mas complicado cuando sequieren acumular movimientos, por ejemplo: trasladarse, luego rotar y luego volver a trasladarse.



Es por ello que las APIs graficas cuentan con una herramienta destinada a facilitar el movimiento de objetos denominada Transformation Matrix. Esta matriz tiene una estructura de 4x4








La matriz es utilizada para representar todas las transformaciones necesarias para mover un objeto 3D en el universo. Los valores contenidos en la matriz son utilizados para mover, rotar y escalar objetos. Cada fila de la matriz representa la coordenada en el universo de cada eje. La primer fila contiene la posición del eje X, la segunda del eje Y y la tercera del eje Z. Cada elemento de la matriz representa una porción de la transformación. La matriz es inicialmente cargada con la matriz identidad.

La ventaja de almacenar los movimientos de los objetos 3D con esta matriz y no con vectores sueltos es que todos los movimientos, rotaciones y escalados a hacer a un objeto en un cuadro de animación pueden almacenarse en una sola matriz. Esto es gracias a la multiplicación de matrices.

Si queremos mover un objeto, después rotarlo y luego volverlo a mover podemos crear las matrices necesarias para cada movimiento y luego multiplicarlas todas, y así obtener una sola matriz resultante que engloba todo el movimiento completo.



De esta forma, la API grafica solo recibe una única matriz que representa el movimiento total de un objeto 3D en un momento determinado, y se reduce el almacenamiento de memoria requerido.


Política de privacidad