Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Look up keyword
Like this
8Activity
0 of .
Results for:
No results containing your search query
P. 1
WebGL Collada Final DRAFT 7-1 Mcb4

WebGL Collada Final DRAFT 7-1 Mcb4

Ratings: (0)|Views: 1,970 |Likes:
Relationship between Khronos Standards WebGL and COLLADA, a white paper done under contract for The Khronos Group - June 30, 2010
Relationship between Khronos Standards WebGL and COLLADA, a white paper done under contract for The Khronos Group - June 30, 2010

More info:

Published by: Rita Brennan Turkowski on Jul 12, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

09/12/2011

pdf

text

original

 
Enabling the Immersive 3D Web with COLLADA &WebGL
Rita Turkowski – June 30, 2010
Introduction
 The web is built on standard document formats (HTML, XML, CSS) andstandard communication protocols (HTTP, TCP/IP), gaining momentumby the principle and power of the hyperlink (URL / URI) (1). Browsersand servers implementing those standards have revolutionizedpublishing and searching. Not only can documents be linked by otherdocuments, but since the data is provided in a standard open languageit also provides the ability to link to specific content inside a document,enabling the rich navigation and search functionalities that we take forgranted today. Two standard technologies developed by the Khronos Group (2), WebGLand COLLADA, are opening the way for enhancing the web experienceinto the third dimension (3D) of imaging. Thanks to this work, 3Dapplications can now take advantage of the fundamentals of the webwhile natively exploiting 3D graphics hardware acceleration. This whitepaper describes both Khronos standards at an abstract level and theevolution of an ecosystem that will enable immersive 3D Webapplications to evolve from currently disparate implementations (i.e.walled gardens” or “silos”) to become standard web publishingaccessible natively in a web browser.
What is WebGL?
WebGL (
Web
 
G
raphics
L
ibrary (3)) is a low-level JavaScript APIenabling web applications to take advantage of 3D graphics hardwareacceleration in a standard way. Currently the only way to provideinteractive display of appreciable quality 3D content in a web browseris to create a separate application loaded as a plug-in. Plug-ins areproblematic as they require end-user installation which is nottransparent, placing a burden on the end-user, and are frequentlyforbidden by companies security guidelines, impeding the generaladoption of 3D content. Consequently, this current situation fosters anecosystem of "walled garden" communities as opposed to a WorldWide Web experience where each user can publish, access, and searchcontent.In contrast, the WebGL standard will provide
native
access to thegraphics hardware by extending the HTML specifications with a new setof objects and functions for 3D graphics.1
 
 The contribution of this new API is twofold: firstly it removes the needfor external plug-ins installation, thus widening and accelerating itsadoption, and, secondly, it allows web application developers to rely ona standard that boasts a very large community of qualified 3Dprofessionals. In fact, WebGL is directly derived from the OpenGL ES2.0 specifications to be a bare-bones yet extremely efficient andpowerful graphics API.In this scenario, users of WebGL-enabled browsers, such as AppleSafari, Google Chrome, Mozilla Firefox, Opera and mobile solutions byNokia, will benefit from the richness of newly created applications suchas 3D virtual worlds directly from the browser. Technically speaking, WebGL is an extension to theHTMLCanvasElement(as defined by the W3C’s WHATWG HTML 5specificationCanvas element(4)), being specified and standardized bytheKhronos Group. The HTML CanvasElement represents an elementon the page into which graphic images can be rendered using aprogrammatic interface. The only interface currently standardized bythe W3C is the CanvasRenderingContext2D. The Khronos WebGLspecification describes another interface, WebGLRenderingContext,which faithfully exposes OpenGL ES 2.0 functionalities. WebGL bringsOpenGL ES 2.0 to the web by providing a 3D drawing context to thefamiliar HTML5 Canvas element through JavaScript objects that offerthe same level of functionality.
What is COLLADA?
COLLADA (5) is an
intermediate
language for interactive 3Dapplications. It has been designed from the ground-up with well-settledweb technologies: it is essentially XML for 3D assets, using URLs forlinking content. COLLADA enables content to flow from contentcreation tools to interactive applications; it is a lossless, extensibledeclarative language well suited for content (persistent) serializationand retrieval. The content can then be processed with standard tools inits native XML encoding and adapted to any target application.COLLADA is also being used as an interchange format, providing abridge between authoring applications. Because COLLADA is a royalty-free open standard based on standard XML technology, its use as apublishing format has been steadily growing with its adoption byGoogle Earth(6) and other GIS applications, web 3D engines such asPapervision3D(7), Google O3D(8) and asset repository systems such as3DVIA(9) and Google 3D warehouse(10).
Motivation for WebGL
2
 
 The inclusion of native 3D rendering capabilities inside web browsers,as witnessed by the interest and participation in the Khronos Group'sWebGL(3) project, aims at simplifying the development of 3D for theweb. It does this by eliminating the need to create a 3D web plug-in(and requiring a non-trivial end-user download with manual installationbefore any 3D content can be viewed by the end-user).WebGL benefits by harnessing the widely used standard OpenGL ES 2.0API directly. Some background is useful here. Many graphicsprogrammers today leverage the OpenGL family of APIs that aresupported by a number of hardware drivers. OpenGL ES is increasinglyfound on a number of devices (e.g., 3D games for the iPhone aresupported via OpenGL ES). Therefore driver support is already good,and likely to continue to improve over time. In fact, OpenGL ES 2.0 willwork on the desktop though not natively supported by desktop drivers.It can be implemented on top of desktop OpenGL with some care butyou need to impose the appropriate restrictions. Google explicitlycreated project ANGLE (11) which implements a compliant OpenGL ES2.0 API on top of Microsoft’s D3D9 that browsers will most commonlyuse on Windows (12). The Khronos WebGL Working Group is motivated to specify how tobring hardware-accelerated 3D graphics to the web for a number of reasons:
 JavaScript performance has radically improved.
 JavaScript is the "defacto" programming language of the web.
Many interesting applications are web applications.
Cloud based application development is growing.
New capabilities on the web should solve for the widest use case.For example, libraries such as jQuery and Dojo provideprogrammer-facing abstractions and syntactic help, so thatdevelopers rarely need to use the underlying "raw" primitives.Likewise, by providing a Shader-based API like OpenGL ES 2.0within WebGL, Khronos is solving for the widest possible numberof use cases, leaving room for new libraries to do many things,including model parsing, etc. This provides a technicalinfrastructure that benefits both business models and academicresearch models.
Motivation for COLLADA
 The burden COLLADA set out to alleviate is that 3D environments aredifficult, expensive and time-consuming to create and manage.Content creation represents by far the largest budget in the cost of 3

Activity (8)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
ekhary liked this
Stefan Ammon liked this
Stefan Ammon liked this
devarde liked this
Khronos Group liked this
KrIAWm liked this

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->