Editor de Escenarios 3D
        De La Cerda González Jorge Luis, Delgado Díaz Ramsés
        RESUMEN
        El mundo que nos rodea tiene un aspecto tridimensional. Nuestros ojos ven en tres dimensiones; aún cuando no pensamos acerca de ello, el entorno visual en su totalidad está dominado por imágenes en 3D. El Editor de escenarios 3D es un programa capaz de crear un escenario tridimensional (VR) que se parezca al mundo real. El escenario describe a todos los objetos que lo forman y a su posición, el tamaño, el color y demás características de los mismos. Se observa desde una cámara, también virtual, se desplaza dentro del espacio y realiza movimientos de una cámara real. Básicamente, a la hora de generar la imágen, se parte de un archivo de texto que posee una lista de objetos del mundo virtual, con su correspondiente definición de forma y propiedades gráficas. A partir de dicha información, se efectúa una serie de transformaciones geométricas donde se tienen en cuenta la posición del objeto y la del usuario, de forma que al proyectar el objeto en la pantalla aparezca con la adecuada perspectiva. También se efectúan una serie de cálculos para determinar el color de cada punto del objeto, tal y como lo verá el usuario, se tiene en cuenta aspectos como las fuentes de luz que existen en el escenario, la forma en que el objeto refleja la luz, etc. El resultado es una imagen del escenario tridimensional vista desde la posición que el usuario ocupa y con la capacidad de profundizar el escenario.

        OBJETIVO
        Los siguientes conceptos son de gran utilidad para que un sistema de realidad virtual al interactuar con el usuario cumpla con sus objetivos:
         

        • Capacidad Sintética.
        Las imágenes que en cada momento se presentan al usuario no están almacenadas en ninguna parte. Son imágenes sintéticas, generadas en tiempo real por el ordenador, de acuerdo a la posición que en ese momento ocupa el usuario dentro del mundo virtual. El usuario tiene una libertad casi ilimitada de movimiento, pudiendo situarse en cualquier punto que desee del mundo virtual, resultaría imposible calcular y almacenar las imágenes correspondientes a todas y cada una de las posibles posiciones. En lugar de ello, el ordenador mantiene una base de datos donde consta la forma de cada uno de los objetos y la posición que ocupa. Podríamos decir que, a la hora de generar la imagen, el ordenador recorre la lista de objetos, calcula cómo se vería cada uno desde la posición que el usuario ocupa, teniendo en cuenta la distancia, y lo dibuja en la correspondiente posición de la pantalla. Es decir, el mundo virtual no es un todo compacto, sino que está descompuesto en una serie de objetos. Las imágenes se sintetizan a partir de las correspondientes a cada uno de esos componentes.

        ºLos sistemas de VR contienen una representación abstracta del mundo virtual: cuáles son los objetos que lo componen, dónde están situados, cuáles son sus representaciones gráficas o sonoras, etc... a partir de la cual generan la información que luego presentarán al usuario.
         

        • Interactividad.
        Los sistemas de realidad virtual son capaces de sintetizar las imágenes en tiempo real, de acuerdo con las posiciones que ocupan los objetos y el propio usuario. Pero esa capacidad sólo tiene sentido precisamente para permitir al usuario interactuar con el sistema. Si el usuario no tuviera la posibilidad de influir sobre el estado del mundo virtual de ninguna forma, o cambiar su punto de vista del escenario, entonces no sería necesario sintetizar las imágenes, porque bastaría con grabar de antemano la película de lo que el usuario va a ver. En un sistema de VR, el usuario dispone de una mayor o menor dosis de control, pudiendo influir sobre lo que el sistema va a mostrarle. Esta característica está relacionada con la anterior: si no existiera interactividad, no sería necesaria la capacidad de sintetizar imágenes. Normalmente, los objetos que componen el mundo virtual tienen un cierto comportamiento asociado, y las acciones que esos objetos realicen se verán influidas por las del usuario. Así, es posible que en una aplicación de realidad virtual el usuario pueda desplazar un obstáculo, poner en marcha un mecanismo, o cualquier otra acción que haga que los objetos desaparezcan, cambien su representación gráfica o varíen su posición. Pero, aún cuando un sistema no proporcione al usuario ninguna posibilidad de influir sobre el estado del mundo virtual, al menos debe permitirle otro tipo más básico de interacción, que consiste en que el usuario cambie su punto de vista dentro del escenario. A esto es lo que conocemos como navegación del mundo virtual. En este tipo de aplicación, el usuario es un espectador del escenario, pero no completamente pasivo: puede desplazarse por el mismo para contemplarlo desde otro ángulo, o desde otra posición. Este tipo de aplicación, donde el usuario no tiene a su alcance ninguna otra forma de interacción, aparte de las facilidades de navegación, recibe el nombre de paseo virtual.
         
        • Tridimensionalidad
        El concepto de simular un mundo virtual interactivo mediante imágenes sintéticas no es nada extraño para nosotros. En un videojuego, un equipo informático más o menos sofisticado es utilizado con el fin de crear y presentar en la pantalla un mundo virtual más o menos fantástico. La mayoría de los videojuegos tradicionales son puramente bidimensionales, es decir, los objetos, el usuario y la cámara se desplazan sólo en una o dos dimensiones, de izquierda a derecha y de arriba a abajo de la pantalla, pero no existe movimiento de profundidad en la escena (es decir, hacia dentro de la pantalla).

        Para que un sistema pueda ser llamado de realidad virtual, es necesario que proporcione además la dimensión de profundidad dentro de la aplicación, no bastando con que la simule. Algunos juegos utilizan también una representación en tres dimensiones de las escenas, donde la cámara se desplaza siguiendo el punto de vista del usuario. Los objetos en este tipo de juegos están definidos mediante sus coordenadas tridimensionales ( se considera objeto 3D, a todo tipo de modelado cuyas coordenadas se hallen en los ejes X, Y, Z formados por un sistema vectorial -es decir, por ecuaciones matemáticas representadas por vectores-, que les permiten ser construidos y modificados en cada uno de sus componentes como los vértices, segmentos y polígonos en cualquiera de sus coordenadas espaciales), pero tienen una cierta posición en el espacio tridimensional a partir de la cual se generan las imágenes en tiempo real. Para ver si la condición de tridimensionalidad se cumple, la pregunta podría formularse de la siguiente manera. A la hora de calcular la imagen que se presentará en la pantalla, ¿efectúa el sistema algún tipo de proyección de los objetos sobre ella? Si es así, entonces es que los objetos tienen asociada una posición de "profundidad", y aparecerán una serie de fenómenos asociados a los mundos de tres dimensiones, como que el tamaño aparente de los objetos varia en función de su distancia del observador (usuario). Si el sistema no efectúa ningún tipo de proyección, entonces toda la generación de imágenes puede realizarse mediante técnicas puramente bidimensionales, y no se trata de un sistema de realidad virtual. Una de las principales claves de profundidad es la variación del tamaño aparente de los objetos con la distancia al observador, efecto que se conoce con el nombre de perspectiva lineal. Otra es la del paralaje, que es fenómeno por el cual, al desplazar lateralmente la cámara, los objetos más cercanos parecen desplazarse más que los más alejados.
         

        • Ilusión de realidad
        Para que un sistema pueda ser denominado de realidad virtual, debe además cumplir una cuarta condición: la de que el mundo virtual tenga apariencia de realidad. No es en absoluto necesario que el mundo virtual se parezca al mundo real. Basta con que parezca real. Esta condición no permite trazar un límite estricto entre lo que es y lo que no es un sistema de realidad virtual. Existen multitud de factores que influyen en la creación de una ilusión de realidad, y los sistemas de realidad virtual emplean mecanismos diversos para lograrlo. El que el usuario pueda sentir como real el mundo simulado va a depender de factores físicos como psicológicos.

        Factores Físicos.-
        Están relacionados con el "aspecto" del mundo virtual, es decir, con las percepciones (visuales, sonoras, táctiles, ... ) del usuario acerca de dicho mundo. El aspecto es más real cuantos más sentidos del usuario sea capaz de estimular el sistema, y cuanto más parecidas a las sensaciones reales sean esas representaciones artificiales.

        Los mecanismos utilizados por las aplicaciones de VR para poder recrear el aspecto real de los objetos son muy variados, y dependen del sentido que se pretenda estimular.

        Factores Psicológicos.-
        Están relacionados con la "naturaleza" del mundo virtual, tal como el usuario la percibe. Entre los principales factores está el de la interactividad. Las posibilidades de interacción que el mundo virtual ofrezca van a influir grandemente en la aceptación psicológica por parte del usuario: la ilusión de realidad será tanto más intensa cuantas más posibilidades de interacción se ofrezcan al usuario, y cuantas más posibilidades tenga éste de influir en el estado del mundo virtual. La facilidad de navegación que tiene una importancia fundamental a este respecto. Para que el usuario pueda aceptar como verosímil la tridimensionalidad del mundo simulado, es un requisito indispensable el que pueda desplazarse por él. En general, es el propio comportamiento del mundo virtual lo que el usuario va a valorar como verosímil o inverosímil. Esto incluye no sólo las respuestas a los estímulos del usuario, sino también el comportamiento autónomo de los objetos y, en general, todos los aspectos dinámicos del mundo virtual, es decir, cómo evoluciona. La ilusión de realidad es más intensa cuanto más "se comporte" el mundo virtual como si fuera real.

        REALIDAD VIRTUAL:
        La Realidad Virtual (VR) es un buen ejemplo de las últimas tecnologías 3D. Abarca hoy en día, distintos tipos de sistemas, aplicaciones y tecnologías, de forma que la tarea de definirlo de manera precisa es punto menos que imposible. Podemos definir un sistema de realidad virtual como un sistema interactivo que permite sintetizar un mundo tridimensional ficticio, creando en el usuario una ilusión de realidad. Los sistemas de realidad virtual sintetizan las imágenes a partir de la definición de los objetos incluidos en el escenario virtual, y teniendo en cuenta el estado de éste y la posición del usuario. Los sistemas de VR parten de una definición tridimensional del escenario virtual y los objetos que lo forman, y utilizan técnicas de tratamiento de gráficos tridimensionales (3D) para generar las imágenes. La característica principal del Editor de Escenarios 3D, como su nombre lo indica, es la inclusión de tres dimensiones virtuales representadas en los ejes de coordenadas X (altura), Y (anchura) y Z (profundidad). Las coordenadas espacio temporales de éstas son codificadas y almacenadas en un archivo de texto, ( incluso aquellas que quedan ocultas, sea por nuestra propia voluntad, sea por que se hallan detrás de otros situados en un primer plano ). Es posible girar estos elementos dentro de un espacio simulado y visualizarlos desde una cámara también virtual que puede desplazarse dentro del escenario y realizar los movimientos de una cámara real, pero además con la ventaja de no tener limitaciones físicas.

        En cuanto a la asignación de colores, materiales, o texturas aplicables a los objetos creados, por su cualidad tridimensional, son adaptados a la estructura, acompañándoles en cualquier cambio de posición espacial dentro del escenario. Todas estas características de manipulación de la imagen están codificadas y los parámetros que nos permiten manipularla son :
         

         a) Cromáticos: alterando el color en todas las gamas posibles.

        b) Morfológicos: cambiando la forma de un objeto.

        c) Dimensionales: moviendo los objetos en diferentes perspectivas y realizando rotaciones.

         
        La cualidad tridimensional, incluye perfectamente el uso de planos bidimensionales estáticos, así como la incorporación de texturas. Los colores utilizados en el Editor de Escenarios 3D están basados en el sistema RGB ( Red Green Blue ).

        DESARROLLO
        La pantalla de la computadora funciona como una ventana dentro de nuestro escenario 3D. Es necesario hacer proyecciones de polígonos dentro de la pantalla bidimensional utilizando funciones geométricas y trigonométricas para que los objetos dentro del escenario sufran transformaciones respecto al punto de vista del observador, y todo esto para crear la perspectiva adecuada que ofrezca la sensación de estar observando tres dimensiones. Tenemos así dos tipos de proyecciones: paralela y perspectiva.
         

        • Proyección Paralela
        En este tipo de proyección la pantalla es paralela al plano xy y el punto de vista del observador es paralelo al eje z del plano de visión. En esta proyección se descarta el eje z. Una proyección paralela se forma cuando se extienden líneas paralelas desde cada vértice del polígono hasta que dichas líneas intersectan el plano de la pantalla de la computadora. El punto de intersección con la pantalla es llamado proyección del vértice.
         
        • Proyección Perspectiva
        En la proyección perspectiva, la coordenada z es muy importante. La coordenada z nos da una forma de recorrer la escena basada en incrementar la distancia desde el observador hasta el horizonte. En la proyección perspectiva, mientras más lejano está un objeto del observador, más lejano aparecerá ese objeto. Este cambio de tamaño de un objeto basado en la distancia del objeto al observador es una importante forma de dar una referencia de la profundidad de un escenario. Cuando hay muchos objetos en una escena, los tamaños relativos de objetos similares ayudan a reforzar la sensación de profundidad.

        En la proyección perspectiva, las líneas de proyección no son líneas paralelas; son líneas que convergen en un punto llamado centro de proyección. El centro de proyección es la intersección de todas esas líneas convergentes con el plano de la pantalla que determinan la imagen proyectada. Para lograr la proyección perspectiva en el editor de escenarios 3D tomamos en cuenta lo siguiente: Si la coordenada z es pequeña, significa que el vértice está cerca, y aumentamos la posición xy de la proyección, si la coordenada z es grande, significa que el vértice del objeto está lejos, y disminuimos la posición xy de la proyección.

        En el Editor de Escenarios 3D los objetos tridimensionales dentro de un escenario se forman por medio de polígonos, mientras más polígonos tengamos mayor será el detalle en los objetos. Cuando aplicamos colores y texturas a los polígonos, logramos escenarios más reales. Las funciones utilizadas para manipular vectores de dos y tres dimensiones se basan en las técnicas básicas del álgebra lineal. Los vectores son utilizados para describir la geometría de un escenario tridimensional incluyendo las posiciones y orientaciones de todos los objetos, y el punto de vista relativo del observador. Un vector es una colección de números, 2 para representar un punto en el plano (X,Y) o 3 para un espacio 3D (X,Y,Z). Los vectores se utilizan también para definir direcciones, las cuales nos muestran en que dirección está orientada una superficie. Los vectores son transformados con multiplicaciones de las coordenadas vectoriales por matrices de 3 X 3 o 4 X 4. Uno de los aspectos más convenientes de las transformaciones de vectores es que cada tipo de transformación tridimensional puede ser representada por medio de una matriz de 4 X 4 y esas matrices individuales pueden ser multiplicadas juntas para producir una matriz que representa todas las operaciones de transformación deseada: rotación, cambio de tamaño y translación. Estas transformaciones nos permiten construir objetos complejos por medio de polígonos simples como triángulos y paralelogramos situados dentro de un escenario tridimensional.

        Para representar los componentes de un vector tridimensional se utiliza un tipo de variable con tres números de punto flotante (x,y,z). También se referie a los 3 vectores unitarios (vectores de longitud 1) i, j y k. Estos son definidos como:
         

        i (1,0,0)
        j (0,1,0)
        k (0,0,1)  
        y pueden ser manipulados como cualquier otro vector. Cualquier vector v(x,y,z) puede ser representado como la suma de los vectores i, j, k :
           v = xi + yj + zk   Esto es útil para comprender algunas de las otras operaciones con vectores como la rotación y el cambio de tamaño. El producto punto es una operación que se utiliza para determinar si se esta viendo o no la cara de un polígono particular en un objeto.

        El producto punto de dos vectores A y B es definido como:

         A · B = ab cos x
          a y b son las magnitudes de los vectores A y B y x es el ángulo entre los dos vectores.

        Está operación tiene propiedades interesantes:
         

          • Si producto punto = 0, entonces los vectores son perpendiculares.
          • Si producto punto = longitud(A) * longitud(B), entonces los vectores están alineados a lo largo de la misma dirección.
          • Si producto punto = -longitud(A) * longitud(B), entonces los dos vectores apuntan en direcciones exactamente opuestas.
        Para determinar la longitud de un vector se utiliza:
          longitud = Ö x2 + y2 + z2   Esta operación se utiliza también para determinar la distancia entre dos puntos de un espacio tridimensional. Cuando se desea cambiar el tamaño de un polígono, se cambia el tamaño de los vectores que lo forman, esto se hace por medio de una matriz con la que cambia el tamaño de cada componente del vector.

        Esta matriz es:

              x 0 0 0
        s = 0 y 0 0
              0 0 z 0
              0 0 0 1  
        Para rotar vectores en los ejes X, Y y Z también se usan matrices: La matriz para rotación en el eje X es:         1     0         0     0
        Rx = 0  cos X   sen   X 0
                 0 -sen X  -cos  X 0
                 0    0         0     1
        La matriz de rotación en el eje Y es:
                  cos    Y    0    -sen Y 0
        Ry = 0       1     0    0
                sin      Y    0    cos Y 0
                0         0    0    1  
        La matriz de rotación en el eje Z es:
         
                                                                          cos Z   sen Z   0    0
        Rz =  -sen Z  cos Z   0     0 0         0         1     0
        0         0         0    1  
        Para trasladar un vector a una nueva posición en el espacio también se utiliza una matriz.

        La matriz de translación es:

               1 0 0 -x
        T = 0 1 0 -y
               0 0 1 -z
               0 0 0 1  
        Es natural preguntarse por qué se usa una matriz de 4 X 4 cuando todos los vectores son tridimensionales. La respuesta es que incorporamos la translación dentro de una transformación de matriz sencilla. La primera columna de la matriz de 4 X 4 representa la translación del vector utilizando la multiplicación de matrices:

                                                b0    m00 m01 m02 m03 a0

        b1 = m10 m11 m12 m13 * a1
        b2    m20 m21 m22 m23 a2
        b3     m30 m31 m32 m33 a3  
        Donde a0 = 1.0 y a1, a2, a3 representan el vector tridimensional de entrada. Las m representan las matrices mostradas anteriormente y b0 = 1.0 y b1, b2, b3 es el vector resultante después de la transformación.

        RESULTADOS
        El resultado final es una imagen del escenario tridimensional vista desde la posición que el usuario ocupa, y cuya calidad será mayor o menor dependiendo de qué características gráficas de los objetos se tienen en cuenta y de los recursos de procesamiento. El Editor de Escenarios 3D logra una representación abstracta del mundo virtual: cuáles son los objetos que lo componen, dónde están situados, cuáles son sus representaciones gráficas a partir de la cual genera la información que luego presentará al usuario.

        RECOMENDACIONES
        Especificaciones del diseño:

        • El Editor de Escenarios 3D está realizado en el Lenguaje de Programación C++.
        Especificaciones del funcionamiento:
        • Para crear un escenario 3D es necesario almacenar la información del mismo en un archivo de texto, que funciona a manera de base de datos, éste contiene coordenadas de los objetos, colores y texturas. Una vez creada la base de datos se procede a ejecutar el programa con el nombre del archivo de texto como parámetro, hecho esto se despliega en pantalla el escenario creado y se puede explorar por medio del teclado, simulando una cámara virtual que puede realizar diversos movimientos en torno al escenario.
        • Se puede hacer girar la cámara virtual respecto al eje X o Y de -180º a +180º.
        • Emplazar la cámara virtual y el punto de vista en cualquiera de las coordenadas espaciales X, Y, Z, dentro de los límites del escenario tridimensional.
         
        Especificaciones de equipo:
        • Procesador 386 ó superior, de preferencia con coprocesador matemático.
        • Funciona en MS-DOS.
        • Uso de monitor VGA .
         
        CONCLUSIONES
        Como consecuencia, existen multitud de productos y componentes comerciales, tanto en hardware como en software, especializados en este tipo de técnica(3D).

        Para su creación se requieren de una serie de potentes equipos de procesamiento y de elaborados programas informáticos que permiten recrear el aspecto del mundo exterior en imágenes ficticias que lo asemejan y que permiten que el usuario tenga una sensación de que lo que ve existe en realidad.
         

        Contact Information

        Electronic mail address of  Juan Gilberto Mateos Suarez
        http://proton.ucting.udg.mx/~jmateos
        jmateos@proton.ucting.udg.mx
        Web address
        http://proton.ucting.udg.mx
         Back to Top
        Esta página y todos sus contenidos son copyright © UdeG © Marzo 1998
        Universidad de Guadalajara.
        Last revised:  11 Marzo de 1998.