WebGL logo
Ph: 477704087

WebGL

From Wikipedia, the free encyclopedia
Jump to: navigation, search

WebGL (Web-based Graphics Library) is a software library that extends the capability of the JavaScript programming language to allow it to generate interactive 3D graphics within any compatible web browser. WebGL code executes on a computer display card's Graphics Processing Unit (GPU), which must support shader rendering.

WebGL is a context of the canvas HTML element that provides a 3D computer graphics API without the use of plug-ins.[2] The specification was released as version 1.0 on March 3, 2011.[1] WebGL is managed by the non-profit Khronos Group.

[edit] Design

WebGL is based on OpenGL ES 2.0 and provides an API for 3D graphics.[3] It uses the HTML5 canvas element and is accessed using Document Object Model interfaces. Automatic memory management is provided as part of the JavaScript language.[2]

[edit] Implementation

[edit] Desktop Browsers

Mozilla Firefox - WebGL has been enabled on all platforms that have a capable graphics card with updated drivers since version 4.0.[4] Mozilla Firefox 8.0 and newer versions use Cross-Origin Resource Sharing (CORS) to control all WebGL cross-domain textures.[5][6] Google Chrome - WebGL has been enabled on all platforms that have a capable graphics card with updated drivers since version 9.[7] Google Chrome 13.0 and newer versions use Cross-Origin Resource Sharing (CORS) to control all WebGL cross-domain textures.[8] Safari - Safari 5.1 installed on Mac OS X Lion has support for WebGL, which is disabled by default.[9] Opera - WebGL has been implemented by Opera in the latest Opera 12 pre-release snapshots. [10] Internet Explorer - Microsoft has not announced any plans to officially support WebGL. The Chrome Frame and IEWebGL plugins provide options to add support for WebGL to Internet Explorer.

[edit] Mobile Browsers

Nokia N900 - WebGL is available in the PR1.2 firmware update.[11] BlackBerry PlayBook - WebGL is available via WebWorks in PlayBook OS 2.0[12] Firefox for mobile - WebGL is available for Android devices in unstable builds since early 2011.[13] The Sony Ericsson Xperia range of Android smartphones have had WebGL capabilities following a firmware upgrade.[14]

[edit] Development

WebGL is managed by the non-profit technology consortium Khronos Group. The WebGL working group includes Apple, Google, Mozilla, and Opera.[2] The chair of the working group is Ken Russell.

[edit] History

WebGL grew out of the Canvas 3D experiments started by Vladimir Vukićević at Mozilla. Vukićević first demonstrated a Canvas 3D prototype in 2006. By the end of 2007, both Mozilla[15] and Opera[16] had made their own separate implementations.

In early 2009 Mozilla and Khronos started the WebGL Working Group.[17] Version 1.0 of the WebGL specification was released March 2011.[1] WebGL was postulated to have critical security vulnerabilities in May 2011, which would allow denial of service and cross scripting attacks.[18]

Notable early applications include Google Body.[19][20]

[edit] Security

In May 2011, security firm Context Information Security published a report that elaborated on a number of security issues present in current Google Chrome and Mozilla Firefox WebGL implementations and inherent to the WebGL specification. According to the report, WebGL fundamentally allows Turing-complete programs originating from the Internet to reach kernel-mode graphics drivers and graphics hardware. The report also provided references to example exploits of the security issues capable of causing denial of service and cross-domain image theft. The report concluded that "browsers that enable WebGL by default put their users at risk to these issues."[18]

Later, based on this report, the United States Computer Emergency Readiness Team (US-CERT) issued a warning that "WebGL contains multiple significant security issues. The impact of these issues includes arbitrary code execution, denial of service, and cross-domain attacks." US-CERT also encouraged "users and administrators to review the Context report and disable WebGL to help mitigate the risks."[21]

The Khronos Group, an API design consortium which includes Mozilla and Google, responded to the concern by suggesting possible solutions and a future development approach.[22] After reviewing the Context report, Mozilla decided to disable support for cross-domain images in Firefox; meanwhile, the Khronos Group has been updating the WebGL specification to enhance protection against denial-of-service and cross-origin resource sharing attacks.[23] At this time, the proposed solutions are still in development, and not ubiquitously deployed by GPU vendors.[24]

Context was not satisfied with the Khronos Group's approach of incrementally fixing WebGL and described the method as not addressing the design flaw.[25] In a follow-up report, Context provided more demonstrations of security vulnerabilities in the latest WebGL implementations on multiple platforms. Symptoms ranged from system crashing to screenshot leaking. They continued to question whether WebGL "was specified, designed and implemented with security in mind".[23]

