DirectX和OpenGL到底哪个好

VCBB 2000-08-11 11:43:00
我想开发虚拟显示类的程序,不知DirectX和OpenGL哪个更能胜任.
...全文
51322 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
jueshifuqing 2010-06-17
  • 打赏
  • 举报
回复
加油吧,opengl,好听的名字
jfly 2000-11-12
  • 打赏
  • 举报
回复 1
DirectX Vs OpenGL
3D编程的第一个问题就是用何种API:OpenGL还是Direct3D?以下是它们的一些比较:
1 操作系统平台:
如果你的操作系统是Windows,你可以选择。如果是Unix、Linux等,那么就只能用OpenGL。

2 易学易用性:
OpenGL相对来说比DirectX易学,能够很快入门(这是公认的)。即使你将来可能要用到Direct3D,OpenGL仍然不失为一种好的3D编程的入门途径,OpenGL中原汁原味的3D函数简直和大多数计算机图形学教材中的伪代码一模一样。

3 文档支持:
在网上你可以找到很多很好的OpenGL的文档、教程、例程等,特别是“红宝书”(相关链接和文档可以在本站OpenGL栏目找到)。但是,DirectX SDK所提供的文档难嚼多了(公认),在网上你也难以找到好的教程(本站的DirectX栏目所提供的几乎是全部能找到的不重复的中文资料)。另外,书店里有不少OpenGL的中文书,而DirectX只有“希望”出的一种,并且不是讲Direct3D的。

4 关于COM:
DirectX是基于COM的,而OpenGL不是。如果你对COM不是那么感冒的话,最好先选择OpenGL。但是,如果你将一直在Windows平台上做3D编程的话,总应该熟悉Direct3D,因为Microsoft/SGI/HP共同开发中的一种新的3D接口是基于COM的,它将和Direct3D比较接近。

5 移植性:
DirectX与Windows紧密相连,难以移植。而OpenGL是一种非常“干净的”API,无论从VB语言到VC语言、还是从Windows平台到Linux平台(几乎一样的C代码)的移植都非常容易(并且在GLUT里提供了平台无关的窗口管理库)。

6 多媒体性能:
由于DirectX包括了DirectSound、DirectInput等,如果Direct3D和它们一起使用,将比较容易控制声音、操纵杆等,这是DirectX的整体优势。当然,没有人反对你同时使用OpenGL和DirectSound,Quake就是这样做的。

7 速度:
很难说哪个更快,QUAKE用的是OpenGL的引擎,而Unreal用的是Direct3D,它们都非常著名。其实,程序的速度并不在于你选择了OpenGL或DirectX,它还至少和两个因素有关:你写的代码的质量(依赖于你对你使用的接口的熟悉程度),硬件的支持(包括硬件的驱动程序的支持)。

8 强壮性:
这样说吧,OpenGL调用发生了错误,它什么都不做;而DirectX出了错,它什么都做得出……

http://jfly.yeah.net
subzero 2000-10-16
  • 打赏
  • 举报
回复
这有什么可讨论的?跟讨论编程用vc和vb一样可笑!!
完全在你自己,看你自己的需要了
VRswan 2000-10-05
  • 打赏
  • 举报
回复
OpenGL是专业的3D API,DirectX则是个杂交品种,混合了许多东西在里面,我个人认为OpenGL
的地位是不可动摇的,它有很多优势,做游戏并不是OpenGL的目标,这和DirectX完全两回事,拿
OpenGL做游戏有点杀牛刀杀鸡的味道。而且OpenGL独立于平台移植性好,DirectX则不行,如果是做游戏,可以把OpenGL和DirectX结合起来,比如声音之类用DirectX,其实看看现在游戏
的效果也知道OpenGL的效果比DirectX好,不过OpenAL不也快出了么。至于选择那种API看需要了
OpenGL类似于高端专业工具,不是每个人都必须学会,应用面也窄。如果是做游戏,可以用
DirectX,毕竟是配合windows系统。至于OpenGL的效果,要是不会使用OpenGL扩展简直白学OpenGL了,国外网站上OpenGL的效果图多得很,找来看看就知道了。还有,3dsmax的渲染几乎就是直接使用OpenGL做的,不过我选择使用OpenGL驱动,显示速度倒不见得有多大提高。
BTW,我是OpenGL的坚决拥护者,而且正在用它做虚拟现实的东西。
c_z_y 2000-09-21
  • 打赏
  • 举报
