什么是DirectX

DirectX,(Direct eXtension,简称DX)是由微软公司建立的游戏编程接口。由C++编程语言实现,遵循COM。因为DX的功能比OpenGL更全面而被多数PC游戏开发商采用。最新版本为DirectX 10.1和DirectX 9Ex (2006年11月30日),两者均只可于Windows Vista上使用。

DirectX 6之前,在Windows 3.1至Windows 98SE 之间,曾有WinGAPI的出现。很多Windows游戏需要DirectX。DirectX包含DirectGraphic、DirectPlay、DirectSound、DirectInput、DirectSetup等部份。Direct3D与DirectDraw已集成成DirectGraphic,而DirectShow亦已自原本的DirectX SDK中移到Windows平台SDK了。Redist Package 是媒体开发底层API,通过它可以开发游戏和其它多媒体应用程序。

元件

DirectX 组成的元件有:

DirectX Graphics,包含二组 APIs(DirectX 8.0 onwards):

DirectDraw:用于绘制 2D Graphics(en:raster graphics)(不建议使用,虽然目前仍有大量的使用者)。

Direct3D(简称D3D):用于绘制3D图形(3D graphics)

DirectInput:用于结合键盘、鼠标、摇杆,或其它的游戏控制器(Not updated since 8 except for XInput,专门提供给 Xbox360 的控制器。并建议以WM INPUT取代键盘与鼠标。)

DirectPlay:用于网络游戏连接沟通(配合DirectInput使用,上次的更新版本是version 8. 目前已不建议使用)

DirectSound:用于录音,并且记录波形音效(waveform sound)

DirectSound3D(简称DS3D):用于3D音效(3D sounds)的录音。

DirectMusic:用于DirectMusic Producer的录音。

DirectX Media:包含DirectAnimation 可用于2D 的网页动画(web animation),DirectShow可支持多媒体录音(multimedia playback)以及数据流媒体(en:streaming media),DirectX在网页上的转换,还有Direct3D 可保留3D graphics更清晰的解析。DirectShow 亦包含有en:DirectX plugins 用于en:audio signal processing以及 DirectX Video Acceleration加速影音音效(video playback)。

DirectX Media Objects:支持数据流对象(streaming objects),像是编码(encoders)、解码(decoder)以及效果(effects)。

DirectSetup:用于DirectX 元件的安装,并非完全是 API。

历史

1994年末,微软即将推出新一代操作系统Windows 95。决定新操作系统的最终价值的因素在于究竟新系统能运行哪些程序。微软的三个员工:Craig Eisler、Alex St. John、Eric Engstrom十分关心这个问题,因为不少游戏程序员更喜欢在DOS系统下编写游戏,这意味着,没有多少人愿意为WIN95编写游戏,新操作系统不会获得多少成功。

DOS允许直接访问显卡、键盘、鼠标声卡以及其他系统硬件设施。而Windows 95出于保护存储系统的目的,限制了对硬件的直接访问,取而代之的是一套更加规范标准的访问方法。微软需要一种方法让程序员在WIN95中也能编写出高效的程序。此时,离新系统发布不到几个月了。St. John和Engstrom联合解决了这个问题,他们将解决方案称为DirectX。

DirectX的第一个版本作为Windows Games SDK发布于1995年9月,它作为Windows API的一部分用以替换Windows 3.1中的DCI和WinGAPI。ATI的一个开发团队为微软带来了基本的游戏图像技术,微软方面,DirectX由专门的团队负责开发,Eisler为团队领导,而St. John和Engstrom则成为主程序设计师。

DirectX出现之前,微软已经将OpenGL包括在Windows NT系统中,而在当时,OpenGL对硬件要求严苛,这限制了一些工程师和CAD用户。Direct3D就作为OpenGL的代替品被加入DirectX。随着硬件技术的发展,OpenGL成为行业标准,一场“战役”发生在DirectX的支持者和OpenGL的支持者之前,而且前者只支持Windows平台,而后者支持多平台。在实际应用中,游戏开发者常常两者同时使用,因为DirectX支持许多OpenGL所不支持的功能,比如音效和输入装置。而选择混合使用OpenGL和OpenAL的队伍也在壮大。

时间: 2024-12-27 08:14:36

什么是DirectX的相关文章

微软为Win7用户提供DirectX 11.1

几天前,有消息称DirectX 11.1仅支持最新的Win8.Windows RT和Windows Server 2012,微软暂时没有为Win7提供DirectX 11.1的计划. 这一消息引起了众多Win7用户的不满,为了平息众怒,微软特意在官方博客中进行了澄清.在今天发布的一篇官方博客中,微软表示,他们其实悄悄为Win7提供了一种方法,用户可以获取部分DirectX 11.1功能.这个秘密功能就隐藏在昨日为Win7用户发布的IE10中. 微软在博客中表示,Win8包含最新的DirectX

