14.04.2013 Views

COMPARATIVA DE MOTORES GRÁFICOS PARA VIDEOJUEGOS

COMPARATIVA DE MOTORES GRÁFICOS PARA VIDEOJUEGOS

COMPARATIVA DE MOTORES GRÁFICOS PARA VIDEOJUEGOS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>COM<strong>PARA</strong>TIVA</strong> <strong>DE</strong><br />

<strong>MOTORES</strong> <strong>GRÁFICOS</strong><br />

<strong>PARA</strong> VI<strong>DE</strong>OJUEGOS<br />

Jordi Catà v.1.0: 27-04-2002<br />

Jordi Catà v.2.0: 06-05-2002<br />

Revisado Àlex Méndez: 08-05-2002


TABLA <strong>DE</strong> CONTENIDOS<br />

PROBLEMA..................................................................................................................... 3<br />

ALTERNATIVAS ............................................................................................................ 3<br />

<strong>DE</strong>CISIÓN........................................................................................................................ 5<br />

CONCLUSIÓN................................................................................................................. 6<br />

ANEXO............................................................................................................................. 7<br />

<strong>DE</strong>SCRIPCIÓN CARACTERÍSTICAS....................................................................... 7<br />

Crystal Space............................................................................................................. 7<br />

Fly 3D....................................................................................................................... 7<br />

Unreal........................................................................................................................ 8<br />

Genesis 3D................................................................................................................ 8<br />

Torque (V12)............................................................................................................. 9<br />

Quake 2..................................................................................................................... 9<br />

TABLA <strong>DE</strong> CARACTERÍSTICAS ........................................................................... 10<br />

2


PROBLEMA<br />

Estamos interesados en implementar métodos de iluminación global, como por ejemplo<br />

las obscurances, en tiempo real, dentro de un motor gráfico pensado para videojuegos.<br />

De esta manera este documento refleja el análisis de las diferentes propuestas y tiene<br />

como objetivo la elección del que más se adecue a nuestras necesidades.<br />

ALTERNATIVAS<br />

Con la finalidad de elegir el motor gráfico en el que implementar los temas de<br />

iluminación global hacemos un análisis de diferentes paquetes. Los candidatos son:<br />

• Crystal Space<br />

• Fly3D<br />

• Unreal<br />

• Genesis3D<br />

• Torque (V12)<br />

• Quake 2<br />

A continuación se comentan brevemente las diferentes posibilidades. Es preciso<br />

comentar que en el Anexo se detallan las diferentes características de cada uno de ellos.<br />

• Crystal Space<br />

Desarrollado por Jorrit Tyberghein, basado en renderizado en portales, BSP, Z-<br />

Buffering y radiosidad. Entre todas sus principales características destacamos la gran<br />

portabilidad y la gran escalabilidad proporcionada por el sistema de plugins y,<br />

además, bajo licencia LGPL.<br />

Las plataformas soportadas son UNIX (Linux, y Solaris), DOS, Macintosh, Amiga,<br />

Windows, BeOS, NextStep, Rhapsody y ports OpenStep.<br />

Dirección www.crystal.sourceforge.net<br />

• Fly3D<br />

Desarrollado por Paralelo Computaçao, basado en renderitzado por árboles BSP, PVS y<br />

portales, entre sus características destacamos la escalabilidad proporcionada por su<br />

sistema de plugins.<br />

La plataforma que soporta es Windows.<br />

Licencia libre sin coste y acceso a todo el código fuente.<br />

3


Dirección www.fly3d.com.br<br />

• Unreal<br />

Motor gráfico del juego Unreal desarrollado por la empresa Epic MegaGames basado<br />

en una extensión del renderizado en portales conocido como Dynamic Scene Graph<br />

Technology (DSG), BSP y radiosidad. Su principal característica es la gran<br />

escalabilidad (muy modular).<br />

Se encuentra disponible para las plataformas Linux, Windows, Macintosh, Playstaion 2<br />

y Xbox.<br />

Para desarrollar con este motor se tiene que adquirir una licencia (USD 250.000 -<br />

USD 500.000) que da acceso a todo el código fuente, a las herramientas y juegos.<br />

Dirección www.epicgames.com<br />

• Genesis3D<br />

Desarrollado por Eclipse Entertainment basado en renderizado en portales, BSP y<br />

radiosidad.<br />

La única plataforma soportada es Windows.<br />

Bajo licencia libre y derecho a modificar el código fuente, a cambio de tener que<br />

mostrar el logotipo del motor en las aplicaciones que lo utilicen o bien bajo licencia<br />

comercial de coste USD 10,000 por título, para que no salga el logotipo de genesis 3D<br />