In June 2011, Microsoft announced that they could not endorse WebGL in its current form from a security perspective. Analysis performed by its MSRC Engineering team concluded that WebGL support in Microsoft products would have difficulty in meeting the requirements of the Security Development Lifecycle, the software security standards internally enforced in Microsoft. Specifically, Microsoft cited overly permissive exposure of hardware functionality, heavy reliance on third parties to secure web experience, and unproven denial-of-service protection capabilities as their key concerns.[26]

Apple has indicated that they will not open WebGL to general Internet pages in iOS 5. WebGL will only be available through iAds which needs to go through approval for each implementation by Apple.[27]

Notable independent graphic and security experts have weighed in reinforcing that WebGL is a severe security risk and will be hard to secure, including John Carmack[28] and Dan Kaminsky.[29]

Mozilla's vice president of technical strategy Mark Shaver rejected Microsoft's criticism. In a blog post, he wrote that Mozilla was working to address issues in the WebGL specification and Firefox's implementation. He emphasized that the web needs 3D capabilities and claimed that security issues are a natural part of a new technology. He commended Microsoft's work on the Direct3D API used in Silverlight 5, which he considered robust, but added that the same technology could be carried over to a Microsoft implementation of WebGL.[30]

[edit] Developer libraries

There are several libraries for WebGL development.

WebGLU. the first library made publicly available.[31] GLGE C3DL Copperlicht SpiderGL PhiloGL gwt-g3d G3D (WebGL wrapper) for GWT (Google Web Toolkit) SceneJS X3DOM Oak3D Processing.js Three.js Turbulenz, OSGJS XB PointStream CubicVR.js.

ANGLE (Almost Native Graphics Layer Engine) is an ongoing open source project released under the BSD license that allows translating WebGL content OpenGL ES 2.0 API calls to DirectX 9 API calls on Microsoft Windows platforms without the need for separate OpenGL drivers. In November 2011 ANGLE has reached an important milestone: it now passes the OpenGL ES 2.0 test suite and has been certified as a compliant GL ES 2.0 implementation.[32] Despite this certification, ANGLE does not implement the OpenGL ES 2.0 shading language to the published public specification instead relying on Khronos Group's incomplete and private language conformance tests.[33]

[edit] Content creation

A way for artists to create WebGL scenes without programming is to use a content creation tool such as Blender or Autodesk Maya. The scenes are then exported to WebGL. This was first possible with Inka3D, a WebGL export plugin for Maya.

[edit] Sample renderings


[edit] See also

[edit] References

