En informática , Stage3D (con nombre en código Molehill [1] ) es una API de Adobe Flash Player para renderizar gráficos 3D interactivos con aceleración de 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 gráficos 3D completamente en la CPU . Flash Player 10 admitía una forma limitada de soporte de aceleración de 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 Stage3D se apartan del modelo de renderizado SWF tradicional en el sentido de que no se pueden añadir a las listas de visualización de SWF ; en su lugar, deben crearse una instancia a través de ActionScript . [1] [8] : 25
Debido a que Stage3D es una biblioteca de bajo nivel que puede ser tediosa de usar directamente, se han creado algunas bibliotecas 3D y 2D de alto nivel para beneficiarse del mayor rendimiento que ofrece. Una lista incompleta de bibliotecas y motores de juegos que lo utilizan incluye: Unreal Engine 3, [10] [11] Away3D 4, [5] CopperCube , [12] Flare3D , [13] Starling , [14] : vii ND2D o Adobe Labs ' Proscenio. [15] De manera similar, las aplicaciones WebGL 3D pueden construirse con three.js , una biblioteca de nivel superior similar a estas. [5] Away3D y Starling han sido bautizados como componentes oficiales de Adobe Gaming SDK. [16] [17]
Historia
En 2011, se lanzó Flash Player 11, y con él la primera versión de Stage3D, que permite el renderizado 3D acelerado 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 plataformas Android e iOS. Los juegos que utilizan las API 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 textura 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 elevó el recuento de tarjetas de video aceleradas por hardware admitidas a 2006 y permitió canales alfa para texturas comprimidas Stage3D. [18]
En marzo de 2012, Adobe anunció que Stage3D será parte de las funciones premium de Flash Player (indicando Flash Player versión 11.2) y, por lo tanto, no estará disponible de forma completamente gratuita para los desarrolladores, sino que se basará en un esquema de reparto de ingresos. [19] [20] Varios miembros notables de la comunidad Flash se opusieron al cambio, refiriéndose a él como un "impuesto de velocidad". [19]
En enero de 2013, Adobe clasificó todas las funciones premium como disponibilidad general y las aplicaciones Flash podían usarlas libremente, sin requerir una licencia o regalías de los desarrolladores o editores. [2]
En septiembre de 2012, se lanzó Flash Player 11.4, lo que permite que los juegos apunten a "perfiles restringidos" que incluían chips gráficos más antiguos que no admitían todas las funciones de Stage3D. [21]
En abril de 2013, se lanzó Flash Player 11.7, que admitía mapas de textura de 16 bits para el contenido Stage3D, lo que permitió reducir el uso de la memoria y mejorar la administración de la memoria. [18]
En julio de 2013, se lanzó Flash Player 11.8, que aumentó el tamaño máximo del mapa de textura a 4096 x 4096, además de admitir mapas de textura rectangulares (no cuadrados) para el contenido Stage3D. Esto permitió un mayor detalle en los mapas de texturas y la creación de atlas de texturas más grandes, lo que permitió un mejor rendimiento. [18]
A partir de 2014, la aceleración de la GPU se eliminó en Flash Player 11.8 en adelante para los scripts de Pixel Bender. Pixel Bender era una tecnología más antigua para escribir filtros de procesamiento de imágenes basados en CPU de alto rendimiento. Esto ha interrumpido una serie de proyectos menos dotados, incluido Scratch del MIT , que no pudo encontrar la mano de obra para recodificar rápidamente sus aplicaciones. [22] [23]
Características
Stage3D consta de los siguientes componentes:
- API unificada: API de ActionScript 3 unificada para administrar la memoria de textura, el sombreado de vértices, el sombreado de píxeles y la representación de mallas. Ejecutado de forma transparente utilizando OpenGL (en Mac OS X y Linux ) y DirectX (en Microsoft Windows ).
- Procesamiento acelerado de GPU: soporte integrado para tarjetas gráficas creadas por NVidia, AMD e Intel, [3] Lista negra para tarjetas gráficas incompatibles.
- Procesamiento acelerado de CPU: respaldo del procesador de software integrado que usa SwiftShader , para sistemas con tarjetas gráficas faltantes / incompatibles.
- AGAL (lenguaje ensamblador de gráficos de Adobe): un lenguaje para escribir Shaders (programas que se ejecutan en la GPU) de modo que se puedan convertir a OpenGL GLSL Shaders y DirectX HLSL Shaders mediante Flash Player.
- ATF (formato de textura de Adobe): un formato de textura tal que las texturas se pueden convertir a formatos de textura apropiados específicos de la plataforma, como DXT en Windows y MacOS, PVRTC en iOS. [14] : 47–48 [24]
Stage3D es compatible con los siguientes componentes:
- API XC: 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 API Stage3D.
- CrossBridge : un conjunto de herramientas de compilación cruzada para compilar juegos 3D basados en OpenGL o motores de juegos para que se ejecuten en Flash Player.
- Adobe Scout : un generador de perfiles visual para contenido Flash que se ejecuta en computadoras de escritorio en dispositivos móviles. Scout permite la creación de perfiles en profundidad del contenido Stage3D con las siguientes funciones integradas: [25]
- Vista previa de Stage3D: vea el búfer de retroceso actual del contenido de Stage3D ejecutado [25]
- Grabación Stage3D: capture todos los comandos Stage3D ejecutados por el contenido Flash y vuelva a reproducirlos o recorra los comandos ejecutados [25]
- Uso de memoria de la GPU: uso de memoria de textura de perfil con un desglose en tiempo real [25]
- Editor de programas Stage3D: modifique de forma interactiva los comandos Stage3D grabados y vea qué efecto tiene en el renderizado. Edite el código AGAL para los programas de vértices y fragmentos ejecutados por cada llamada de dibujo. [25]
AGAL
Adobe Graphics Assembly Language (AGAL) es un lenguaje ensamblador para escribir GPU Shaders . [26] Adobe inventó AGAL para proporcionar un lenguaje de sombreado unificado para todas las plataformas. [26] Los programas AGAL se escriben a mano con códigos de operación y registros de bajo nivel . [26] Los programas AGAL se compilan en un código de bytes que luego se incrusta en las películas Flash SWF . [26] Este bytecode AGAL se compila automáticamente en OpenGL GLSL Shaders y DirectX HLSL Shaders por Adobe Flash Player , dependiendo de la plataforma. [26]
Con AGAL, los desarrolladores pueden escribir sombreadores que transformen modelos 3D en la GPU ( sombreador de vértices ) y sombreadores que generen efectos de iluminación dinámicos complejos en la GPU ( sombreador de píxeles ). AGAL también permite la reproducción de texturas de alta calidad con mapeo mip . [27] AGAL se utiliza ampliamente en motores de juegos Flash como Away3D y Flare3D para varios efectos. AGAL se usa comúnmente para proporcionar iluminación dinámica , alto rango dinámico (HDR), enmascaramiento alfa , renderizado de múltiples pasadas, mapeo de desplazamiento y mapeo del entorno . [28] [29] Flare3D amplía AGAL con un lenguaje Shader patentado llamado FLSL (FLare3D Shader Language), que facilita la escritura de programas Shader. [29] HLAG es otro ejemplo de lenguaje Shader de alto nivel que se compila en AGAL. [30]
Al portar videojuegos C ++ 3D para su reproducción en Adobe Flash Player , los desarrolladores deben traducir los sombreadores tradicionales HLSL y GLSL a AGAL. [31] El código del videojuego C ++ se puede convertir en código compatible con Flash usando CrossBridge .
Ver también
- Papervision3D
- WebGL
Referencias
- ↑ a b c d e Joseph Labrecque (2011). Novedades de Flash Player 11 . O'Reilly Media, Inc. pág. 17. ISBN 978-1-4493-1110-0.
- ^ a b Funciones premium de Adobe para Flash Player , Centro de desarrollo de Flash Player, Adobe
- ^ a b Conjuntos de chips, controladores, Flash Player 11, AIR 3 , Ayuda de Adobe no compatibles con Stage3D
- ^ Matt Fisher (2013). HTML5 para desarrolladores de Flash . Packt Publishing Ltd. § Stage3D frente a WebGL, pág. 91. ISBN 978-1-84969-333-2.
- ^ a b c "Rendimiento Stage3D vs WebGL - Airtight Interactive" . Airtightinteractive.com. 2011-10-28 . Consultado el 4 de agosto de 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.). Gemas del motor de juego 2 . Prensa CRC. págs. 207–212. ISBN 978-1-56881-437-7.
- ^ a b Christer Kaitila (2011). Guía para principiantes de programación de juegos de Adobe Flash 11 Stage3D (Molehill) . Packt Publishing Ltd. ISBN 978-1-84969-169-7.
- ^ "Qué es AGAL | Adobe Developer Connection" . Adobe.com. 2011-10-10 . Consultado el 4 de agosto de 2014 .
- ^ Wagner James Au (2012). Secretos del diseño de juegos . John Wiley e hijos. pag. 130. ISBN 978-1-118-46391-8.
- ^ "Adobe Flash 11 adopta Unreal Engine 3 para mejores juegos de navegador | The Verge" . theverge.com . Consultado el 4 de agosto de 2014 .
- ^ "Herramientas destacadas: CopperCube 4.0" . evelop-online.net. 2014-05-28 . Consultado el 22 de septiembre de 2014 .
- ^ Keith Gladstien (2013). Desarrollo de juegos flash en un mundo social, móvil y 3D . Aprendizaje Cengage. págs. 383–421. ISBN 978-1-4354-6021-8.
- ^ a b Thibault Imbert (2012). Presentamos a Starling . O'Reilly Media, Inc. ISBN 978-1-4493-2089-8.
- ^ Rex van der Spuy (2012). Diseño de juegos básicos con ActionScript 3.0 . Presione. pag. 641. ISBN 978-1-4302-3993-2.
- ^ Thibault Imbert (4 de diciembre de 2012) Presentación de herramientas para desarrolladores de juegos (SDK de juegos, Adobe Scout, FlasCC)
- ^ "Adobe Gaming SDK" . creative.adobe.com . Consultado el 4 de agosto de 2014 .
- ^ a b c d e Hoja de ruta de Adobe Flash , Adobe
- ^ a by Luego llegaron las características premium Archivado el 5 de febrero de 2015 en Wayback Machine , ASV Guy Blog
- ^ Actualización: Funciones premium para Flash Player , Adobe AIR y FP Blog
- ^ 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 sombreado de Pixel Bender se degradó drásticamente en FP11.8. Cerrado como "NeverFix" Archivado el 22 de abril de 2014 en la Wayback Machine.
- ^ "Texturas comprimidas Stage3D - Presentación del ATF SDK - ByteArray.org" . bytearray.org . Consultado el 4 de agosto de 2014 .
- ^ a b c d e Introducción a Adobe Scout , Conexión para desarrolladores de Adobe
- ^ a b c d e ¿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 , GDC Europe 2013
- ^ a b FLSL , Wiki de Flare3D
- ^ HLAG se encuentra actualmente en alfa , sitio web de la herramienta HLAG
- ^ Crytek, Silent Hunter Online habla de las últimas incorporaciones a GDC Europe 2013 , Gamasutra , "Motor de renderizado de consola C ++ en Adobe Flash usando Actionscript / Stage3D y usando AGAL para efectos gráficos como renderizado oceánico"
enlaces externos
- Artículos de Stage3D sobre 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 .
- "Construyendo 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 .
- "Agregar 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 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 juego Stage 3D" . adobe.com . Consultado el 17 de septiembre de 2014 .
- "Introducción a 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 .