ARTGRAPH: UN ENTORNO INTEGRADO DE DESARROLLO Y

Anuncio
ARTGRAPH: UN ENTORNO INTEGRADO DE DESARROLLO Y EJECUCIÓN
DE APLICACIONES 3D TIEMPO REAL
Autores:
Inmaculada Coma, Rafael Rodríguez, Marcos Fernández,
Elena Martínez, Pascual Caselles.
ARTEC Instituto de Robótica . Universidad de Valencia. C/Hugo de Moncada, 4. Valencia 46010.
[email protected]
Resumen.
Dos años atrás el grupo ARTEC, integrado en el Instituto de Robótica de la Universidad de
Valencia y dentro del marco de un proyecto Europeo ESPRIT (ARTIST – Animation Package For
Real-Time Simulation [1]) comenzó a portar y desarrollar la tecnología de visualización 3D tiempo
real desde plataformas de alto coste a sistemas basados en Windows NT. En este artículo se
explican los resultados de este proyecto. Éstos se centran principalmente en una herramienta de
Authoring y modelado 3D de escenas para simulación y visualización interactiva, y en una librería
de ejecución tiempo real que permite visualizar las escenas organizadas con dicha herramienta.
Ambos sistemas están basados en una organización jerárquica de la base de datos de uso común en
los sistemas de visualización tiempo-real. Se presentará en primer lugar dicha estructura realizando
un paralelismo con sistemas que emplean configuraciones similares y se comentarán las
extensiones realizadas a la misma, que se orientan al soporte de actores y estructuras de
información acerca de contigüidad espacial entre distintos elementos de la escena.
El hecho de que el entorno de edición y modelado tenga la misma estructura de visualización que el
de ejecución tiempo real permite al usuario comprobar durante el proceso de generación del
modelo/escena el comportamiento y el rendimiento que se obtendrá en tiempo de ejecución.
Posteriormente presentaremos las distintas capacidades de modelado y edición de escenas 3D de
ARTGRAPH, que incluyen la importación de formatos 3D de información geométrica para
reutilización de modelos, exportación de formato VRML, simplificación poligonal, reorganización
de mallas poligonales, edición de estructura jerárquica y grafo de escena, modelado basado en
texturas, modelado de carreteras, modelado de actores y gestión de comportamientos de bajo nivel,
etc.
Por su parte, la librería de ejecución, presenta un interfaz de programación abierto. Esto ofrece
flexibilidad al programador para manejar el grafo de escena e incluso añadir estructuras propias
ligadas a la jerarquía global. Ambos sistemas han sido programados sobre una librería estándar de
facto como es OpenGL, lo cual permite su portabilidad a distintas plataformas.
Finalmente se realizará un análisis de los resultados obtenidos referido a la nueva iniciativa de
estandarización en el campo de los gráficos 3D interactivos realizada por Microsoft y Silicon
Graphics y que conduce a la aparición del nuevo entorno Fahrenheit.
Palabras Clave.
Gráficos 3D interactivos, simulación, jerarquía de escena, modelado, composición de escenas,
OpenGl, Fahrenheit, estructuras articuladas, actores virtuales.
1
1. Introducción.
El incremento de las capacidades computacionales y gráficas de las plataformas basadas en el
sistema operativo Windows NT ha producido como consecuencia una mayor demanda de
aplicaciones 3D interactivas sobre estos entornos y un aumento en el número de aplicaciones que
pueden beneficiarse de esta tecnología. Sin embargo, así como en plataformas de alto coste existe
una larga tradición en producción de estas aplicaciones y se han desarrollado a lo largo de los años
librerías y herramientas orientadas a facilitar la producción de aplicaciones 3D tiempo real, el
mundo PC carecía de estas posibilidades (salvo raras excepciones) y era necesario realizar el
desarrollo a partir de librerías de bajo nivel. Otro hecho importante a tener en cuenta ha sido la
extensión del uso de una librería 3D de propósito general como es el caso de la OpenGL, que se ha
de facto en el campo de los gráficos interactivos, permitiendo una cierta
portabilidad de aplicaciones entre plataformas con distinto sistema operativo.
Lo dicho anteriormente llevó a plantear la necesidad de desarrollar un sistema de alto nivel que
facilitara la programación de aplicaciones 3D tiempo real para simulación y visualización con un
buen grado de rendimiento en entornos Windows NT. El proyecto trata de cubrir tanto la parte de
ejecución de aplicaciones como la parte de desarrollo y modelado de escenas con una estructura
óptima para su representación en tiempo real.
La aproximación al proyecto provino de la experiencia recogida por el grupo ARTEC en el
desarrollo de aplicaciones sobre plataformas Silicon Graphics donde la biblioteca de desarrollo
IRIS Performer [2] resuelve parte de los problemas abordados en nuestro proyecto. El hecho de
querer trabajar con gráficos interactivos, donde se desee tener un acceso a la geometría, conlleva la
necesidad de trabajar en modo inmediato al tiempo que se debe intentar mantener una estructura
capaz de aprovechar al máximo las capacidades hardware (si se dispone de ellas en el sistema).
Todo esto implica tener una organización jerárquica de la base de datos que permita realizar un
recorte de los elementos de la base de datos no visibles en cada frame, así como una óptima gestión
También es importante ofrecer a los desarrolladores de aplicaciones 3D una herramienta de fácil
manejo que ofrezca la posibilidad de configurar una jerarquía del tipo de la anteriormente citada, al
tiempo que pueda testear el rendimiento de la escena desarrollada sin necesidad de cambiar del
entorno de desarrollo al entorno de ejecución. Esto motivó el desarrollo de una herramienta
específica de modelado y edición de escenas 3D que se basa en la misma estructura de
visualización que el entorno en el cual se ejecuta la aplicación. Además el sistema debía ofrecer la
posibilidad de recuperar modelos realizados con otros paquetes no orientados a gráficos tiempo real
y optimizarlos para su uso en este tipo de entornos. Para ello se incluye un importador de formato
OBJ, y se han añadido herramientas de simplificación y reorganización de mallas poligonales que
permiten generar estructuras como t-meshes y Fans optimas para la visualización tiempo real [4].
El sistema también contempla la posibilidad de dar salida a formatos de representación de objetos
3D a través de Internet, como es el caso del VRML 2.0 [5] y que se encuentran en auge
actualmente.
En los próximos apartados desarrollaremos de forma más detallada los aspectos citados en esta
introducción, para finalizar realizando una reflexión sobre la evolución de los desarrollos
realizados de cara a mantener la compatiblidad con lo que parece que serán los futuros estándares
en este campo.
2
2. Extensión de la estructura jerárquica convencional.
En las aplicaciones 3D para tiempo real se utiliza una estructura jerárquica para la gestión de la
escena [6]. Esta estructura nos permite reducir al mínimo el coste de la visualización. El árbol que
representa la escena está compuesto por nodos, y se recorre partiendo del nodo raíz hasta llegar a
los nodos hojas o terminales. Los nodos intermedios normalmente realizan operaciones sobre sus
hijos, y los terminales contienen información geométrica de los objetos a representar.
Los nodos intermedios se incluyen dentro del árbol de visualización y nos permiten efectuar
transformaciones o aplicar propiedades sobre los hijos. Por ejemplo, los nodos de transformación
afín (DCS) aplican rotaciones, escalados o translaciones sobre los hijos. Los nodos de recorte por
visibilidad (CULL) nos permiten decidir qué parte de la escena no cae dentro del campo de visión,
para así reducir el número de polígonos a representar. Los nodos de nivel de detalle (LOD) son
también muy importantes en las aplicaciones para tiempo real, ya que nos permiten, una vez
diseñado un objeto con distintos niveles de detalle, seleccionar el objeto a visualizar durante el
recorrido del árbol. Además existen los nodos GRUPO, que agrupan varios objetos, los nodos
ASSEMBLY, que introducen una escena nueva contenida en un fichero dentro de la jerarquía, o los
nodos SWITCH, con los que seleccionamos la rama a dibujar, en función de alguna variable[7].
2.1. Tipos de nodos especiales.
En nuestra herramienta, además de los nodos nombrados anteriormente, se han introducido una
serie de nodos nuevos que nos permiten introducir nuevas funcionalidades. Estos son:
Nodos de comportamiento: ACTOR Y ESQUELETO. Estos nodos nos permiten construir figuras
articuladas, ya que contienen información sobre las conexiones entre los objetos. Los nodos
esqueleto definen las posiciones, grados de libertad y transformaciones del sistema de coordenadas
de una articulación. Al recorrerse la estructura jerárquica y llegar a un nodo esqueleto,
transformaremos la posición de sus hijos de acuerdo con los parámetros que contiene. Para generar
un simulación dinámica bastará con cambiar estos valores a lo largo del tiempo.
Nodos especiales para carreteras. Para el diseño de carreteras y su posterior utilización dentro de un
simulador, se han introducido tres tipos de nodos. Los nodos SEGMENTO, que contienen
información sobre los segmentos de carreteras rectos o curvos. Los nodos de INTERSECCIÓN,
para las intersecciones o tramos que unen dos o más segmentos de carreteras. Y por último los
nodos CARRIL, que contienen información sobre los carriles tanto de segmentos como de
intersecciones.
Nodos para modelado con superficies paramétricas y con geometría sólida constructiva: nodos
NURB, y nodos CSG.
Y por último, nodos LUZ y CÁMARA, que contienen información sobre las luces (propiedades
del color de la luz, posición, forma, atenuación y dirección del foco), y sobre las cámaras (campo
2.2. Jerarquía Poligonal Paralela.
Tanto las librerías gráficas como el HW especializado en el renderizado en tiempo real centran su
atención en el procesado rápido de polígonos. Esto hace que tan solo procesen bien aquellos
modelos que presenten una composición poligonal y que cualquier objeto que presente una
3
definición de otro tipo (superficies paramétricas, CSG´s, Metaballs, generadores de partículas,
etc.) deba ser facetado en una etapa previa al rendering.
Para poder representar estos objetos abstractos, introduciéndolos en una jerarquía de dibujado TR,
Artgraph permite definir nodos no poligonales y asociarles una jerarquía poligonal paralela con
una estructura compuesta de polígonos que lo represente visualmente (ver figura 1). El hecho de
que los nodos de la jerarquía de Artgraph puedan tener una estructura poligonal paralela asociada
es un recurso muy potente que permite insertar en la jerarquía TR entidades complejas no
poligonales dejando por tanto el entorno abierto a posibles ampliaciones (bastaría con definir un
nuevo tipo de nodo y funciones asociadas que lo gestionen).
Figura1. Estructura jerárquica de Artgraph para la gestión de una escena 3D en tiempo real.
2.3. Estructura de Grafo.
Para la edición y la evaluación de ciertos tipos de nodos, es necesaria la definición de relaciones de
continuidad espacial. Estas relaciones no se pueden reflejar en la jerarquía de la escena, que
controla la gestión de la visualización. Una característica fundamental de nuestra estructura
jerárquica es que permite la creación de grafos orientados entre los nodos presentes en la jerarquía
visual. La estructura de grafo se superpone a la de árbol, de tal forma que la segunda es utilizada
para la visualización de la escena y la primera para establecer relaciones espaciales de continuidad
entre los nodos, es decir, la información
2.4. Estructura de soporte para Actores Virtuales.
Las estructuras de simulación en tiempo real actuales concentran sus esfuerzos en la representación
de entornos estáticos, o con objetos que presentan movimientos simples (aviones,
resultan adecuados para gestionar las complejas estructuras articuladas necesarias para definir un
actor virtual. Por ello Artgraph aborda el problema haciendo dos ampliaciones de la jerarquía
tradicional.
La primera de ellas consiste en la definición de dos tipos de nodos específicos (Actor y Skeleton)
con una dependencia especial entre ellos. En la definición de un actor virtual intervienen un gran
4
número de nodos situados sobre la estructura jerárquica global. Para evitar esta dispersión de la
información del actor sobre el árbol jerárquico, y conseguir que el actor presente un aspecto
“encapsulado” se establece una relación de dependencia entre los nodos Skeleton y el nodo Actor al
que pertenecen. Esta dependencia consiste en que el nodo Actor contiene una lista con los valores
angulares de cada una de las articulaciones (nodos Skeleton), del tal modo que los nodos Skeleton
buscan sus valores angulares sobre el nodo Actor al que están vinculados. Con ello la complejidad
jerárquica de los actores virtuales resulta transparente al usuario, el cual tan solo tiene que
preocuparse de actualizar los valores del nodo Actor.
La segunda ampliación consiste en la definición de una Estructura de superclases de actores. Los
nodos de la estructura jerárquica contienen la información suficiente para definir la apariencia
geométrica del actor. Pero los actores son entidades complejas compuestos de muchos aspectos
además del geométrico, así necesitan informaciones de alto nivel
dinámica, métodos propios de desplazamiento, etc. . Esta informaciones, por no ser geométricas, no
deben de ir en los nodos de la jerarquía de dibujado, además estas informaciones pueden ser
compartidas por varios actores existentes en la escena (así por ejemplo el método de alto nivel para
caminar es común a todos los actores de tipo humano que existan en una simulación). Por ello es
necesario definir una estructura de superclases de actores, independiente de la jerarquía, que
almacene todas las informaciones de tipo lógico propias de una “especie” ( por ejemplo la especie
humano), y de la cual los actores concretos existentes en la jerarquía de dibujado (Pepe, Antonio ,
Felipe), son considerados como instancias, y por tanto comparten su estructura topológica y
métodos de alto nivel (mirar, caminar, etc.…).
3. Estructura Modular: Mensajes y Comandos.
Mientras que existen ciertas funciones y estructuras de datos básicas que representan las escenas y
las operaciones efectuadas sobre ellas de forma independiente de la plataforma (lo que
denominaremos núcleo o kernel del modelador), otras partes del sistema dependerán de librerías
determinadas adaptadas a diferentes equipos. Las dependencias se centrarán principalmente en lo
referente al interface de usuario (GUI) y a las funciones de visualización 3D. Por esta razón se ha
separado en diferentes módulos del sistema estos tres componentes (ver figura 2). La comunicación
entre ellos se efectúa por medio de mensajes. Por ejemplo, cuando el diseñador efectúa alguna
operación de edición (por ejemplo, mover un objeto) mediante
mensaje al kernel. Éste efectúa la operación y envía un mensaje al módulo de visualización para
que se redibujen las vistas correspondientes. Si el usuario cambia a la siguiente escena, después de
que el kernel efectúe los cambios correspondientes en la estructura de datos, se envía un mensaje al
módulo de interface para que reconfigure el GUI de acuerdo con la configuración de la escena, y
mensajes al módulo de visualización para que se redefina el contenido gráfico de las vistas.
Esta estructura modular ha permitido desarrollar la herramienta para dos tipos de plataformas: PC y
Silicon Graphics. Así, el núcleo central, o kernel, ha sido desarrollado en lenguaje de programación
El interface sobre Silicon ha sido diseñado con las Forms y
sobre PC con las MFCs de Windows. Y por último para las funciones de visualización se ha
utilizado la biblioteca OpenGL, también común actualmente en ambas plataformas.
5
Figura 2. Estructura modular básica y canales en la herramienta Artgraph.
Uno de los requerimientos más importantes de la herramienta de modelado es la necesidad de
permitir la operación de volver atrás deshaciendo las últimas operaciones de edición de forma
indefinida, así como almacenar éstas en una lista de comandos (script) de forma que se puedan
reproducir también en el mismo sentido en que fueron efectuadas. Para ello no es conveniente
almacenar los mensajes del GUI, ya que la interpretación de éstos depende del estado actual del
interface, y en particular de qué objetos hay seleccionados. Por ello se generan unos comandos (ver
figura 3) con un formato especial en el que se especifica la operación de edición y a qué objetos
afecta, de forma que sea ya independiente del estado actual del GUI. Al mismo tiempo se genera el
comando inverso, que permitirá efectuar la operación de deshacer.
Figura 3. Generación de la lista de comandos (script) y la lista de operaciones para deshacer.
4. Herramienta de Modelado orientado a Tiempo Real.
Actualmente existen muchas herramientas sofisticadas de modelado, si bien no muchas orientadas
a tiempo real. Por ello se han introducido una serie de funcionalidades básicas para permitir el
diseño de objetos. En nuestra herramienta se pueden modelar objetos tridimensionales de dos
formas, partiendo de primitivas poligonales, o partiendo de una textura.
6
Para el diseño a partir de polígonos, podemos introducir objetos (esfera, cubo, toro, rejilla...)
creados a partir de las primitivas básicas de OpenGL. Estos objetos tienen sus estructuras
orientadas a la visualización en tiempo real, por tanto no es necesario optimizarlos. Sobre dichos
objetos se pueden realizar operaciones básicas de modelado tales como unir objetos o vértices,
alinearlos, operaciones sobre normales, borrar meshes, etc. Se les puede poner también material
mediante un editor de materiales cuyas propiedades están basadas también en las que proporciona
la OpenGL (comportamiento frente a luz ambiente, difusa, emisiva, especular y transparencia del
objeto). Para el pegado de textura sobre objetos tenemos un editor de texturas que permite el
cálculo automático de las coordenadas de textura de los vértices del objeto, el pegado de dicha
textura con distintas formas de proyección : plana, cúbica, esférica o cilíndrica, y la manipulación
directa de las coordenadas de textura sobre el objeto, permitiendo la rotación y traslación de la
superficie de proyección. Para facilitar la tarea y evitar conversiones de formatos de texturas, este
editor nos permite cargar texturas en los siguientes formatos: rgb, gif, bmp y jpg.
Para facilitar las tareas de modelado y edición del escenario, se ha incluido un sistema de interface
3D configurable que permite realizar operaciones de manipulación directa sobre los objetos,
vértices, facetas, etc., de forma simple e intuitiva. (Ver figura 4).
Figura 4. Aspecto de la herramienta con manipulador 3D para traslaciones y editor de materiales.
En algunos casos resulta complicado encajar perfectamente la textura al objeto, por ello hemos
desarrollado otra forma de modelado, que es la creación de objetos a partir de textura.
para crear objetos de esta forma consiste en, partiendo de una textura, ir situando sobre ella los
puntos que queremos que formen el polígono. Cada uno de estos vértice tendrá asignadas las
coordenadas de textura del punto donde lo hayamos situado. Una vez situados todos los vértices, se
generan automáticamente los triángulos que formarán la malla poligonal. Esta malla tendrá
asignada la textura de la cual hemos partido, por lo que conseguimos geometrías con texturas
asociadas que serían muy difíciles de generar mediante cualquier método de proyección. Una vez
formada esta geometría, la información de textura por vértice se mantendrá y únicamente podremos
variar los vértices del objeto en 3D hasta darle la forma deseada. Ver figura 5.
7
Figura 5. Ejemplo de creación de un objeto 3D partiendo de una textura 2D.
5. Importación de Objetos y Adaptación para Tiempo Real.
La geometría de un objeto 3D se puede describir de diversas maneras : ecuación matemática de una
o varias superficies, una serie de vértices conectados formando polígonos adyacentes, etc. A la hora
de visualizar un objeto en tiempo real se suele recurrir a la descripción poligonal por razones de
eficiencia y por las actuales arquitecturas hardware de visualización 3D. Los polígonos empleados
Pero existen varias formas de organizar los vértices y triángulos de una superficie poligonal. La
manera en que se accede a estos vértices influye enormemente en la eficiencia de los algoritmos de
Las herramientas 3D más conocidas, tales como 3D Studio MAX, Alias/Wavefront, etc., generan
una estructura de datos conocida como polígonos indexados. Esta estructura de datos es adecuada
para operaciones de edición (modelado), pero presenta graves problemas de eficiencia para
Por otra parte, las librerías gráficas avanzadas, tales como GL y OpenGL, son capaces de procesar
estructuras de vértices especialmente concebidas para rendering en tiempo real, tales como la Tmesh.
Para poder incorporar objetos complejos desarrollados con estas herramientas (formato .OBJ), sin
sacrificar la eficiencia requerida en las aplicaciones tiempo real, Artgraph incluye un módulo que
convierte objetos descritos mediante polígonos indexados a T-mesh.
Una vez cargados estos objetos en Artgraph, necesitamos reducir la complejidad (número de
triángulos), y cambiar el tipo de primitiva básica (triángulos por T-mesh), y así adaptar a nuestras
necesidades los modelos obtenidos de estas herramientas. Para ello hemos desarrollado algunas
utilidades.
La primera utilidad es una herramienta de simplificación de objetos[8]. Ésta nos permite reducir el
número de polígonos de un objeto atendiendo a diversos criterios.
La simplificación se consigue eliminando sucesivamente vértices, aristas y triángulos de forma que
se mantenga lo mejor posible la geometría original. En cada caso habrá unas propiedades de la
geometría original que queramos mantener preferentemente. Podemos querer conservar las
normales de lo vértices, o mantener el color (con radiosidad precalculada). También se puede elegir
para el cálculo de error la distancia o curvatura: con distancia tenderán a eliminarse detalles
pequeños y con curvatura se podrán eliminar zonas grandes de pequeña curvatura.
Puede haber también zonas en las que no interese aplicar una simplificación elevada, pues la vista
se centra más en ellas y aunque todo el objeto tenga un error homogéneo al simplificar, resalte
demasiado este error. Un ejemplo puede ser un rostro humano: en este caso, aunque el error
cometido en la parte de atrás de la cabeza sea muy grande, un pequeño error en el rostro resultará
muy evidente. En estos casos tenemos la opción de bloquear los vértices que no deseamos que
sean eliminados durante el proceso de simplificación.
8
Por último, si el objeto tiene simetría con respecto a algún plano podemos especificar ese plano
obligándole a mantener esta simetría, de forma que si durante el proceso elimina algún vértice de
Durante el proceso de simplificación se van eliminando vértices del objeto, y por cada vértice
eliminado se calcula la nueva malla que forma el objeto. Este proceso no sólo es útil para reducir el
número de polígonos de un objeto importado de otro modelador, sino también para generar un
objeto con diferentes niveles de detalle. Ver figura 6.
Figura 6. Ejemplo de proceso de simplificación de un objeto triangulado.
Para conseguir que las primitivas básicas sean T-mesh en lugar de triángulos, hemos desarrollado
una segunda utilidad que calcula algunas de las T-mesh contenidas en un objeto.
Estas nuevas primitivas son utilizadas directamente por la OpengGL, y esto acelera el redibujado.
Por ejemplo, en las figuras siguiente (figura 7), para el mismo tamaño de ‘Viewport’, y con el
mismo PC, la primera, construida con triángulos tiene un frame rate de 9.1 , y la segunda, con Tmesh un frame rate de 14.0
9
Figura 7. Objeto construido con triángulos (izquierda) y con T-mesh (derecha).
6. Estructuras de datos para simulación.
Artgraph incluye una serie de nodos (segmento, intersección, carril), que juntos con la jerarquía
poligonal paralela, y la estructura de grafo permiten el diseño fácil de redes viarias[9].
En los nodos de carreteras almacenamos la información referente a las curvas de Bezier y sus
puntos de control, a partir de las cuales son creados los segmentos de carreteras. También tenemos
en estos nodos información sobre cuántos y cuáles son sus carriles, las señales de tráficos y los
semáforos que contiene, y los elementos decorativos creados en dichos segmento. En los nodos que
representan las intersecciones almacenamos los puntos que forman la intersección, sus carriles,
semáforos, etc. Ambos tipos de nodos se representan visualmente a través de la jerarquía poligonal
paralela, que contiene una serie de primitivas poligonales. Cuando variamos la forma de una
carretera a través de sus puntos de control, esta jerarquía es recalculada automáticamente.
Asociado con la generación del esquema de la carretera el sistema permite crear de forma
automática la decoración que acompaña a los distintos tramos de la red viaria. Como por ejemplo,
edificios, vallas, líneas de división de carriles, etc. Las propiedades de creación de éstos elementos
son configurables, así como las texturas, materiales, etc. Se incluye también un sencillo generador
de terrenos fractales que se ajustan automáticamente a la descripción del esquema de la carretera.
tenemos los nodos tipo carril. Estos nodos son creados automáticamente a partir de la
información del segmento o intersección al que pertenecen, y pueden ser visualizados si se desea
cambiar su forma manualmente. Esto se hace, al igual que en los tramos de carreteras, a través de
sus puntos de control. La utilidad de estos nodos es fundamentalmente la de poder realizar
simulaciones de tráfico. Así, cada nodo contiene información sobre el segmento o intersección al
que pertenece, sus carriles contiguos lateralmente y en los extremos y la densidad de tráfico que
soportan.
La estructura de base de datos generada por esta herramienta permite, en tiempo de ejecución, un
fácil control de la simulación de tráfico asociada con los distintos tramos de la red, ya que hay
información de contigüidad, densidades de tráfico soportadas, etc., que puede ser directamente
accedidas desde el programa de simulación, sin necesidad de tener que calcularlo a partir de
informaciones geométricas como ocurre en otro tipo de paquetes similares que no consideran este
7. Conclusiones y Trabajo Futuro.
Como conclusión final de lo presentado en este artículo podemos decir que ARTGRAPH
constituye un entorno de modelado, edición y ejecución de aplicaciones 3D tiempo real que cubre
la mayor parte de los tópicos presentes en este campo de la informática gráfica. ARTGRAPH
presenta además la ventaja de funcionar sobre plataformas de bajo coste y sobre un sistema
operativo Windows NT donde todavía se encuentra relativamente limitado el uso de aplicaciones
3D interactivas. ARTGRAPH incluye también algunos elementos no presentes en los paquetes
corrientes de edición 3D para tiempo real, como es el soporte de actores insertado dentro del grafo
10
general de escena, lo cual facilita su manipulación y sincronización con la gestión global de la
La introducción de la jerarquía poligonal paralela para la representación de primitivas que no tienen
su correspondiente directa sobre OpenGL ofrece una potencia adicional para el modelado y
representación de objetos que además se ha visto respaldada por la aparición de la nueva
OpenGL Optimizer que contempla una aproximación parecida para
el soporte de primitivas propias del mundo del CAD.
La próxima aparición de nuevos estándares en el campo de los gráficos 3D, que vendrá a unificar
de la mano del Fahrenheit los desarrollos sobre plataformas Windows NT y SGI marcará el trabajo
futuro a desarrollar sobre el sistema Artgraph. En una primera aproximación se realizará una
adaptación de la actual jerarquía de escena del Artgraph a la del Scene Graph que utilizará
Fahrenheit. En cuanto a la jerarquía poligonal paralela será representada a través de sus homólogas
Large Model Visualization – actual OpenGL Optimizer-) y realizando
extensiones de la misma en el caso de no ser soportada por la librería base. Con esto se asegurará
un mayor soporte del entorno de ejecución de Artgraph ya que será soportado directamente por SGI
y Microsoft. En cuanto al entorno de edición y modelado se añadirán nuevas adiciones en el
modulo de producción de VRML que permitan la edición y testeo de comportamientos dentro de la
herramienta.
Se pretende también que los desarrollos realizados se propagan a librerías avanzadas como IRIS
Performer en tanto en cuanto llegan las librerías anteriormente citadas. Para ello se desarrollaran
un representación de las nuevas estructuras de datos capaces de soportar
ACTORES SINTÉTICOS en tiempo real que han sido desarrolladas en el seno del proyecto. Esto
debe contribuir a facilitar e incrementar el numero de aplicaciones tiempo real que emplean
actores, facilitando su manipulación y manejo que hasta ahora se ve bastante restringido por la falta
11
Bibliografía.
[1] ARTIST ESPRIT E20102. "Functional Specification and Software Architecture". Mayo, 1996.
[2] J. Rohlf y J. Helman ."Irish Performer : A High Performance Multiprocessing Toolkit for RealTime 3D Graphics".Computer Graphics Proceeding. Annual Conference Series, 1994.
[3] Funkhouser T.A. "Adaptive Display Algorithm for Interactive Frame Rates During
Visualization of Complex Virtual Environments. Proceedings de ACM SIGGRAPH 93. Computer
Graphics. annual Conference Series, 1993.
[4] "OpenGL Programming Guide." Addison-Wesley Publishing Company.
[5] J. Hartman y J. Wernecke. "The VRML 2.0 Handbook." Addison Wesley. 1996.
[6] Foley y otros "Compute Graphics: principles and practice". Addison-Wesley. 1990.
[7] L. Pino. "Realidad Virtual". Paraninfo, 1995.
[8] Santonja y otros "Simplifación de mallas triangulares para su visualización en tiempo real".
CEIG'96.
[9] Bayarri y otros. "Sistema de formación vial asistido por simulación en tiempo real." CEIG'97.
Aspecto general de la herramienta Artgraph.
12
Descargar