Slashdot Mirror


Initial WebGL Support Lands In WebKit

appleprophet writes "WebGL is an upcoming standard from the Khronos Group, the same standards body behind OpenCL and OpenGL ES. It defines the use of OpenGL in websites using the standard canvas element. In other words, websites will be able to render hardware accelerated, 3D graphics natively inside of a web page. In the last week, WebKit, the rendering engine behind Safari and Google Chrome, has added initial support for WebGL, which means it probably won't be too long before Macs and iPhones everywhere get OpenGL web apps. This could have big implications for gaming. HTML5 has steadily been encroaching on desktop applications' territory, but I don't think many people expected browser-based, hardware-accelerated graphics this soon."

24 of 181 comments (clear)

  1. Ads by bcmm · · Score: 5, Insightful

    While I'm sure there are some great uses for this, it also sounds like a way to serve even more resource-hungry adverts than they can with Flash. Furthermore, if this became widespread in situations not really requiring it, a decent graphics card could essentially become a requirement for web surfing.

    --
    # cat /dev/mem | strings | grep -i llama
    Damn, my RAM is full of llamas.
    1. Re:Ads by node+3 · · Score: 5, Insightful

      While I'm sure there are some great uses for this, it also sounds like a way to serve even more resource-hungry adverts than they can with Flash. Furthermore, if this became widespread in situations not really requiring it, a decent graphics card could essentially become a requirement for web surfing.

      I don't see how this is any different than the current situation with Flash.

      Flash is resource hungry, and plays annoying ads in both 2d and 3d, with sound. So the situation is presently worse. Even if WebGL includes audio (or perhaps in the future there will be WebAL, etc.), the situation is presently worse given how problematic Flash is.

      Having seen some of the things Apple (and others, but it's really Apple that's pushing it at this point) is doing with HTML5, everything that can be done to replace Flash is a good thing. Even if it means the same annoying types of ads as now, at least they'll have less of a performance hit, and they won't be tied to a single program that is constantly plagued with security issues, has performance issues, crashes so often that Apple and Google sequester plug-ins/windows/tabs because of it, and whose updater is annoying and tries to push additional toolbars which no one wants.

      Just as Flash served to kill off pretty much all the various and annoying plug-ins you had to download to make full use of the web, and replaced them all with a single plug-in to rule them all, HTML5, with things like canvas, the video tag, and WebGL, is looking to do the same to Flash--replace it with something better.

  2. Why? by Darkness404 · · Score: 4, Insightful

    Why is this necessary? There are some positive uses for it (such as getting us out of dependence on proprietary technologies like Flash) but a lot more negative issues. For one, this will add even more vulnerabilities to browsers which seem to already have loads of them. And for another the web should be accessible for -everyone- from the low-end netbook to a Core i7, and even older systems should be able to browse web. Already many sites are unusable without a recent version of Flash, we don't need extra hardware as requirements to view sites. Yeah, we all know that they should do it in HTML and that will still stick around, but how many of us have encountered sites built entirely in Flash? Or have a requirement of Flash for simple things like navigation? While some things obviously need Flash (such as Homestar Runner because they are Flash cartoons) others use Flash for no real reason. Currently most platforms have Flash or will be getting it. But adding a high-end graphics card to a computer just to view the web? Thats just a bit ridiculous.

    --
    Taxation is legalized theft, no more, no less.
    1. Re:Why? by moon3 · · Score: 5, Insightful

      Because when this takes off (a few years from now), it might even invalidate Flash as WebGL also mean accelerated 2D and would be more performant in general then 2D Flash, and it could possibly free us from closed-source and proprietary Flash in the long run.

    2. Re:Why? by SanityInAnarchy · · Score: 5, Insightful

      There are some positive uses for it (such as getting us out of dependence on proprietary technologies like Flash)

      There are already a lot of ways we could get rid of Flash, if people would stop using it. After all, Flash is mostly used for vector graphics (we've got SVG), interactivity (we've got AJAX/DHTML), and audio/video (we've got the audio and video tags).

      For one, this will add even more vulnerabilities to browsers which seem to already have loads of them.

      So does every useful feature. I'll bet money that the first serious vulnerability is in a driver, not a browser.

      And for another the web should be accessible for -everyone- from the low-end netbook to a Core i7, and even older systems should be able to browse web.

      OpenGL can be implemented in software.

      And you lost that argument already with Flash. When there are one or more video ads on many pages I visit, I doubt low-end netbooks are doing well.

      Yeah, we all know that they should do it in HTML and that will still stick around, but how many of us have encountered sites built entirely in Flash?

      The fact that technology can be misused is not a reason to avoid developing said technology.

      For example: It's possible to build an entire site surrounded by an iframe, so that navigation is completely broken. That doesn't mean that iframes have no legitimate uses.

      It's also possible to build an entire site as a single AJAX app. This can be done well, but it takes more work -- for example, with Gmail, notice that everywhere you go, it adjusts the hash in the URL, so that you can use browser navigation properly -- the back button works, so does bookmarking, open in a new window/tab, etc etc. Sites that don't do that could have really poor usability.

      It's also theoretically possible to render images using massive HTML tables, with each cell representing a single pixel. Does that mean HTML tables should be made less flexible, just so no one can do that?

      I could go on...

      The fact is, there are ways to abuse any technology -- there's always the possibility that someone will print out a website, make the changes they want, scan it back in, and upload it as an image. The fact that people can abuse technology should never prevent us from creating new, interesting bits of technology that have real, practical applications.

      While some things obviously need Flash (such as Homestar Runner because they are Flash cartoons)

      Nope. They need Flash because they were authored in Flash. They could have been done with SVG, Javascript, and the audio tag, it's just that the authoring tools for these aren't anywhere near Flash itself, from what I understand.

      adding a high-end graphics card to a computer just to view the web? Thats just a bit ridiculous.

      See, now you're being ridiculous.

      Consider that ten or fifteen years ago, using excessively large images would be considered bad taste -- you'd be asking for way too much RAM "just to browse the web", and you'd be wasting a ton of bandwidth. That's why we came up with the idea of thumbnail galleries -- which are still useful, but a better model is really a slideshow.

      It's not a "high end video card" now, either. Just about any video card is going to have some 3D capability on it -- and we're moving in the direction of compositing window managers, which will actually lead to cards supporting just 3D (and having to emulate 2D) being cheaper than cards supporting just 2D (and having to emulate 3D).

      So, 10 or 15 years from now, when people want to add a little effect to their website -- or build an interesting "flash game" that's capable of actually using 3D hardware -- would you prefer it use Flash? Or maybe you'd prefer Quake Live -- a plugin for each game -- may as well just download an exe?

      Or would

      --
      Don't thank God, thank a doctor!
    3. Re:Why? by node+3 · · Score: 5, Insightful

      For one, this will add even more vulnerabilities to browsers which seem to already have loads of them.

      While replacing one of the biggest ones: Flash.

      WebGL won't be a plugin, it will b part of the browser. That means Firefox won't be vulnerable because of an Adobe bug, but because of a Mozilla bug, and Mozilla can fix the bug themselves.

      Also, with more diversity, bugs will be less likely to be exploited, and when they are they will have a smaller path of destruction.

      And for another the web should be accessible for -everyone- from the low-end netbook to a Core i7, and even older systems should be able to browse web.

      This is no different than Flash is now, except that WebGL has the potential to be significantly more efficient. WebGL isn't going to replace HTML, it's going to augment it, similar to how Flash does today. Sites that want to be accessible to more users will avoid reliance on resource demanding WebGL elements, or avoid it altogether, just like sites avoid resource demanding Flash objects.

      On the other hand, those sites that want to take advantage of it, and for those users with more modern machines (really, WebGL isn't going to require advanced GPUs and high-end Core2Duos unless you start putting game level 3D and AI into it, simple 3D rendering will work just fine on older hardware--better, in fact, that 3D Flash does now), we'll be able to have a more rich web experience.

      I absolutely detest the notion that the web should not embrace new technologies just because some people have crap computers. I agree that most web sites should be designed to be accessible across a broad range of computers (either by limiting advanced features, or providing alternate pages), but if a site wants to specialize with features that tax even modern systems (like YouTube did not too long ago), then as long as they are not essential sites (like banks, utilities, government, news media, etc), then they should be encouraged.

      Already many sites are unusable without a recent version of Flash, we don't need extra hardware as requirements to view sites.

      There you go. So how is this worse?

      how many of us have encountered sites built entirely in Flash? Or have a requirement of Flash for simple things like navigation? While some things obviously need Flash (such as Homestar Runner because they are Flash cartoons) others use Flash for no real reason.

      Which has what to do with WebGL?

      But adding a high-end graphics card to a computer just to view the web? Thats just a bit ridiculous.

      Not as ridiculous as assuming WebGL will mean that you have to have a high-end GPU and CPU just to view the web.

  3. That's a Bit Optimistic Don't You Think? by eldavojohn · · Score: 3, Interesting

    but I don't think many people expected browser-based, hardware-accelerated graphics this soon

    This is great for WebKit and I'm very interested to see where this goes. But you're kidding yourself with that above statement. Firefox is using Gecko and we all know IE will drag their feet on this. So you're proposing a company invest time into a "browser-based hardware-accelerated" graphics game or program by using WebGL ... when it's only supported on the two smallest browser shares out there? Unless there's a way to auto-port existing OpenGL code to WebGL (and the press release didn't seem to imply that), I wouldn't hold my breath. Even if tomorrow Firefox is ready to go with WebGL in Gecko, you've got a long adoption and incubation time on these projects and you'd still be targeting the minority of browsers.

    Basically I don't see a good business case or success story coming out of using WebGL over OpenGL or even just dumbing down the graphics and making it something that's widely supported already like Flash. Nothing would make me happier than to see this take off and be the de facto route for putting your game on everything with a browser ... it just isn't at that point or even guaranteed to happen yet.

    --
    My work here is dung.
    1. Re:That's a Bit Optimistic Don't You Think? by beelsebob · · Score: 3, Interesting

      How about the browser with the biggest share of the mobile phone market - a market where you've notably got no competition from flash games?

    2. Re:That's a Bit Optimistic Don't You Think? by Firehed · · Score: 3, Insightful

      As other smartphones adopt the new standards (many already use Webkit-based browsers), you instantly gain compatibility on those devices. No need to maintain three separate codebases for the iPhone, BlackBerry and Android if your app works great in the browser of all three platforms.

      I also prefer sites/apps where I don't have to perform any installation to get at the content, but that's more a matter of personal preferences. Right now that's only practical for a small subset of apps, but WebGL may change that.

      --
      How are sites slashdotted when nobody reads TFAs?
    3. Re:That's a Bit Optimistic Don't You Think? by farnsworth · · Score: 3, Interesting

      If you're targeting just one phone, fine. But you might as well just use the iPhone SDK so you don't have code all the touch interaction crap from scratch. [snip] you'd be pretty darn ignorant to go with WebGL over iPhone SDK.

      If you look at the trac logs for this checkin, you'll see that the commiter has an apple.com email address. So it's probably safe to say that implementing this fits in with Apple's dev tools strategy.

      I don't know a lot about OpenGL or WebGL, but it does feel like it overlaps a lot with what Flash and Silverlight provide. I'm not sure what conclusion to draw from that, but it seems notable to me.

      --

      There aint no pancake so thin it doesn't have two sides.

    4. Re:That's a Bit Optimistic Don't You Think? by hkmwbz · · Score: 3, Informative

      How about the browser with the biggest share of the mobile phone market

      You mean Opera?

      --
      Clever signature text goes here.
    5. Re:That's a Bit Optimistic Don't You Think? by R3d+M3rcury · · Score: 3, Insightful

      True. But WebKit is used by Android and WebOS. Also, RIM just bought a company that makes a WebKit-based browser.

      So, potentially, you're running on four of the top five platforms.

    6. Re:That's a Bit Optimistic Don't You Think? by beelsebob · · Score: 3, Insightful

      Yes, wait no, given that the iPhone bar, the Nokia bar, the iTouch bar, and a lot of the "other" bar (palm pre, and android) are *all* WebKit based browsers. In the mean time, NetApplications shows the iPhone *alone* ahead of opera.

  4. Browsers might be ready for GL but not Javascript by Aggrav8d · · Score: 3, Insightful

    I've written a few games using the 2D canvas element. Invariably these games use 99% of the CPU because Javascript doesn't have a real sleep() function. There's no decent way to manipulate sounds (like an FMOD for javascript). Tests on my machine show that changing the line/fill color is expensive. There's no way to switch to full screen or to capture every key stroke/mouse movement. All of which is beside the really big issue: there's no decent debugger.

    3D games sound like a nice idea but they'll be prohibitively expensive (time-wise) to develop, suffer bizarre bottlenecks not seen in native code, and have to work through the very limited browser interface. While Assembly demo coders might enjoy the challenge of working in such a limited environment, the rest of the world should wait for some real improvements.

  5. Re:Someone in the know... by erko · · Score: 3, Informative

    Quake live (and similar apps) require you to download a plugin.

    Ideally, webGL will eventually be included in browsers so any webpage could use accelerated GL without requiring you to download a plugin first. (I'm not an expert, this is just what I've gathered so far, corrections are welcome).

  6. To answer my own question... by SanityInAnarchy · · Score: 4, Informative

    Here's a nice summary.

    It seems O3D is higher-level, thus allowing more to be handled by the browser, whereas WebGL forces Javascript to handle just about everything.

    I'm not sure which one I like better. In theory, I like Javascript handling everything. In practice, I don't know enough about VMs to say whether Javascript could be made to perform well enough.

    --
    Don't thank God, thank a doctor!
    1. Re:To answer my own question... by derGoldstein · · Score: 3, Informative

      A common comparison that has been made is that WebGL would be used like Canvas whereas O3D would be more like SVG. (WebGL will be *part* of canvas, of course, but I mean in terms of uses and applications)

      If you want links to many discussions about the approaches and comparisons, check out this page.

      Since canvas is already known territory (comparatively), and JavaScript is being optimized like crazy by all browser developers, I'd bet that you should expect to see WebGL picked up much faster than O3D. Developers that are already comfortable using canvas for some 2D representations will have only a small step to take to reach WebGL.

      --
      Entomologically speaking, the spider is not a bug, it's a feature.
    2. Re:To answer my own question... by Hurricane78 · · Score: 3, Interesting

      Damn. I forgot the conclusion: That Adobe might (have to) let Flash die, and create that new product based on the new faster JavaScript engines and that 3D canvas straight away.

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
  7. Re:A trusted list of sites. by Bigjeff5 · · Score: 5, Insightful

    The point is that nobody really cares all that much about what you do, as the web industry does not revolve around you.

    --
    Security is mostly a superstition... Avoiding danger is no safer in the long run than outright exposure. - Helen Keller
  8. I'm probably not the first person to say this... by MadnessASAP · · Score: 3, Funny

    but oh god no! I can only imagine the horrors that will be visited upon the Internet once MySpace users get a hold of this.

    --
    I may agree with what you say, but I will defend to the death your right to face the consequences of saying it.
  9. Remember Web3D? Shockwave? Java 3D? by Animats · · Score: 4, Informative

    This is about Try #4 for 3D on the Web. Web3D was an XML representation of VRML. Unfortunately, the effect of the Web3D consortium was to kill VRML in favor of a vaporware concept.

    3D in the browser is done well in Macromedia Shockwave. Try this 3D driving game. The Shockwave player is supposedly available on 58% of PCs. Some versions of Shockwave even had the Havok physics engine, but Macromedia stopped paying Havok for the license and took that out.

    The main problem with Shockwave is that it doesn't start as fast as Flash does. Flash has a nice scheme for interleaving the timeline and the asset data, so that playing starts very quickly. At least if the content is authored properly. Also, Shockwave authoring tools are expensive.

    About Java 3D, the less said, the better.

    The problem with offering OpenGL access to Javascript is that Javascript isn't a good language for fast matrix math. Also, authoring tools will have to be developed. You can't effectively author 3D content in a text editor.

  10. Re:How will we manage to use this? by farnsworth · · Score: 3, Insightful

    How will we manage to use this? Programatically by Javascript, right? Javascript is so limited that I fail to see how it will be to make this actually usable [snip] Javascript also needs some cleanup and some more functionality.

    Like what? It's a very rich language which is a pleasure to use. The historical short-coming has been it's libraries (primarily the DOM). But the language itself is really nice, as nearly anyone with enough experience will tell you.

    And, besides, I can already imagine each browser doing it in it's own way and developers having to set up multiple ways to deal with the differences.

    This is the case with all standards. If there are significant implementation errors, higher-level libraries will emerge that "fix" them for the users of this API. Ajax is different between browsers, is this a problem for anyone? No, there are multiple free libraries that are super-simple to use that make the right call in each browser. $.ajax({url: "foo.html"}); Just Works (tm).

    --

    There aint no pancake so thin it doesn't have two sides.

  11. Re:Browsers might be ready for GL but not Javascri by appleprophet · · Score: 3, Informative

    While Assembly demo coders might enjoy the challenge of working in such a limited environment, the rest of the world should wait for some real improvements.

    Most of your complaints have been addressed in other modules of HTML5. See the media module for native sound support and web workers for threading support.

    Regarding debuggers, there are a few excellent debuggers for JavaScript capable of profiling and doing all sorts of stuff. The most notable being WebKit's native Web Inspector and the FireBug extension.

    Performance concerns with "fill color" and such are not an issue because they are offloaded to the graphics card.

    Full screen mode is controlled by the user agent, not the web page for obvious reasons. Most browsers have support for a full screen mode in some fashion.

    Now this is not to say that it's perfect. However, things are looking pretty good. :) This is definitely the future, the question is just how long will it take to get there.

  12. Re:A trusted list of sites. by mdwh2 · · Score: 3, Insightful

    You're right - I bet people were thinking making an online game with this, but now they've discovered that you alone will have this disabled, there's obviously no point doing it. It's a good thing you posted to let them know, and save them the trouble!