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