OpenGL Spec Now Controlled by Khronos Group
99BottlesOfBeerInMyF writes "According to a recent press release, the OpenGL Architecture Review Board has voted to transfer control of the OpenGL API standard to the Khronos Group, an industry working group that seems mostly known for its focus on mobile applications. Apple Computer has also just joined the group, presumably because of their interest in OpenGL for the OS X platform. I wonder what affect, if any, this will have upon the future development of the OpenGL standard."
Jesus fucking GOD how hard is it?
Affect == verb. "I am affecting you with my fist in your fat fucking face".
Effect == noun "Blood and broken bones were amongst the effects of my fist in your fat fucking face."
EXCEPT WHERE
Affect == Noun meaning EMOTION.
Apple is not exactly known for beeing open, except as a markteing stunt. ;-)
Dunno why Drawin decided to call quits
I did a little more looking after submitting this article and while I was not familiar with the Khronos group's work aside from mobile applications, it seems they are also responsible for the COLLADA standard Sony is promoting for open exchange of graphics/models primarily for video games. Perhaps with OpenGL, COLLADA, and some multimedia standards all under the same roof, we'll see development directed to be a better alternative to OpenGL aimed at multiple platforms (Windows, PS3, Mac, and Nintendo?) to offset the threat of MS's DirectX development aimed at Windows and Xbox simultaneously.
... Because this is a direct competitor to DirectX.
Although Microsoft has not been openly hostile. They distribute OpenGL with Windows. And although there are concerns that they are "crippling" the implementation they are shipping with Vista (of which I, personally, am skeptical), hardware vendors ATI and nVidia will be shipping the latest versions with their cards.
affect = verb
effect = noun
I affected the research by changing the variables, then noted the effects in my scrapbook.
How much better support for pixel shaders do you want? glsl is a quite nice shading language. I agree that it would be nice to see direct support for curved surfaces. But, the hardware doesn't really support them either, so it's going to be hard to get NURBS supported directly by OpenGL any time soon...
As for the highest end features being accessible thorugh extensions... Isn't that better than them being completely unavailable until a new version comes out? How do your propose a vendor exposes some whizzy new functionality?
!. Direct3D vs OpenGL:
Doesn't realy matter, for a couple reasons:
Only games are written using Direct3D/DirectX. It is very rarely used for anything beyond that. If given a choice no developer would ever use Direct3d for anything.. but if your making games for technically challenged people and your target platform is Windows then writing it to use Direct3D/directX makes more sense since it's more likely to work well in Windows.
All the major gaming engines already run on Linux. They already run using either OpenGL or Direct3D.. All except HL2/Steam stuff.
The reason Linux doesn't have more games isn't because of DirectX. It's because of lack of ease of use for OpenGL acceleration and market share.
Also DirectX/Direct3d is tied directly to the hardware. If your card doesn't support DirectX 9 your not going to be able to run DirectX 9 application.
For OpenGL it doesn't work that way. It's a programming API that can be accelerated. If you have a card that was designed to accelerate OpenGL 1.x you can still run OpenGL 2.x. It just won't all be hardware accelerated.
If your programming a 3d application and it's not a game and your not Microsoft.. Then your using OpenGL or OpenGL-based system. Period, end of story.
2. OpenGL ARB is 'Advanced Review Board'. They create a set of extensions to the current OpenGL standard to create proven/established OpenGL-related stuff that they can then wrap up together and place into the next generation OpenGL standard.
This is were all that extra stuff goes that people say that OpenGL lacks and DirectX has. OpenGL has a much more formal review system then DirectX/3D has. It needs to be carefull as any standard they create will need to be replicated by multiple people on multiple platforms and be sustainable into the forseeable future.
Microsoft and Direct3D/DirectX doesn't have to deal with that. They can abtrarially make decisions becasue they only have to worry about one platform.
3. Kronos group is partially responsable for the OpenGL-EGL extensions which allow for easier OpenGL based displays for embedded devices.
This is required for a stand-alone XGL-based X Windows server. Current AIGLX (Redhat) and XGLX (Novel) require you to either run a OpenGL-based X server on top of a normal X server (XGLX) or run OpenGL extensions to a normal X server (AIGLX).
This approach has numerious issues. Instead of making a clean break and going with pure OpenGL system your dealing with multiple legacy drivers that can only do a fraction of what OpenGL can do in addition to OpenGL acceleration drivers.
To put it another way.. The current driver model for X is broken. Right now we have 2-3 drivers acting on the same video card at the same time and they need to share resources. These drivers come from different vendors. This is technically difficult and doesn't lead to good acceleration or performance.
Another point:
Legacy 2D X drivers (EXA, XAA) can only provide 2D acceleration.
OpenGL 3d drivers can provide 2D AND 3D acceleration.
OpenGL 3d drivers can provide faster 2D acceleration then what the legacy 2D drivers can do. (due to the nature of the hardware GPU, not so much the drivers)
Having 2D and 3D drivers at the same time makes things much more complecated then just having 3D that can do everything.
3D acceleration is a hard requirement for a modern desktop.
So obviously having OpenGL-based X server is the way to go. And stuff like GLITZ (Xrender replacement) and other things means we can move to a pure OpenGL X server and still keep binary compatability. It's quite a acheivement.
Now the reason we cna't have a pure OpenGL-based display yet is because OpenGL lacks the API hooks to allow you to control the display and other items like that. There is nothing in OpenGL that says "Set the monitor at this resolution". That has to be handled by other stuff.
Kronos had to solve this same exact problem for it's embedded OpenGL display stuff. So they created the OpenGL-EG
All of them required you to update if you wanted to use the features. You can't run a DX9 app on DX3 hardware and get the advantages of DX. The necessary transistors aren't on the DX3 board. There's nothing different on the OpenGL side. To run OpenGL 1.x along with you *need* given board. If you don't have it the extension won't work.
Vista does not require DX10. It runs just fine under DX9. It will ship with both DX9 and DX10. The UI rendering layer is not DX10 specific. I've run Vista on a two year old machine with integrated Intel graphics (pixel shader 2.x, vertex shaders handled by the CPU) and Vista worked 100%, including Aero Glass.
fucking Pronunciation Key (fkng) Vulgar Slang
adv. & adj.
Used as an intensive.
In fact, OpenGL ES is also used in the PS3, which is hardly the lowest common denominator of graphics. Turns out that OpenGL ES mostly removes all the obsolete and irrelevant cruft that OpenGL has, while keeping the important modern stuff like shaders. It provides a simpler, more streamlined interface that is more appropriate for pushing polygons on modern hardware in both the low-end and the high-end.
Firebug. It will make your jaw hit the floor.
(1)Ironically, you yourself appear to "not know a whole lot." There are several reasons that developers use D3D over OpenGL. Personally, if I need cross platform, for example Sense8's WorldToolKit back when I used to work there, I used OpenGL. If I need multi-monitor and/or multi-device hardware acceleration on anything other than an upper end SGI, like what I currently work on, I HAVE to use DirectX9/10 and Win32. There are other reasons to prefer D3D over OpenGL but they are somewhat subjective (i.e. some people absolutely detest the extensions mechanism in OpenGL for example while others don't really care.) Some people like to write simpler code to support multiple rendering paths, et cetera. There are subjective reasons to use OpenGL as well, but this is unimportant, what is important is pointing out that "If given a choice no developer would ever use Direct3d for anything" is a ridiculous and biased statement. Also, if your hardware doesn't support OpenGL 2.0, and your application uses OpenGL 2.0, your application isn't going to run either, so the statements:
"Also DirectX/Direct3d is tied directly to the hardware. If your card doesn't support DirectX 9 your not going to be able to run DirectX 9 application. For OpenGL it doesn't work that way. It's a programming API that can be accelerated. If you have a card that was designed to accelerate OpenGL 1.x you can still run OpenGL 2.x. It just won't all be hardware accelerated."
This is VERY misleading. Presuming scenario 1 where the developer (for either D3D or OpenGL) has coded a support for only a particular version of the API, neither API will run partially in software if the driver does not support that level of the API. D3D9 will not run in software unless you're going to use a debugging rasterizer (highly unlikely), and OpenGL 2.0 WILL NOT RUN on a card with a 1.0, 1.1, 1.2, 1.4 driver. Now, there are some 1.4 drivers which were written so that people like myself could write 2.0 code and execute before the hardware was available, in which case the 2.0 distinctions were supported via software emulation, but this was for developers. You're confusing the ability of a specific OpenGL implementation supporting a specification to the maximum of its ability. For example, if a I have an OpenGL 1.4 driver but the card I'm running on doesn't have Hardware T&L, OpenGL's pipeline is quite capable of transparently deciding whether or not it should offload the lighting to the card or doing it in software. This is not the same as some future version of OpenGL running on my old OpenGL card with an old driver.
"If your programming a 3d application and it's not a game and your not Microsoft.. Then your using OpenGL or OpenGL-based system. Period, end of story" - I certainly hope you're not in a decision making capacity at your job (or that your job is doing something other than writing rendering code) because you're screwing your company over. Right tool for the right job, every time. It's a toolbox not a religious jihad.
(2)"OpenGL has a much more formal review system then DirectX/3D has" - No it doesn't. Crimony. Do you know what the specification process for DirectX is? You can say they're different, but it certainly isn't less "formal." You could say it is less open, but that's because it isn't an open API.
Loading...
Well, from my understanding:
DX3 shipped on NT4
DX4, DX5, DX6, DX7, DX8, and DX9 ship for Windows 2k
DX4, DX5, DX6, DX7, DX8, and DX9 ship for Windows XP
DX10 only ships on Vista.
So the difference that would allow OpenGL to become dominant is that, at least overnight with the release of Vista, you can install OpenGL on your Windows2k, WindowsXP, and your Vista OSes, whereas a game written in DX10 is only playable in Vista.
A game coded in OpenGL is therefore open to more users, a bigger customer base, and potentially more profit, than a game coded in DX10. As per support for geometry shaders, I guess it depends on whether the GLSL has it or not, I wouldn't know myself.
GPL Deconstructed
Say what?
"fucking" is a gerund. Like all gerunds, that means it can be a noun (when referring to the act itself), or an adjective ("which one?" "The fucking one!"), among other things.
That's bogus considering that Khronos provided (and still does) all the spec details for all the other specs, including OpenGL ES (Which is what's used on most of the mobile platforms today), OpenMP, and others. They've got more invested in being open than the ARB did- and I doubt they'll do what you say.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
All of them required you to update if you wanted to use the features. You can't run a DX9 app on DX3 hardware and get the advantages of DX. The necessary transistors aren't on the DX3 board.
In terms of DirectX, you are quite correct. When programming a DirectX game engine you have to query the given hardware capability (hwcaps) for the PC on which your game engine is being installed.
There's nothing different on the OpenGL side. To run OpenGL 1.x along with you *need* given board. If you don't have it the extension won't work.
No.
I don't know where you took your graphics CS classes, but OpenGL is very different from DirectX in this matter. OpenGL presents a consistent API to the programmer. If the hardware doesn't implement a required API there is a known software implementation which must be present. This may not be true for all extensions. But a game engine don't have to query some bitmap of known support and refuse to install or shut off funcationality. However, like with MMUs in the 386/486 era, the software version of the routines will be extremly slow.
So instead of saying "screw you and your non-DX10 card, you can't play my game" I can say "the more eye candy you want the slower my game will run, and you can leave the visual quality at low and still play fine."
"You cannot have a General Will unless you have shared experiences. You cannot be fair to people you don't know."
Because Apple uses OpenGL as the basis of the graphics plumbing on their OS, their support for OpenGL is world class. The very issues discussed above about getting OpenGL working well with X have come up and been solved on MacOSX. The very features Microsoft is trying to shoe horn into Vista (transparent windows, beautiful dynamic effects, etc) have been done with OpenGL on MacOSX.
One example : http://www.macsimumnews.com/index.php/archive/appl e_files_method_and_apparatus_for_frame_buffer_mana gement_patent_applica
Basicly, on Vista, there are 3 ways to run OpenGL:
1.Microsoft implementation. This is basicly a layer that translates to Direct3D and supports up to OpenGL 1.4 plus a few selected extentions on top of that. (there is talk that MS deliberatly picked 1.4 over 1.5 because the main difference is that 1.5 supports Vertex Buffer Objects which are important for high speed games but not for stuff like CAD and 3D)
2.Existing OpenGL ICD provided by the hardware vendor. This will work just fine and give the same full OpenGL interface as you get now on windows XP (including all provided extentions). However, when this is used, the Vista Aeroglass interface is disabled.
and 3.A new OpenGL ICD built to cooperate with DirectX and Aeroglass. This option is the prefered option however microsoft has so far refused to provide graphics card vendors with all the information and specs required to make it happen (again, there is speculation that this is to "cripple" OpenGL). Of course, microsoft may provide (or may have already provided) the necessary information that the vendors require.
Anyone running games knows to install the latest graphics card drivers for their card (and game readme files often say to do that anyway) so gamers who choose to upgrade to Vista will just download and install an ICD written by the display card manufacturer following option 3 and everyone is happy.
- Vendor (e.g. nVidia) creates driver with support for the new feature, called something like NV_NEW_SHINY.[1]
- The extension becomes stable (in the API sense) and popular, and the Architecture Review Board adopts it as ARB_NEW_SHINY. OpenGL implementers are encourage to add support for this extension to their version, but are not required to.
- The next version of the spec is released, and the features of ARB_NEW_SHINY are now part of the core features, and not an extension. Any conforming OpenGL n.m driver must implement this extension (in hardware or software).
This has some advantages over the DirectX model. Hardware developers can create new features and expose them to OpenGL developers immediately. DirectX developers have to wait for the next revision from Microsoft to use them. It also has the corresponding disadvantage that, since there is often a relatively long delay between stage 1 and 3, there is a relatively long period when you can't guarantee the presence of a particular feature on a user's card / driver. This means that a lot of effort it required in terms of backwards compatibility. For reference, Mesa supports OpenGL 1.5 and a few extensions, even though OpenGL 2.0 has been out for a few years.[1] Note that nVidia actually have more than one namespace for their extensions, depending on how stable they are.
I am TheRaven on Soylent News