| Q&A |
KHRONOS
Group, WEBGL
Neil Trevett
Vice President Embedded Content, NVIDIA | President, Khronos
Group
Nov. 2009 |
| |
 |
“WebGL
is an API NOT a plug-in! That's a crucial difference
to previous approaches such as VRML and X3D. As OpenGL
ES is a Khronos standard it makes perfect sense for
the JavaScript binding to OpenGL ES to be defined at
Khronos – and the WebGL working group is a unique
collaborative forum between GPU and browser vendors
to make 3D on the web a reality.”
<
using WebGL to display Spore models |
|
| |
|
| Q1 |
Since
1994, we have seen a lot of initiatives for bringing 3D into
the web. Why does the Khronos Group want to take part of this
challenge? |
| A1 |
Khronos
exists to enable cross-platform, accelerated visual computing.
The Web has emerged as a key application platform –
and so enabling web content to directly access 3D graphics
acceleration is one of the most important tasks that Khronos
can be undertaking.
Also, WebGL is a direct binding to OpenGL ES 2.0 (or OpenGL
2.0 and above) from JavaScript that leverages the Canvas element
in HTML 5. It’s an API NOT a plug-in! That's a crucial
difference to previous approaches such as VRML and X3D. As
OpenGL ES is a Khronos standard it makes perfect sense for
the JavaScript binding to OpenGL ES to be defined at Khronos
– and the WebGL working group is a unique collaborative
forum between GPU and browser vendors to make 3D on the web
a reality.
Additionally, the need for WebGL to portably access 3D functionality
on both mobile devices with OpenGL ES and desktop platforms
with OpenGL sets up a healthy pressure for OpenGL ES and OpenGL
to cooperate to ensure that there is a common intersection
of 3D functionality that is reliably available on every 3D-capable
machine and device.
Finally, let me re-iterate the key ‘newness’ of
WebGL. It is 3D on the web with no plug-in. WebGL makes 3D
an integral part of the web itself - rather than being plugged
into a rectangular window inside the web. This will enables
whole new classes of 3D web usage - such as rich interfaces
and navigation AS PART OF THE WEB PAGE ITSELF. |
| |
|
| Q2 |
Do
you think that being natively supported by browsers will be
sufficient to become the standard for 3D on the Internet? Microsoft
XAML is supported natively by Internet Explorer and Windows
Vista and this technology is rarely used. |
| A2 |
The
Web is about cross platform portability and open, multi-vendor
standards. The thing to realize about WebGL is that this is
being DRIVEN by the Browser vendors – this is not plug-in
vendors trying to push something into the Web. This is the Web
demanding and creating a 3D capability for itself. So if WebGL
can provide ubiquitous, secure access to OpenGL ES from any
web browser – I think it stands an excellent chance of
becoming a widely deployed and used technology. |
| |
|
| Q3 |
JavaScript
run faster on today's browser, but will it be enough for programming
a 3D game with WebGL? |
| A3 |
JavaScript
performance has increased dramatically in recent Web browsers,
and there is a great deal of competition amongst browser vendors
to introduce even more improvements. Will you be able to run
the latest generation high-end first person shooters in JavaScript?
Probably not. But the browser vendors are confident that JavaScript
will deliver enough performance for a wide range of games, applications
and user interfaces to be enabled using WebGL. |
| |
|
| Q4 |
Could
you please give us some precision on how WebGL will interact
with JavaScript, Canvas or HTML 5? |
| A4 |
WebGL
is a low-level JavaScript binding to OpenGL ES 2.0, exposed
through the HTML 5 Canvas element as Document Object Model interfaces.
Developers familiar with OpenGL ES 2.0 will recognize WebGL
as a Shader-based API, with constructs in JavaScript that are
semantically similar to those of the underlying OpenGL ES 2.0
API. It stays as faithful as possible to the OpenGL ES 2.0 specification,
with some concessions made to what developers expect from JavaScript.
We look forward to the discovering what kind of Web applications
and Web pages the intersection of OpenGL developers and Web
developers will build. WebGL can also bind to OpenGL 2.0 and
above for 3D acceleration on desktop platforms. OpenGL 3.2 and
OpenGL ES 2.0 are increasingly close in core functionality –
and the OpenGL and OpenGL ES working groups are cooperating
within Khronos to ensure the two APIs don’t diverge. |
| |
|
| Q5 |
Google
O3D seems not very far from WebGL goals. Is WebGL a version
of O3D natively supported by browsers? |
| A5 |
Google's
O3D is an interesting technology starting with a higher level
scene graph API in contrast to WebGL which provides direct access
to OpenGL ES. Scene graph APIs provide opportunities for implementation
optimization – but are by definition more domain specific
and less general purpose than the low-level OpenGL ES functionality
provided by WebGL. O3D provides scene graph abstractions in
JavaScript and is currently built as a C++ plugin. We anticipate
that technologies such as O3D could be built on top of WebGL,
taking advantage of JavaScript performance improvements. The
Web has always benefited from libraries like Dojo, jQuery, and
Prototype, which provide Web developers with programmatic conveniences
on top of what browsers expose. We anticipate the same thing
for 3D programming on the Web. |
| |
|
| Q6 |
Do
you think that Apple, Google, Microsoft, Mozilla will support
WebGL in their Browsers? |
| A6 |
All
I can say is that Apple, Google, Mozilla and Opera are actively
developing and promoting WebGL – and that WebGL prototypes
are already appearing in open source browser builds. Microsoft
is not a member of Khronos – but I would expect third
parties to implement WebGL on Internet Explorer – a close
analogy to hardware vendors shipping OpenGL drivers on Windows. |
| |
|
| Q7 |
What
would be the file format of WebGL? Is Collada enough optimized
for being used on the Internet? |
| A7 |
There
is no file format for WebGL. WebGL provides access to OpenGL
ES from JavaScript – nothing more. For example, there
is no support in WebGL for loading 3D models, for receiving
input and interacting with the user, or for communicating over
a network. However, when combined within the set of open Web
standards supported by modern web browsers, all those functions
can be performed in already familiar ways. WebGL adds fast 3D
graphics to the open Web toolbox. |
| |
|
| Q8 |
Apple
support Collada natively into MacOS. Supporting 3D formats directly
into Operating Systems : is it not "the solution"
for bringing 3D everywhere? |
| A8 |
COLLADA
and WebGL can be hugely synergistic and both are Khronos standards
so cooperative evolution is possible. However, it is important
to understand what each standard is – and is not. COLLADA
is an authoring interchange format – it is NOT intended
to be a run-time content delivery format. It is very likely
that authoring pipelines for WebGL content will strongly leverage
COLLADA – but typically 3D assets would be conditioned,
compressed and perhaps streamed before delivery. It will be
interesting to see if the web community determines that there
is a need for a common 3D delivery format – Khronos
and COLLADA could certainly help to drive that if the industry
need is proven. |
| |
|
| Q9 |
Will
it be possible to display 3D graphics via WebGL on Smartphones?
|
| A9 |
Yes.
OpenGL ES is now the native 3D API on pretty well every smart
phone operating system including Apple, Palm, RIM, Brew, Symbian,
Windows Mobile and Android. If a phone supports an HTML 5 browser
– WebGL can be implemented on that platform to tap into
the OpenGL ES 3D capability of the OS. In fact, the realization
that OpenGL and OpenGL ES capability is available on almost
any 3D –capable device was one of the original inspirations
for creating the WebGL API. |
| |
|
| Q10 |
What
about the relationships between Khronos Group and Web3D Consortium?
Will the Web3D Consortium support WebGL? |
| A10 |
X3D
and WebGL are complementary and Web3D and Khronos already have
a liaison agreement over COLLADA. Khronos would welcome working
with Web3D to explore how X3D might exploit WebGL – you
might certainly envision JavaScript libraries that support X3D
built on top of WebGL. |
| |
|
| Q11 |
We
cannot talk about 3D on the Internet without saying a word about
Flash 3D emerging capabilities. What are the chances of WebGL
"against" Flash? |
| A11 |
Flash
is a ubiquitous part of the web – it will be widely used
for a long time to come. However Flash is a plug-in –
and so is very different to WebGL which enables direct access
to 3D from the web page itself – each is suitable for
different types of content. Flash has superb tools and a large
developer community and WebGL authoring tools will be needed
to enable the standard to become pervasive. Perhaps Adobe might
consider one day creating tools for HTML 5 content? |
| |
|