MIE, 29 / JUN / 2011

Conocé todo lo que podrás desarrollar con el nuevo Flash 3D

Adobe parece haber encontrado un buen diferencial de su tecnología Abode Flash frente a HTML5 en la reproducción de contenidos 3D especialmente en juegos y videos.: Stage3D, tal es el nombre de la API que permitirá trabajar con contenidos 3D para Flash: en esta nota te contamos todo lo que podrás realizar con esta nueva funcionalidad.

Durante el Congreso Max 2010 de Adobe, en Los Ángeles, se celebró una conferencia titulada “El futuro del Flash Player en 3D”, allí se realizaron demostraciones sobre la nueva API de Flash Player 3D Future y del plug-in que permite a los usuarios reproducir estos contenidos. Entonces ¿será posible reproducir contenidos 3D con Flash? La respuesta es sí, y con bastante buen rendimiento. Pero antes, hagamos un breve repaso sobre el origen de todo esto para saber bien adonde apunta Adobe y cómo podemos sacar el máximo provecho para nuestros proyectos.

Un poco de historia: La evolución del 3D en Flash

Ya en el año 2002, con Flash Player 6 (por entonces Macromedia Flash MX) se incorpora el API de dibujo de vectores con ActionScript. El salto se da a partir de la versión 8 de Flash (2005) que agrega una mejora en la manipulación directa de imágenes a nivel pixel, siendo esto esencial para el manejo de texturas. Poco tiempo después, en abril de 2007 se actualiza el lenguaje a Actionscript 3.0 (AS3). Es evidente la mejora del rendimiento y mejor uso de recursos, ya sea usando el API de dibujo o trabajando con imágenes mediante código. Este player matiene la compatibilidad con las otras versiones del lenguaje (Actionscript 2.0 y 1.0) dividiendo su ejecución en dos máquinas virtuales.

En noviembre de 2008 con el lanzamiento del reproductor versión 10 se incorporan nuevas características que incluyen efectos 3D -reamente 2,5 D- (“Translación 3D” y “Rotación 3D”, así como la incorporación del eje Z) utilizando APIs para su rápida aplicación junto a efectos y filtros customizados (shaders generados mediante el kit provisto por Adobe: Adobe Pixel Bender o AGAL (“Adobe Graphics Assembly Language”)). Durante todo este proceso de evolución y mejoras surgieron motores para el manejo del 3D permitiendo a los usuarios con un nivel de experiencia medio incursionar en el 3D sin necesidad de tener los conocimientos como para desarrollar un motor propio.

Entre estos motores se destacan:

 

 

Hoy la mayoria de estos motores estan trabajando junto a Stage3D, el cual será incorporado en la próxima versión de cada uno de ellos.

Cuáles son las principales ventajas de la nueva API

Con la API de Stage3D se introducen en Flash muchas características que enriqueceran el trabajo de los desarrolladores, entre ellas:

1.       Stage3D permite una renderización 3D de alto rendimiento, lo que proporciona un soporte de gráficos acelerados y muy fluidos al desarrollar videojuegos en ActionScript para Flash Player o para AIR. Esto es posible dado que permite trabajar a bajo nivel, es decir directamente con aceleración de gráficos desde el GPU.

2.     Vertex programable y fragment shaders: una función de procesado gráfico capaz de trabajar con la estructura de vértices de figuras modeladas en 3D, y realizar operaciones matemáticas sobre ella para definir colores, texturas, orientación e incidencia de la luz. Esto da libertad a los programadores para realizar diferentes efectos gráficos más ricos, desde efectos de partículas hasta la deformación de un objeto o la recreación de las olas del mar.

3.     Vertex skinning para animación de huesos: para crear una relación entre vértices y huesos. Al transformar los huesos, los vértices se transforman también, de manera proporcional. También lo podemos encontrar como “vertex weighting” o “vertex binding”.

4.     z-buffering nativo (profundidad de un objeto o conocido como algoritmo del pintor): para manejar con precisión los objetos superpuestos en el espacio 3D. En lugar de almacenar sólo la posición espacial (ejes x, y) de un pixel, la característica z-buffering también almacena la profundidad (eje z). El buffer que contiene esos valores de profundidad es llamado z-buffer. ¿Por qué es llamado “algoritmo del pintor”? porque de la misma manera que un pintor primero realiza los dibujos que se encuentran al fondo y luego superpone los dibujos más cercanos, el z-buffering ordena los polígonos en función a su profundidad.

5.     Stencil color buffering: el buffer que almacena la información relacionada al color y los bits para permitir trabajar con efectos.

6.     Cubo de texturas: representaciones tridimensionales en 3D con texturas.

7.       Mejoras en el desempeño: con Stage3D Flash podrá trabajar con texturas y renderizados 3D en tiempo real. Las API de Adobe también incluyen un conjunto de instrucciones para mejorar el desempeño vía CPU (para todos aquellos que no dispongan de aceleración gráfica).