回复
我是做图形接口的。使用起来,opengl初始化简单,画面好,dx初始化能要了你的命,但是
初始化好以后,这两者都差不多方便,而且dx7的一些函数用起来更方便!而且dx效率比opengl高
支持最新的技术,而opengl才达到1。2,真正有各项效果的2。0在pc上还没有实现。
dx画面和光照要比opengl差一点!
bete 2000-09-21
  • 打赏
  • 举报
回复
opengl学起来容易,效果也还不错!
dx,就烦了
UltraUnAsm 2000-09-18
  • 打赏
  • 举报
回复
最近intergraph的图形部门被3D labs兼并了。
intergraph这个我最喜欢的PC workstation厂商说不定也会使用NVidia的卡?
UltraUnAsm 2000-09-11
  • 打赏
  • 举报
回复
OPENGL基本上对应Direct X中的Direct 3D 和 Direct Draw。

OPENGL基本上就是一套东西。而Direct 3D(或Direct Draw , Direct Sound...)实际上可以看成很多套不同的东西。这点了解COM的人容易理解,不了解COM的人原谅我没法用几句话讲清楚------简单的讲,基本上不同版本的Direct 3D会引入不同的Interface,这个不同通常很大。而OPENGL不但版本少,而且它的发展是通常API方式的。

从易于使用最新技术及实际发展速度上讲,Direct X占优势。最近看了Direct X 8的一些介绍,感觉一直盼望的东西来了。

从使用上讲,特别是对初学者,OPENGL较简单。Direct X本身较复杂而且在实现上有一些要注意的小问题(至少到Direct X6, 7我没多少经验),看一下我的code name,你的Trace技术不佳的话这些小问题会浪费你大量的时间。

从长远讲,Direct X更有前途。

从高端硬件上讲,OPENGL长期处于统治地位,不过由于消费类市场厂商的崛起,传统的专业3D图形制造商的高额利润已受到严重威胁。3D labs这样的根本不用说,Intergraph这种真正有实力的厂商要象过去那样定价也难了。
high_ff 2000-09-08
  • 打赏
  • 举报
回复
openGL有quake III和tnt2 pro,足以说明一切!!!!!!!
hboy 2000-08-30
  • 打赏
  • 举报
回复
两个都应该学一学,因为微软和SGI公司正研究怎样把DirectX和OpenGL进行结合,取各自优点,并且SDK也快出来了
westman 2000-08-29
  • 打赏
  • 举报
回复
什么也不用,自己写一个吧,大家快瞧我在DOS下仿照DIRECTX写的SDK:http://newbird.126.com
sythree 2000-08-29
  • 打赏
  • 举报
回复
OPENGL是与操作系统无关,但它转换的那一套太烦琐;DX则受到了微软的牢牢控制。不过作为一个小程序员来说:OPENGL的图形功能没得说,功能很强大,但涉及到声音(如音频流)和某些动画,它又力不从心,比不上DX。但我建议学习OPENGL,因为支持它的厂家多一些,至于它的不足,可以想法弥补(如控件的方法)。
Kevin_qing 2000-08-26
  • 打赏
  • 举报
回复
应该说,做游戏dx更好,但是ogl是工业标准,得到更广泛的支持,具体用什么,up to ur requirements
halflife 2000-08-26
  • 打赏
  • 举报
