In a more complicated gaming world, OpenGL 4.0 gets simpler, smarter
By Scott M. Fulton, III | Published March 11, 2010, 6:13 PM
Despite the fact that game console manufacturers still drive studios toward exclusivity for individual titles, so that a popular Xbox 360 game isn't available for PlayStation 3 and vice versa, developers within those studios are insisting more and more upon cross-platform flexibility and portability. While they may be restricted to one console, they don't want those borders to extend to computers or to handsets.
For this reason, the Khronos Group has become more and more important to developers, and OpenGL is no longer being perceived as some kind of fallback standard, as in the phrase, "Your graphics use only OpenGL. Today, OpenGL is developers' ticket to portability between PCs, consoles, and handsets, and it's the only technology shining a ray of hope for cross-console portability should it ever become politically feasible.
Today at the annual Game Developers' Conference, Khronos (whose principal members include AMD, Nvidia, and Sony) unveiled on schedule the 4.0 version of its OpenGL cross-platform rendering language for 3D virtual environments. To understand the significance of this event, you have to understand a bit more about the challenges that game developers are facing. Specifically, as screen sizes become larger on average, screen resolutions grow finer, and screens by number increase beyond one per system, the types of simplifications that made 3D scenes look "good enough" for older PCs actually look bad on modern systems. More finely-detailed systems make typical "fuzzifications" (my word for it, not Khronos') look more obvious.
It's still too arithmetically costly to expect 3D games and artistic applications to be ray tracers -- they can't assume the shading values for a huge number of traveling photons in space in real-time. We've talked before about how some graphics cards, including the first DirectX 10.1 cards from ATI in late 2007, can track a few photons, and fudge the remaining shader values for the rest.
But applying that type of calculation to OpenGL -- so it can be used with ATI and Nvidia (Intel? Maybe someday) -- requires the application to calculate how much...or more accurately, how little detail it can get away with, for certain points in space. Typically in OpenGL, developers have used lookup functions to determine the level of detail required to map any given area. As screen dynamics change, the number of functions required for a given space may increase, and their efficiency may decrease. As a result, it could take exponentially more time to make a scene look realistic -- to fuzz the focus of areas that are on the sidelines or out of range, or to blur regions that we're supposed to be flying by.
Khronos' engineers tackled this problem by extending the research begun earlier in the last decade (PDF available here) by SGI, the company that originally got the ball rolling for OpenGL. Technically, the whole technique is called "level of detail," but another way to refer to it is shader simplification. Used judiciously, it's a way to make certain elements of a scene seem clearer by selecting which others appear not so clear.
Screenshot of an early build of the Icarus Scene Engine, an OpenGL-based 3D scene editor that is itself rendered in 3D, using the OpenTK toolkit.
As scenes are processed, OpenGL effectively determines the active level of detail for any given shader (the equivalent of what Direct3D calls a "pixel," which isn't always a "pixel" per se). OpenGL 4.0 expedites this process by realizing that levels of detail should be remembered, so that when a function looks it up from the outside, it doesn't have to be recalculated. Thus, top of the list on version 4.0's list of changes is the new textureLOD function set, which will not impact how developers use the API -- it's like a retroactive fix. The new functions recall levels of detail rather than recalculate them.
These new functions are actually necessary for OpenGL to work (properly) on ATI Radeon HD 5xxx series graphics cards, which began shipping last year. Now developers are looking forward to ATI upgrading its 5xxx drivers to enable 4.0, now that 4.0 has enabled them.
The result may be an avoidance of the exponential lags that developers had been seeing as resolution and screen complexity increased. Double-precision floating-point vectors will be supported for the first time, also signifying the new dynamics of 3D rendering. And now, cube map textures can be layered, potentially for more iridescent effects that will substitute for bump mapping. As one contributor to Khronos' OpenGL forum noted this morning, "I just had a look on the extension, it's so much more than whatever I could have expected! I think there is a lot of developer little dreams that just happened here."
The first rollout demonstrations of OpenGL 4.0, along with its WebGL counterpart, were scheduled for late this afternoon, West Coast time. That's probably where we'll see our first screen shots of the final specification at work.
We'll also learn more about just how viable the new edition is for cross-platform development. This afternoon, another forum contributor from Montreal noted the remaining political roadblocks to true cross-platform development: "As a cross-platform developer I would like to use OpenGL exclusively but it's commercially unviable to use it on Windows, due to the fact that OpenGL just doesn't work on most machines by default, which forces me to target my game to both DirectX and OpenGL. The OpenGL shortcomings on Windows aren't a big deal for hardcore games where the users are gonna have good drivers (although they are a cause of too many support calls which makes it inviable anyway) but it's a show-stopper for casual games...Until OpenGL isn't expected to just work in any Windows box, it is dead in the Windows platform. Do something about this please."
Very good news for OpenGL developers.
Looking forward to see tessellation and the other new features being used in novel ways.
Score: 0
|Of course Sony has an interest in Khronos. The PS3 runs under OpenGL ES. Microsoft couldn't care less about OpenGL -- the PC and 360 run under DirectX. It's no wonder that "cross-platform" games are primarily designed for the 360, and unfortunately I don't see OpenGL gaining more ground in console game developments.
Score: 1
|Good news for OpenGL... let's see if it finds its place in the future of the 3D rendering race.
And what about some completely different projects like this one, with a new rendering method, claiming Unlimited Detail by not using polygons anymore (and not ray tracing either) :
http://www.youtube.com/w...v=Q-ATtrImCx4&ttl=1
Interesting...
Score: 0
|From their website :
http://www.unlimiteddetailtechnology.com/
Unlimited Details method is very different to any 3D method that has been invented so far. The three current systems used in 3D graphics are Ray Tracing, Polygons and Point Clouds / Voxels ; they all have strengths and weaknesses. Polygons runs fast but has poor geometry, Ray Tracing and Voxels have perfect geometry but run very slowly.
Unlimited Detail is a fourth system, which is more like a search algorithm than a 3D engine. It is best explained like this: if you had a word document and you went to the “SEARCH” tool and typed in a word like “PIXEL” the search tool quickly searches for every place that word appeared in the document. Google and Bing are also search engines that go looking for things very quickly.
Unlimited Detail is basically a point cloud search algorithm. We can build enormous worlds with huge numbers of points, then compress them down to be very small. The Unlimited Detail engine works out which direction the camera is facing and then searches the data to find only the points it needs to put on the screen it doesn’t touch any unneeded points, all it wants is 1280*1024 (if that is our resolution) points, one for each pixel of the screen.
It has a few tricky things to work out, like: what objects are closest to the camera, what objects cover each other, how big should an object be as it gets further back. But all of this is done by a new sort of method that we call Mass Connected Processing. Mass connected processing is where we have a way of processing masses of data at the same time and then applying the small changes to each part at the end.
The result is a perfect pure bug free 3D engine that gives Unlimited Geometry running super fast, and it's all done in software.
(No, I don't work for them ; I found their website via Digg and I'm just curious)
Score: 0
|That stuff looks nice but they really need to get some artists on board and get rid of the purple demos. As a programmer I've built and demoed many systems that worked great but until a design team got involved they didn't look great, at least to the average person (what's wrong with cyan?).
Score: 0
|