Jump to content

Away3D

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Wonderfl (talk | contribs) at 15:41, 2 March 2016 (History: add AwayJS section). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Original author(s)Rob Bateman, Alexander Zadorozhny, Fabrice Closier, Peter Kapelyan, Greg Caldwell, Andreas Engstrom, Stephen White, David Lenaerts, Richard Olsson, Cauê Waneck[1]
Developer(s)Away Foundation
Initial release2007; 18 years ago (2007)[2][3]
Stable release
4.1.6 / January 24, 2014; 10 years ago (2014-01-24)[4]
Repository
Written inActionScript 3
Operating systemWeb, Windows, iOS, Android, BlackBerry
TypeGame engine
LicenseApache License 2.0
Websiteaway3d.org

Away3D is an open source framework for developing interactive 3D graphics within Adobe Flash Player and Adobe AIR, written in ActionScript 3. Away3D runs on current web browsers utilizing the Adobe Flash Player, and uses Stage3D for GPU-accelerated rendering.

The Away3D platform consists of a 3D world editor (Away Builder),[5][6] a 3D graphics engine (Away3D), a 3D physics engine (Away Physics)[7] and a compressed 3D model file format (AWD).[8][9]

The Away Builder IDE can import 3D models from various 3D applications such as Autodesk 3ds Max, and can bake lighting into texture maps.[5] The primary purpose of Away Builder is exporting 3D model packages for the Away3D engine.[5] The Away Extensions plugin enables exporting 2D and 3D content from Adobe Animate into Away3D or AwayJS.[10]

The Away3D engine can render 3D models and perform various other 3D computations. It supports hierarchical object transformation with features such as position, rotation and scaling, rendering of bitmap textures, and real-time lighting using Phong shading or Gouraud shading.[11] Away Physics is a physics engine based on the Bullet physics library, for collision detection, soft and rigid body dynamics.[7] The engine is built jointly by the Away3D team and the JiglibFlash team, and is tightly integrated with the Away3D render pipeline.[7]

Away3D 4 and onwards fully supports GPU-accelerated graphics using the Stage3D API introduced in Flash Player 11, freeing up the CPU for other computational tasks.[12] Since GPUs are capable of rendering many more textured triangles per second, it allows for much more detail and quality, and up to 100,000 triangles per frame instead of the typical 1,000 ceiling with CPU-based Flash rendering.[13]

History

Away3D was started in 2007 by Alexander Zadorozhny and Rob Bateman[2] as a fork of Papervision3D.[3]

Away3D saw active community involvement since its introduction in 2007, and superseded Papervision3D after it was updated to support GPU-accelerated rendering using Stage3D. 3 guide books have been published on 3D content development with Away3D.[14][14][15][16]

In 2009, the Away3D community released Away3D Lite, a lighter version of the engine for Flash advertisements and other size-constrained content.[17][18] Away3D Lite was the fastest and smallest full-featured 3D engine built for Flash, and weighed in at 25KB and was 4 times faster than the full Away3D engine.[18] No future versions were released.[17]

In 2011, a Flash book noted in the section on "3D with Flash" that "Away3D and Alternativa3D are currently the preferred solution for performance and features because they have a more active development community".[3]

In 2013, Adobe chose Away3D as the sole 3D engine included within the Adobe Gaming SDK.[19][20] Since then, Adobe has funded further development in Away3D and Away Builder,[21] and has updated the Adobe Gaming SDK with new releases of Away3D.[22][22]

In 2016, Away3D 1.2 was ported to the Haxe multiplatform language, enabling it to be cross-compiled to JavaScript and other languages that support 3D graphics. This also enables Away3D to run on OpenFL, a runtime similar to Adobe Flash Player.[23]

AwayJS

AwayJS is a 2D and 3D rendering engine for HTML5 web browsers, and is a port of the Adobe Flash-based Away3D. The Away3D codebase was ported to Microsoft TypeScript, a strongly-typed version of JavaScript.[24][25][26].

AwayJS can render 2D and 3D graphical content using WebGL for GPU-accelerated rendering.[27] It enables developers to use the existing Away Builder toolkit for editing, refining, compressing and texture baking 3D models.[28] AwayJS also supports the compressed AWD binary format, enabling smaller sizes for 3D models than ASCII-based formats such as OBJ.[29]

The AwayJS API is consistent with the Flash version of Away3D, enabling existing developers to migrate from Flash to HTML5 seamlessly.[30] To preserve backward-compatibility with Away3D, AwayJS enables developers to write GPU shaders in the Adobe AGAL language, or the standard OpenGL Shading Language language.[30]

References

  1. ^ Away3D Team, at the Official Website
  2. ^ a b Away3D project page, Google code
  3. ^ a b c Remi Arnaud (2011). "3D in a Web Browser". In Eric Lengyel (ed.). Game Engine Gems 2. CRC Press. pp. 207–208. ISBN 978-1-56881-437-7.
  4. ^ <"Away3D 4.1.6 Release".
  5. ^ a b c Away Builder, Away Tools
  6. ^ Away Builder, GitHub repository
  7. ^ a b c Away Physics, Away Foundation
  8. ^ AWD Format Website
  9. ^ AWD Format, Away Tools
  10. ^ Away Extensions, By The Away Foundation, Adobe Add-on Marketplace
  11. ^ Away3D, FlashMagazine
  12. ^ Stage3D vs WebGL Performance, Airtight Interactive
  13. ^ Away3D 4.0 Alpha release - Broomstick, Away3D.com
  14. ^ a b Away3d 3.6 Cookbook, Amazon.com
  15. ^ Away3D 3.6 Essentials (Community Experience Distilled), Amazon.com
  16. ^ The Essential Guide to 3D in Flash, Amazon.com
  17. ^ a b Away3D Lite Version 1.0, Away3D.com
  18. ^ a b Away3D Lite v1.0: fastest and smallest 3d engine in Flash, Rob Bateman, 11 Sep 2009, Away3D.com
  19. ^ Introducing Game Development Tools, ByteArray.org
  20. ^ Gaming SDK, Adobe Systems
  21. ^ 2013: Full Speed Ahead for Adobe Gaming!, Adobe AIR and Adobe Flash Player Team Blog, Adobe
  22. ^ a b Adobe Gaming SDK Updated, Adobe AIR and Adobe Flash Player Team Blog, Adobe
  23. ^ away3d 1.2.0, Ported to OpenFL 2.x/Haxe, Haxelib
  24. ^ Away3D makes its way to Typescript!, Adobe AIR and Adobe Flash Player Team Blog
  25. ^ Away3D Typescript 4.1 Alpha, Away3D Blog
  26. ^ Away3D Typescript Website
  27. ^ Sperl, Daniel (2014-02-05). "Starling JS flocking to the Away Foundation". Gamua.
  28. ^ Introducing AwayJS, Lanyrd, Rob Bateman, 20th May, 2014
  29. ^ Tutorial: Away3D TypeScript: Resource Complete, July 7, 2014, Grok Digital Designs
  30. ^ a b Away 3D TypeScript, Away3D.com

Further reading