Adobe Graphics Assembly Language
   HOME

TheInfoList



OR:

Stage3D (
codename A code name, codename, call sign, or cryptonym is a 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 also be used in ...
d ''Molehill'') is an
Adobe Adobe (from arabic: الطوب Attub ; ) 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 use ...
Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia c ...
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
for rendering interactive
3D graphics 3D computer 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 purposes of perfor ...
with
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
-acceleration, within Flash games and applications. Flash Player or
AIR An atmosphere () is a layer of gases that envelop an astronomical object, held in place by the gravity of the object. A planet retains an atmosphere when the gravity is great and the temperature of the atmosphere is low. A stellar atmosph ...
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 (meani ...
may use Stage3D to render 3D graphics, and such applications run natively on Windows, Mac OS X, Linux, Apple
iOS Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
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 Application programming interface, API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-in (computing), plug-ins. WebGL is fully integra ...
. Stage3D was introduced in
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia ...
11.0 and
AIR An atmosphere () is a layer of gases that envelop an astronomical object, held in place by the gravity of the object. A planet retains an atmosphere when the gravity is great and the temperature of the atmosphere is low. A stellar atmosph ...
3.0 in order to facilitate
GPU A graphics processing unit (GPU) is a specialized electronic circuit designed for digital image processing and to accelerate computer graphics, being present either as a discrete video card or embedded on motherboards, mobile phones, personal ...
-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 primary processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, log ...
. Flash Player 10 supported a limited form of GPU acceleration support for materials, in an API called Pixel Bender. 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 s ...
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, also called a command list in Direct3D 12 and a command buffer in Vulkan, is a series of graphics commands or instructions that are run when the list is executed. Systems that make use of display list functionality are called ...
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 (mean ...
. 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 which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
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 video game '' Unreal''. Initially developed for PC first-person shooters, it has since been used in a variety of ...
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,
Flare3D Flare3D is a framework for developing interactive three-dimensional ( 3D) graphics within Adobe Flash Player, Adobe Substance and Adobe AIR, written in ActionScript 3. Flare3D includes a 3D object editor (the Flare3D IDE) and a 3D graphics engine ...
,
Starling Starlings are small to medium-sized passerine (perching) birds known for the often dark, glossy iridescent sheen of their plumage; their complex vocalizations including mimicking; and their distinctive, often elaborate swarming behavior, know ...
, 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 Thr ...
, 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 accelerator, graphics adapter, VGA card/VGA, video adapter, display adapter, or colloquially GPU) is a computer expansion card that generates a feed of graphics output to a displa ...
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 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 (mean ...
3 API for managing texture memory, vertex shading, pixel shading, and mesh rendering. Transparently executed using
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
(on
Mac OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
) 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 Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
). *Accelerated GPU Rendering - Integrated support for
graphic cards A graphics card (also called a video card, display card, graphics accelerator, graphics adapter, VGA card/VGA, video adapter, display adapter, or colloquially GPU) is a computer expansion card that generates a feed of graphics output to a displa ...
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 s ...
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 * Image texture, the spatial arrangement of color or intensities in an image * Surface texture, the smoothness, roughness, or bumpiness of the surface of an object * Texture (roads), road surface c ...
format such that textures can be converted to appropriate platform-specific texture formats such as DXT on Windows and MacOS, PVRTC 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 CrossBridge is an open-source toolset developed by Adobe Systems, that cross-compiles C and C++ code to run in Adobe Flash Player or Adobe AIR. Projects compiled with CrossBridge run up to 10 times faster than ActionScript 3 projects.Adobe Scout - A visual profiler for Flash content running on desktop or 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 computing, assembly language (alternatively 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 bet ...
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 s ...
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) is an enumerated value that specifies the operation to be performed. Opcodes are employed in hardware devices such as arithmetic logic units (ALUs), central processing units (CPUs), and ...
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), ...
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 a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia ...
, 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 s ...
), and shaders that render complex dynamic lighting 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 s ...
). 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 which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
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, Adobe Substance and Adobe AIR, written in ActionScript 3. Flare3D includes a 3D object editor (the Flare3D IDE) and a 3D graphics engine ...
for various effects. AGAL is commonly used to provide dynamic lighting, high dynamic ranging (HDR), alpha masking, multipass rendering,
displacement map Displacement may refer to: Physical sciences Mathematics and physics *Displacement (geometry), is the difference between the final and initial position of a point trajectory (for instance, the center of mass of a moving object). The actual path ...
ping, and
environment map In computer graphics, reflection mapping or environment mapping is an efficient image-based lighting technique for approximating the appearance of a Specular reflection, reflective surface by means of a precomputed Texture mapping, texture. The t ...
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++ 3D video games for playback in
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia ...
, 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 created in 1997 that focuses on aspects of video game development. It is owned and operated by Informa TechTarget and acted as the online sister publication to the print maga ...
, ''"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 CrossBridge is an open-source toolset developed by Adobe Systems, that cross-compiles C and C++ code to run in Adobe Flash Player or Adobe AIR. Projects compiled with CrossBridge run up to 10 times faster than ActionScript 3 projects.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 fu ...
*
WebGL WebGL (short for Web Graphics Library) is a JavaScript Application programming interface, API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-in (computing), plug-ins. WebGL is fully integra ...


References


External links

*Stage3D articles on Adobe Developer Connection ** ** ** ** ** ** ** ** ** ** ** ** * Translation tools from
OpenGL OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
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 pipe ...
: ** ** {{Adobe Flash 3D graphics APIs Adobe Flash Graphics libraries