Ir al Hogar Ver Índice Buscar Enlaces Acerda de nosotros

[LinuxFocus Image]
[Navegation Bar]
  Noticias   Archivos   Compa��as   Consejos 

El paquete de modelado/trazado "Minds Eye"

por Martin van Velsen


Introducci�n

�Qu� es Minds Eye?

Historia

Dise�o

Futuras tecnolog�as

Utilizaci�n

Introducci�n

MindsEye est� actualmente en fase de desarrollo. La mayor parte del trabajo se realiza bajo la interface. Esto significa que si usted intenta probar las partes actualmente funcionales, estas pueden variar de un d�a para otro. Nosotros creemos en un buen dise�o b�sico, antes que en dar a los usuarios herramientas con las que jugar . 

�Qu� es Minds Eye?

En la actualidad el mercado del modelado y el rendering est� dominado por caros paquetes de software comercial. MindsEye es (o ser�) la repuesta en freeware (gpl) a un paquete de software que pueda competir con estas versiones comerciales. Cogiendo lo mejor de ambas fuentes y con nuevas t�cnicas innovativas Minds Eye trata de ser en una plataforma completa para todo tipo de trabajos con gr�ficos 3D

Historia

Hace unos dos a�os, cuando Linux no era m�s que un sistema operativo para hackers, surgi� la idea de comenzar a trabajar en un programa de render/modelado/animaci�n para Linux. Inspirados por el trabajo de la gente de Gimp, nos pusimos a trabajar para ver si era posible crear otra maravilla similar. Durante un a�o, m�s o menos, trabajamos con varias ideas de dise�o. En un principio, comenz� de un modo err�neo. Se hicieron buzones a grupos de noticias para ver si hab�a gente interesada en unirse al proyecto. Recibimos montones de repuestas, y parec�a que no tendr�amos ning�n problema para comenzar el proyecto. El nombre, por aquel entonces, era Free-D. Un nombre que fue cambiado posteriormente por Minds Eye, dado que podr�a haber causado confusiones con el proyecto de las librer�as Free 3D. Muy lentamente el proyecto creci�. En el camino encontramos obst�culos que no ten�an nada que ver con el proyecto. Por ejemplo la gente ten�a una idea espec�fica sobre lo que quer�a ver mejorado. Por lo tanto en nuestra lista de correo, sol�amos ver discusiones constantes sobre las especificaciones en el dise�o. Tardamos m�s de un a�o en producir realmente algo de c�digo.

Dise�o

La parte m�s interesante de Minds Eye es su dise�o. Todas las partes son modulares, desde el elemento m�s peque�o hasta las partes m�s grandes como el modelador. En el coraz�n del programa est� lo que nosotros denominamos el n�cleo de Minds Eye. Esta pieza de software es incapaz de hacer por s� mismo ning�n tipo de trabajo gr�fico. En lugar de esto, se encarga de manejar todos los m�dulos y plug-ins. Se podr�a definir como un gran administrador de recursos. Es tambi�n el lugar donde se mantiene la estructura completa de los datos. Hay una diferencia esencial entre un m�dulo y un plug-in en Minds Eye. Un m�dulo es un trozo de c�digo, del cual tiene noticia el n�cleo. Un m�dulo puede ser cargado y descargado por el n�cleo. Cuando decimos que "tiene noticia de", nos referimos a que el n�cleo sabe algo sobre los m�dulos. Por ejemplo, el m�dulo de trabajo en red es una puerta que conecta varios n�cleos. El m�dulo de trabajo en red podr�a ser visto como un m�dulo tonto que reemplaza a uno de los otros m�dulos. Hasta el momento hemos definido un conjunto de m�dulos b�sicos, que son:
  • Trabajo en red
  • Editor de modelado
  • Editor de animaci�n
  • Editor de materiales
  • El m�dulo Entrada/Salida
�Quieres saber cu�l es la apariencia del programa en la actualidad? Aqu� est�:

Uno de los m�dulos es el m�dulo de animaci�n. Es b�sicamente un editor 3D especializado en animaci�n. Emplea nuestro gestor de vistas que a su vez usa nuestro c�digo gen�rico de vistas. Todo nuestro c�digo es modular y puede ser utilizado en otras partes del programa. Como ejemplo, en la pantalla de abajo se pude ver una esbozo del animador, con cuatro vistas.

