opengl和d3d选哪个更好?

大神们有没有人讲详细点的,我想问一下,opengl和d3d选哪个更好?
最新回答
只影

2024-04-24 09:07:36

各有各的优势,做游戏现在D3D的较多,其他图形工业图形处理,虚拟现实用openGL的多点,还有用OSG的
OpenGL的发展历程:
OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,功能虽强大但其移植性不好,于是SGI公司在IRIS GL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,顾名思义,OpenGL是“开放性图形程序接口”。
1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与
微软公司
共同开发了Windows NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用。
1995年OpenGL的1.1版本面市,该版本较1.0性能提高许多,并加入了一些新的功能。包括提高顶点位置、
法线
、颜色、色彩指数、纹理坐标、
多边形
边缘标识的传输速度,引入了新的纹理特性等等。
1997年,Windows 95下3D游戏的大量涌现,游戏开发公司迫切需要一个功能强大、兼容性好的3D图形接口,而当时微软公司自己的3D图形接口DirectX 3.0功能却是很糟糕。因而以制作
《雷神之锤》
等经典3D射击游戏而著名的id公司同其它一些游戏开发公司一同强烈要求微软在Windows 95中加入对OpenGL的支持。微软公司最终在Windows 95的OSR2版和后来的Windows 版本中加入了对OpenGL的支持。这样,不但许多支持OpenGL的电脑3D游戏得到广泛应用,而且许多在3D图形设计软件也可以运用支持OpenGL标准的3D加速卡,大大提高其3D图形的处理速度。
2003年的7月28日,SGI和ARB公布了OpenGL 1.5。OpenGL 1.5中包括OpenGL ARB的正式扩展规格绘制语言“OpenGL Shading Language”。OpenGL 1.5的新功包括:顶点Buffer Object、Shadow功能、隐蔽查询、非
乘方
纹理等。
2004年8月,OpenGL2.0版本发布~OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。opengl2.0支持OpenGL Shading Language、新的shader扩展特性以及其他多项增强特性。
OpenGL是做什么用的:
上世纪90年代,OpenGL可谓大名鼎鼎,那时微软的DirectX刚刚出现,功能远不能与OpenGL相比,OpenGL实际上是一种3D程序接口(即我们常说的3D API),这个接口由近二百五十个不同的函数调用组成,用来从简单的图元绘制复杂的三维景象。它是3D加速卡硬件和3D图形
应用程序
之间一座非常重要的沟通桥梁。也可以说,OpenGL是一个功能强大,调用方便的底层3D图形库。
OpenGL是个与.硬件无关的软件接口,可以在不同的平台如Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。
OpenGL特点及功能:
  OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现
机械手
的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:
1.建模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、
多面体
、茶壶等)以及复杂曲线和曲面绘制函数。
2.变换:OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、变比镜像四种变换,投影变换有平行投影(又称正射投影)和透视投 影两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。
3.颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。
4.光照和材质设置:OpenGL光有辐射光(Emitted Light)、环境光(Ambient Light)、
漫反射
光(Diffuse Light)和镜面光(Specular Light)。材质是用光
反射率
来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。
5:纹理映射(Texture Mapping)。利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。
6:位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。
7:双缓存动画(Double Buffering)双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。
此外,利用OpenGL还能实现深度暗示(Depth Cue)、运动模糊(Motion Blur)等特殊效果。从而实现了消隐算法。
OpenGL现状:
近年来,依靠着微软的研发实力和Windows在操作系统市场的统治地位,DirectX在3D游戏API上占据了绝对的优势。而曾经红极一时的OpenGL则显得停滞不前。目前我们熟悉的OpenGL游戏可能只剩下了id出品的《Quake》和《Doom》系列可以勉强支撑。OpenGL的未来究竟如何?OpenGL仍然是唯一能够取代微软对3D图形技术的完全控制的API,目前,OpenGL也仍是唯一的跨平台3D解决方案,它仍然具有一定的生命力,游戏开发人员是一个有着独立思想的群体,很多重要的开发人员目前仍然在使用Open GL。因此,硬件开发商正在设法加强对它的支持。
目前,随着DirectX的不断发展和完善,OpenGL的优势逐渐丧失,未来的OpenGL发展前景迷茫。OpenGL与DirectX代表着绘图世界分裂的两大门派,这种情况有时会阻碍发展,有时却又有利于与发展。毕竟有竞争才会有发展。如同处理器市场我们不希望AMD倒掉,也不希望INTEL一家独大一样~我们都不希望在3D领域中仅仅剩下一个霸主。希望OpenGL一路走好。。。。。。
另:2007年8月8日,
圣迭戈
Siggraph BOF展会上 OpenGL Architecture Review Board(OpenGL架构评估委员会)正式宣布了OpenGL 3。以前被称之为OpenGL Longs Peak,OpenGL 3则是官方名称。OpenGL 3规范将在下一次8月底召开的OpenGL ARB会议上最后定案,由Khronos Group进行为期30天的评估后在9月底正式公开。最新的OpenGL Shading Language也伴随OpenGL 3公开展示。

d3d
要讲Direct3D不能不讲DirectX, DirectX是微软开发并发布的多媒体开发软件包,其中有一部分叫做DirectDraw是图形绘演API,提供对图形的强大的访问处理能力,而在DirectDraw中集成了一些三维图形相关的功能,叫做Direct3D。
D3D和OPENGL本质虽然一样,Direct3D (D3D)是微软为提高3D 游戏在Win 95/98中的显示性能而开发的显示程序,目前已经升级到9.0版本,而且支持XP等微软最新的操作系统,它提供了丰富的3D功能库,是游戏广泛采用的标准。
Direct 3D是基于微软的通用对象模式COM(Common Object Mode)的3D图形API。它是由微软(Microsoft)一手树立的3D API规范,微软公司拥有该库版权,它所有的语法定义包含在微软提供的程序开发组件的帮助文件、
源代码
中。Direct3D是微软公司DirectX SDK集成开发包中的重要部分,适合多媒体、娱乐、即时
3D动画
等广泛和实用的3D图形计算。自1996年发布以来,Direct3D以其良好的硬件兼容性和友好的编程方式很快得到了广泛的认可,现在几乎所有的具有3D图形加速的主流
显示卡
都对Direct3D提供良好的支持。但它也有缺陷,由于是以
COM接口
形式提供的,所以较为复杂,稳定性差,所以D3D是一个十分繁琐的工具,尽管Microsoft已经尽可能地简化了,但是为了实现一个效果,你还是不得不做许多的工作,其中就包括对各种复杂的结构的赋值;这些赋值很重要,它直接关系到程序的最终效果。另外,目前只在Windows平台上可用。
张秋沁

2024-04-24 17:47:52

建议队长永d3d的,虽然这个模式在玩生化当过僵尸后会有一块块的亮光,但能看清远处而op的虽然没有了白光但看不清远处,不利于“鞭尸”
浪居酒家

2024-04-24 02:22:50

以目前游戏的标准来看,D3D比OpenGL流行得多。
苑苎卉林傲

2024-04-24 14:18:55

windows下还是选择D3D的