y código abierto.<br />

Dirección www.genesis3d.com<br />

• Torque (V12)<br />

Motor gráfico utilizado en el juego Tribes 2 de Dinamix basado en renderizado en<br />

portales.<br />

Desarrollado para las plataformas, tanto el cliente como el servidor, Windows, Mac OS<br />

9/X y en preparación Linux.<br />

Es necesaria licencia (USD 100) que da acceso al código fuente.<br />

• Quake 2<br />

Es el motor grafico del videojuego Quake 2, desarrollado por John Carmak de Id.<br />

Software. Se basa en el renderizado por árboles BSP y radiosidad.<br />

Soporta plataformas Windows, Linux i Macintosh.<br />

Su Licencia oscila entorno los 250.000 USD que da acceso al codigo fuente.<br />

4


<strong>DE</strong>CISIÓN<br />

Nos basamos en las siguientes características para decidir el motor que utilizaremos en<br />

el desarrollo:<br />

• Mínimo coste de obtención de licencia<br />

• Conocimiento previo.<br />

• Portabilidad.<br />

• Escalabilidad.<br />

Los diferentes aspectos son comentados a continuación:<br />

• El coste de los motores depende del tipo de licencia bajo la que se distribuye.<br />

Analizando las posibilidades observamos que tenemos tres tipos de licencia: Libre,<br />

LGPL y propias. Con licencia libre tenemos el Fly3D, con licencia LGPL tenemos<br />

el Crystal Space y bajo licencia propia encontramos el Unreal, Quake 2 y el<br />

Genesis3D.<br />

El motor de Unreal como ha sido comentado anteriormente se encuentra bajo<br />

licencia propia, en este caso implica que para poder desarrollar con este motor se<br />

debe adquirir una licencia que da acceso al código fuente, herramientas y juegos.<br />

Esta licencia puede costar del orden de USD 500.000, con lo que sobrepasa<br />

enormemente cualquier presupuesto de la universidad. Un caso parecido es el<br />

del motor de Quake 2, cuya licencia es de USD 250.000.<br />

Con el Genesis3D tenemos dos tipos de licencias propias, una libre y otra<br />

comercial. El primer caso nos encontramos con que al desarrollar una aplicación<br />

con este motor nos aparecerá al inicio de esta el logotipo de este, y además el<br />

código está sujeto a la licencia por consiguiente nuestro código será libre. En el<br />

segundo caso no nos aparece el logotipo y el código que desarrollemos no está<br />

sujeto a la licencia libre, y su costo suma USD 10.000 por título producido.<br />

Bajo licencia totalmente libre tenemos el Fly3D por lo que podemos modificar<br />

el código fuente y podemos utilizar parte de este para nuestros propósitos, sin<br />

tener que quedar afectados por ningún tipo de licencia.<br />

Por último encontramos el Crystal Space que se encuentra bajo licencia LGPL 1 ,<br />

por tanto podemos modificar el código libremente bajo ciertas condiciones.<br />

• Conocimiento previo: Varios de los componentes del equipo de gráficos en Girona<br />

y Castellón han utilizado previamente el motor de juegos Crystal Space, lo que<br />

supone un ganancia en tiempo de desarrollo al tener que estudiar de forma mínima<br />

el motor.<br />

1 LGPL: Lesser General Public License, o Licencia Pública General Menor es una licencia de costo libre<br />

pero que asegura que cualquier modificación del código o cualquier librería añadida sólo puede ser<br />

distribuida mediante la misma licencia LGPL. Para más información ver<br />

http://www.gnu.org/copyleft/lesser.html.<br />

5


• La Portabilidad, un factor que en parte nos condiciona por el hecho de poder<br />

desarrollar de una manera independiente de la plataforma. De esta forma tendremos<br />

un amplio abanico de sistemas donde escoger<br />

El motor más portable es el Crystal Space dando soporte para nueve<br />

plataformas, seguido por Unreal, cinco plataformas, y Torque y Quake 2, tres<br />

plataformas.<br />

• La escalabilidad del motor nos permite extender las posibilidades de éste<br />

añadiendo nuevas funciones y características por medio de plugins y/o módulos<br />

externos.<br />

De más a menos tenemos Unreal, Crystal Space y Fly3D que están basados en<br />

sistemas de plugins con la finalidad de extender sus funcionalidades.<br />

CONCLUSIÓN<br />

Haciendo un pequeño resumen observamos que Crystal Space reúne las condiciones<br />

para ser el motor de juegos elegido. Primero, no supone ningún coste económico, ya que<br />

