3 ms·
> Because OpenGL is ugly as hell. Matter of opinion. I vastly, vastly prefer it to D3D and its unnecessary OO abstractions. The GPU is not "object oriented" an
by dualogy 14y ago
> Because OpenGL is ugly as hell.
Matter of opinion. I vastly, vastly prefer it to D3D and its unnecessary OO abstractions. The GPU is not "object oriented" and the OpenGL state machine is much closer to how the GPU works. It takes some time learning to understand the underlying philosophy, but if you stick with the core profile (3.2 or newer) and ignore the legacy profile, it will prove a really quite beautiful API to work with.
> DirectX is rewritten often (with new versions) to accommodate new ideas, whereas OpenGL new features/ideas are just "tacked" onto the existing code base
What's the problem here. New functions are added, but older ones are still valid use-cases. Seriously outdated stuff that no hardware no longer really natively supports, such as the fixed-function pipeline, is clearly and most obviously flagged everywhere as outdated legacy ("compatibility profile") API and its use discouraged. However, if you really wanna fire up an old OpenGL 1.1 app you wrote as a teen some 15 years ago, you still could. Now that's actually rather neat, isn't it?
> OpenGL also has a huge barrier to entry compared to DirectX.
Nope? Don't even need an SDK for that. It's pre-installed on all major OSes and implemented by all GPU drivers for years.
Even better is, there's no need for what in D3D results in a DirectX install on client machines. That annoys me actually, whenever I install a new game with Steam, it proceeds to "install DirectX" (sometimes v9, sometimes v10, sometimes v11). Sometimes even just when I start a readily installed game after a longer period of not playing it. WTF? DirectX has been "installed" so many times by now, isn't once enough? And can't DX11 automatically provide a DX9 layer for older games? I know that my GeForce-provided GL 4.2 driver happily implements "all GL versions ever".
> MSND DirectX resources are fantastic, whereas resources on OpenGL are often out-dated and generally pretty crap.
Khronos' GL/GLSL API documentation pages are all comprehensible, accurate, up-to-date and complete, and so are their spec PDFs if that's the preferred format. Their Wiki pages also provide a wealth of absolutely current high-quality information.
As for tutorials out there, some are good and up-to-date, some not -- same for D3D I'd wager?
> whereas OpenGL requires GLUT, or GLEW? I think. Perhaps FreeGLUT? OpenGLUT? Or can you just use SDL? Or none of them? What? Exactly.
I have nothing to add to BlackAura's excellent comment on this: http://news.ycombinator.com/item?id=5127185 http://news.ycombinator.com/item?id=5127185
Other than: you'll just wanna use GLFW and be done with it...
- ygra 14y agoDirectX 10 and 11 are part of the OS and there are no standalone installers anymore. What Steam does is noticing that the game has a dependency on DirectX and it launches a stub installer but apparently cannot actually check whether it runs on a recent Windows version where that thing does essentially nothing. There is a DirectX-9-compatible layer in current DirectX.
- dualogy 14y agoTIL...
- RobotCaleb 14y agoThe DX installers should check if they need to do any work, though.