tags:

views:

26

answers:

2

Regarding to the immature situation and the somewhat bright feature of WebGL, I decide to use it to build an online application. For those users who have Firefox 4 or Chrome, there is no problem. But what should I do for the users of Firefox 3.* or even IE 6, 7, etc.?

So I'd like to ask that if there is any possible to write a plugin/addon. And when my codes detect the incompatibility, it can alert the user to download/install this extra component to enable them using the WebGL contents.

I noticed that nearly all instructions of WebGL only ask you to install the new, modern browsers to access WebGL contents, but none of them tell you how to handle the old browsers. Will there be a way for the survival of old school browsers?

Thanks very much.

A: 

To the best of my knowledge there is no easy answer to this.

If you want to write WebGL code that - without change - will also run on old browsers, then I can only think of Google's O3D project. Here you won't be directly writing WebGL code though. O3D is being implemented on top of WebGL, but its previous implementation was plugin based. So you can write your game or 3D app in O3D and prompt your users with old browser to install the plugin.

A much harder solution that I implement in my project 3DTin, is when WebGL is not available I do some 3D math in software and render it on Canvas 2D. It works if your 3D app is not very complicated. My app runs on all major browsers, including IE 7,8 with the help of excanvas. However this approach is not an option if your 3D scenes are complicated. You may want to look at following 3D javascript libraries that render on top of Canvas 2D:

pre3d

three.js

Jayesh
A: 

As far as IE goes you should be able to use google chrome frame when webgl hits chrome(you can already hack it to get it working). And since you don't need admin rights to install it anymore it shouldn't be that much of a hurdle. As far as FF3 goes, I don't think that's much of a long term issue, FF users are sensible and upgrade ;-)

Paul Brunt