Stage3D
   HOME

TheInfoList



OR:

Stage3D ( codenamed ''Molehill'') is an
Adobe Adobe ( ; ) is a building material made from earth and organic materials. is Spanish for '' mudbrick''. In some English-speaking regions of Spanish heritage, such as the Southwestern United States, the term is used to refer to any kind of ...
Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is computer software for viewing multimedia contents, executing rich Internet applications, and streaming audio and video content created on the ...
API for rendering interactive 3D graphics with GPU-acceleration, within Flash games and applications. Flash Player or AIR applications written in ActionScript 3 may use Stage3D to render 3D graphics, and such applications run natively on Windows, Mac OS X, Linux, Apple iOS and Google Android.Stage3D unsupported chipsets, drivers, Flash Player 11, AIR 3
Adobe Help
Stage3D is similar in purpose and design to WebGL. Stage3D was introduced in
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is computer software for viewing multimedia contents, executing rich Internet applications, and streaming audio and video content created on ...
11.0 and AIR 3.0 in order to facilitate GPU-acceleration of 3D content in Flash applications In Flash Player 10 and earlier, 3D Flash applications had to render 3D graphics completely on the
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, a ...
. Flash Player 10 supported a limited form of GPU acceleration support for materials, in an API called
Pixel Bender Adobe Pixel Bender, previously codenamed Hydra, is a programming language created by Adobe Systems for the description of image processing algorithms. The syntax is based on GLSL, and a Pixel Bender program is analogous to an OpenGL fragment sh ...
. GPU
Shader In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of speci ...
s in Stage3D are expressed in the Adobe Graphics Assembly Language (AGAL). Stage3D objects depart from the traditional
SWF SWF ( ) is an Adobe Flash file format used for multimedia, vector graphics and ActionScript.Open Screen Pr ...
rendering model in that they cannot be added to SWF's display lists; instead they must be instantiated via
ActionScript ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (meaning ...
. Because Stage3D is a low-level library that may be tedious to use directly, it has seen some higher-level 3D and 2D libraries built on top of it in order to benefit from the higher performance that it provides. An incomplete list of libraries and
game engine A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term "software engine" used in the software ...
s using it includes:
Unreal Engine Unreal Engine (UE) is a 3D computer graphics game engine developed by Epic Games, first showcased in the 1998 first-person shooter game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of g ...
3, Away3D 4,
CopperCube __NOTOC__ CopperCube is a game engine with graphical editor developed by Ambiera. It is aimed primarily at non-programmers, for creating 3D applications in a drag-and-drop format based on a behavior and action-oriented logic system. Additional a ...
,
Flare3D Flare3D is a framework for developing interactive three-dimensional ( 3D) graphics within Adobe Flash Player and Adobe AIR, written in ActionScript 3. Flare3D includes a 3D object editor (the Flare3D IDE) and a 3D graphics engine for rendering 3D ...
,
Starling Starlings are small to medium-sized passerine birds in the family Sturnidae. The Sturnidae are named for the genus '' Sturnus'', which in turn comes from the Latin word for starling, ''sturnus''. Many Asian species, particularly the larger ones, ...
, ND2D or Adobe Labs' Proscenium. Similarly, WebGL 3D applications may be built with
three.js Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub. Overview ...
, a higher-level library similar to these. Away3D and Starling have been christened as official components of the Adobe Gaming SDK.


History

In 2011, Flash Player 11 was released, and with it the first version of Stage3D, allowing for GPU-accelerated 3D rendering for Flash applications and games, on desktop platforms such as Microsoft Windows and Mac OS X. In March 2012, Flash Player 11.2 was released, which enabled Stage3D/GPU support on Android and iOS platforms. Games utilizing Stage3D APIs would work with no changes on these mobile platforms.Adobe Flash Roadmap
Adobe
In June 2012, Flash Player 11.3 was released, enabling progressive streaming of Stage3D texture maps, allowing for faster performance and startup times for games and applications utilizing Stage3D. In August 2012, Flash Player 11.4 was released, which raised the supported hardware-accelerated
video card A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer m ...
s count to 2006, and allowed alpha-channels for Stage3D compressed textures. In March 2012, Adobe announced that Stage3D will be part of the premium features of the Flash Player (stating with Flash Player version 11.2), and thus not available completely free of charge to developers, but based on a revenue sharing scheme.And Then Premium Features Arrived
, ASV Guy Blog
Various notable members of the Flash community objected to the change, referring to it as a "speed-tax". In January 2013, Adobe classified all premium features as general availability, and could be freely used by Flash applications, without requiring a license or royalty from developers or publishers.
Flash Player Dev Center, Adobe
In September 2012, Flash Player 11.4 was released allowing games to target "constrained profiles" which included older graphics chips, that did not support all the features of Stage3D. In April 2013, Flash Player 11.7 was released, which supported 16-bit texture maps for Stage3D content, which allowed reduced memory usage and improved memory management. In July 2013, Flash Player 11.8 was released, which increased the maximum texture map size to 4096 x 4096, in addition to supporting rectangular (non-square) texture maps for Stage3D content. This allowed for greater detail in texture maps, and larger
texture atlas In computer graphics, a texture atlas (also called a spritesheet or an image sprite in 2d game development) is an image containing multiple smaller images, usually packed together to reduce overall dimensions. An atlas can consist of uniformly-siz ...
es to be created enabling better performance. As of 2014, GPU acceleration was removed in Flash Player 11.8 onwards for Pixel Bender scripts. Pixel Bender was an older technology for writing high-performance CPU-based image processing filters. This has disrupted a number of less well-endowed projects, including MIT's Scratch, which could not find the manpower to rapidly recode their applications.


Features

Stage3D consists of the following components: *Unified API - Unified
ActionScript ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (meaning ...
3 API for managing texture memory, vertex shading, pixel shading, and mesh rendering. Transparently executed using
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
(on
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lap ...
and
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, whi ...
) and
DirectX Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct" ...
(on
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
). *Accelerated GPU Rendering - Integrated support for graphic cards built by NVidia, AMD and Intel, Blacklist for incompatible graphic cards. *Accelerated CPU Rendering - Integrated software renderer fallback using SwiftShader, for systems with missing/incompatible graphics cards. *AGAL (Adobe Graphics Assembly Language) - A language for writing
Shader In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of speci ...
s (programs that run on the GPU) such that they can be converted to OpenGL GLSL Shaders and DirectX HLSL Shaders by Flash Player. *ATF (Adobe Texture Format) - A texture format such that textures can be converted to appropriate platform-specific texture formats such as DXT on Windows and MacOS,
PVRTC PVRTC (PowerVR Texture Compression) and PVRTC2 are a family of lossy, fixed-rate texture compression formats used in PowerVR's MBX (PVRTC only), SGX and Rogue technologies. The PVRTC algorithm is documented in Simon Fenney's paperTexture Compression ...
on iOS. Stage3D is supported by the following components: *XC APIs - the "premium features" for Flash Player, consisting of high-speed memory manipulation opcodes (known as ''"Alchemy"'') and Stage3D APIs. * CrossBridge - A cross-compilation toolkit to compile OpenGL-based 3D games or game engines to run within Flash Player. * Adobe Scout - A visual profiler for Flash content running on desktop on mobile. Scout enables in-depth profiling of Stage3D content with the following integrated features:Getting started with Adobe Scout
Adobe Developer Connection
**Stage3D Preview - View the current back-buffer of executed Stage3D Content **Stage3D Recording - Capture every Stage3D command executed by the Flash content, and replay/step through executed commands **GPU memory usage - Profile texture memory usage with a real-time breakdown **Stage3D Program Editor - Interactively modify recorded Stage3D commands and see what effect this has on rendering. Edit the AGAL code for the vertex and fragment programs executed by each draw call.


AGAL

Adobe Graphics Assembly Language (AGAL) is an
assembly language In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence b ...
for writing GPU
Shader In computer graphics, a shader is a computer program that calculates the appropriate levels of light, darkness, and color during the rendering of a 3D scene - a process known as ''shading''. Shaders have evolved to perform a variety of speci ...
s.What is AGAL
Adobe Developer Connection
AGAL was invented by Adobe to provide a unified shader language for all platforms. AGAL programs are written by hand with low-level
opcode In computing, an opcode (abbreviated from operation code, also known as instruction machine code, instruction code, instruction syllable, instruction parcel or opstring) is the portion of a machine language instruction that specifies the operat ...
s and
register Register or registration may refer to: Arts entertainment, and media Music * Register (music), the relative "height" or range of a note, melody, part, instrument, etc. * ''Register'', a 2017 album by Travis Miller * Registration (organ), th ...
s. AGAL programs are compiled into bytecode which is then embedded into Flash SWF movies. This AGAL bytecode is automatically
compiled In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
into OpenGL GLSL Shaders and DirectX HLSL Shaders by
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is computer software for viewing multimedia contents, executing rich Internet applications, and streaming audio and video content created on ...
, depending on the platform. With AGAL, developers can write shaders that transform 3D models on the GPU ( vertex shader), and shaders that render complex
dynamic lighting Computer graphics lighting is the collection of techniques used to simulate light in computer graphics scenes. While lighting techniques offer flexibility in the level of detail and functionality available, they also operate at different levels o ...
effects on the GPU ( pixel shader). AGAL also allows high-quality texture rendering with mip-mapping. AGAL is used extensively in Flash
game engine A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term "software engine" used in the software ...
s such as Away3D and
Flare3D Flare3D is a framework for developing interactive three-dimensional ( 3D) graphics within Adobe Flash Player and Adobe AIR, written in ActionScript 3. Flare3D includes a 3D object editor (the Flare3D IDE) and a 3D graphics engine for rendering 3D ...
for various effects. AGAL is commonly used to provide
dynamic lighting Computer graphics lighting is the collection of techniques used to simulate light in computer graphics scenes. While lighting techniques offer flexibility in the level of detail and functionality available, they also operate at different levels o ...
, high dynamic ranging (HDR), alpha masking, multipass rendering,
displacement map Displacement mapping is an alternative computer graphics technique in contrast to bump, normal, and parallax mapping, using a texture or height map to cause an effect where the actual geometric position of points over the textured surface are ...
ping, and environment mapping.FLSL
Flare3D Wiki
Flare3D extends AGAL with a proprietary Shader language called FLSL (FLare3D Shader Language), that makes writing Shader programs easier. HLAG is another example of a high-level Shader language that compiles into AGAL. When porting C++ 3D video games for playback in
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is computer software for viewing multimedia contents, executing rich Internet applications, and streaming audio and video content created on ...
, developers must translate traditional HLSL and GLSL shaders into AGAL.Crytek, Silent Hunter Online talks late additions to GDC Europe 2013
Gamasutra ''Game Developer'', known as ''Gamasutra'' until 2021, is a website founded in 1997 that focuses on aspects of video game development. It is owned and operated by Informa and acts as the online sister publication to the print magazine '' Gam ...
, ''"C++ console rendering engine into Adobe Flash using Actionscript/Stage3D and using AGAL for graphical effects such as ocean rendering"''
The C++ video game code can be converted into Flash-compatible code using CrossBridge.


See also

* Papervision3D * WebGL


References


External links

*Stage3D articles on Adobe Developer Connection ** ** ** ** ** ** ** ** ** ** ** ** * Translation tools from
OpenGL OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
and GLSL: ** ** {{Adobe Flash 3D graphics APIs Adobe Flash Graphics libraries