DirectX是什么?DirectX1.0~12版本变革史

编辑:quers 2016-06-29 09:56:26 来源于:系统城 1. 扫描二维码随时看资讯 2. 请使用手机浏览器访问: http://wap.xtcheng.cc/xtjc/12088.html 手机查看

  DirectX给游戏玩家的印象就是玩大型游戏都需要安装,DirectX的图形加速功能可以给予用户更佳美好的游戏体验。DirectX也不仅仅是游戏的专属,TA同样用于各种多媒体中,这是一个多媒体编程接口,是吩咐媒体元素的应用程序的理想平台,简而言之,这是一个为显卡而生的程序。阅读下文深度了解DirectX的介绍和变革史

DirectX是什么?DirectX1.0~12版本变革史

  DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。最新版本为DirectX 12,创建在最新的Windows10。

  一、介绍:

  Microsoft DirectX 是这样一组技术:它们旨在使基于Windows 的计算机成为运行和显示具有丰富多媒体元素(例如全色图形、视频、3D 动画和丰富音频)的应用程序的理想平台。DirectX 包括安全和性能更新程序,以及许多涵盖所有技术的新功能。应用程序可以通过使用DirectX API 来访问这些新功能。

  功用

  DirectX加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低了用户安装及设置硬件的复杂度。

  从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上可以看出DirectX的出现就是为了为众多软件提供直接服务的。

  举例来说,以前在DOS下骨灰级玩家玩游戏时,并不是安装上就可以玩了,他们往往首先要设置声卡的品牌和型号,然后还要设置IRQ(中断)、I/O(输入与输出)、DMA(存取模式),如果哪项设置的不对,那么游戏声音就发不出来。这部分的设置不仅让玩家伤透脑筋,对游戏开发者来说就更为头痛。为了让游戏能够在众多电脑中正确运行,开发者必须在游戏制作之初,把市面上所有声卡硬件数据都收集过来,然后根据不同的 API(应用编程接口)来写不同的驱动程序。这对于游戏制作公司来说,是很难完成的,所以在当时多媒体游戏很少。微软正是看到了这个问题,为众厂家推出了一个共同的应用程序接口——DirectX。只要游戏是依照Directx来开发的,不管显卡、声卡型号如何,统统都能玩,而且还能发挥最佳的效果。当然,前提是使用的显卡、声卡的驱动程序必须支持DirectX才行。

  二、组成:

  DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。

  显示部分显示部分担任图形处理的关键,分为DirectDraw(DDraw)和Direct3D(D3D),前者主要负责2D图像加速。它包括很多方面:我们播放mpg、DVD电影、看图、玩小游戏等等都是用的DDraw,你可以把它理解成所有划线的部分都是用的DDraw。后者则主要负责3D效果的显示,比如CS中的场景和人物、FIFA中的人物等等,都是使用了DirectX的Direct3D。

  声音部分声音部分中最主要的API是DirectSound,除了播放声音和处理混音之外,还加强了3d音效,并提供了录音功能。我们前面所举的声卡兼容的例子,就是利用了DirectSound来解决的。

  输入部分输入部分DirectInput可以支持很多的游戏输入设备,它能够让这些设备充分发挥最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。

  网络部分网络部分DirectPlay主要就是为了具有网络功能游戏而开发的,提供了多种连接方式,TCP/IP,IPX,Modem,串口等等,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施。

  三、分类:

  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 回放、视频编辑与混合、硬件加速视频解码以及调谐广播模拟与数字电视信号等功能。

  四、掌握:

  如何来学习它呢?Direct身为一种运算规则,其自身的运行环境必然是有严格规定的,也就是说Direct是独为Windows服务的一种规则。那它的表达环境就是在英文中。而非中。所以要想理解Direct并且灵活运用,而并非仅仅理解这句话的构成,而是要彻底剖析英文的语言规律,也就是Windows的运行原理,Windows自身输入输出的方式。在这个基础上要理解Direct这个规则自然是水到渠成。

  那是不是说就不用去研究Direct了?

  并非如此,但是在了解根本原理的基础上去观察Direct代码上的结构会很轻松。这里要说的就是Direct自身很强大但学习起来并非很难,难在于原理的研究,不仅要看智商,更主要还要有耐心,几千页的原理并不是一年半载能看完的。研究完这些,至于语法上的规则那就不值一提了。

  Direct最好从基础原理开始研究,然而原理却如此之复杂,难道Direct没法去学了?

  这句话也不对。当有一个新事物来到你面前时,你要从两个方面开始研究,一个是表面现象,也就是Direct的语言的规则与使用习惯、方法等。另一方面就是从已知条件中去推导出这个现象。意思是要从原理和代码两方面入手,从代码入手时记住了代码的习惯。紧接着了解这一点原理帮助自己去记忆,也能很快理解是怎么回事。也就是说我们虽然不赞同背代码,但也不能一点不记,我们虽然很赞同从原理入手,但从实际考虑,还是希望各位能量力而行。

  整体来讲学Direct还是要有一定编程基础的,不建议一上来就学Direct,Direct毕竟是一个比较高深的东西。还是建议您对C++、Dos等一些语言比较精通的时候再回头研究Direct。

  当然也不是不可能,例如3Ds Max就是基于Direct的。做个模型、图像、动画还是可以的。当然也要看你从什么角度去学习了。

标签 Directx
分享到:

热门图文

热门搜索

返回顶部