DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++程式语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。最新版本为DirectX 12,创建在最新的Windows10。
基本介绍
中文名:Direct eXtension
别称:DirectX
发行公司:微软公司
性质:多媒体编程接口
套用:Microsoft Windows
最新版本:DirectX 12
功能介绍
Microsoft DirectX 是这样一组技术:它们旨在使基于Windows 的计算机成为运行和显示具有丰富多媒体元素(例如全色图形、视频、3D 动画和丰富音频)的应用程式的理想平台。DirectX 包括安全和性能更新程式,以及许多涵盖所有技术的新功能。应用程式可以通过使用DirectX API 来访问这些新功能。
DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,它包含有Direct Graphics(Direct 3D+Direct Draw)、Direct Input、Direct Play、Direct Sound、Direct Show、Direct Setup、Direct Media Objects等多个组件,它提供了一整套的多媒体接口方案。只是其在3D图形方面的优秀表现,让它的其它方面显得暗淡无光。DirectX开发之初是为了弥补Windows 3.1系统对图形、声音处理能力的不足,而今已发展成为对整个多媒体系统的各个方面都有决定性影响的接口。DirectX 是一组低级“应用程式编程接口(API)”,可为 Windows 程式提供高性能的硬体加速多媒体支持。Windows 支持DirectX 8.0,它能增强计算机的多媒体功能。使用DirectX 可访问显示卡与音效卡的功能,从而使程式可提供逼真的三维(3D) 图形与令人如醉如痴的音乐与声音效果。DirectX 使程式能够轻鬆确定计算机的硬体性能,然后设定与之匹配的程式参数。该程式使得多媒体软体程式能够在基于Windows 的具有DirectX 兼容硬体与驱动程式的计算机上运行,同时可确保多媒体程式能够充分利用高性能硬体。DirectX 包含一组API,通过它能访问高性能硬体的高级功能,如三维图形加速晶片和音效卡。这些 API 控制低级功能(其中包括二维(2D)图形加速)、支持输入设备(如游戏桿、键盘和滑鼠)并控制着混音及声音输出。构成DirectX 的下列组件支持低级功能:Microsoft DirectDraw Microsoft DirectDraw API 支持快速访问计算机视频适配器的加速硬体功能。它支持在所有视频适配器上显示图形的标準方法,并且使用加速驱动程式时可以更快更直接地访问。DirectDraw 为程式(如游戏和二维图形程式包)以及Windows系统组件(如数字视频编解码器)提供了一种独立于设备之外的方法来访问特定显示设备的功能,而不要求用户提供设备功能的其它信息。
Microsoft Direct3D Microsoft Direct3D API (Direct3D) :为大多数新视频适配器内置的3-D 调色功能提供界面。Direct3D 是一种低级的3-D API,它为软体程式提供一种独立于设备之外的方法以便与加速器硬体进行有效而强大的通信。Direct3D 包含专用CPU指令集支持,从而可为新型计算机提供进一步加速支持。
Microsoft DirectSound Microsoft DirectSound API :为程式和音频适配器的混音、声音播放和声音捕获功能之间提供了连结。DirectSound 为多媒体软体程式提供低延迟混合、硬体加速以及直接访问声音设备等功能。维护与现有设备驱动程式的兼容性时提供该功能。
Microsoft DirectMusic Microsoft DirectMusic API :是DirectX 的互动式音频组件。与捕获和播放数字声音样本的DirectSound API 不同,DirectMusic 处理数字音频以及基于讯息的音乐数据,这些数据是通过音效卡或其内置的软体合成器转换成数字音频的。DirectMusic API 支持以“乐器数字界面(MIDI)”格式进行输入,也支持压缩与未压缩的数字音频格式。DirectMusic 为软体开发人员提供了创建令人陶醉的动态音轨的能力,以回响软体环境中的各种更改,而不只是用户直接输入更改。
Microsoft DirectInput Microsoft DirectInput API :为游戏提供高级输入功能并能处理游戏桿以及包括滑鼠、键盘和强力反馈游戏控制器在内的其它相关设备的输入。
Microsoft DirectPlay Microsoft DirectPlay API:支持通过数据机、Internet 或区域网路连线游戏。DirectPlay 简化了对通信服务的访问,并提供了一种能够使游戏彼此通信的方法而不受协定或在线上服务的限制。DirectPlay 提供了多种游戏服务,可简化多媒体播放器游戏的初始化,同时还支持可靠的通信协定以确保重要游戏数据在网路上不会丢失。DirectPlay 8.0 的新功能即支持通过网路进行语音通信,从而可大大提高基于多媒体播放器小组的游戏的娱乐性,同时该组件还通过提供与玩游戏的其他人对话的功能而使团体游戏更具魅力。
Microsoft DirectShow Microsoft DirectShow API:提供了可在您的计算机与Internet 伺服器上进行高品质捕获与回放多媒体档案的功能。DirectShow 支持各种音频与视频格式,包括“高级流式格式(ASF)”、“音频-视频交错 (AVI)”、“数字视频(DV)”、“动画专家组 (MPEG)”、“MPEG 音频层3 (MP3)”、“Windows 媒体音频/视频(WMA/WMV)”以及 WAV 档案。DirectShow 还具有视频捕获、DVD 回放、视频编辑与混合、硬体加速视频解码以及调谐广播模拟与数位电视信号等功能。
与过去的DirectX 9.0b和Shader Model 2.0相比较,DirectX 9.0c最大的改进,便是引入了对Shader Model 3.0(包括Pixel Shader 3.0 和Vertex Shader 3.0两个着色语言规范)的全面支持。举例来说,DirectX 9.0b的Shader Model 2.0所支持的Vertex Shader最大指令数仅为256个,Pixel Shader最大指令数更是只有96个。而在最新的Shader Model 3.0中,Vertex Shader和Pixel Shader的最大指令数都大幅上升至65535个,全新的动态程式流控制、位移贴图、多渲染目标(MRT)、次表面散射 Subsurface scattering、柔和阴影Soft shadows、环境和地面阴影Environmental and ground shadows、全局照明(Global illumination)等新技术特性,使得GeForce 6、GeForce 7系列以及Radeon X1000系列立刻为新一代游戏以及具备无比真实感、幻想般的複杂的数字世界和逼真的角色在影视品质的环境中活动提供强大动力。
因此DirectX 9.0c和Shader Model 3.0标準的推出,可以说是DirectX发展历程中的重要转折点。在DirectX 9.0c中,Shader Model 3.0除了取消指令数限制和加入位移贴图等新特性之外,更多的特性都是在解决游戏的执行效率和品质上下功夫,Shader Model 3.0诞生之后,人们对待游戏的态度也开始从过去单纯地追求速度,转变到游戏画质和运行速度两者兼顾。因此Shader Model 3.0对游戏产业的影响可谓深远。
DirectX 10.0
包含在Windows Vista作业系统中,无法单独下载使用。
新的DirectX使你获得更好的图像显示质量,使多人游戏具可伸缩性,以及包括更棒的音频效果。它强化了针对DirectDraw和Direct3D的接口,简化了套用扩展,提升性能;改善了图形创作工具,更易于做出最佳的3-D角色和环境;点光源式光影和像素式光影使图象更逼真;强化了DirectSound和DirectMusic,简化了其套用扩展;DLS2音频合成功能提高了乐器音频的真实感;DirectInput的设备影射功能令对设备的支持更简单;DirectPlay使多人游戏的性能和可扩展性得到了提高; DirectPlay提供了IP声音通讯;DirectShow的套用编程接口提供了音频/视频的实时合成和即时编辑;DirectShow支持Windows媒体音频和视频(WMA和WMV)的读写; Microsoft TV技术可以支持数位电视节目。当然,最重要的是一些新游戏需要它。DirectX Redist通常每两个月更新一次,包含了DirectX Runtimes的所有更新,可以替代此前发布的旧版本,适合Windows XP、Server 2003、Vista等作业系统,不支持Windows 9x/2000。一般最新的3D游戏等应用程式都需要新的DirectX接口,因此强烈推荐更新。
解决方法:首先请确保以正确的方式安装好显示卡驱动,然后就要打开DirectX加速。DirectX加速是3D游戏最基本的需要,为了使Windows 更为单一地面向伺服器平台套用,微软默认将其加速功能关闭。即便是在安装了最新的DirectX 10.0之后也不会自动打开加速功能,而必须手动设定。在“开始”→“运行”对话框中输入“dxdiag”以打开DirectX诊断工具。随后在显示一栏中将DirectDraw、Direct3D、AGP纹理加速功能启用。如此一来,Windows Server 2003便能运行各种3D游戏。除此以外,Windows Server 2003还默认关闭了硬体加速,可以在显示属性的高级选单中将其设定为完全加速。