DirectX和OpenGL比较?和超图显卡和映众啥关系有什么关系吗

opengl和directx有什么关系_opengl和directx哪个好
  OpenGL
  OpenGL是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是&Open Graphics Library&,顾名思义,OpenGL便是&开放的图形程序接口&。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不 能被取代的主角。
  OpenGL是个与。硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于 OpenGL是3D图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD、3DS等 3D图形设计软件制作的DFX和3DS模型文件转换成OpenGL的顶点数组。
  在OpenGL的基础上还有Open Inventor、Cosmo3D、Opmizer等多种高级图形库,适应不同应用。其中,Open Inventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互 的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。
  OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。1992年7月,SGI公司发布了 OpenGL的1.0版本,随后又与微软公司共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。1995年OpenGL的1.1版本面 市,该版本比1.0的性能有许多提高,并加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶 点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。OpenGL 1.5又新增了&OpenGL Shading Language&,该语言是&OpenGL 2.0&的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。
  OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点 与像素及内存管理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成(如图一)。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此 外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。
  目前,随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,至今虽然已有3Dlabs提倡开发的2.0版本面世,在其中加入了很多类似于DirectX中可编程单元的设计,但厂商的用户的认知程度并不高,未来的OpenGL发展前景迷茫。
  DirectX
  DirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强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来解决的。
  输入部分Direcnput可以支持很多的游戏输入设备,它能够让这些设备充分发挥最佳状态和全部功能。除了键盘和鼠标之外还可以连接手柄、摇杆、模拟器等。
  网络部分DirectPlay主要就是为了具有网络功能游戏而开发的,提供了多种连接方式,TPC/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) 图形加速)、支持输入设备(如游戏杆、键盘和鼠标)并控制着混音及声音输出。
& & & & opengl和directx哪个好
  OpenGL经过多年的洗刷,已经成为绘图引擎的标准,OpenGL的绘图质量毋庸置疑,是最高的,OpenGL的编程相对的也会比较复杂,但是上手很简单,OpenGL用来追求完美的绘图精确度,而且通常有各种辅助库可以用来往其他设备上输出数据,比如打印机。
  DirectX的专为游戏而生,它的绘图精度满足一般游戏的所需,而且DirectX还包含了不少用来在游戏中处理其他数据的辅助库,包括声音数据,输入输出,等等等等。
  所以,想专精追求绘图,OpenGL是首选,如果要编程效率和其他功能的话DirectX是首选。
  首先如果你是想要利用引擎来制作游戏,其实DirectX 和OpenGL和你没什么关系,因为他们都是底层的内容,就如Frank 说的,他们会根据你的平台来选择。
  如果你是想做iOS应用,我推荐你学习OpenGL,
  你想做Windows的应用,我建议你学Directx(好吧这是废话)
  你使用C++11的标准,那么可以尝试学习DirectX 9 或者11,其实他们归根结底就是《计算机图形学》那么,你需要了解的是数学知识(包括但不限于线性代数、离散数学)、设备知识、基本图元、像素格式、采样、渲染流水线等等内容。
  上面两位的说法,你应该是不了解他们的关系,我简单描述一下。
  DirectX是微软的多媒体编程接口,在Windows的平台下,配合支持DX的高端显卡能把游戏场景的特效等等发挥得淋漓尽致,而OpenGL是一个跨平台的编程接口,是硬件无关的编程接口。
  那么通过上面的描述,希望你可以确定你想要开发的平台,选择对应的接口。
  当然如果你不了解他们,我推荐你先学习OpenGL。
  如果你用引擎的话,做好表层的应用,游戏逻辑即可。
关注电子发烧友微信
有趣有料的资讯及技术干货
下载发烧友APP
打造属于您的人脉电子圈
关注发烧友课堂
锁定最新课程活动及技术直播
编码时遇到glutInitDisplayMode(unsigned int mode) ;函数,主要...
 两者的区别就是Computer Vision和Computer Graphics这两个学科之间的区...
