在 Windows 操作系统的体系构架中,在内核与硬件之间有一层抽象层,专门对硬件进行屏蔽抽象,所以用户不再被允许对硬件进行直接访问。这样做以后,大大地提高了操作系统的抗破坏性和抗干扰性,但这样以来,使硬件操作的效率大打折扣,许多新硬件的新特性无法直接使用,这对多媒体和游戏的发展显然是一种障碍。DirectX 是微软公司提供的一套优秀的应用程序编程接口(APIs),用于联系应用程序和硬件自身,它对发展 Windows 平台下的多媒体应用程序和电脑游戏起到了关键的作用。DirectX 组件包括:DirectDraw、DirectSound、DirectPlay、Direct3D、DirectInput、DirectSetup、AutoPlay 等。
总之,DirectX 的主要好处有两个:为软件开发者提供与硬件的无关性;为硬件开发提供策略。
现在只要是windows游戏,大都需要directx。可是作为一个初级玩家来说Directx到底是什么呢?为什么游戏非需要它不可?本文就简单的介绍一下directx。
DirectX是一种应用程序界面(api),可让以Windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。
下面我们来举个例子说明Directx的作用:以前我们玩Dos游戏的时候,都必须设置声卡的品牌,然后再设置它的irq、i/o、dma,其中有一项设置不对游戏就发不出声。这部分设置不但让玩家伤透脑筋,对游戏设计者开说也非常头痛!因为游戏设计者做游戏之初便需要把市面上所有声卡硬件数据都收集过来,然后根据不同的api来写不同的驱动程序。
现在我们玩Windows游戏,并不会做这些设置,因为Directx提供了一个共同的应用程序界面,只要这个游戏是依照Directx来开发的,不管你是什么显卡、声卡、统统都能玩,而且还能发挥比Dos下更佳的效果。当然,前提是你的显卡、声卡的驱动程序也必须支持Directx才行。
前面所说的只是提供一致的应用程序界面,其实要深入了解Directx的各个组件你就会更加明白为什么游戏都要支持Directx了。Directx由许多api组成,我只介绍几个重要的部分:
1、DirectDraw:这是Directx中非常重要的部分。它担任图形处理的关键。以往在实地址的Dos下设计游戏时,为了游戏速度的考虑,都让程序直接操作硬件。而在Windows98这种保护模式下,所有图形的访问动作都必须gdi这个图形处理中心来处理,而不能直接对硬件下命令,而gdi对连续的画面处理不佳,游戏一旦通过gdi来处理的话,那么效果……嘿嘿。
DirectDraw就是来帮助windows程序也能直接进行硬件操作,更进一步还能加速显卡的速度,使游戏更为流畅。另外DirectDraw还支持mmx、3dnow、agp等技术,还能处理多屏幕显示,让窗口环境的游戏更加多姿多采。
2、DirectSound这是用来处理声音的api,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。前面所举的声卡兼容的例子,就是利用了DirectSound来解决的。
3、DirectInput这用来处理游戏的一些外围装置,例如游戏摇杆、gamepad、方向盘、vr手套、力反馈的各种设备等。以往要在Dos下用方向盘来玩赛车游戏,就要先调整好irq、dma等各种设置。而现在DirectInput则使这些设备与游戏配合良好,不需要做特别配置。
4、DirectPlay这是为了满足近来流行的网络游戏而开发的api,支持多通信协议,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施。
5、Direct3D(D3D):d3d的大名相信谁都听过吧!对现在的游戏来说d3d实在是太重要了!由于3d游戏的兴起,各大厂商纷纷推出3d加速卡为了避免重蹈声卡的覆辙,微软从Directx3.0后加入d3d这个api,让3d游戏有一个共同的开发标准。这样当游戏再执行时若需要绘图时就会通过d3d向显卡驱动程序提出要求从而完成绘图。
如果你是玩大型游戏的话,就要安装最新版的directx9.0c。
你是从装XP系统,
造成“适配信息”里的属性不可用是为什么?显卡是机成的,
芯片类型: <不可用> 。
DAC类型: <不可用> 。
内存大小: <不可用> 。
适配器字符串: <不可用> 。
BIOS信息: <不可用> 。
那就是显卡没有装(就是说你的电脑没有找显卡“硬件”,只要是3D游戏都不玩不了。你去下载一个和你的显卡相符合的“显卡驱动”,或者在你的显卡驱动盘里,如果你的显卡是机成“就是说显卡和主板连在一起的”的,就到你的主板驱动盘里去找)再单击“我的电脑”“属性”“硬件”“设备”“设备管理器”,找到一个带问好“?”的硬件,再单击“更新驱动程序”,“是,仅这一次”下一步,“从列表或指定位置安装(高级)”下一步,“在搜索中包括这个位置”点击“浏览”找到你那驱动的位置,打开那个文件夹,不要选中任何文件。再点击“确定”,再点击下一步。一直下一步,如果它要你停止,你就依然继续。下一步,下一步。就可以了。
你下的是483.2 MB的这个吗:
http://www.microsoft.com/downloads/details.aspx?familyid=5493F76A-6D37-478D-BA17-28B1CCA4865A&displaylang=en 。
DirectShow SDK在DirectX 9.0b后已经不和DirectX SDK一起发布了,而是集成在了Windows Server 2003 Platform SDK里。
你找找最新的Windows SDK吧:
http://www.microsoft.com/downloads/results.aspx?DisplayLang=en&nr=20&freetext=Platform+SDK&sortCriteria=date。
方法一、可能是显卡驱动过期或损坏,更新一下显卡驱动。右键开始菜单打开设备管理器,双击显示适配器,右键单击显卡设备,选择更新驱动程序,选择自动搜索驱动程序。或者直接下一个驱动人生帮忙更新驱动。
方法二、进入DirectX诊断工具,检查你的所有DirectX功能是否正常工作(特别是Direct3D加速)。
1、在Windows左下角搜索栏中输入dxdiag按回车。
2、进入 "显示 "选项卡,检查Direct3D加速是否被启用。
如果你有多个视频适配器,检查DirectX诊断工具中的每个显示标签。
3、如果都没有问题,那就可以跳到下一个修复方法;如果它显示已禁用或不可用,前往Direct3D加速不可用,进一步解决问题。
方法三、启用DirectPlay。
1、在搜索栏输入【控制面板】,在控制面板界面点击【程序】—【程序和功能】。
然后从侧边栏点击【启用或关闭Windows功能】。
2、向下滚动到传统组件,勾选DirectPlay的方框。
方法四、可能是因为缺少某些DirectX文件。
1、到微软的DirectX终端用户运行程序下载网站,下载DirectX安装程序。这是官方支持的唯一方法来检查当前是否安装了正确的DirectX文件。
2、打开dxwebsetup.exe文件,按照屏幕上的指示将软件安装到你的电脑上。
3、任何丢失的DirectX文件都会被替换掉,重新启动电脑。