Para la salida en 3D empleamos OpenGL. Los archivos de instalaci�n asumen que se est� empleando MesaGL si se trabaja bajo Linux. El conjunto de herramientas GUI que se puede ver en acci�n es el QT de TrollTech (http://www.troll.no). Nosotros hemos elegido este kit (biblioteca) porque presenta algunos elementos que necesit�bamos y que ning�n otro kit pod�a proporcionarnos (por lo menos al nivel GPL). En el momento que comenzamos, con Gtk no nos sent�amos con la suficiente confianza como para trabajar con �l. Adem�s nosotros ten�amos necesidades especiales que Gtk no era capaz de satisfacer y Qt s�.

Al igual que los otros programas comerciales, Minds Eye dispondr� de un editor de materiales. Como todas las otras partes el c�digo de este m�dulo est� basado en otro c�digo. Por ejemplo, las ventanas que muestren a los materiales tendr�n la misma fuente de luz que las ventanas de di�logo. Est�n derivadas del c�digo que muestra una esfera de OpenGL con varias propiedades. Las ventanas de vistas sabr�n c�mo tratar con todas estas propiedades. El editor de materiales s�lo tendr� que encargarse del control de todos los materiales y de los datos disponibles en ese momento. Como todas las partes del programa, la filosof�a es: divide todas las partes en su forma m�s b�sica. B�sicamente siguiendo el mismo camino que hizo a Unix del modo que es ahora.

Para la salida de render empleamos... cualquier cosa que encontramos. Algunos programas de renderizar ser�n usados internamente, como el SIPP. Otros renderizadores ser�n utilizados como programas externos. Todo depende de la naturaleza y complejidad del sistema sobre el que queramos realizar el render. Si el renderizador de salida es interno, b�sicamente ser� cargado como un plug-in. El m�dulo de render sabr� como tratar con �l y le ofrecer� una estructura de datos y un buffer para almacenar la imagen renderizada junto con algunos par�metros. En la actualidad estamos tratando con SIPP, POVRay y con Renderman, como programas de render, pero los desarrolladores no pueden a�adirles todo lo que quieren. Como todo lo dem�s de Minds Eye todos los interfaces tendr�n una API bien definida.

Futuras Tecnolog�as

MindsEye espera convertirse en un programa muy robusto desde el punto de vista de la arquitectura del software. Una gran cantidad de nuevas tecnolog�as ser�n incluidas y el programa podr�a funcionar muy bien como banco de pruebas para las nuevas t�cnicas de render y modelado. Las nuevas caracter�sticas que planeamos incluir son:
  • RCS for worlds
Es muy probable que en el futuro las escenas sean m�s grandes y complejas. Controlar estos grandes mundos entra�a una gran labor en s� misma. MindsEye quiere crear un modo sencillo de trabajar en una escena con m�s de un modelador a la vez. La posibilidad de hacer esto ahorra el tiempo de integraci�n y reduce el tiempo total del modelado. Una forma de hacerlo es desarrollar una especie de RCS (Revisi�n Control System) para escenas y mundos. Por ejemplo un modelador podr�a estar trabajando con una peque�a cantidad de datos en una gran escena. Estos datos estar�an bloqueados, para ese modelador. Otra gente podr�a trabajar con otras partes sin interferir con las partes bloqueadas por otros modeladores.
  • Programar al estilo LEGO®
Cada n�cleo de MindsEye no es nada m�s que una tarea y un controlador de recursos. Si se quiere activar cualquiera de los m�dulos habr� que utilizar el n�cleo. Una de las ventajas de tener un sistema basado en n�cleos es que se puede ver el conjunto de un modo similar al LEGO ©. Veamos como funciona este concepto en la vida real; bien, supongamos que tenemos una compa��a de animaci�n llamada Paxir. La compa��a est� trabajando en una nueva pel�cula y decide emplear Minds Eye como su principal plataforma de desarrollo. La compa��a est� acostumbrada a trabajar con grupos de modeladores y tiene un grupo central de render. Instalar ese tipo de sistema con MindsEye ser�a relativamente f�cil de conseguir. En cada m�quina, independientemente de la clase de plataforma o prop�sito, se instala un sistema simple de Minds Eye. Dependiendo del rol que deba desempe�ar esa m�quina, se le a�aden unos m�dulos u otros. Por tanto una parte de los dise�adores tendr�a un n�cleo y el m�dulo de modelado, junto con un m�dulo de render y un plug-in previo. El grupo de render por otro lado tendr�a el n�cleo y el m�dulo de trabajo en red junto con su plug-in favorito para render. Cada n�cleo comprender�a su papel y actuar�a en consecuencia.
  • Transparencia en trabajo en red
Tal y como se explic� en la secci�n anterior, el render en red deber�a ser mucho m�s flexible con Minds Eye. Lo que se pretende es encadenar una serie de n�cleos y hacer que cada uno de ellos, renderize una parte de la animaci�n. En efecto, cada n�cleo es responsable de su tarea aunque realmente son el m�dulo de render-modelado y el de render plug-in los que hacen el trabajo. A lo largo de todo el proceso de dise�o y el trabajo de programaci�n hay que tener en cuenta una arquitectura modular. Muchas ideas y conceptos deben ser tenidos en cuenta cuando se programa para este proyecto. El soporte para red es s�lo una peque�a parte pero como se puede observar es lo que se encuentra en el coraz�n de Minds Eye.

Utilizaci�n

Por el momento Minds Eye es un programa muy interesante desde el punto de vista del desarrollador/programador. Para el usuario en general no resulta tan �til. Estamos trabajando para conseguir un n�cleo muy bien hecho. Cuando est� acabado, las aplicaciones aparecer�n a gran velocidad. Se puede ver un ejemplo del modelador actual en la siguiente figura. Es MindsEye-0.5.19 en un escritorio de Enlightenment. En el modelador se puede observar una escena cargada que se llama rings5.nff. Minds Eye tiene la capacidad de cargar m�ltiples escenas. Aunque no hay soporte para muchos formatos de imagen, el c�digo que se encarga de cargar y salvar las escenas es muy flexible. Se est�n dise�ando y construyendo protocolos para a�adir din�micamente distintos tipos de archivos. Cada tipo se carga con el plug-in adecuado. MindsEye ser� capaz de activar un "escaneo" de plug-ins. Esto significa que los componentes ser�n a�adidos y quitados en el momento.

Traducido por Cesar Garc�a

Para m�s informaci�n:
http://mindseye.luna.net
http://yukon.genie.uottawa.ca/info/soft/nurbs (Libs needed)
http://www.troll.no (Libs needed) Lista de correo:
http://mailarchive.luna.nl/mindseye/

Formatos de ficheros:
http://www.mediatel.lu/workshop/graphic/3D_fileformat/h_format.html
http://www.dcs.ed.ac.uk/~Emxr/gfx/3d-hi.html
http://www.cgrg.ohio-state.edu/~smay/RManNotes/rmannotes.html
http://www.europa.com/~keithr/
http://www.sdsc.edu/vrml/
http://ourworld.compuserve.com/homepages/thbaier/

Mesa(OGL): http://ssec.ssec.wisc.edu/~brianp/Mesa.html
http://www.sgi.com/Technology/openGL/
ftp://iris.ssec.wisc.edu/pub/Mesa/
RayTracers:
Pov: http://www.povray.org/
http://www.geocities.com/SiliconValley/Lakes/1434/
http://www.europa.com/~keithr/
BMRT: http://www.seas.gwu.edu/student/gritz/bmrt.html

Otros modeladores:
http://www.cs.ubc.ca/nest/imager/contributions/forsey/dragon/top.html
http://www.comp.lancs.ac.uk/computing/users/andy/ac3d.html
http://http.cs.berkeley.edu/~schenney/sced/sced.html
http://users.aimnet.com/~clifton/spatch/spatch.html (Este sitio tiene una gran cantidad de cosas utiles)
http://www.seas.gwu.edu/student/gritz/rmanlinks.html

QT:
http://www.troll.no

Nurbs:
http://yukon.genie.uottawa.ca/info/soft/nurbs
http://www.cs.ubc.ca/nest/imager/contributions/forsey/dragon/top.html

Proyectos similares:
http://www.fpa-engineers.com/OD/
http://www.cybersociety.com/moonlight
http://www.geocities.com/SiliconValley/Lakes/7705/Virtuoso.html

Otros lugares de inter�s:
http://www.ics.uci.edu/~eppstein/gina/csg.html
http://www.cgrg.ohio-state.edu/~smay/AL/
http://www.XCF.Berkeley.EDU/~gimp/gimp.html
http://www.cs.umn.edu/~amundson/gtk/
http://arch.hku.hk/people/matchy/Tcl.html
http://metallica.prakinf.tu-ilmenau.de/Generic/Generic.html
http://www.mdstud.chalmers.se/~md3msns/rayeng.html
http://cg.cs.tu-berlin.de/~ki/engines.html
http://www.cs.rpi.edu/~martink/
http://www.coolfun.com
http://www.grimmware.com/CrystalSpace/
http://www.cs.technion.ac.il/~gershon/irit/
ftp://ftp.eecs.umich.edu/.0/people/aprakash/collaboration/papers/CSE-TR-156-14.ps.gz  
 

© 1998 Martin van Velsen
P�ginas web mantenidas por Miguel A Sepulveda.