电脑出现Directx错误提示初始化Directx运行库失败如何解决

  1.如果出现以上提示,可以尝试重新安装DirectX 9; 2.安装之后仍有错误的话,可以借助DirectX修复工具来DX错误; 3.有时候需要开启旧版组件支持,打开控制面板--程序和功能--启用或者关闭windows功能,勾选旧版组件下的DirectPlay; 4.接着耐心等待Windows功能安装完成即可.

Visual C#使用DirectX实现视频播放

visual|视频播放 很多人第一次接触到DirectX大都是通过游戏,至于安装.升级DirectX的原因无非是满足游戏运行的需要.Direct X其实是微软公司推出的一个为Windows平台的多媒体API函数库,它提供标准接口来与显卡和声卡.输入设备等进行交互.如果没有这组标准API函数库,那你就需要为每一种显卡.声卡的每个组合和每种类型的键盘.鼠标和游戏杆编写不同的代码.这不又回到了以前的Dos时代.为了解决这个问题,微软公司推出了DirectX.DirectX从具体的硬件中抽象出来,并且将

调用DirectX的组件实现的时钟

下面的代码是调用的DirectX的组件实现的时钟.它有三根指针,会实时地随系统时间的改变而改变.不过我没有做刻度,因为我觉得用程序画出来的刻度不漂亮,用PHOTOSHOP画一口钟作为背景要漂亮多了. <html><head><title>指针式时钟</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></

在C#中利用DirectX实现声音播放

    我感觉声音的播放比较简单.我们从播放声音开始.为什么我这么觉得?我也不知道. 这里是展示最简单的DirectX播放声音的例子,我尽量省略了无关的代码.最后的代码只有19行,够简单了吧? 准备工作: 1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll 2.一个WAV文件.(这样的文件比较好找,在QQ的目录里就不少啊.这里就不多说了.)名字叫SND.WAV,放在

C#中使用DirectX编程

编程   我感觉声音的播放比较简单.我们从播放声音开始.为什么我这么觉得?我也不知道.这里是展示最最最最最简单的DirectX播放声音的例子,我尽量省略了无关的代码.最后的代码只有19行,够简单了吧? 准备工作:1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll 和 Microsoft.Directx.DirectSound.dll2.一个WAV文件.(这样的文件比较好找,在QQ的目录里就不少啊.这里就不多说了.)名字叫SND.WAV,

3D编程:第一章 Introducing DirectX

DirectX是一组API的集合,用于在微软平台上,包括Windows,Windows Phone,Xbox 360,以及Xbox One,开发游戏或图形相关的应用程序.DirectX从1990年代中期发展至今,并处于现在图形开发的前沿.Direct3D是DirectX里面一套3D图形API,是这本书主要讲述的.DirectX也包含了2D图形,输入,音频,文字渲染和GPU编程的系统支持.本章概述了DirectX和DirectX 11的图形管线. 回顾历史 DirectX 1.0版本发布于1995

3D编程:Real-Time 3D Rendering with DirectX and HLSL

介绍 图形编程是视频游戏,电影和科学模拟仿真背后的魔法.你在计算机屏幕上看到的每一个爆炸,颗粒以及眩光都是使用视频卡处理的.此外,你看到的每一个像素点都是通过GPU渲染和图形编程人员软件实现的,因为现代操作系统使用GPU绘制.这是一个广泛的话题,但一直以来只属于少数领域.甚至有经验的软件开发人员,通常认为渲染是一门高深的艺术,充满了复杂的数学工具和深奥的工具.另外,现代图形学的快速发展使得图形编程变成了不断前进的目标,同时建立一个起点变得更加困难. 这就是这本书的目的.通过这本书,你会学习对实时

一个用于 DirectX 编程的现代 C++ 库

我写过很多 DirectX 代码,也写过很多关于 DirectX 的文章.我甚至还编写过关于 DirectX 的在线培训课程.它其实并不像某些开发人员所说的那么难以理解.学习曲线一定会有,但一旦您过了这道坎,就不难理解 DirectX 的工作方式及其为何要如此工作的原因了.不过我也承认,DirectX 系列 API 的易用性应该更高些. 几天前,我决定着手修补一下这个缺陷.我熬了一整夜,编写了一个小头文件.随后几晚,我又将代码行扩展到了近 5,000 行.我的目标是提供一些可借助 Direct2

Windows 7的DirectX高保真提升系统

DirectX最早于1995年提出,而随着微软下一代Windows系统的临近,其下的图形技术必将跃上新的台 阶.并非仅仅是DirectX 11将会集成进Windows 7,同时微软也承诺了向下兼容性,至少会兼容Vista. 而且,根据软件巨头的说法,DirectX 11还将会给软件开发者们带来新的活力,将帮助开发者们在开 发Windows 7专用软件时能够拥有高保真画面. "通过一系列新型DirectX API,Win32程序开发者们能够利用最新的GPU创新技术将更快,更具 扩展性的2D.3D图