补充一点,DirectX有很多组件组成,几乎所有的东西都已经不发展了,音频用XAudio代替,输入用XInput和WM_INPUT代替,视频播放有Media foundation。只有Direct3D还在继续活跃发展。而D3D,最早是收购了Rendermorphics公司,把他们的RealityLab 2.0改名成Direct3D,临时加入DirectX的,作者名字叫Servan Keondjian。
DirectX相比竞争对手的API,一个很大的优势是严格的认证测试。只要是经过测试的硬件,程序不用改,就几乎都能在不同硬件上跑。相比之下,OpenGL最大的问题就是经常一个卡上跑的很欢,另一个卡上直接蓝屏。也正是因为这样的兼容性,孤立的API,比如Glide,散沙般的API,比如OpenGL,才会消亡或在游戏领域长期被压制。
两个轶事:
1. 没有DirectX 4.0。直接从3.0b跳到了5.0。因为4.0和5.0一起开发的,而大家觉得有5就用5好了,没人用4,就干脆取消4了。(那年头,居然不是因为大家喜欢5而取消5)(DX 5也是我第一次开始用DX的版本)
2. Direct3D 8的黑历史。7之后,MS的人和SGI的人谈判,要共同出一个合并D3D和OpenGL的图形API叫Fahrenheit,一劳永逸解决分裂的问题。MS负责底层,SGI负责上层。后来因为D3D已经占了大部分游戏市场,再加上OpenGL的精要都已经学到,MS就宣布因为“技术原因”,底层搞不出来。没底层上层也失去了存在的意义。就这么黄了。