【Visual C++】游戏开发笔记二十四 由DirectX的几个版本说开去


本系列文章由zhmxy555(毛星云)编写,转载请注明出处。

作者:毛星云    邮箱: [email protected]    期待着与志同道合的朋友们相互交流



本节是DirectX 11的一个开篇,都是些概念性的知识,希望在正式学习DirectX 11之前,对将要学习的内容有一个整体的认

,以便更好的掌握将要学习的知识。



一、引言


在上个世纪,DirectX还没横空出世之前,游戏厂商都在努力克服着硬件不兼容造成的各种问题。但不幸的是,市面上已经存在

的各种繁杂而不统一的硬件配置,让想做出一款供大多数人们都可以畅玩的游戏的想法成为了泡影。在这样的背景下,游戏行

业急切需求一项统一的标准化的指标。于是微软公司推出了基于Windows 95的Windows Game SDK,这就是DirectX的前

身,之后Windows Game SDK就演变为了如今最新的DirectX 11。DirectX为游戏开发厂商提供了一套单一的API接口,基本

上保证了在各种繁杂的PC硬件上的兼容性。由于DirectX的发布,Windows平台下的游戏开发迎来了草长莺飞的春天,数量持

续呈井喷式增长。16年后的今天依然如此,基于DirectX的电脑游戏数量始终保持着疯狂的增长速率。



二、DirectX出现的必然性


在Windows操作系统发行之前,开发者都为DOS写游戏。这个单线程的,没GUI的操作系统在应用程序代码与程序运行的硬件之间提供给开发者一个直接的路径。这又是优点又是不足。举个例子吧,因为在游戏代码与硬件之间存在一个直接的路径,开发者能够拥有计算机的全部限权,能够将资源完全地分配给游戏运行。(这对当时不高的电脑配置,是比较不错的)但是缺点比较明显,比如需要直接为底层硬件编写代码或者使用许多第三方游戏需支持的硬件库,包括非常常见的显卡和声卡。


市面上的显卡尤其繁杂,并非所有显卡都遵循同样的标准。虽然绝大多数显卡都支持一系列共同的标准,开发者们只好被迫直接与底层显存打交道。这使在屏幕上的绘图非常不方便。开发商们理所当然地想要寻找一个更好更简单的方法。


当Windows 3.1发布的时候,有着与DOS一样的局限性。由于Windows内建于DOS之上运行,这样恰恰限制了能分给游戏运行的资源。这让游戏开发不再能充分利用全部的资源,显然对于游戏开发者来说,有些不习惯。当时开发到Windows平台下的游戏大多为卡片和棋盘类游戏,大多数游戏继续只支持在DOS下运行。在这种情形下,微软发布了DX1 ,证明了Windows操作系统下开发的游戏运行效率并不低,旨在吸引游戏开发者们从DOS游戏开发转移到Windows游戏开发的阵营。


微软于Windows 95中发布的Windows Games SDK并没有从根本上解决这个问题。Windows GamesSDK为开发者提供了一个单一的库,放置一个常规层在游戏程序与PC硬件之间,这样图形的绘制会轻松很多。第一个版本的DX依旧没有支持当时所有的硬件,但是它作为一个伟大的起点,忽然像是有了光,让游戏开发者们看到了下一代游戏开发技术的曙光,一个游戏开发的梦。一个新的纪元即将开始。这些年来,DX进行了多个版本的重大升级,每一个版本都在改善,每一个版本都在增强,每次更新都加入了许多新技术与新元素,比如网络支持,流式音频,新式输入设备等等。目前最新的版本为DX 11,兼容微软的Windows Vista 与 Windows 7 ,Windows 8操作系统。




三、  有关DirectX 10与 DirectX 9


首先要提到的是,DirectX 9目前依然是游戏开发的中流砥柱。

在2006年,DirectX 10的发行是DirectX SDK的重大飞跃。

通常,我们讲到DirectX的时候,通常都是指的Direct3D,因为Direct3D作为正面对抗OpenGL的重要武器,受到了微软最多的关怀与多次针对性的更新。所以Direct3D在DirectX的阵营中的认知度最高,它的光芒完全掩盖了其他DirectX API的发挥空间。DirectX中其他的大多数API有些被更新换代淘汰掉了,或者有轻微的变化。

Direct3D 10的API是

你可能感兴趣的:(C++,DirectX)