tiene licencia LGPL y sus condiciones no nos aportan ningún problema, ya que las<br />

funcionalidades que nosotros añadamos pueden, en caso de ser distribuidas, ser LGPL<br />

igualmente. Segundo, es muy portable, lo que nos permite escoger la plataforma de<br />

desarrollo. En tercer lugar es muy escalable. En último lugar, y determinante para su<br />

elección, tenemos un conocimiento previo del motor, lo que supone ganancia en tiempo<br />

al no tener que estudiarlo previamente.<br />

6


ANEXO<br />

<strong>DE</strong>SCRIPCIÓN CARACTERÍSTICAS<br />

Crystal Space<br />

Las plataformas soportadas son UNIX (Linux, y Solaris), DOS, Macintosh, Amiga,<br />

Windows, BeOS, NextStep, Rhapsody y ports OpenStep.<br />

Las apis soportadas son OpenGL para Windows, Linux, Beos, Macintosh y OS/2,<br />

Direct3D para Windows y Glide para Linux y Windows.<br />

Renderizado en Sectores y Portales, BSP, Z-Buffer, Sistema de partículas, terrenos,<br />

radiosidad, C-buffer y superficies curvas y superficies reflectantes.<br />

Respecto las luces, soporta Lightmaps, Bumpmapping, Phong y Gouraud, luces<br />

dinámicas, multicolores y radiosidad precalculada para los Lightmaps.<br />

Los formatos con los que trabaja son 3DS, MD2 (Quake 2), OBJ, POV y ASE.<br />

Trebaja las texturas con Texture mapping, Mipmapping, Texturas procedurales,<br />

dinámicas y multitextura.<br />

Incorpora el lenguaje script Python y LUA.<br />

Su sistema de visibilidad esta basado en una combinación de portales, octrees, arboles<br />

BSP y C-buffer.<br />

Incorpora, a más, detección de colisiones basado en estructures jerárquicas de cajas<br />

englobantes, jerarquía de objetos, meshes progresivas con LOD, Sprites 2D y 3D,<br />

Superficies de Bezier, Motor de simulación de modelage dinámico (librería física).<br />

Fly 3D<br />

Las plataformas que soporta es Windows con OpenGL y Direct3D.<br />

El renderizado se basa en árboles BSP, PVS (Potencial Visibility Set) y Sistema de<br />

partículas.<br />

Implementa luces estáticas y dinámicas, sombras dinámicas soft-shadows, mapas de<br />

sombras dinámicas, Lightmaps y iluminación por vértice especular y difusa para objetos<br />

dinámicos.<br />

Incorpora textura detallada y multitextura.<br />

7


Otras características son sistema de plugins (DLL’s), sistema de detección de colisiones,<br />

Exportador / importador de 3Dstudio MAX, LOD para caras curvadas, Quake 3<br />

importador (geometría, texturas y superficies curvas), Inteligencia artificial (A*<br />

optimizado) y meshes animadas.<br />

Unreal<br />

Se encuentra disponible sobre las plataformas Linux, Windows, Macintosh, Playstaion<br />

2 y Xbox.<br />

Utiliza el sistema DSG ( Dynamic Scene Graph Technology ) que és una extensión<br />

natural del renderizado en portales, interpolación de meshes, radiosidad, árboles BSP,<br />

LOD, superficies curvas y superficies reflectantes.<br />

Incorpora luces multicolores, dinámicas, Lightmaps, Raytracing y enveloped lighting.<br />

Soporta nativamente el formato DXF<br />

En el tema de texturas incorpora Texture mapping, mapas de sombras, mapas de niebla,<br />

textura detallada para definir objetos muy detallados, texturas procedurales, texturas en<br />

tiempo real de ondas (océanos, lava, etc.), 12 niveles de mipmapping, animación de<br />

texturas (animadas), Texturas procedurales, dinámicas y multitextura.<br />

Trabaja con lenguaje script propio nombrado UnrealScript.<br />

De entre otros detalles destacamos: detección de colisiones cilíndrica, Superficies<br />

curvas con LOD, Mapas de entorno, Inteligencia Artificial avanzada (path-finding y<br />

sistema de navegación), Sistema físico adaptable, Sprites 3D, Sonido digital 3D.<br />

Genesis 3D<br />

La única plataforma soportada és Windows con las apis Direct3D y Glide.<br />

Renderizado por Portales, árboles BSP, radiosidad y LOD.<br />

Incorpora luces multicolores y dinámicas.<br />

Puede trabajar nativamente con el formato de ficheros de animación de 3Dstudio<br />

MAX.<br />

Texture mapping, textura translúcida, morphing de texturas, texturas animadas y<br />

