Stage3D
   HOME

TheInfoList



OR:

Stage3D (
codename A code name, call sign or cryptonym is a Code word (figure of speech), code word or name used, sometimes clandestinely, to refer to another name, word, project, or person. Code names are often used for military purposes, or in espionage. They may ...
d ''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 e ...
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 An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
for rendering interactive
3D graphics 3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for the ...
with
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobil ...
-acceleration, within Flash games and applications. Flash Player or
AIR The atmosphere of Earth is the layer of gases, known collectively as air, retained by Earth's gravity that surrounds the planet and forms its planetary atmosphere. The atmosphere of Earth protects life on Earth by creating pressure allowing f ...
applications written in
ActionScript 3 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 i ...
may use Stage3D to render 3D graphics, and such applications run natively on Windows, Mac OS X, Linux, Apple
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
and Google Android.Stage3D unsupported chipsets, drivers, Flash Player 11, AIR 3
Adobe Help
Stage3D is similar in purpose and design to
WebGL WebGL (Short for Web Graphics Library) is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated ...
. Stage3D was introduced in
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is Software, computer software for viewing multimedia contents, executing rich Internet applications, and streaming media, streaming audio and vide ...
11.0 and
AIR The atmosphere of Earth is the layer of gases, known collectively as air, retained by Earth's gravity that surrounds the planet and forms its planetary atmosphere. The atmosphere of Earth protects life on Earth by creating pressure allowing f ...
3.0 in order to facilitate
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobil ...
-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. 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 ...
. 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 spec ...
s in Stage3D are expressed in the Adobe Graphics Assembly Language (AGAL). Stage3D objects depart from the traditional SWF rendering model in that they cannot be added to SWF's
display list A display list (or ''display file'') is a series of graphics commands that define an output image. The image is created ( ''rendered'') by executing the commands to combine various primitives. This activity is most often performed by specialized di ...
s; 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 i ...
. 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 i ...
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 genres ...
3,
Away3D Away3D is an open-source platform for developing interactive 3D graphics for video games and applications, in Adobe Flash or HTML5. The platform consists of a 3D world editor (Away Builder),
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 ...
,
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 Thre ...
, 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 moni ...
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 i ...
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 (computer), Mac computers. Within the market of ...
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, which ...
) 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 serv ...
). *Accelerated GPU Rendering - Integrated support for
graphic cards 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 moni ...
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 spec ...
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 Texture may refer to: Science and technology * Surface texture, the texture means smoothness, roughness, or bumpiness of the surface of an object * Texture (roads), road surface characteristics with waves shorter than road roughness * Texture (c ...
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 Compressio ...
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 The sliding filament theory explains the mechanism of muscle contraction based on muscle proteins that slide past each other to generate movement. According to the sliding filament theory, the myosin ( thick filaments) of muscle fibers slide past ...
- A cross-compilation toolkit to compile OpenGL-based 3D games or game engines to run within Flash Player. *
Adobe Scout Adobe Scout is a visual profiler for Adobe Flash content running on desktop or mobile platforms, and works together with Adobe Flash Player and Adobe AIR.
- 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 be ...
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 spec ...
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 that ...
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 Software, computer software for viewing multimedia contents, executing rich Internet applications, and streaming media, streaming audio and vide ...
, depending on the platform. With AGAL, developers can write shaders that transform 3D models on the GPU (
vertex 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 ...
), 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 of ...
effects on the GPU (
pixel 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 spec ...
). AGAL also allows high-quality texture rendering with
mip-mapping In computer graphics, mipmaps (also MIP maps) or pyramids are pre-calculated, optimization (computer science), optimized sequences of digital image, images, each of which is a progressively lower image resolution, resolution representation of the ...
. 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 i ...
s such as
Away3D Away3D is an open-source platform for developing interactive 3D graphics for video games and applications, in Adobe Flash or HTML5. The platform consists of a 3D world editor (Away Builder),
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 of ...
, 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 map In computer graphics, environment mapping, or reflection mapping, is an efficient image-based lighting technique for approximating the appearance of a reflective surface by means of a precomputed texture. The texture is used to store the image of ...
ping.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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
3D video games for playback in
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is Software, computer software for viewing multimedia contents, executing rich Internet applications, and streaming media, streaming audio and vide ...
, 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++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
video game code can be converted into Flash-compatible code using
CrossBridge The sliding filament theory explains the mechanism of muscle contraction based on muscle proteins that slide past each other to generate movement. According to the sliding filament theory, the myosin ( thick filaments) of muscle fibers slide past ...
.


See also

*
Papervision3D Papervision3D is an open-source, 3D graphics engine for rendering 3D content within Adobe Flash Player and Adobe AIR. Unlike modern Flash 3D engines such as Away3D and Flare3D, Papervision3D is not built for Stage3D and renders 3D content fully o ...
*
WebGL WebGL (Short for Web Graphics Library) is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins. WebGL is fully integrated with other web standards, allowing GPU-accelerated ...


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 OpenGL Shading Language (GLSL) is a high-level shading language with a syntax based on the C programming language. It was created by the OpenGL ARB (OpenGL Architecture Review Board) to give developers more direct control of the graphics pipeli ...
: ** ** {{Adobe Flash 3D graphics APIs Adobe Flash Graphics libraries