The State of OpenGL
CowboyRobot writes "No longer vapor, but a true 3D-embedded engine, OpenGL is on the move. Pixar and others would love to be able to render their movies in realtime, and that desire has prompted the intended release of OpenGL 2.0, due in a few months. Khronos is now in charge of further extending OpenGL to cellphones and handheld gaming devices."
Yay, I get to play around with 2x2 pixel rendered characters on the cell now.
Pixlet is for playback (a codec), not for rendering films. Unless I'm missing something in your post.
The guitars sound good, now give me about 10db more on the cow bell.
Pixlet
Pixlet is the first studio-grade codec for filmmakers, and it's available exclusively in Mac OS X v10.3 Panther. Tuned for use with high-definition source, it allows digital film frames to play back in real time on any 1Ghz G4.
and what exactly has that to do with rendering?
customer: show me your best cabriolet
salesman: well we have this used bike here...
-- Karma: beyond good and evil - mostly affected by posting political
I thought we told you not to come back here after that Monkey Boy Dance incident, Steve.
When will they figure it out OpenGL is not necessarily desirable in a cellular phone?
I want business class reliability, not a the ability to rent subpar games on my cell phone for $5/month.
When I'm on the phone all day because of my work I want it to be there for important calls, not fizzle out after an hour because it's got a 640x480 pixel screen with 24-bit color.
Although right now OpenGL is all that's out there for low-cost portable embedded 3D software, no one is going to develop with it until hardware support emerges. Who wants a handheld 3D mapping device that takes 10 seconds to redraw a frame using an ARM9 software renderer?
I don't know about availability, OpenGL is cross-platform (works on OS X, Linux, Windows, etc.) while DirectX is Windows only. OpenGL is also included with many if not all graphic cards. So it's just as widely available, if not more, than DirectX.
salesman: well we have this used bike here...
Exactly.
The guitars sound good, now give me about 10db more on the cow bell.
What about the ability to stick to-do notes on the BACK of your cellphone? Wouldn't that make mobile 3D worthwhile?!
Don't call me a cowboy, and don't tell me to slow down!
For so long, DirectX had to struggle and claw to keep up with OpenGL - they did just that, while OpenGL sat mainly idle (well, John Carmack was a big help to it)... Now it seems the shoe is on the other foot, and OpenGL is going to have to move deftly to surpass DX9, and soon enough 10...
I sincerely hope it happens. I wish developers felt more inclinded to make their 3D engined GL based rather than DX based, so the day where I can play any game in linux may actually arrive. Of course, we have to give massive amounts of respect to those who do make OpenGL platforms for their games (ID, Epic), but what about those who feel DX is easier and more practical for what they do(Valve).
Maybe if we're lucky, the Carmack will drop in to this discussion and tell us exactly what he thinks needs to happen to really make GL a reality for most gamaes again.
"Touch one hair on her head and I'll render you limb from limb!"
And how exactly is rewriting your code to use new OpenGL extensions all that different from rewriting your code to use the newer version of DirectX? Its not, aside from the fact the extension docs are usually utterly horrible, and the DirectX docs are very good. I guess in your magical world you don't have to upgraded your video card to get new hardware features in OpenGL too. bah
Hopefully, this will prompt more developers to join efforts to create a feature rich gaming framework for *nix. SDL is a great start, but lags behind DirectX in a number of ways. I look forward to seeing this 2.0 release breathe new life/blood into this area of development.
Thank you for your time,
BBH
OpenGL is used in the Torque engine alongside Direct3D (D3D on Windows, OpenGL on Mac and Linux). It would be great if OpenGL could eclipse Direct3D, and become the premiere 3D platform once again. Perhaps we will see this with the release of OpenGL 2.0, but for a few years Direct3D has been slowly but surely catching up and then surpassing the aging OpenGL standard.
A lot of our customers demand Linux in their solutions (networked gaming terminals) to avoid the cost of licensing Windows XP Embedded for each machine, and the option so far has been to go the Mesa/OpenGL/SDL route (WineX is still too slow for what we do), which, while it has worked, is technically slightly inferior to our Windows equivalents. Hopefully OpenGL 2.0 will change this.
Mod parent down (Further)
There is no relationship between the release of graphics libararies and the requirement to purchase video cards.
~D
This sig has been enciphered with a one-time pad. It could say almost anything.
I'm going to learn opengl in a few months during the holidays before I start my PhD. I work with simulations of the Sun and use IDL to visualise the results. but I think it would be cool to have more "realistic" pictures, plus having the hardware acceleration has benefits when dealing with a lot of data (IDL gets real slow for 2D simulations at resolutions above a few hundred squared)
these simulations are done on beowulf clusters (imagine that!) so I think opengl is the best (the only other API I know of being directx)
Say what?
You don't get much higher-level than a scenegraph API like Java3D.
I think the author may have been confused, although he did get the overall point right. OpenGL ES on J2ME will probably be the way this goes.
FUNK!
OpenGL 2.0 is not as exciting as the new major version number might indicate. Probably the most important new feature of OpenGL 2.0 was going to be the GLSL high level shader language. However, in order to speed up its support by hardware companies, this was instead put into OpenGL 1.5 spec when it was announced last year; GLSL already has implementations by 3DLabs, ATi and nVidia. OpenGL 2.0 will still add some useful new features, but it won't be the world-shattering event that 3DLabs promised in their original proposals.
When the article talks about rendering in real-time it isn't talking about the compressed/flattened video playing a full frame rate, it's talking about OpenGL being able to calculate/shade/render a model in realtime verses waiting X mins/hours for a frame to render. It's talking about the process of converting vector data to raster data.
The guitars sound good, now give me about 10db more on the cow bell.
Yes, DirectX runs on those 90% running Windows.
So does OpenGL, and OpenGL can and does run on other platforms too. 95% is a larger percentage than 90%.
omfg.
so if something uses the word "rendering" in it, it's on topic.
3d rendering is one thing.
video rendering is something completely different.
they are as different as me "rendering" something in charcoal on a napkin.
but hey..if yelling at moderators gets you points...don't let me stand in your way.
...Microsoft rules. They really are the most innovative and resilient software companies in the world.
So you acknowledge that they should be broken up into multiple companies? Groovy!
-1 Factually incorrect.
You may want to look up the definition of "rendering" ("The process of creating an image (on the screen or some other medium) of a model".
Pixlet has nothing to do with rendering except as a working format for the already rendered images. The article is talking about OpenGL, a 3D API, which is suitable for rendering, not about what happens with the rendered pictures (which could be compression with pixlet).
I'm glad this guy is an EE, since he doesn't seem to know wtf he's talking about in _software_ engineering terms. You can't compare DirectX and OpenGL. He's trying to say D3D is a better solution just because it's bundled with DirectX which is tied to Microsoft's IDE. If you want to only do WIN32 development, then sure DX is fine. However consider there is only one game console that uses D3D, and we all know how big a market share it has. Sure not all Playstation 2 titles use an OpenGL based engine, but many do. Where as all gamecube titles use nGL on ATI GPUs. Also if you want to bother to port your application to Linux or Mac OS you must use OpenGL. ( 64bit platforms are nice for addressing more memory for those models. Would you rather run Maya for example with more or less memory? )
I'm so sick of DX vs GL for PCs over the years too. They don't do the same thing. This is why Sam started SDL, and several vendors are making similar frameworks. I admit OGL doesn't support all the wiz, bang features in core. However if you really want performance, then using the vendor EXT ( extentions ) are the only way to go anyhow.
Jan 16th 2002: SGI transfers 3D graphics patents to MS
Jul 09th 2002: Microsoft Claims IP Rights on Portions of OpenGL
Jul 11th 2002: 3D graphics world shaken by patent claims
Jul 13th 2002: Microsoft patent claims may affect OpenGL
Mar 3rd 2003: Microsoft quits OpenGL board
Whether you care about that last 5% or not, it still exists, and combined with the Windows 90% (to which OpenGL is most definitely available) you get 95% availability for OpenGL versus 90% availability for Direct3D. See, even with your faulty made-up numbers, OpenGL still comes out on top.
The current handheld devices are not suitable for 2D/3D graphics, because their memory bandwidth is so poor that texturemapping will make the software crawl. I'd get excited when the mobile devices get real 3D hardware acceleration. Even a 400MHz XScale doesn't cut the mustard if it spends its time waiting for the memory. Have been using OpenGL ES for over six months now...
Actually that's not true. Currently new video cards have to support the features the latest version of DirectX (or more specifically Direct3D) if they want to be called DirectX 9.0 video cards. Because of the way Microsoft specifies the requirements and hardware vendors have to meet them, new releases of DirectX very much dictate the type of video card you need if you want to play the latest games.
New releases of OpenGL also require new video cards. If you want to play a game that requires OpenGL 1.4 or 1.5 then you'd better have an ATi 9500 or better. ARB_fragment_program, ARB_vertex_program and the new GLSL extensions aren't supported on anything older.
My cousin's husband works for Sun and he said that the next version (1.5?) of Java will have Swing ported to OpenGL underpinnings... that way, even 2D apps will be MUCH faster.
He said they're realizing 4X speed increases on plain old 2D apps.
They're also working on making 3D game demos (some with 3rd parties) to demo that Java can actually now compete in the desktop game market...
---- It puts the lotion on its skin or else it gets the hose again. It does this whenever it's told.
That's technically true, but useless information. There IS a strong relationship between the release of graphics libraries THAT YOU'D ACTUALLY LIKE TO USE - and the requirement to purchase video cards that are capable of running them.
You aren't going to be able to run GLSL (a crucial part of OpenGL 2.0) at anything like realtime rates without a graphics card that's less than a year old.
It is no longer the case that the graphics cards are chasing the graphics standards. The reality is that one or other of the two remaining 'mainstream' graphics card vendors comes out with a feature - and that feature is immediately added to the two remaining 'mainstream' graphics API's.
www.sjbaker.org
you must be new around here.
It's not "OpenGL is Dead"
Teh corretc way:
"Netcraft confirms: OpenGL is Dying"
then you put something like "suXXors!!!111" on the end of it.
sheesh.
Most frames in Pixar movies are rendered using some form of ray-tracing. While it is possible to use vertex and fragment shaders in uncoventional ways to do ray tracing, this is *not* what the OpenGL pipeline is designed for. Great for games, but ray-tracing will still be done using render farms (and not in real time).
Unless I'm missing something in your post.
Nope. He's just another tech wiseass who prizes seeming smart over being accurate.
Hey freaks: now you're ju
OpenGL has been languishing for years. It's about freaking time they gave the spec a nice big update. I'm a mac guy, but I have to admit that DirectX has a much better level of optimization than OpenGL does. Hopefully this new spec will make it's way into Mac OS 10.4 and give Macs a much needed boost in the graphics arena.
No longer vapor, but a true 3D-embedded engine...
Since when has OpenGL been vapor?
Which could be your target as a glowing orb, or a character in of a video game super-imposed on the actual landscape, or the trail your friend took through the same city two years ago, or just some construct representing an interesting thing about your environment, or ...
I think that would be a real killer app.
For one, direct3d is integrated into the direct api which handles a multitude of things, multimedia and game input devices among others, that game developers are almost naturally drawn to by the appeal that so much work has already been done for them
OpenGL can't and really shouldn't have to address all these requirements, but it's just part of why there's been this ongoing struggle. SDL is a reasonable answer to portability while still accomplishing the integration that MS has achieved, but SDL isn't really as mainstream as OpenGL is.
I've seen soap opera plots that were less convoluted than this mess.
File under 'M' for 'Manic ranting'
I really love it when shills post things like this. Can we please see some documented facts to back any of this up?
Innovative? They didn't do jack with 3D until OpenGL came along and showed them how. They had to buy it from SGI. This has been documented.
Resilient? Dictionary.com defines this as "Marked by the ability to recover readily, as from misfortune." This is actually true, as they were behind, and had to play catch-up. 10 years later, they have caught up with (and arguably surpassed) a technology that has changed very little. Until now.
If this is what defines one who "rules," I'd rather that MSFT "rules" while other companies and organizations just make better stuff.
Slashdot still doesnâ(TM)t support Unicode after it was added to the HTML standard in 1997.
The original article post seems to confuse different forms of OpenGL. OpenGL|ES is the embeded stripped down OpenGL for mobile & embeded systems. OpenGL 2.0 is just a proposal from 3DLabs and may never get off the drawing board. Most of the significant changes that OpenGL 2.0 introduced have been implemented and released either as extensions or as part of OpenGL 1.5, so it's just not clear if or when OpenGL 2.0 will actually arrive, there's a lot of resistance because 2.0 intended to throw some stuff out and many developing, selling & using OpenGL implementations think that it's a REALLY bad idea to do that. With OpenGL|ES there is already a version 1.0 and you can actually get this in several forms from implementations that run on phones to wrappers around OpenGL that you can use on the desktop to emulate OpenGL|ES. OpenGL|ES is in the process of developing version 1.1 right now.
Innovative? I'd say no. (Except in terms of business.)
Resilient? Maybe. Then again, the world of PC practically revolves around Microsoft, so they don't really have much change to deal with.
The article says that the programmable features will be based the direct-compile model in which the compiler will be included as part of the driver.
:-(
Given the current less than good state of open source drivers for graphics chips this may well mean that most of the useful (i.e. works with your hardware) compilers may only be available in the Linux world as part of tainted binary drivers. It seems pretty likely that vendors who believe that their current drivers contain deep secrets than open source would reveal to their competition will be even more convinced of deep secrets of their compiler technology.
Not good news
In markets where Microsoft is truly inferior, they dominate. What chance has OpenGL in the games market where DirectX is actually superior?
The complaint made about Java3D, and why Java-OpenGL bindings like JOGL or GL4Java even *exist*, is that Java3D is too *high* level. It's a scenegraph API, not a low-level graphics API. Is OpenGL ES a similar thing? I had presumed that if it's aimed for the embedded market, ES would be pretty low level. Thus how in the world can ES be considered "higher level" than Java3D?
2004 will see the first handheld devices using the same 3D technology that powered the Dreamcast gaming console.
Of course nVidia and ATI and others are also going to release 3d for mobile phones.
In the last video game generation people were shocked at the unbeliveable power the consoles had. The n64 featured an advanced 64bit 100MHz MIPS RS4?00 chip with SGI level 3d graphics designed by SGI for $200. Only a few years before that a slower 32bit 33Mhz MIPS 3000 chip with worse graphics would've cost many thousands of dollars. Just wait a couple years and we'll have $20 watches with gigs of memory to replace our iPods and more power than the xbox ;)
As TD who works in the computer graphics field, let me state that the technology required to render a Pixar film in 'Real Time' is far off and ridiculous. Just because OpenGL looks better does not mean that it can support the shader functions that Renderman utilizes, not to mention the Fur and cloth APIs. Also, the majority of shots in movies aren't even single comp shots they involve many rendered elements, which you still have to comp together. I'd be all for the guy talking about how OpenGL 2.0 will benefit the artists by allowing them to get more feedback about the quality of the shot they're working on without preview renders, but thinking that OGL could replace final renders any time soon is wrong. Perhaps we are geting to a place where we could render the original Toy Story realtime and a general viewing audience might not know the difference. Perhaps. But I remember some really great PRman shaders from the film that wouldn't be posible in the real time version.
It's not about platform availability, its about game availability. Most 3D games on PC are directx only, or prefer it. So out of the 90 percent PC market, say 100% use directx, and 60-80% use OpenGL.
By the time you figure in that most games come out on the PC and most games use only directx, DirectX does come out on top. It's an unfortunate fact that the PC gaming induxstry can completely ignore non-wintel platforms entirely and still be successful.
In a just a couple generations Pixar will use render farms of GPUs on the PCI Express bus and the CPU won't matter. In a couple years high end video games will look just as good to the eyes of many people as movies like Shrek.
OpenGL was dying.
I guess he based that on the fact that the transition from Half-Life to Unreal Tournament was a transition from OpenGL to D3D. Whatever. DirectX can bite me. OpenGL has fucking PIXAR working on it.
The key here is: 'something that can be used real time.', it's not a PRman implimentation, it is merely a front end to give the artist some visual feedback as to the prman shader on the object. It renders and changes a UV baked raster image of the shader.
As for the Final Fantasy thing. I saw that at siggraph running on SMP PS2's. It's 'alright', but it didn't look a whole lot like the film, it looked like an OGL render of the film.
What you aren't understanding are the fundamental differences between scan line renderers, ray trace renderers, and real-time technology. Real-time can only 'fake' ray tracing, and it's not very accurate or good. Like I said, we are a long way off.
And don't jump up and down, some people have real-time SSS, radiosity, and raytrace demos, but they are very crude, and a long way off.
And sure, you can tweak a movie scene down to get it to look good and run on a next gen card when presented on a vid online or TV, but we're talking about film.
"Over the next year or two, I think you're going to see a whole range of applications that use your graphics board as a supercomputer," Trevett says enthusiastically.
was the most interesting part of the article?
SETI@home, Finite Element Analysis, video recoding are all areas which could benefit from vector processing , matrix calculation and/or huge register sizes provided by GPUs.
Isn't "Mesa" the (or "the major") Open-Source interpretation of it?
This is actually one of the wonders of the way 3d cards are structured. Different graphics cards have different capabilities... Say you buy a card that's DirectX 8 compatible, and bump-mapping comes out in DirectX 9...
You computer must have DirectX 9 library installed, so it knows what to do with the bump mapping instructions, and send the right signals to your card.
The card, on the other hand, is still DirectX 8. Your computer will never send the bump-mapping commands to the card, because it knows the capabilities of the card.
So long as your computer has the right library, it knows what commands it can, and cannot, send to the 3d card. So, while the game requires DirectX 9, you can run it on a DirectX 8 card... You just won't get all of the latest bells and whistles.
It is possible to write software to quit if certain features are not supported. Generally, though, that's pretty rare, because every time you do that, you reduce your potential market.
~D
This sig has been enciphered with a one-time pad. It could say almost anything.
Sure, if you want to be a DirectX 9.0 video card, then you have to implement the 9.0 specification. However, it is possible to run applications that require the 9.0 library on an 8.0 card so long as DirectX 9.0 is installed on the machine. In almost all cases you just won't get all the new 9.0 features (Such as bump-mapping).
Just because Microsoft comes out with a new version of DirectX, doesn't mean you have to get the latest card. So long as you upgrade your PC to the 9.0 spec, you should be able to run almost all programs well, just without some of the bells and whistles.
~D
This sig has been enciphered with a one-time pad. It could say almost anything.
> I guess he based that on the fact that the transition from Half-Life to Unreal Tournament was a transition from OpenGL to D3D.
Yes, but did that transition occur because D3D was better, in terms of technology and economics?
Or was there, perhaps, an outside influence tipping the economic scale...
Microsoft eyeing Vivendi unit?
Has Microsoft bought Vivendi Games?
Microsoft / Vivendi rumours gather steam
I don't know if the purchase actually took place, but they were talking, and Vivendi was deeply in debt, and Microsoft had lots of monopoly-generated cash. I think it's safe to assume that some sort of payoff occurred.
It is also widely believed that when Microsoft joined the OpenGL committee, it was for the purpose of sabotaging, and slowing down the technology.
That last bit is easy to believe, because it's the normal way that Microsoft operates. For example, consider these tidbits from the DOJ case Findings of Fact:
Microsoft's Jim Allchin, in a note to Gates:
> "I am positive that we must do a direct attack on Sun (and probably Oracle).... Between ourselves and our partners, we can certainly hurt their (certainly Sun's) revenue base.... We need to get Intel to help us."
Microsoft's Eric Engstrom describes Microsoft's goal as:
> "Intel to stop helping Sun create Java Multimedia APIs, especially ones that run well (ie native implementations) on Windows."
And Engstrom's proposed agreement with Intel:
> Microsoft would incorporate into the Windows API set any multimedia interfaces that Intel agreed to NOT help Sun incorporate into the Java class libraries. [emphasis/caps added]
So there you have a clear example of Microsoft using threats to sabotage open multimedia support.
If we want the PC to remain open (let alone the Internet), then we have to support technologies that don't come from Microsoft. In this case, it means supporting OpenGL, which is not hard to do, because it's a great technology.
Add to that there is NO scientific app that uses graphic visualization that uses anything but OpenGL. OpenGL cannot die. It may not be used heavily in games, unfortunately, at least yet, but OpenGL rules the scientific world hands-down.
If/when linux makes more significant inroads into the desktop market, then games will follow. These games will require OpenGL, or someone is going to have to come up with another gaming-specific rendering lib that, if properly designed, would be fully cross-platform, supported on the mac, linux, and doze boxes. I don't see this happening, however, until and unless M$ puts a knife in OpenGL with their IP claims on part of the very heart of OpenGL. We need a truly OSS rendering system with the capabilities of Direct3D and that is free of IP claims.
In Bushworld, they struggle to keep church and state separate in Iraq as they increasingly merge the two in America.
SGI made their sample implementation of OpenGL available at http://oss.sgi.com/projects/ogl-sample/index.html
some time ago.
Mesa is the open source implementation most people use if they need a software implementation. However, the hardware implementations are frequently many, many times faster and much prefered.
If/when linux makes more significant inroads into the desktop market, then games will follow. These games will require OpenGL ...
Linux gamers do not need native Linux games or OpenGL based games. The majority of Linux gamers play Win32 games via dual booting or emulation. It is far more likely that emulation via WineX will continue to improve and become a very robust and reliable way to run Win32 games. Native Linux games will not be needed from a developers perspective. Keep in mind that getting a Linux gamer to buy a Linux version rather than a Win32 version does nothing for the developer. The only money to be made is from Linux gamers who refuse to dual boot or emulate and that is not enough to financially justify a full native and supported Linux version.
"Computer"
Now there's a market for malware"Yes sir"
"Dial my mother-in-law"
"She's not speaking to you. I suggest that you let me order her some roses."
People replying to my sig annoy me. That's why I change it all the time.
The good thing is that it is Nvidia, who do the best OpenGL implementations around.
that people forgot about 3Dfx Glide? :)
I use to be indecisive, but now I'm not so sure.
Errrr... oh, I get it! You'd be searching for stuff? (-:
Got time? Spend some of it coding or testing
...the hey-you-forgot-the-batteries jokes.
Got time? Spend some of it coding or testing
Java isn't the only way to abstract either your graphics interface or endianness. There are much more efficient ways of doing both. If I was using an abstract language for my cellphone, I'd prefer something like Ruby.
Amongst other benefits, including much faster coding/debugging and better reusability, Sun's newfound cameraderie with Microsoft would then pose no risk to the future of my mobile 'phone code. Sun want to both have their cake and eat it, which is not a sustainable model of reality. Microsoft's view is much simpler: they want your piece of the cake, now, or they'll bury you in lobbyists and lawyers. It suits them to leave Scott's delusions intact.
Ruby, I might add, integrates with Java and you can even compile Ruby to Java bytecode if you like. This gives you a choice of JRE or native target. Ooh, let me think, which language would I rather use?
Got time? Spend some of it coding or testing
...it'll just be ordering it for you. And because it uses DRM, there will be no plausible deniability for you.
Got time? Spend some of it coding or testing