Esto augura un gran futuro para los proyectos en flash con multimedia y videojuegos. Aquí podemos ver algunos ejemplos:

Max Racer es un juego de autos creado por Adobe utilizando el motor Alternativa 3D 8:

El juego es un demo preparado especialmente para la conferencia Adobe Max 2010.

Zombie Tycoon es un juego desarrollado por la empresa FRIMA STUDIO, elegida por Adobe como Pre-Release Partner:

¿Qué son los shaders?

Es un procedimiento de sombreado e iluminación que permite al artista/programador especificar el renderizado de un vertex o de un pixel. Además sirven para crear efectos gráficos enriquecidos, como animaciones, efectos de partículas, etc.

 

Proyectos donde podemos aplicar 3D en Flash

Como venimos comentando a la largo de este artículo, Adobe está orientando  la utilización de Flash a los proyectos relacionados con desarrollos de videojuegos online tanto 2d como 3d: juegos web para sitios, juegos y aplicaciones para Facebook, son algunos de los ejemplos concretos donde podrás utilizar esta tecnología.

Juegos con una amplia variedad de atmosferas como por ejemplo luces estáticas y dinámicas, shadows, niebla y efecto espejo. Además, “Stage3D” permite crear, añadir texturas y animar cientos de avatares simultáneamente sin que esto signifique menor rendimiento y generar efectos especiales nunca antes vistos en un juego Flash: explosiones, lluvia, partículas, etc.

Por otro lado, proyectos de Realidad Aumentada utilizando modelos 3D, combinando el mundo real con el mundo virtual. Hasta ahora veníamos utilizando Flash + algun soft como Papervision + webcam. Ahora podremos trabajar directamente con Flash + webcam.

Ejemplos existentes

Max Racer, Zombie Tycoon (ambos mencionados anteriormente), Metro 2033 y Ostrova Online son algunos de los primeros juegos 3D desarrollados en Flash con la nueva API.

Ostrova Online  por ejemplo, es un juego RPG de acción en tiempo real. Ha sido desarrollado con el motor Alternativa 3D 8.

Metro 2033 es un MMO que corre en browser, el juego basado en la novela del famoso escritor ruso Dmitry Glukhovsky utiliza huesos (bones) para animación de esqueletos y luces (map lighting) con soporte de Stage3D. El juego fue desarrollado en conjunto por Open Games y Alternativa Platform.

¿Por qué 3D en Flash?

Existen varios foros y grupos donde se pueden obtener ejemplos y ayuda de como manejar las diferentes librerías 3D que existen actualmente. A esto se suma la alta difusión que tiene el plugin del reproductor lo que nos permite decir que es una muy buena alternativa para crear y publicar los juegos si importar el sistema operativo o browser.

Resumiendo:

-Realmente es cross-browser y cross-platform.

-Tiene un excelente soporte y mucha documentación.

-Además permite complementar con 2D, video, audio, networking y scripts.

-Flash cuenta con ActionScript 3.0, que se ha transformando eb un potente lenguaje con el cual trabajar nuestros proyectos.

¿Alguien dijo Unity3D?

Unity 3D es una herramienta para creación de juegos, con una interface muy amigable pero un player muy poco difundido. Hablaremos de Unity más adelante dado que merece un artículo aparte, pero desde ya podemos decir que permite publicar proyectos compatibles con iPhone y con Wii.

La ventaja de Flash frente a Unity es que sus características son mucho más amplias: Flash es mucho más que 3D.

Cuestiones de rendimiento

Si hablamos de Flash Player 11 “Stage3D” en materia de rendimiento, se indica que el uso de la CPU es de alrededor de 3.1%. Esta nueva versión del Player se orienta al mundo del gaming y promete gran éxito en el futuro cercano ya que hasta ahora no existen tecnologías que puedan ofrecer el combo de beneficios que ofrece Flash en la industria del online gaming.

El futuro del 3D en Flash

¿Dejaran de existir entonces las herramientas 2,5 D que Flash incluyó en su última versión (CS5)? La respuesta es NO.

Dependiendo de qué tipo de proyecto desees realizar, podrás utilizar una o la otra.

Actualmente Flash Player 10 razteriza miles de triángulos no z-buffered, pero con la nueva API será capaz de razterizar cientos de miles de triángulos z-buffered en HD y a pantalla completa.

Conclusión

¿Se convertirá Flash en la herramienta por excelencia para el desarrollo de juegos online? Indudablemente esta noticia habrá dibujado una sonrisa en la cara de más de un desarrollador de juegos.

Otra buena iniciativa de Adobe adaptándose a los vertiginosos tiempos de la industria del desarrollo, con sus constantes innovaciones y actualizaciones. Primero fue la incorporación por parte de Adobe de Wallaby, la herramienta que permitirá exportar de Flash a HTML5 (que aun se encuentra en fase beta), y ahora sorprende a todos con esta noticia que definitivamente termina de consagrar a Flash como la herramienta indispensable para proyectos interactivos online.

Por Mara Ares

 

¡Comparte esta noticia!