MikeJ opened this issue on Jan 30, 2009 ยท 13 posts
svdl posted Fri, 30 January 2009 at 9:47 PM
As a graphics framework OpenGL is superior in design to DirectX.
Problem is, consumer PC graphics cards come with highly optimized DirectX drivers, while OpenGL drivers are sloppier. Which results in the perception that DirectX in itself would be better.
Professional graphics cards (think nVidia Quadro or ATI FireGL) come with OpenGL optimized drivers, and often with specialized drivers for the high end 3D packages (Max, Maya). On professional graphics cards OpenGL vastly outperforms DirectX.
The funny part is that those professional graphics cards use exactly the same hardware as the consumer cards. It used to be possible to tweak an nVidia 6800 based graphics card (costs around $150 in those days) into a Quadro FX 4000 ($4000) using only a bit of software. nVidia put a stop to that by adding one single pin to their chip. The only function: signaling that it was a Quadro or a Geforce - and alas, after the NV40 generation of chips the SoftQuadro route was no longer possible.
I used that trick on a $110 nVidia 6800LE, and the performance increase of 3DS Max was about 10-fold under OpenGL, while DirectX didn't give any performance increase.
Using the CPU for OpenGL or DirectX calculations is NOT a good idea. Both OpenGL and DirectX are highly parallel and work with streams and pipelines. The graphics processor has many computing components that work in parallel on those streams, higher end graphics cards can have 256 or more parallel working units, whereas a CPU has no more than 4 (8 if you count the i7 hyperthreading).
Okay, a single CPU core is significantly more powerful than a single GPU shader unit. But no CPU can beat 256 GPU shader units working in parallel.
In fact, there's a specialized non-realtime render engine, RT2, that doesn't render on the CPU, like Poser and most other applications do. It uses the GPU to do all the shader work, resulting in a 10 to 100-fold speed increase on even a modest graphics card.
So, DirectX is NOT the way to go. Neither is QuickDraw (or whatever it is called now), the Mac counterpart of DirectX. OpenGL is better.
The pen is mightier than the sword. But if you literally want to have some impact, use a typewriter