Modern Opengl vs Legacy Opengl vs Direct3d 9.0 for Windows XP

Started by
3 comments, last by gamer19862013 9 years, 3 months ago

I am doing a 3d rendering application. It has minimum requirements such as running on Windows XP and the PCs do not have dedicated Graphics cards. I need to learn a graphics API to develop the app. I have seen in many forums and blogs where people suggest to learn modern Opengl which uses programmable pipeline instead of legacy Opengl which uses fixed function pipeline or Direct3d. I have played games such as Grand Theft Auto 3, Vice City, San Andreas and Need for Speed Most Wanted in a PC which runs Pentium 4 processor and 256 mb ram without a dedicated video card. I have seen directx 9.0c run time getting installed along with the games which I mentioned. Please suggest the best Graphics API(Opengl or Direct3d) and the version to learn and code in order to target such machines. Thank you

Advertisement

For elderly versions of Windows without dedicated graphics cards, Direct3D is certainly your best bet. The drivers tend to be a lot more reliable than their OpenGL equivalents on that age and class of hardware, and you have a much better chance of the drivers actually being installed on the target machine.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

If that's your target then D3D9 without question.

Another vote for D3D9.

XP PCs without dedicated graphics cards likely means that the integrated graphics are also quite old, which in turn means that not only will the OpenGL support be less robust, but it will also lag the D3D feature level somewhat. Worst-case you're talking about software T&L and ARB assembly shaders being the best available under GL, whereas D3D9 will give you full Shader Model 2.0 support with HLSL (and SM3 with hardware T&L on slightly less older devices).

Even if this is not a consideration, with OpenGL on this class of graphics device you'll be spending a lot of time troubleshooting driver bugs that would be better spent doing something that's actually productive.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Thank you everyone. I will go with Direct3d.

This topic is closed to new replies.

Advertisement