Stage3D ( nombre en clave Molehill [ 1 ] ) es una API de Adobe Flash Player para renderizar gráficos 3D interactivos con aceleración por GPU , dentro de juegos y aplicaciones Flash. Las aplicaciones Flash Player o AIR escritas en ActionScript 3 pueden usar Stage3D para renderizar gráficos 3D, [ 2 ] y dichas aplicaciones se ejecutan de forma nativa en Windows, Mac OS X, Linux, Apple iOS y Google Android . [ 3 ] Stage3D es similar en propósito y diseño a WebGL . [ 4 ] [ 5 ]
Stage3D se introdujo en Adobe Flash Player 11.0 y AIR 3.0 para facilitar la aceleración por GPU del contenido 3D en aplicaciones Flash [ 1 ] [ 6 ] En Flash Player 10 y versiones anteriores, las aplicaciones Flash 3D tenían que renderizar los gráficos 3D completamente en la CPU . Flash Player 10 admitía una forma limitada de aceleración por GPU para materiales, en una API llamada Pixel Bender . [ 1 ] [ 7 ]
Los sombreadores de GPU en Stage3D se expresan en el lenguaje ensamblador de gráficos de Adobe (AGAL). [ 8 ] : 57 [ 9 ] Los objetos de Stage3D se diferencian del modelo de renderizado SWF tradicional en que no se pueden agregar a las listas de visualización de SWF ; en su lugar, deben instanciarse mediante ActionScript . [ 1 ] [ 8 ] : 25
Debido a que Stage3D es una biblioteca de bajo nivel que puede ser tediosa de usar directamente, se han construido algunas bibliotecas 3D y 2D de nivel superior sobre ella para beneficiarse del mayor rendimiento que proporciona. Una lista incompleta de bibliotecas y motores de juegos que la utilizan incluye: Unreal Engine 3, [ 10 ] [ 11 ] Away3D 4, [ 5 ] CopperCube , [ 12 ] Flare3D , [ 13 ] Starling , [ 14 ] : vii ND2D o Proscenium de Adobe Labs. [ 15 ] De manera similar, las aplicaciones WebGL 3D se pueden construir con three.js , una biblioteca de nivel superior similar a estas. [ 5 ] Away3D y Starling han sido bautizados como componentes oficiales del SDK de juegos de Adobe. [ 16 ] [ 17 ]
Historia
En 2011, se lanzó Flash Player 11, y con él la primera versión de Stage3D, que permite la renderización 3D acelerada por GPU para aplicaciones y juegos Flash, en plataformas de escritorio como Microsoft Windows y Mac OS X. [ 1 ]
En marzo de 2012, se lanzó Flash Player 11.2, que habilitó la compatibilidad con Stage3D/GPU en las plataformas Android e iOS. Los juegos que utilizaban las API de Stage3D funcionarían sin cambios en estas plataformas móviles. [ 18 ]
En junio de 2012, se lanzó Flash Player 11.3, que permite la transmisión progresiva de mapas de texturas Stage3D, lo que permite un rendimiento y tiempos de inicio más rápidos para juegos y aplicaciones que utilizan Stage3D. [ 18 ]
En agosto de 2012, se lanzó Flash Player 11.4, que aumentó el número de tarjetas de video con aceleración de hardware compatibles a 2006 y permitió canales alfa para texturas comprimidas de Stage3D. [ 18 ]
En marzo de 2012, Adobe anunció que Stage3D formaría parte de las funciones premium de Flash Player (a partir de la versión 11.2), y por lo tanto no estaría disponible de forma totalmente gratuita para los desarrolladores, sino que se basaría en un esquema de reparto de ingresos. [ 19 ] [ 20 ] Varios miembros destacados de la comunidad Flash se opusieron al cambio, refiriéndose a él como un «impuesto a la velocidad». [ 19 ]
En enero de 2013, Adobe clasificó todas las funciones premium como de disponibilidad general, y podían ser utilizadas libremente por las aplicaciones Flash, sin requerir una licencia ni regalías de los desarrolladores o editores. [ 2 ]
En septiembre de 2012, se lanzó Flash Player 11.4, lo que permitió que los juegos se dirigieran a "perfiles restringidos" que incluían chips gráficos más antiguos, que no eran compatibles con todas las características de Stage3D. [ 21 ]
En abril de 2013, se lanzó Flash Player 11.7, que admitía mapas de texturas de 16 bits para el contenido de Stage3D, lo que permitió reducir el uso de memoria y mejorar la administración de la misma. [ 18 ]
En julio de 2013 se lanzó Flash Player 11.8, que aumentó el tamaño máximo de los mapas de texturas a 4096 x 4096, además de admitir mapas de texturas rectangulares (no cuadrados) para el contenido de Stage3D. Esto permitió un mayor nivel de detalle en los mapas de texturas y la creación de atlas de texturas más grandes, lo que mejoró el rendimiento. [ 18 ]
A partir de 2014, se eliminó la aceleración por GPU en Flash Player 11.8 para los scripts de Pixel Bender. Pixel Bender era una tecnología antigua para escribir filtros de procesamiento de imágenes de alto rendimiento basados en CPU. Esto afectó a varios proyectos con menos recursos, incluido Scratch del MIT , que no pudo encontrar el personal necesario para recodificar rápidamente sus aplicaciones. [ 22 ] [ 23 ]
Características
Stage3D consta de los siguientes componentes:
- API unificada: API unificada de ActionScript 3 para gestionar la memoria de texturas, el sombreado de vértices, el sombreado de píxeles y la representación de mallas. Se ejecuta de forma transparente mediante OpenGL (en Mac OS X y Linux ) y DirectX (en Microsoft Windows ).
- Renderizado acelerado de GPU: soporte integrado para tarjetas gráficas fabricadas por NVidia, AMD e Intel, [ 3 ] Lista negra para tarjetas gráficas incompatibles.
- Renderizado acelerado por CPU: sistema de renderizado por software integrado que utiliza SwiftShader para sistemas con tarjetas gráficas inexistentes o incompatibles.
- AGAL (Adobe Graphics Assembly Language): un lenguaje para escribir sombreadores (programas que se ejecutan en la GPU) de manera que Flash Player pueda convertirlos a sombreadores OpenGL GLSL y DirectX HLSL .
- ATF (Adobe Texture Format): un formato de textura que permite convertir texturas a formatos de textura específicos de la plataforma, como DXT en Windows y macOS, y PVRTC en iOS. [ 14 ] : 47–48 [ 24 ]
Stage3D es compatible con los siguientes componentes:
- Las API de XC son las "funciones premium" de Flash Player, que consisten en códigos de operación de manipulación de memoria de alta velocidad (conocidos como "Alchemy" ) y las API de Stage3D.
- CrossBridge : un conjunto de herramientas de compilación cruzada para compilar juegos o motores de juegos 3D basados en OpenGL para que se ejecuten dentro de Flash Player.
- Adobe Scout : un analizador visual de contenido Flash que se ejecuta en ordenadores de escritorio o dispositivos móviles. Scout permite un análisis exhaustivo del contenido Stage3D con las siguientes características integradas: [ 25 ]
- Vista previa de Stage3D: vea el búfer de respaldo actual del contenido de Stage3D ejecutado [ 25 ]
- Grabación de Stage3D: capture cada comando de Stage3D ejecutado por el contenido Flash y reproduzca/avance paso a paso los comandos ejecutados [ 25 ].
- Uso de la memoria de la GPU: perfil de uso de la memoria de texturas con un desglose en tiempo real [ 25 ]
- Editor de programas Stage3D: modifique interactivamente los comandos Stage3D grabados y vea qué efecto tiene esto en la renderización. Edite el código AGAL para los programas de vértices y fragmentos ejecutados por cada llamada de dibujo. [ 25 ]
AGAL
El lenguaje ensamblador de gráficos de Adobe (AGAL) es un lenguaje ensamblador para escribir sombreadores de GPU . [ 26 ] AGAL fue inventado por Adobe para proporcionar un lenguaje de sombreado unificado para todas las plataformas. [ 26 ] Los programas AGAL se escriben manualmente con códigos de operación y registros de bajo nivel . [ 26 ] Los programas AGAL se compilan en bytecode que luego se incrusta en películas Flash SWF . [ 26 ] Este bytecode AGAL es compilado automáticamente en sombreadores OpenGL GLSL y sombreadores DirectX HLSL por Adobe Flash Player , según la plataforma. [ 26 ]
Con AGAL, los desarrolladores pueden escribir sombreadores que transforman modelos 3D en la GPU ( sombreador de vértices ) y sombreadores que renderizan efectos de iluminación dinámicos complejos en la GPU ( sombreador de píxeles ). AGAL también permite la renderización de texturas de alta calidad con mipmapping . [ 27 ] AGAL se utiliza ampliamente en motores de juegos Flash como Away3D y Flare3D para diversos efectos. AGAL se usa comúnmente para proporcionar iluminación dinámica , alto rango dinámico (HDR), enmascaramiento alfa , renderizado multipaso, mapeo de desplazamiento y mapeo de entorno . [ 28 ] [ 29 ] Flare3D extiende AGAL con un lenguaje de sombreado propietario llamado FLSL (FLare3D Shader Language), que facilita la escritura de programas de sombreado. [ 29 ] HLAG es otro ejemplo de un lenguaje de sombreado de alto nivel que se compila en AGAL. [ 30 ]
Al portar videojuegos 3D de C++ para su reproducción en Adobe Flash Player , los desarrolladores deben traducir los sombreadores HLSL y GLSL tradicionales a AGAL. [ 31 ] El código del videojuego de C++ se puede convertir en código compatible con Flash usando CrossBridge .
Véase también
Referencias
- 1 2 3 4 5 Joseph Labrecque (2011). Novedades de Flash Player 11. O'Reilly Media, Inc. pág. 17. ISBN 978-1-4493-1110-0.
- 1 2 Funciones premium de Adobe para Flash Player , Centro de desarrollo de Flash Player, Adobe
- 1 2 Stage3D: chipsets, controladores, Flash Player 11, AIR 3 y ayuda de Adobe
- ↑ Matt Fisher (2013). HTML5 para desarrolladores de Flash . Packt Publishing Ltd. § Stage3D versus WebGL, pág. 91. ISBN 978-1-84969-333-2.
- 1 2 3 "Rendimiento de Stage3D vs WebGL — Airtight Interactive" . Airtightinteractive.com. 28-10-2011 . Recuperado el 04-08-2014 .
- ↑ Joseph Labrecque (2011). Novedades de Adobe AIR 3. O'Reilly Media, Inc. págs. 17–26 . ISBN 978-1-4493-1108-7.
- ↑ Remi Arnaud (2011). "3D en un navegador web". En Eric Lengyel (ed.). Game Engine Gems 2. CRC Press. pp. 207–212 . ISBN 978-1-56881-437-7.
- ^ Christer Kaitila (2011). Guía para principiantes de programación de juegos Adobe Flash 11 Stage3D (Molehill) . Packt Publishing Ltd. ISBN 978-1-84969-169-7.
- ↑ "¿Qué es AGAL | Adobe Developer Connection?" . Adobe.com. 10 de octubre de 2011. Consultado el 4 de agosto de 2014 .
- ↑ Wagner James Au (2012). Game Design Secrets . John Wiley & Sons. pág. 130. ISBN 978-1-118-46391-8.
- ↑ "Adobe Flash 11 adopta Unreal Engine 3 para mejores juegos de navegador | The Verge" . theverge.com. 7 de octubre de 2011. Consultado el 4 de agosto de 2014 .
- ↑ "Herramientas destacadas: CopperCube 4.0" . MCV . evelop-online.net. 28 de mayo de 2014. Consultado el 22 de septiembre de 2014 .
- ↑ Keith Gladstien (2013). Desarrollo de juegos Flash en un mundo social, móvil y 3D . Cengage Learning. págs. 383–421 . ISBN 978-1-4354-6021-8.
- 1 2 Thibault Imbert (2012). Presentando a Starling . O'Reilly Media, Inc. ISBN 978-1-4493-2089-8.
- ↑ Rex van der Spuy (2012). Foundation Game Design with ActionScript 3.0 . Apress. p. 641. ISBN 978-1-4302-3993-2.
- ↑ Thibault Imbert (4 de diciembre de 2012) Presentación de herramientas para desarrolladores de juegos (Gaming SDK, Adobe Scout, FlasCC)
- ↑ "Adobe Gaming SDK" . creative.adobe.com . Consultado el 4 de agosto de 2014 .
- 1 2 3 4 5 Hoja de ruta de Adobe Flash , Adobe
- 1 2 Y luego llegaron las funciones premium. Archivado el 5 de febrero de 2015 en Wayback Machine , blog de ASV Guy.
- ↑ Actualización: Funciones Premium para Flash Player , Adobe AIR y el blog de FP
- ↑ Imbert, Thibault. "¡Presentamos Flash Player 11.4/AIR 3.4 beta!" . ByteArray.
- ↑ "Stage3D" . scratch.mit.edu . Consultado el 5 de agosto de 2014 .
- ↑ Adobe Flash Player 11.8 - Error 3591185: El rendimiento del sombreador Pixel Bender se degrada drásticamente en FP11.8. Cerrado como "Nunca se solucionará". Archivado el 22/04/2014 en Wayback Machine.
- ↑ "Texturas comprimidas de Stage3D: Presentación del SDK de ATF - ByteArray.org" . bytearray.org . Consultado el 4 de agosto de 2014 .
- 1 2 3 4 5 Primeros pasos con Adobe Scout , Adobe Developer Connection
- 1 2 3 4 5 ¿Qué es AGAL , Adobe Developer Connection?
- ↑ Mipmapping para texturas más suaves en Stage3D , Adobe Developer Connection
- ↑ Sesión : ¡Flash al máximo! Gráficos 3D de alto rendimiento en Silent Hunter Online. Archivado el 28/08/2021 en Wayback Machine , GDC Europe 2013.
- 1 2 FLSL Archivado el 14/01/2023 en Wayback Machine , Flare3D Wiki
- ↑ HLAG se encuentra actualmente en fase alfa. Archivado el 2 de julio de 2022 en Wayback Machine , sitio web de la herramienta HLAG.
- ↑ Crytek, Silent Hunter Online habla sobre las últimas incorporaciones a la GDC Europe 2013 , Gamasutra , "Motor de renderizado de consola C++ en Adobe Flash usando Actionscript/Stage3D y usando AGAL para efectos gráficos como el renderizado del océano"
Enlaces externos
- Artículos de Stage3D en Adobe Developer Connection
- "Desarrollo de juegos 3D para Flash y videojuegos" . adobe.com . Consultado el 4 de agosto de 2014 .
- "Cómo funciona Stage3D" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Creación de un juego Flash 3D con Flare3D y Stage3D" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Creación de juegos y aplicaciones 3D con Away3D 4 y Stage 3D" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "¿Qué es AGAL?" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Añadir contenido 3D a tu juego Flash de forma rápida y sencilla" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Presentación del marco de trabajo Starling 2D" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Shaders de vértices y fragmentos" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Mipmapping para texturas más suaves en Stage3D" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Motores de juegos Stage 3D" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Primeros pasos con Adobe Scout" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Compilación de juegos OpenGL con el compilador Flash C++ (FlasCC)" . adobe.com . Consultado el 17 de septiembre de 2014 .
- Herramientas de traducción de OpenGL y GLSL :
- "adobe/GLS3D · GitHub" . github.com . Consultado el 4 de agosto de 2014 .
- "adobe/glsl2agal · GitHub" . github.com . Consultado el 4 de agosto de 2014 .
- API de gráficos 3D
- Adobe Flash
- Bibliotecas gráficas