很多人听过 OpenGL 和 DirectX 这两个名词,其实它们是函数库,这两个函数库用于完成一些与底层打交道的基本工作。
DirectX 还提供了一些常用的 3D 函数库。微软在 DirectX 中做了很多二次开发,用这些二次开发提供的功能来开发小游戏还是不错的,但用来直接支持大型游戏开发则还差得很远。
下面主要讨论与底层打交道那部分工作。DirectX 与 OpenGL 的最大功劳在于充分调动和发挥了显卡的性能,把显卡的特性用接口的形式提供,它们各自都有自己的管理层次、管理方法和管理管线。
当使用与显卡资源相关的 AP I时,要仔细看这个函数中各个参数的说明,它会根据我们的设定来管理显卡。它管理的只是一部分工作,还有很大一部分工作需要引擎自己处理。
如果我们不想自己写驱动或者调用驱动程序接口,但还想控制显卡,则要用到这些 API。
D3D(DirectX 中主要处理 3D 的 API)和 OpenGL 在使用上还是有很大不同的,学习它们也要花费一些时间。如果不了解 3D 渲染流程,D3D 学起来特别困难。然而,如果先学习制作“软引擎”(用 CPU 来实现显卡提供的硬件功能),然后回来再学 D3D,就容易许多了。