目前,国内的三维游戏开发技术正处于赶超国外的关键时期,从创意、策划、研究开发与实现,到游戏的运营与维...
我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这...
Imagination Technologies (IMG.L) 宣布,推出突破性PowerVR ...
研究了OpenGL在工业机器人仿真中的应用及其实现方法,利用OpenGL卓越的渲染功能对场景和机器人...
OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程...
OpenGL是个专业的3D程序接口,是一个功能强大,调
DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API...
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-比较DirectX和OpenGL的区别_百度知道
比较DirectX和OpenGL的区别
我有更好的答案
OpenGL是较老式的一种三维显卡,通常是显卡上面有自己的显频处理器,类似于系统的CPU,专门处理三维的加速用的,而不是用系统的CPU。以前这种显卡较贵,而且是专门给做三维尤其是AutoCAD等软件用的一种显卡。OpenGL有单核也有双核的,显卡的显存也是普通显卡的两倍左右。DirectX里面有所谓的Direct 3D的支持,就是假如显卡里面的芯片(普通的三维显卡的芯片,如nVidia的关于三维的处理模式是预设的,而且是硬件支持,假如三维软件需要的三维指令不再显卡的芯片里面,那么CPU就会自动接过来做运算,而OpenGL的显卡的处理器可以自己做运算,不需要用到系统的CPU)有支持三维的指令,那么微软的DirectX中介就会让显卡做计算,假如显卡没有,那么就会是系统的CPU做计算。现在比较高级的显卡都有很多硬件内崁式的指令在显卡的芯片里面。OpenGL是最好的三维,但是价钱较贵。DirectX里面的Direct 3D是最普遍的,但是因为三维的指令市场的更新,而芯片里面的指令是属于硬件,无法更新,所以要用到新的三维指令就要另买一个新的三维卡。这也就是为什么nVidia的9800要比9300好,好比8500好,因为越高的型号就有越新的三维指令。Google Earth是一款使用三维的模式计算和画出图像的软件,是利用非常微小的三角形和多角形来完成不同层次的图像,就像一个三维游戏一样。假如你的显卡支持OpenGL模式,那么Google Earth的绘画功能要较简单,以为大多数的计算过程你的显卡办得到。假如你的显卡不支持OpenGL模式,而是DirectX模式,那么Google Earth运行就较慢些,因为软件的更新和三维指令不一定是每一个三维显卡都支持的。所以就要变成较简单的模式了。nVidia的GeFore 9300GE应该是以DirectX模式运行的。
采纳率:95%
来自团队:
为您推荐:
其他类似问题
directx的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Windows 支持 DirectX 和 OpenGL,为什么大多数 PC 游戏还是 DirectX 开发? - 知乎818被浏览<strong class="NumberBoard-itemValue" title="4,239分享邀请回答38447 条评论分享收藏感谢收起7712 条评论分享收藏感谢收起lol使用的是OpenGL还是DirectX呀,OpenGL和DirectX哪个更好?【显卡吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:3,137,941贴子:
lol使用的是OpenGL还是DirectX呀,OpenGL和DirectX哪个更好?收藏
百度了一下OpenGL和DirectX从数十年前争论到现在,有结果了吗?
看这个游戏是哪个公司的,如果是id Software/暴雪的就无疑OpenGL,否则大多数DirectX
登录百度帐号查看: 7116|回复: 41
OPENGL比DIRECTX强,为啥没人用?
现在OPENGL游戏没人做了吧
谁敢得罪微软
楼上大实话{lol:]
opengl比dx强么?
92年opengl发布第一版,01年发布2.0版,现在3.0好像还没有影子
97年dx发布3.0(1.0不知道什么时候发布的),现在已经11.0呼之欲出了,你说用哪个?
即使opengl是open的,但是不代表没有利益关系了,内部成员互相倾轧,很难说以后有前途。现在不少游戏都是卖引擎的,没有前途的引擎没有人干啊。
本帖最后由 shermanmxf 于
14:09 编辑
opengl也就id一家在用,当然id用OPENGL已经出神入化了
id目前至少三款游戏在做,Rage, DOOM4, RTCW2。
另外QuakeLive就是Quake3 TA的网页版,不是新东西了。
D3D简单啊,所以多人用,OPENGL要用好是很复杂的,有基础的朋友可以看看Quake3的源码,简直是程序设计的典范
OPENGL还是专业顶域用得比较多,你什么时候听说过有专业3D设计软件用D3D的,都用OPENGL的
顶了,大家好才是真的好。
是不是opgl比较深奥难搞造成的呢?
shermanmxf
虽然不懂编程,但是听到做这行的朋友也是这么说Q3的
顶了,大家好才是真的好。
是不是opgl比较深奥难搞造成的呢?
kunshanziyouren 发表于
OPENGL我接触过一段时间,其实也不是很难,但是写起来很花功夫,不像D3D那么方便。很多游戏厂商都把精力花在游戏内容、美工等方面上,图像技术方面自然是越方便的越好用了。
OpenGL有一个最大特性就是跨平台,像Enemy Territory: Quake Wars就有Windows、Mac、Linux版,Quake3更不用说了,手机都能跑。
数起来,游戏界有自己的图像引擎核心技术的制作室也不多了,而且只有id一家基于OpenGL,像Crytek、Codemasters这些都是用D3D的。
OpenGL和D3D也没有好坏的分别,只要游戏制作方用心做,用哪个API不是最重要的。就像FPS,OpenGL的Quake、DOOM、RTCW、ET系列都是神作,D3D下面COD、Crysis这些一样是神作。
头像被屏蔽
提示: 作者被禁止或删除 内容自动屏蔽
暴雪也用Opengl吧,不然怎么出mac版游戏啊
LS的,D3D只是3D游戏的新标准……3D设计领域是没D3D什么事的……
不过OpenGL在游戏领域发展的确是慢,id也是几年才出一次新引擎,其他厂商等不及,肯定奔D3D的引擎去了。就像COD系列,Infinity Ward在1代和2代还是用的Q3引擎,到4代用的就是高度修改的Q3引擎了,图像部分全是D3D的,只有架构、控制台等方面用了原Q3引擎的。
这个话题有年头了。
opengl根本就没有directx强
3D绘图技术的创始人,opengl最初的开发者,全都在微软公司,全都是数学家级别的人物
我只知道intel的集显OPENGL很烂,D3D更烂...话说这版驱动终于支持OPENGL2.0了
现在opengl还比D3D强???已经差一大截啦
以前ID的quake系列和后来的CS,确实这类游戏D3D比OPENGL差太多。
opengl也就id一家在用,当然id用OPENGL已经出神入化了
id目前至少三款游戏在做,Rage, DOOM4, RTCW2。
另外QuakeLive就是Quake3 TA的网页版,不是新东西了。
D3D简单啊,所以多人用,OPENGL要用好是很复杂的 ...
shermanmxf 发表于
哥们~~过时拉·~~
现在专业软件 也是调用D3D接口的~~
专业卡只是在D3D上优化下而已·~~
当然 你如果觉得 MAYA&&3DMAX不算专业软件的话~~那我没办法·~
学习了!!!
这个貌似我有发言权哈,,用Maya的
OpenGL天生不错,集合百家之长,,,,但是问题也在这里,要听百家的意见,,那个都要照顾。。。所以停滞不前很多年,但是每一次新版本 的出现的飞跃很明显。。。。
D3D就不一样了。专心做好一个事情。。。
ATI的OpenGL性能太差,所以要用D3D
Powered by Discuz! X3.4

我要回帖

更多关于 显卡和显示器的关系 的文章

 

随机推荐