当前位置: 首页 > news >正文

DirectX

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


简介

  DirectX是一种应用程序接口(API ) 是计算机计算图形的一种规则,相当于一个通用编译器,就象街道中的十字路口,可以通往四面八方。同样,它也可以让各种适用于DirectX的游戏或者多媒 体文件在各种型号的硬件上运行或播放。它可以让windows为平台的游戏或多媒体程序获得更高的执行效率,在这个规则中大量包含着现实实例的抽象集合, 意味着它具有强大的灵活性和多态性。然而其抽象主要表现在参数的自定义和运算结构的随意组合,但其运算结构的坚固(独特/固定的运算规则)也使其具有很强 的稳定性。

功用

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

相关文章:

  • maven学习讲解
  • 3D游戏引擎的基本架构
  • 思维的划分
  • APP交互
  • Android-播放视频简单案例
  • 近期的一些安排
  • Largest Rectangle in Histogram题解
  • 百度即将开源JavaScript框架Tangram
  • spring载入外部配置文件的方法
  • 各运行商通讯协议总结
  • Lua顺序 执行顺序
  • 从起步到影响世界:漫谈韩国网游发展史
  • 数据结构之停车场
  • 偏好简单可爱 社交游戏女会员达70%
  • streams 日差管理及监控
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • CEF与代理
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • fetch 从初识到应用
  • JavaScript创建对象的四种方式
  • Meteor的表单提交:Form
  • rc-form之最单纯情况
  • SegmentFault 2015 Top Rank
  • Solarized Scheme
  • SwizzleMethod 黑魔法
  • Vue.js源码(2):初探List Rendering
  • 基于游标的分页接口实现
  • 简单数学运算程序(不定期更新)
  • 聊聊redis的数据结构的应用
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端之Sass/Scss实战笔记
  • 让你的分享飞起来——极光推出社会化分享组件
  • 如何合理的规划jvm性能调优
  • 王永庆:技术创新改变教育未来
  • 微信小程序实战练习(仿五洲到家微信版)
  • 找一份好的前端工作,起点很重要
  • Python 之网络式编程
  • 阿里云ACE认证之理解CDN技术
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • %check_box% in rails :coditions={:has_many , :through}
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (13)Hive调优——动态分区导致的小文件问题
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (ZT)薛涌:谈贫说富
  • (力扣)1314.矩阵区域和
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)Linux+Windows下安装ffmpeg
  • (一)VirtualBox安装增强功能
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Core 版本不支持的问题
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端