Introducing the ANGLE Project

Thursday, March 18, 2010

Labels:

We're happy to announce a new open source project called Almost Native Graphics Layer Engine, or ANGLE for short. The goal of ANGLE is to layer WebGL's subset of the OpenGL ES 2.0 API over DirectX 9.0c API calls. We're open-sourcing ANGLE under the BSD license as an early work-in-progress, but when complete, it will enable browsers like Google Chrome to run WebGL content on Windows computers without having to rely on OpenGL drivers.

Current browser implementations of WebGL need to be able to issue graphics commands to desktop OpenGL to render content. This requirement isn't a problem on computers running OS X or Linux, where OpenGL is the primary 3D API and therefore enjoys solid support. On Windows, however, most graphics-intensive apps use Microsoft Direct3D APIs instead of OpenGL, so OpenGL drivers are not always available. Unfortunately, this situation means that even if they have powerful graphics hardware, many Windows machines can't render WebGL content because they don't have the necessary OpenGL drivers installed. ANGLE will allow Windows users to run WebGL content without having to find and install new drivers for their system.

Because ANGLE aims to implement most of the OpenGL ES 2.0 API, the project may also be useful for developers who are working on applications for mobile and embedded devices. ANGLE should make it simpler to prototype these applications on Windows, and also gives developers new options for deploying production versions of their code to the desktop.

We hope that other WebGL implementors and others in the graphics community will join us to make ANGLE successful! For more info on ANGLE and to access the code repository, visit the new project on Google Code or join our discussion group.

17 comments:

ssokolow said...

While I see the value in separating WebGL from OpenGL to make it accessible to as many users as possible, I can't help but be saddened by this indirect support in Microsoft's campaign to squash OpenGL as a portable 3D API.

So far, the best statement of my viewpoint that I've found is probably http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX

FireBurn said...

This sounds like a reverse Wine project, mapping OpenGL ES to DirectX rather than DirectX to Wine

It might be worth looking at the code base to see if anything can be reused

Chris Brady said...

ChrisBrady@altrichmond.ca
A similiar project has already been developed and is available. In 1998 my company ALT drivers developed as part of MESA, an OpenGL to DirectX translator. In 2004 we updated it under contract to the Microsoft Vista (Longhorn) team. In 2008 www.AltRichmond.ca acquired a competitive code base from SciTech Software.
We have the software experience, is Google interested in it ??
ChrisBrady@altrichmond.ca

pkasting said...

@ssokolow: Your comment seems exactly backward. If various Windows machines can't display OpenGL content, that's a disencentive to use OpenGL. By contrast, if this project allows more machines to display OpenGL content, OpenGL comes closer to being a true "portable 3D API".

So it seems you should be happy rather than sad.

ssokolow said...

@pkasting Hmm. You have a point... especially in concert with FireBurn's "reverse Wine" description.

I really need to get out of the habit of checking my e-mail and feeds immediately after rolling out of bed. It leads to thinking before my brain has fully booted up.

Giles said...

This project is a fantastic idea. It looks like a lot of people are trying out WebGL and getting disappointed, and even giving up, because their graphics drivers can't support it -- people with laptops with Intel graphics chipsets in particular. My last laptop could play World of Warcraft (which presumably uses DirectX) with reasonable settings, but couldn't spin a textured WebGL cube with a halfway decent framerate, and while as a WebGL fan I took the time to understand why, it's obvious that someone who hadn't already bought in to WebGL might have shrugged and given up on the technology.

So, many many thanks and three cheers to the ANGLE team for building a library that will allow 3D developers to use an open API to program for people with any GPU hardware, regardless of the vendor's interest in building decent drivers.

Juan Linietsky said...

DirectX9 lacks some features of OpenGL 2.0, and the other way around is true, too. Will not be very useful for complex 3D games because of this, so i wonder..

shunyuan said...

This is an unnecessary move. I don't see what is the problem to use OpenGL under Windows XP or Windows 7.

But it might be useful for mobile device though.

Jay Peek said...

This is alluring for applications that offer 3 skins (color) layering for touch (or other) screens. Mobile is the 1st thought when considering an ubiquitous and possibly profitable peopleware idea.

Thierry said...

It's what java3d API is doing on the java side : Same code for 2 targets :
- OpenGl
- DirectX

It is a good idea.

saLOUt said...

Why not require installed opengl driver on windows OS and let ati and nvidia do the work? If a opengl installation speeds up your experience, opengl would be pushed to a standard program on windows like i.e. java.

Fernando said...

saLOUt, you need to know that Microsoft don't like OpenGl and years ago it worked with vendors to switch to its DirectX.

saLOUt said...

Microsoft also don't like alternative browser and now it has to integrate a browser switcher due to conditions of the european union...

Bundyo said...

OpenGL ES 2.0 ≠ OpenGL 2.0

Magnus said...

I will say only mesa they have already a wraper from opengl to directx, last time I use it, it was for opengl 1.x

Warren said...

This is total Bullsh*t! Same with that other traitor who is making OSS ports to Windows. When are we (Linux community) gonna get support for software? When am I going to be able to run all the latest software on my Linux build? Probably only if the developers wrote for it nativly only. We don't get any quick fixes or our hands held. Why do people coddle and pamper Windows users? This sorta sh*t really pisses me off! There is a special place in hell for anyone that writes one line of code for this abomination of a project!

ozan said...

I liked it. So much useful material. I read with great interest.
cymplus