Web3D

Last updated

Web3D, also called 3D Web, is a group of technologies to display and navigate websites using 3D computer graphics.

Contents

Pre-WebGL era

The emergence of Web3D dates back to 1994, with the advent of VRML, a file format designed to store and display 3D graphical data on the World Wide Web. [1] In October 1995, at Internet World, Template Graphics Software demonstrated a 3D/VRML plug-in for the beta release of Netscape 2.0 by Netscape Communications. [2]

The Web3D Consortium was formed to further the collective development of the format. VRML and its successor, X3D, have been accepted as international standards by the International Organization for Standardization and the International Electrotechnical Commission.[ citation needed ]

The main drawback of the technology was the requirement to use third-party browser plug-ins to perform 3D rendering, which slowed the adoption of the standard.[ citation needed ]

Between 2000 and 2010, one of these plug-ins, Adobe Flash Player, was widely installed on desktop computers and was used to display interactive web pages and online games and to play video and audio content. [3] Several Flash-based frameworks appeared that used software rendering and ActionScript 3 to perform 3D computations such as transformations, lighting, and texturing. Most notable among them were Papervision3D and Away3D.[ citation needed ]

Eventually, Abobe developed Stage3D, an API for rendering interactive 3D graphics with GPU-acceleration for its Flash player and AIR products, [4] which was adopted by software vendors. [5] [6]

In 2009, an open-source 3D web technology called O3D was introduced by Google. It also required a browser plug-in, but contrary to Flash/Stage3D, was based on JavaScript API. O3D was geared not only for games but also for advertisements, 3D model viewers, product demos, simulations, engineering applications, control and monitoring systems, and massive online virtual worlds. [7]

WebGL and glTF

WebGL (short for "Web Graphics Library") evolved out of the Canvas 3D experiments started by Vladimir Vukićević at Mozilla Foundation. Vukićević first demonstrated a Canvas 3D prototype in 2006. By the end of 2007, both Mozilla [8] and Opera [9] had made their own separate implementations.

In early 2009, the nonprofit technology consortium Khronos Group started the WebGL Working Group, with initial participation from Apple, Google, Mozilla, Opera, and others. [10] Version 1.0 of the WebGL specification was released in March 2011. [11]

Major advantages of the new technology include conformity with web standards and near-native 3D performance without the use of any browser plug-ins. [12] Since WebGL is based on OpenGL ES, it works on mobile devices without any additional abstraction layers. For other platforms, WebGL implementations leverage ANGLE to translate OpenGL ES calls to DirectX, OpenGL, or Vulkan API calls. [13]

Among notable WebGL frameworks are A-Frame, which uses HTML-based markup for building virtual reality experiences; [14] PlayCanvas, an open-source engine alongside a proprietary cloud-hosted creation platform for building browser games; [15] Three.js, an MIT-licensed framework used to create demoscene from the early 2000s; [16] Unity, which obtained a WebGL back-end in version 5; [17] and Verge3D, which integrates with Blender, 3ds Max, and Maya to create 3D web content. [18]

With the rapid adoption of WebGL, a new problem arose—the lack of a 3D file format optimized for the Web. This issue was addressed by glTF, a format that was conceived in 2012 by members of the COLLADA working group. [19] At SIGGRAPH 2012, Khronos presented a demo of glTF, which was then called WebGL Transmissions Format (WebGL TF). On 19 October 2015, the glTF 1.0 specification was released. [20] Version 2.0 glTF uses a physically based rendering material model, proposed by Fraunhofer. [21] Other upgrades include sparse accessors and morph targets for techniques such as facial animation, and schema tweaks and breaking changes for corner cases or performance, such as replacing top-level glTF object properties with arrays for faster index-based access. [22]

Future

"WebGPU" is the working name for a potential web standard and JavaScript API for accelerated graphics and computing, aiming to provide "modern 3D graphics and computation capabilities". It is developed by the W3C "GPU for the Web" Community Group, with engineers from Apple, Mozilla, Microsoft, and Google, among others. [23]

WebGPU will not be based on any existing 3D API and will use Rust-like syntax for shaders. [24]

See also

Related Research Articles

<span class="mw-page-title-main">Adobe Flash</span> Discontinued multimedia platform used to add animation and interactivity to websites

Adobe Flash is a discontinued multimedia software platform used for production of animations, rich internet applications, desktop applications, mobile apps, mobile games, and embedded web browser video players.