回复
这里怎么这么多外行???我受不了不懂装懂的人,我来告诉你们,3DS,MAYA,AutoCAD等等都是用OpenGL开发的,所有的娱乐或专业显卡都支持OpenGL,如果不支持,意味着被淘汰。我的职业就是虚拟现实和游戏编程,学OpenGL绝对没错,简洁而功能强大,比DrectX好多了,而且支持所有的操作系统,Need any more explaination????
yoursoft 2000-08-26
  • 打赏
  • 举报
回复
halflife,我在安装好AutoCad,3DS,PhotoShape后,去掉OpenGL所有资源,它们仍可以正常运行,这是为什么?或许我对AutoCad,3DS,PhotoShape内部不熟,也许它们已经内置或采用OpenGL的技术,那么,你是对的.
OpenGL是图形图像处理的专业技术工具标准,而DirectX是由于Windows本身技术欠缺引发的.
sanhan 2000-08-23
  • 打赏
  • 举报
回复
高端标准肯定是OpenGL。
Windows平台上做游戏用Direct3D稍微快一点。
tbmac 2000-08-18
  • 打赏
  • 举报
回复
真正支持OGL的显卡很少?你骗谁啊?!哪个显卡厂家不把支持OGL作为自己的目标!搞笑。
去访问opengl.org,不知道不要瞎说。
Tu_Lang 2000-08-18
  • 打赏
  • 举报
回复
OpenGL是很好,可真正支持它的卡很少。
没法子,微软太厉害了。
wolfop 2000-08-17
  • 打赏
  • 举报
回复
是Photoshop che CorleDraw, 这些2D的东西又不是游戏用DirectX或者OpenGL干什么?
高质量的东西用自己的标准, 你骗谁啊?! 那个成功软件是, 泥以为Maya, SoftImage3D
3DSMax没有用OpenGL, 搞笑。
CAD, 那个CAD,Pro/E没有用OpenGL?!不知道不要瞎说。
alexela 2000-08-13
  • 打赏
  • 举报
回复
用OPENGL吧。我用过,确实觉得他很好。我曾试过用OPENGL仿制3DMAX。只可惜势单力薄,只完成了部分功能。因没时间,现在只好停住。根据我亲身的体会,我认为,OPENGL要比DIRECTX更专业化,能够使你在编程的同时学到很多计算机图形学、三维动画方面的理念。
祝你好运。
程序开发出来了,能不能告诉我一声。THANK YOU
加载更多回复(3)
课程解决的问题: 作为游戏行业或者图形学从业者,你是否面临以下问题: 到底openGL底层如何实现的? 到底矩阵操作变换是怎么做到的? 到底光栅化的算法以及原理是什么? 到底如何才能从3D世界投射到2D屏幕呢? 图形学有这么多的矩阵操作,到底如何推导如何应用呢? 学完这门课程,你应该就可以从底层了解一个初级的openGL图形接口如何实现,图形学最底层的封装到底面临哪些挑战;跟随我们一行一行写完代码,你就会得到一个迷你版本的openGL图形库,你可以深度体会图形从模型变换,观察矩阵变换,投影矩阵变换一直到光栅化纹理操作的全套模拟流程。 课程介绍: 本课程将带领学员不使用任何图形库,实现从0到1的图形学接口封装以及算法讲解,并且带领大家手敲代码,一行一行进行实现。 涵盖了(环境搭建,绘制点,Bresenham算法绘制完美直线,三角形拆分绘制算法,颜色插值算法,图片操作,图片二次插值放缩算法,纹理系统接口搭建及封装,矩阵操作理论以及实践,openGL类似接口封装,3D世界的图形学理论及接口封装等) 最终将带领大家通过C++实现一个3D世界的图形接口,方便所有人入门图形学,进行接下来的openGL接口以及GPU编程的学习   本课程为系列课程的第一步入门,且带领所有人进行实现,更加实用,可以让大家打牢图形学的基础知识及编程技能

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