If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Well, it is, if we want to be honest with ourselves. OpenGL 3.2 manages to close the gap somewhat, but it's still far behind D3D10 as far as API design, ease of use and stability is concerned. (Yes, it offers more functionality in general, but (a) it's still missing binary shaders and (b) 50% of the market is using Intel IGPs, which are synonymous with "bad OpenGL support" and (c) our OSS drivers don't even support GL2.1, much less 3.2).

Yes, but in order to get the "awesome" D3D10, you must pay Micro$oft a large amount of $$$ U$D, only to be vendor-locked-in and restricted with at bunch of DRM.

Yes, but in order to get the "awesome" D3D10, you must pay Micro$oft a large amount of $$$ U$D, only to be vendor-locked-in and restricted with at bunch of DRM.

The cost of MS Windows is included in the price of every new computer sold. Since nowadays you can buy a laptop for about £200 I fail to see where that 'large amount of $$$ U$D' is. Vendor lock-in? Are you using it as buzz word or you actually mean something? As for being 'restricted with a bunch of DRM', I guess you refer to having the possibility to play restricted media as dictated by the content providers--not by Microsoft.

Well, it is, if we want to be honest with ourselves. OpenGL 3.2 manages to close the gap somewhat, but it's still far behind D3D10 as far as API design, ease of use and stability is concerned. (Yes, it offers more functionality in general, but (a) it's still missing binary shaders and (b) 50% of the market is using Intel IGPs, which are synonymous with "bad OpenGL support" and (c) our OSS drivers don't even support GL2.1, much less 3.2).

Well this is partially true, even if 50% of the market is using Intel IGPs which I don't really care about, if they have a bad support of OpenGL that's their problem to solve, not OpenGL one plus if people are stupid enough to use their ultra cheap solution then why should we care about them ?

I mean, is DirectX worry about portability or something like that ?
Absolutely not.

I don't know much about binary shaders, but what I've read is that it's available on OpenGL ES.

To say true what I would like to see in the future of OpenGL
is a merge and standardization of all 3D features, input management and sound management like in DirectX.

Of course we know there's some "kind of solutions" available here and there, but no real standard.

Well, it is, if we want to be honest with ourselves. OpenGL 3.2 manages to close the gap somewhat, but it's still far behind D3D10 as far as API design, ease of use and stability is concerned.

I can't really compare, as I have only learned to use OpenGL, but I find it very simple to use. From what I can remember from D3D-tutorials is that I have to muck about with the windows API, where everything has funny ALL_CAPS names. It's not pretty.

(Yes, it offers more functionality in general, but (a) it's still missing binary shaders

What's that for?

and (b) 50% of the market is using Intel IGPs, which are synonymous with "bad OpenGL support" and (c) our OSS drivers don't even support GL2.1, much less 3.2).

Many of our OSS drivers don't even support 3D at all. (and they will never support Direct3D)

The drivers that matter (at the moment) are the proprietary NVIDIA and AMD drivers. That's what the scientific community uses for Linux graphics.

I can't really compare, as I have only learned to use OpenGL, but I find it very simple to use. From what I can remember from D3D-tutorials is that I have to muck about with the windows API, where everything has funny ALL_CAPS names. It's not pretty.

It is the same with OpenGL, unless you use a library that takes cares of the details for you (like SDL). The setup process for OpenGL and D3D is very similar: you need a window and a device context. You then query available pixel formats, change the pixel format of the window and finally instanatiate an OpenGL/D3D context on that window/DC. (The process is analogous on X, where you have a display connection, screen, window and visuals and most other platform APIs).

The differences start after you pass the setup stage.

...binary shaders...

What's that for?

Load times, mainly. With OpenGL, you need to compile/link shaders every time you startup your program. Modern games might run in the hundreds / thousands of shaders, which translates into very long load times.

Many of our OSS drivers don't even support 3D at all. (and they will never support Direct3D)

Well, Linux is used by about ~1-2% of the computer-literate population. If 10 or 20% of that number doesn't support 3d... you can see where I'm going. Numbers in the order of 0.1-0.4% can be safely ignored - these people wouldn't be interested in my applications anyway.

The drivers that matter (at the moment) are the proprietary NVIDIA and AMD drivers. That's what the scientific community uses for Linux graphics.

Indeed, if you are targetting the scientific community, you are more or less free to dictate your hardware requirements. If you are going after the home market, you cannot ignore Intel (as much as I hate to admit that). World of Goo, for example, would have lost more than half of its sales if it wasn't able to run on Intel (and I'm sure the developers hated every minute spent working around compatibility issues).

Surprisingly enough, Intel's open source drivers are decent enough. They support GLSL, VBOs and FBOs which is decent enough (bugs can be worked around; missing features cannot). Their closed-source drivers are where the problem lies: they haven't updated GMA950 drivers since 2008 (that's what 99% of netbooks come with), their Poulsbo chips don't even support OpenGL, and their newer chips (HD4500 and the like) often fail to run perfectly valid OpenGL code.

Check the forums at opengl.org to see how many problems is Intel causing to OpenGL developers.

Originally Posted by dl.zerocool

Well this is partially true, even if 50% of the market is using Intel IGPs which I don't really care about, if they have a bad support of OpenGL that's their problem to solve, not OpenGL one plus if people are stupid enough to use their ultra cheap solution then why should we care about them ?

Because they are 50% of the market and Direct3d is working on that 50%. Why do you think Google Earth is shipping with both D3d and OpenGL support at the same time?

To say true what I would like to see in the future of OpenGL
is a merge and standardization of all 3D features, input management and sound management like in DirectX.

That will not happen as part of OpenGL. It's not its raison d' etre.

OpenGL is equivalent to Direct3D. They are graphics APIs.
OpenAL is equivalent to DirectSound. They are sound APIs.
OpenCL is equivalent to DirectCompute. They are compute APIs.

Input and windowing are handled by the underlying OS, neither DirectX nor OpenGL. (Yes, DX used to provide DirectInput but this has been deprecated in favor of win32 raw input. DX also provides XInput, but this is mostly meant for XBox interop).

Fact #2: OpenGL is a cross-platform graphics API => Google Earth could have been built on OpenGL only.

Fact #3: a single codepath is better than two codepaths from a time and cost perspective => there must be some reason why Google Earth supports both OpenGL and D3D.

It all starts to make sense when you check out Google Earth's configuration files(*). These files contain overrides for specific video chips and explanations for those overrides (e.g. chip x crashes when using mipmaps under OpenGL. Use D3D instead). The interesting thing here is that pretty much every single Intel chip (50% of the market) is switched to the D3D codepath in Google Earth, which means Intel's OpenGL drivers must be rather bad.

It is safe to assume that Google Earth is forced to fall back to D3D on Windows due to OpenGL driver issues. It is also safe to assume that Google would have preferred to use OpenGL only, if that was feasible (due to #1, #2 and #3). Unfortunately, it isn't.

(*) Last time I checked was on version 3, but I somehow doubt anything has changed since then.

It is safe to assume that Google Earth is forced to fall back to D3D on Windows due to OpenGL driver issues. It is also safe to assume that Google would have preferred to use OpenGL only, if that was feasible (due to #1, #2 and #3). Unfortunately, it isn't.

I guess it makes sense. But wouldn't a more straightforward explanation be that in the past there were no OpenGL drivers shipped by default with Windows XP? I think you only got them once you downloaded the drivers from the manufacturer site, and probably many people that would potentially use Google Earth would not know anything about this. Nowadays Vista and W7 have OpenGL drivers included by default, so this would not be an issue with these systems.