<span class="mw-page-title-main">VRML</span> File format for representing 3D interactive vector graphics

VRML is a standard file format for representing 3-dimensional (3D) interactive vector graphics, designed particularly with the World Wide Web in mind. It has been superseded by X3D.

X3D is a set of royalty-free ISO/IEC standards for declaratively representing 3D computer graphics. X3D includes multiple graphics file formats, programming-language API definitions, and run-time specifications for both delivery and integration of interactive network-capable 3D data. X3D version 4.0 has been approved by Web3D Consortium, and is under final review by ISO/IEC as a revised International Standard (IS).

The Khronos Group, Inc. is an open, non-profit, member-driven consortium of 170 organizations developing, publishing and maintaining royalty-free interoperability standards for 3D graphics, virtual reality, augmented reality, parallel computation, vision acceleration and machine learning. The open standards and associated conformance tests enable software applications and middleware to effectively harness authoring and accelerated playback of dynamic media across a wide variety of platforms and devices. The group is based in Beaverton, Oregon.

<span class="mw-page-title-main">Adobe Shockwave</span> Multimedia platform

Adobe Shockwave is a discontinued multimedia platform for building interactive multimedia applications and video games. Developers originate content using Adobe Director and publish it on the Internet. Such content could be viewed in a web browser on any computer with the Shockwave Player plug-in installed. MacroMind originated the technology; Macromedia acquired MacroMind and developed it further, releasing Shockwave Player in 1995. Adobe then acquired Shockwave with Macromedia in 2005. Shockwave supports raster graphics, basic vector graphics, 3D graphics, audio, and an embedded scripting language called Lingo.

A shading language is a graphics programming language adapted to programming shader effects. Shading languages usually consist of special data types like "vector", "matrix", "color" and "normal".

Adobe Flash Player is computer software for viewing multimedia content, executing rich Internet applications, and streaming audio and video content created on the Adobe Flash platform. It can run from a web browser as a browser plug-in or independently on supported devices. Originally created by FutureWave under the name FutureSplash Player, it was renamed to Macromedia Flash Player after Macromedia acquired FutureWave in 1996. It was then developed and distributed by Adobe as Flash Player after Adobe acquired Macromedia in 2005. It is currently developed and distributed by Zhongcheng for users in China, and by Harman International for enterprise users outside of China, in collaboration with Adobe.

3DMLW is a discontinued open-source project, and a XML-based Markup Language for representing interactive 3D and 2D content on the World Wide Web.

<span class="mw-page-title-main">Tony Parisi (software developer)</span>

Tony Parisi, one of the early pioneers in virtual reality and the metaverse, is an entrepreneur, inventor and developer of 3D computer software. The co-creator of Virtual Reality Modeling Language (VRML), he has written books and papers on the future of technology. He works on WebGL and WebVR and has written two books on the former, and an introductory book on virtual reality programming. He is the chief strategy officer at Lamina1. Parisi is also a musician, composer and producer working on multiple projects.

<span class="mw-page-title-main">O3D</span>

O3D is an open-source JavaScript API created by Google for creating interactive 3D graphics applications that run in a web browser window or in a XUL desktop application. O3D may be crafted for use in any application area; however, it is geared towards games, advertisements, 3D model viewers, product demos, simulations, engineering applications, control and monitoring systems, and massive online virtual worlds. O3D is currently in Google's incubation lab, and was originally built as a web browser plugin. Since 2010, O3D is a JavaScript library implemented on top of WebGL.

<span class="mw-page-title-main">WebGL</span> JavaScript bindings for OpenGL in web browsers

WebGL 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 usage of physics, image processing, and effects in the HTML canvas. WebGL elements can be mixed with other HTML elements and composited with other parts of the page or page background.

<span class="mw-page-title-main">Away3D</span>

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, a 3D graphics engine, a 3D physics engine and a compressed 3D model file format (AWD).

<span class="mw-page-title-main">Oak3D</span>

Oak3D is a free JavaScript library for 3D graphics development based on the HTML5 WebGL standard, dedicated in realizing the Web3D applications with GPU acceleration for all the front-end developers in an easy and efficient way.

<span class="mw-page-title-main">Three.js</span> JavaScript library for 3D graphics

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.