procedurales.<br />

Además destacamos Sprites 3D, sombras dinámicas, jerarquía de objetos, detección de<br />

colisiones.<br />

8


Torque (V12)<br />

Desarrollado para las plataformas, tanto el cliente como el servidor, Windows, Mac OS<br />

9/X y en preparación Linux, con los siguientes apis OpenGL para Mac y Linux y<br />

OpenGL y DirectX para windows.<br />

Se basa en Renderizado en sectores y portales, sistema de partículas y terrenos.<br />

En el tema de luces encontramos Lightmaps animados, luces por vértice y multipaso.<br />

Soporta Texture mapping y mipmapping, multitexturas, textura detallada, mapas de<br />

entorno y texturas animadas.<br />

Incorpora también meshes progresivas con LOD (niveles de detalle), Plugins para<br />

scripting, detección de colisiones, sombras proyectadas de objetos (recorte contra el<br />

entorno), exportadores a 3Dstudio MAX y Milkshape y Plugins 3Dstudio MAX.<br />

Quake 2<br />

Desarrollado para plataformas Windows, Linux y Macintosh soportando las apis<br />

OpenGL, también existe un port para Direct3D.<br />

Trabaja los renderizados con arboles BSP y radiosidad.<br />

Incorpora luces dinámicas, multicolores, Lightmaps.<br />

Implementa su lenguaje de script llamado QuakeC.<br />

Trabaja con su formato propio llamado MD2, muy extendido entre diferentes motores<br />

gráficos y diferentes editores.<br />

9


REN<strong>DE</strong>RIZADO<br />

TABLA <strong>DE</strong> CARACTERÍSTICAS<br />

CrystalSpace Quake2 V12 Unreal Fly3D Genesis3D<br />

Zbuffer rendering Sí<br />

Portal rendering Sí Sí DSG Sí Sí<br />

BSP rendering Sí Sí Sí Sí Sí<br />

Radiosity Sí Sí Sí Sí<br />

Stereo rendering No<br />

Z-sorting No<br />

Span-buffer No<br />

Fogging Sí Sí Sí Sí Sí<br />

Level of Detail Sí Sí Sí Sí Sí<br />

Halo / Corona Sí Sí Sí<br />

Anti-aliasing Sí<br />

Motion blur No<br />

Lens flare Sí Sí<br />

Mirrors Sí Sí Sí Sí<br />

Particle system Sí<br />

Sí (Motor<br />

Sí Sí<br />

Landscape/Voxel terrenos) / No Sí Sí<br />

Patch/curved surf Sí<br />

Reflective<br />

Sí Sí<br />

surfaces Sí Sí<br />

LUCES<br />

Colored lighting Sí Sí Sí Sí Sí<br />

Point Lighting Sí Sí Sí<br />

Dynamic Lighting Sí Sí Sí Sí Sí<br />

Lightmap<br />

Rendering Sí Sí Sí Sí<br />

Phong Shading Sí<br />

Bump mapping Sí Sí<br />

Gouraud-shading Sí No<br />

3D sprites Sí Sí Sí Sí<br />

APIS<br />

OpenGL Sí<br />

Optional port for<br />

Sí<br />

Sí<br />

WIN,MAC Through port Sí No<br />

Direct3D windows Port Sí (WIN) Through port Sí Sí<br />

Glide Sí Sí<br />

QuickDraw3D No<br />

TEXTURAS<br />

Texture mapping Sí Sí Sí Sí Sí<br />

Persp. Texture Sí Sí Sí<br />

MIP-mapping Sí Sí Sí<br />

10


Sub-pixel map Sí Sí Sí<br />

Procedural<br />

textures Sí Sí Sí<br />

OTROS<br />

Degrees of<br />

freedom 6<br />

Network support Low-level Sí Sí Sí Sí Low-level<br />

Hierarchical obj. Sí<br />

Hierarchical<br />

Sí<br />

Collision detect bounding box Sí<br />

3D sound Sí Sí Sí Sí Sí<br />

Cartoon No Sí<br />

Scene graph No<br />

Language<br />

Scripting<br />

C++ C++ C++<br />

Language Sí (Python y LUA)QuakeC Sí<br />

Win, Mac,<br />

UnrealScript No No<br />

Platform All All<br />

Linux Win, Mac All Windows<br />

Source Sí Sí Sí Sí No<br />

Cost LGPL $250.000 apr. $100 $500.000 aprLibre Libre o $10.000<br />

3DS, MD2 MD2<br />

DXF 3DS, MD2<br />

(Quake), OBJ,<br />

(Quake)<br />

File formats POV, ASE<br />

11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!