My answer to the OpenGL or Direct3d questionpublished on 8/17/2008 4:01 PM
Choosing the right API is far from easy. They are both good API and they will both get the job done no matter what you pick. So when I started on the screensaver I couldn't really decide on what API to choose. This lead me down into the 'middle road'. I used both. The engine design does get nicer this way too. Then later down the road I realized that I spent just about all my development time into implementing the render part. So to cut down on that time I skipped D3D. The reason was that OpenGL was easier to get up and running and just worked for the simple cases. Using a API thats platform independent is also a good thing down do road. If I, for whatever reason, decided to port the application to for example Mac or Linux.
I was happy with the decision for a while. But then came the problem that if I wanted to do anything advanced in OpenGL I had to resort to extensions and the small hell they bring with them. Since the extensions might or might not exists. So now I will change that decision and go with D3D10 instead. Yes, you read that right 10. That means Vista only. Some of the reasons for the change is
- It's a very mature API
- Supports all the latest features
- Object orientated (So no annoying state keeping)
- No extensions (So no 'The gfx doesnt look right on card xx')
- Much richer tool set. With OpenGL your more or less left out in the cold. For D3D you have nice peformance monitions specially from Nvidia with their [url:performance hud|http://developer.nvidia.com/object/nvperfhud_home.html].
- I run Vista on all machines. Both at home and at work.
I will however try to keep the existing OpenGL render in there for at least basic functionality. But for all the neat stuff (Geometry shaders and the like) I will require D3D10.