两种模式的适用范围:
Direct3D保留模式对某些编程人员来说是一种较高层的三维API,
这些编程人员往往需要较快的开发速度,或者需要用到保留模式中
提供的内建的层次关系(hierarchies)和动画(animation)的支持.
Direct3D立即模式是一种较低层的3-D API。
对于那些需要将游戏和高性能的多媒体程序运行在Microsoft Windows系统上的
开发人员来说,立即模式是一种很好的选择。立即模式在较低层次上提供了一种
与硬件加速设备(accelerator hardware)进行通信的设备无关的途径(a device-independent way)。
Direct3D保留模式也建立在立即模式之上。
两种模式的基本概念:
保留模式
Direct3D保留模式API被设计为用以针对手工操纵的场景和物体提供高级别的服务。
它被设置在立即模式的顶部,并且具有一个内置的几何引擎,所以你不需要保留物体的
数据库或是它们的内部结构。此引擎也支持一些例如关键帧(key-frame)动画的性能。
仅仅只需要少许调用,你就能够在场景中载入预先定义好的物体以及处理。
优点:你不需要对3-D编程了解太多,所以你可以更快上手进入到编程状态,
并且你能够通过编写少量的代码来建立明确的3-D效果。
缺点:比起立即模式,保留模式速度不够快,也不够灵活。
如果你仅仅只需要在你的应用程序中添加标准的3-D功能,
或是没有时间来开发你自己的复杂的几何函数,则保留模式能更好的满足你的需要。
立即模式
Direct3D立即模式API提供同着色和硬件加速器之间的底层的,设备无关的通信。
对于那些具有相当多3-D编程经验的开发者,或是对于那些已经存在大量的3-D代码,
而希望将它们移植到Direct3D上的开发者来说,立即模式是较好的选择。
优点:你可以因此进行你自己所希望的场景着色和场景管理。这将给你的应用程序
带来更多的灵活性,并且一旦你按照你独特的需要对之进行优化,你就可能得到比较好
的性能。
缺点:你必须自己来完成你的场景的着色和场景管理,并且你将需要了解更多有关
3-D编程的知识。
如果你是一个热门游戏程序员,对编制高性能,更加酷的3-D效果更感兴趣,
并且你有你自己的一套开发函数来完成它,那么你可能会嘲笑我们所提供的这套
想法是一个优柔寡断的,容易使用的,高级别的接口,那么立即模式中将会到处写着你的名字。