Tuesday, March 24, 2009

Toward an open web standard for 3D graphics

For years, developers have tried to create rich 3D experiences on the web. However, the lack of a common way to render 3D graphics in the browser has forced them to use workarounds like special purpose plugins or software rendering frameworks. As a result, web users have generally experienced lower quality graphics compared to what can be found in today's desktop apps.

This is why Google is excited about the "Accelerated 3D graphics for the web" initiative by the Khronos Group and the Mozilla Foundation. As Javascript is becoming faster every day, we believe that it is time to create a general purpose API for 3D graphics on the web to allow developers to create compelling 3D applications in the browser. Khronos's initiative to develop a new, open web standard for high performance 3D graphics is a promising step in that direction. Google plans to contribute technology and web development expertise to the discussion within Khronos and the broader development community. As an active contributor to Khronos, Google would also like to encourage other technology companies to join Khronos in this effort and embrace a project that promises to move the web forward.

11 comments:

  1. This is exactly what I need. Hopefully Webkit will be on board and there will be some kind of solution for IE.

    Google has so much leverage with th Gears plug-in. Anything that a browser lacks can be supplemented with it!

    ReplyDelete
  2. Javascript is perfectly groovy for 3D applications. It's relatively easy to bind SpiderMonkey to an OpenGL rendering context -> http://failrate.com/b/gljs-light-1.0.zip

    All they'd really need to do is expose OpenGL calls to the JavaScript interpreter via a canvas element with the planned (but not yet implemented) 3D type.

    ReplyDelete
  3. Anyone know how this is different from VRML/X3D?

    ReplyDelete
  4. I think that OpenGL has a much higher adoption rate than VRML had. Also, most computers, including mobiles and phones, can render 3D graphics. So, likely, VRML was just before its time.

    ReplyDelete
  5. Not sure what you mean failrate... X3D is a high level scenegraph layer on top of OpenGL (or whatever) intended for web distribution of 3D scenes scripted using Javascript (i.e. similar to the Khronos product). The scenegraph model was designed with OpenGL implementations in mind, but these are separate layers.

    ReplyDelete
  6. http://www.web3d.org/about/overview/

    ReplyDelete
  7. I don't know about X3D. I was referring to VRML circa 199X.

    I just went to the URL you posted to look at some details, but it appears as if they're doing some site reorganization that makes it difficult to find out about any browser plugins.

    I would find it ideal if it was native to the browser (i.e. canvas = openGL rendering context) with JavaScript hooks and HTTP GET for images (instead of file access).

    ReplyDelete
  8. X3D is the current version of VRML. It happens to use an XML file format to store data etc. rather than VRML's syntax. So it includes everything that VRML97 did, and more.

    The best general purpose X3D plugin at this point is probably Octaga, octaga.com.

    An example of a more specific application that uses X3D is vivaty.com

    More info:

    http://www.web3d.org/x3d/content/examples/X3dResources.html

    VRML and X3D have always been royalty and patent free ISO standards with multiple implementations...

    It's just the first thing I thought of when I read the Khronos press release. Khronos' other products are more closely related to OpenGL specifically, so I assume that this is similar... though I wonder how this differs from Collada as well... or is it actually referring to Collada??

    ReplyDelete
  9. I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.

    Ann


    http://largepet.info

    ReplyDelete
  10. Well, Reed, Collada is just an interchange format for 3d applications (especially games). It would be more directly applicable to an individual model/mesh that you're passing between Maya and Blender. Certainly, you could use it for the same thing as VRML, but it's not really *for* that, y'know.

    ReplyDelete
  11. @failrate
    OpenGL has a much higher adoption rate than VRML had?

    Well that's true. That as true as:
    "Engines have a much higher adoption rate than cars have."

    That's true - think of planes, trains, motorcycles, steam ships, etc.

    You are just comparing different levels of functionality. If you need a car, buy a car! Don't buy a steam engine and start adding wheels....

    Have you ever written a full blown 3d game engine or a descent scene graph based on pure OpenGL? I guess not.

    ReplyDelete