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:
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.
|