^ a b c "Khronos Releases Final WebGL 1.0 Specification". http://www.khronos.org/news/press/releases/khronos-releases-final-webgl-1.0-specification. Retrieved 3 March 2011.  ^ a b c "WebGL - OpenGL ES 2.0 for the Web". Khronos.org. http://www.khronos.org/webgl/. Retrieved 2011-05-14.  ^ "WebGL Specification". Khronos.org. http://www.khronos.org/registry/webgl/specs/latest/. Retrieved 2011-05-14.  ^ http://www.mozilla.com/en-US/firefox/4.0/releasenotes/ ^ Cross-domain textures ^ Using CORS to load WebGL textures from cross-domain images ^ http://www.fiercecio.com/techwatch/story/google-releases-chrome-9-comes-google-instant-webgl/2011-02-08 ^ Using Cross-domain images in WebGL and Chrome 13 ^ http://fairerplatform.com/2011/05/new-in-os-x-lion-safari-5-1-brings-webgl-do-not-track-and-more/ ^ http://my.opera.com/desktopteam/blog/2011/10/13/introducing-opera-12-alpha ^ suihkulokki (2010-06-07). "WebGL on N900". Suihkulokki.blogspot.com. http://suihkulokki.blogspot.com/2010/06/webgl-on-n900.html. Retrieved 2011-05-14.  ^ Halevy, Ronen. "PlayBook OS 2.0 Developer Beta Includes WebGL, Flash 11, & AIR 3.0". BerryReview. http://www.berryreview.com/2011/10/18/playbook-os-2-0-developer-beta-includes-webgl-flash-11-air-3-0/. Retrieved 15 November 2011.  ^ iclkevin (2011-11-12). "WebGL on Mobile Devices". iChemLabs. http://www.ichemlabs.com/1375. Retrieved 2011-11-25.  ^ "Xperiaâ„¢ phones first to support WebGL™— Developer World". blogs.sonyericsson.com. The Sony Ericsson Developer Program. November 29, 2011. http://blogs.sonyericsson.com/wp/2011/11/29/xperia-phones-first-to-support-webgl/. Retrieved December 5, 2011.  ^ "Canvas 3D: GL power, web-style". Blog.vlad1.com. http://blog.vlad1.com/2007/11/26/canvas-3d-gl-power-web-style/. Retrieved 2011-05-14.  ^ "Taking the canvas to another dimension". My.opera.com. 2007-11-26. http://my.opera.com/timjoh/blog/2007/11/13/taking-the-canvas-to-another-dimension. Retrieved 2011-05-14.  ^ "Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet". Khronos.org. 2009-08-04. http://www.khronos.org/news/press/releases/khronos-webgl-initiative-hardware-accelerated-3d-graphics-internet. Retrieved 2011-05-14.  ^ a b Forshaw, James (2011-05-08). "WebGL - A New Dimension for Browser Exploitation". Context Information Security. http://www.contextis.com/resources/blog/webgl/. Retrieved 2011-05-11.  ^ "Google Body - Google Labs". Bodybrowser.googlelabs.com. http://bodybrowser.googlelabs.com. Retrieved 2011-05-14.  ^ Bhanoo, Sindya N. (2010-12-23). "New From Google: The Body Browser". Well.blogs.nytimes.com. http://well.blogs.nytimes.com/2010/12/23/new-from-google-the-body-browser/. Retrieved 2011-05-14.  ^ "WebGL Security Risks". US-CERT. 2011-05-10. http://www.us-cert.gov/current/archive/2011/05/10/archive.html#web_users_warned_to_turn. Retrieved 2011-05-11.  ^ "WebGL - Security". Khronos Group. 2011-06-17. http://www.khronos.org/webgl/security/. Retrieved 2011-06-19.  ^ a b "WebGL – More WebGL Security Flaws". Context Information Security. 2011-06-16. http://www.contextis.com/resources/blog/webgl2/. Retrieved 2011-06-16.  ^ "WebGL Security". Khronos Group. 2011-05-09. http://www.khronos.org/news/permalink/webgl-security. Retrieved 2011-05-11.  ^ "Context WEbGL security FAQ". Context Information Security. http://www.contextis.com/resources/blog/webgl/faq/. Retrieved 2011-05-16.  ^ "WebGL Considered Harmful". Microsoft. 2011-06-16. http://blogs.technet.com/b/srd/archive/2011/06/16/webgl-considered-harmful.aspx. Retrieved 2011-06-16.  ^ "Microsoft, Apple Dis WebGL". InformationWeek. 2011-06-16. http://www.informationweek.com/news/security/vulnerabilities/230800086. Retrieved 2011-06-20.  ^ Carmack, John (2011-06-17). "Tweet". http://twitter.com/#!/ID_AA_Carmack/status/81732190949486592. Retrieved 2011-06-20.  ^ Kaminsky, Dan (2011-06-16). "Tweet". http://twitter.com/#!/dakami/status/81512002912141314. Retrieved 2011-06-20.  ^ "Mozilla rejects Microsoft criticism of WebGL". The Inquirer. 2011-06-20. http://www.theinquirer.net/inquirer/news/2080571/mozilla-rejects-microsoft-criticism-webgl. Retrieved 2011-06-29.  ^ Benjamin DeLillo (2009-10-02). "First WebGLU release". Bjartr.blogspot.com. http://bjartr.blogspot.com/2009/10/more-webgl-progress-now-with-video.html. Retrieved 2011-05-14.  ^ Chromium Blog: OpenGL ES 2.0 Certification for ANGLE ^ ANGLE bug 183 demonstrating non-conformance

[edit] External links

Official website WebGL /Canvas 3D Preview in WebKit r48331 www.DoesMyBrowserSupportWebGL.com WebGL Demo from Google Chromium WebGL Demo from Google Chromium (deprecated) EndlessForms.com See the power of WebGL by comparing this site (where you can evolve objects) in Chrome and Safari. Sand Toy: Particle Physics An example of doing particle physics on the GPU using a shader. OpenWebGlobe SDK Virtual Globe SDK using WebGL WebGL Earth Complex 3D Earth visualization Tutorials
Personal tools
Namespaces
Variants
Actions


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser