DirectX、Direct3D和OpenGL的区别

原创 2012年03月22日 17:11:14

DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。

 

 

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,串口等等,让玩家可以用各种连网方式来进行对战,此外也提供网络对话功能及保密措施。

 

OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。

 

Open GL仍然是唯一能够取代微软对3D图形技术的完全控制的API。它仍然具有一定的生命力,但是Silicon Graphics已经不再以任何让微软不悦的方式推广Open GL,因而它存在较高的风险。游戏开发人员是一个有着独立思想的群体,很多重要的开发人员目前仍然在使用Open GL。因此,硬件开发商正在设法加强对它的支持。Direct3D目前还不能支持高端的图形设备和专业应用; Open GL在这些领域占据着统治地位。最后,开放源码社区(尤其是Mesa项目)一直致力于为任何类型的计算机(无论它们是否使用微软的操作系统)提供Open GL支持。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 文章链接: http://blog.csdn.net/zhmxy555/article/details/8223965 ...

DirectX 9.0c游戏开发手记之“龙书”第二版学习笔记之2: Chap4: Direct3D Initialization

从这一期开始,我们正式来研究“龙书”第二版的课后习题啦!这一次讲的是第4章的习题。可能有人会奇怪:为何从第4章开始呢?手头有书的同学大概没有这样的疑问,因为前面3章是讲述3D图形的数学知识的,基本上就...

DirectX9.0学习(二):Direct3D基础

一.初始化3D 1.应用程序,Direct3D以及硬件之间关系(HAL,硬件抽象层): 2.Direct3D是一套定义好的提供给用户和应用程序的函数与接口,虽然有些功能在当前的Direct...

#Directx12基本的Graphics概念和Direct3D类型(二)

多重采样(Multisampling) 由于我们的屏幕的像素点不是足够的小,因此在绘制一条直线时候可能出现阶梯形近似的表达一条直线。如下 通过不断的提高屏幕的分辨率可以逐步的消除这种影响。然而当提高分...

DirectX 9 UI设计学习笔记之三:第4章Introducing DirectInput+第5章Wrapping Direct3D

此文由哈利_蜘蛛侠原创,转载请注明出处!有问题欢迎联系本人!        邮箱:2024958085@qq.com          上一期的地址: DX 9 UI设计学习笔记之二  ...

DirectX 11 编程指南 - Direct3D Device 简介

DirectX 11 编程指南 - Direct3D Device 简介   在D3D API 中, Device(设备)是一个核心的概念,Device是对一个图形硬件的抽象,它负责创建和...

DirectX学习笔记(二):Direct3D初始化详解

前言: Direct3D是一套底层的API,即:应用程序接口。Direct3D主要用来开启硬件加速功能来绘制3D场景,它可以看做是应用程序和图形设备(3D硬件)交互的中介: Application...

DirectX9 初始化Direct3D通用框架

初始化Direct3D通用框架 The declaration of IDirect3DDevice9::Clearis: HRESULTIDirect3DDevice9::Clear( DWORD...

【Visual C++】游戏开发笔记三十四 浅墨DirectX提高班之三 起承转合的艺术:Direct3D渲染五步曲

这篇文章里,我们将迈出精通Direct3D的坚实步伐,先透彻理解Direct3D中动画显示方面的交换链技术的原理,然后看看GDI与Direct3D编程习惯的一些思想上的关联,接着简单学习Direct3...

Tutorial 1: Direct3D 10 Basics(Directx手册)

Summary(总结) In this first tutorial, we will go through the elements necessary to create a minimal D...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DirectX、Direct3D和OpenGL的区别
举报原因:
原因补充:

(最多只允许输入30个字)