<span class="mw-page-title-main">Flare3D</span>

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 and a 3D graphics engine for rendering 3D graphics. Flare3D runs on current web browsers utilizing the Adobe Flash Player, and uses Stage3D for GPU-accelerated rendering. Flare3D has not been under active development since late 2014.

Stage3D is an Adobe Flash Player 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 is similar in purpose and design to WebGL.

<span class="mw-page-title-main">OpenFL</span> Software framework for video games

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

glTF 3D scene and model file format

glTF is a standard file format for three-dimensional scenes and models. A glTF file uses one of two possible file extensions: .gltf (JSON/ASCII) or .glb (binary). Both .gltf and .glb files may reference external binary and texture resources. Alternatively, both formats may be self-contained by directly embedding binary data buffers. An open standard developed and maintained by the Khronos Group, it supports 3D model geometry, appearance, scene graph hierarchy, and animation. It is intended to be a streamlined, interoperable format for the delivery of 3D assets, while minimizing file size and runtime processing by apps. As such, its creators have described it as the "JPEG of 3D."

WebGPU is a JavaScript API provided by a web browser that enables webpage scripts to efficiently utilize a device's graphics processing unit (GPU). This is achieved with the underlying Vulkan, Metal, or Direct3D 12 system APIs. On relevant devices, WebGPU is intended to supersede the older WebGL standard.

References

  1. Dave Raggett (1994). "Extending WWW to support Platform Independent Virtual Reality" . Retrieved 22 May 2023.
  2. First 3D/VRML Plug-in for Netscape 2.0 shown by TGS; TGS extends leadership in Internet 3D products and technology. AllBusiness.com. 30 Oct 1995. Last accessed 26 Dec 2011.
  3. Looking back at the best Flash sites of 2009 Archived 18 October 2015 at the Wayback Machine , Adobe Developer Connection, 14 December 2009
  4. 3D game development for Flash and video games
  5. "Adobe Flash 11 adopts Unreal Engine 3 for better browser games | The Verge". theverge.com. 7 October 2011. Retrieved 22 May 2023.
  6. Keith Gladstien (2013). Flash Game Development In a Social, Mobile and 3D World. Cengage Learning. pp. 383–421. ISBN   978-1-4354-6021-8.
  7. O3D Project Page from Google Code
  8. "Canvas 3D: GL power, web-style". Blog.vlad1.com. Archived from the original on 17 July 2011. Retrieved 14 May 2011.
  9. "Taking the canvas to another dimension". My.opera.com. 26 November 2007. Archived from the original on 17 November 2007. Retrieved 14 May 2011.
  10. "WebGL – OpenGL ES 2.0 for the Web". Khronos.org. Retrieved 22 May 2023.
  11. "Khronos Releases Final WebGL 1.0 Specification". 3 March 2011. Retrieved 22 May 2023.
  12. "WebGL Fundamentals". HTML5 Rocks.
  13. "ANGLE – Almost Native Graphics Layer Engine". 2019. Retrieved 22 May 2023.
  14. "A-Frame". A-Frame. Retrieved 22 May 2023.
  15. "GDC 2014: Mozilla and partners prove Web is the platform for gaming". blog.mozilla.org. 18 March 2014. Retrieved 22 May 2023.
  16. NVScene. "NVScene 2015 Session: Reinventing The Wheel – One Last Time (Ricardo Cabello)". YouTube.
  17. Robertson, Adi (3 March 2015). "Unity officially releases its new game engine: Unity 5". The Verge. Retrieved 22 May 2023.
  18. Thacker, Jim (28 May 2021). "Soft8Soft ships Verge3D 3.7". CG Channel. Retrieved 22 May 2023.
  19. Houston, Ben. "glTF: Everything You Need to Know". threekit.com. Retrieved 22 May 2023.
  20. Simkin, Aliaksei. "Behind the scene of 3D Magic". globant.com. Retrieved 29 October 2020.
  21. "Physically Based Materials in glTF – Current State. M. Limper, T. Sturm, SIGGRAPH 2016 WebGL & glTF BOF (July 27, 2016)". YouTube .
  22. "glTF 2.0 syntax changes and JSON encoding restrictions · Issue #831 · KhronosGroup/glTF". GitHub. Retrieved 22 May 2023.
  23. "GPU for the Web Community Group". w3.org. Retrieved 22 May 2023.
  24. "From GLSL to WGSL: the future of shaders on the Web" . Retrieved 22 May 2023.