首页 > 编程知识 正文

OpenGL和directx,directx和opengl区别

时间:2023-05-06 19:53:14 阅读:198254 作者:1786

前言 学习3d游戏开发,避免不了和图形学打交道,在电脑上安装一些大型游戏时,也经常会报缺少一些东西,而导致游戏无法运行,其中出现的单词就有DirectX,但他是什么呢?OpenGL又是什么呢?
unity3d游戏开发中逼真的游戏场景和特效又是和谁打交道呢?让我们开始了解OpenGL和DirectX吧!
OpenGL是什么 OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图象(二维的亦可),是一个功能强大,调用方便的底层图形库。

OpenGL是个与硬件无关的软件接口,可以在不同的平台如Windows 95、Windows NT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是,通过一些转换程序,可以很方便地将AutoCAD[2] 、3DS/3DSMAX[3] 等3D图形设计软件制作的DXF和3DS模型文件转换成OpenGL的顶点数组。

市场调研机构Jon Peddie Research预测,OpenGL 3.1规范图形硬件的安装规模将超过1亿。AMD、NVIDIA、S3 Graphics的显卡驱动目前都已经支持OpenGL 3.0。

OpenGL-ES是什么 OpenGL ES (OpenGL for Embedded Systems) 是 OpenGL 三维图形 API 的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。
OpenGL- ES 是免授权费的,跨平台的,功能完善的2D和3D图形应用程序接口API,主要针对多种嵌入式系统专门设计 - 包括控制台、移动电话、手持设备、家电设备和汽车。它由精心定义的桌面OpenGL子集组成,创造了软件与图形加速间灵活强大的底层交互接口,就是目前手机游戏主要使用的图形底层支持。
DirectX是什么 1995年至1996年,微软实行了一项新计划,以支持在Windows95上运行游戏,目标是把市场扩展到被任天堂和世嘉控制的游戏领域。然而,微软不想用已经在NT上提供的OpenGL技术。微软收购了Rendermorphics,Ltd.并得到他的被称作RealityLab的3D API。经重新整理,微软发布了新的3D API——Direct3D。
微软,推行Direct3D,冻结OpenGL!进行API之战。(微软就是这么吊~)这就是DirectX由来历史!
DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现,遵循COM。被广泛使用于Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360和Microsoft XBOX ONE电子游戏开发,并且只能支持这些平台。
DirectX加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低了用户安装及设置硬件的复杂度。从字面意义上说,Direct就是直接的意思,而后边的X则代表了很多的意思,从这一点上可以看出DirectX的出现就是为了为众多软件提供直接服务的。
DirectX并不是一个单纯的图形API,它是由微软公司开发的用途广泛的API,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。已然成为了一个应用平台,目前游戏开发,DirectX所占市场要大一些。
OpenGL和DirectX的区别 1在技术方面,OpenGL具有较强的可移植性,而DirectX只能用于windows操作系统,它是基于windows操作系统平台的应用程序接口。OpenGL只是图形函数库,是专业的3D程序接口,OpenGL被设计为只有输出,因此只提供渲染功能。核心API没有窗口系统,音频,打印等其他输入设备的概念。也正是因为这样的设计,允许它渲染的代码完全独立于运行的操作系统,允许跨平台开发。
DirectX是微软公司开发的用途广泛的API,它提供了一整套多媒体接口方案,尤其在3D图形方面的表现突出。
在硬件通信方面,DirectX是程序能够轻松确定计算机的硬件性能,然后设置与之匹配的程序参数。该程序使得多媒体软件程序能够在基于windows的具有DirectX兼容硬件与驱动程序的计算机上运行,同时确保多媒体程序能够充分急用高性能硬件。
OpenGL是一个与硬件无关的软件接口,可在任何平台上运行,与DirectX能设置与硬件匹配的程序参数相比,要逊色一些。目前,硬件开发商正在加强对它的支持。
2在应用方面,在专业高端绘图领域,OpenGL仍然是不能被取代的主角,在包含CAD,内容创作,能源,娱乐,游戏开发,及虚拟现实等行业领域中,OpenGL得到广泛的应用。DirectX适合于多媒体,娱乐,及时3D动画等广泛和实用的3D图形计算,在基于windows平台上的游戏开发中,它占领了大部分的市场。
Unity Shader编程是什么 回到unity引擎上,着色器(shader)编程是什么呢?我们看到个人电脑上图形处理器的性能日益增强。而且它使得游戏执行速度运行得更加的快,但其并不能证明图形处理器就拥有高质量的图像表现力。这就是迄今PC图形处理器发展的主要局限性 — 固定函数。固定函数意味着芯片设计者需要把特定图形算法的硬件代码加入到图形芯片中,并且它也限制了游戏与应用程序开发者只能在这些特定的固定算法里徘徊。
3D应用编程接口(OpenGL及DirectX)一直沿着图形硬件在不断地发展进步。DirectX Graphics中最重要的一个特征就是增加了可编程管道,提供汇编语言接口处理变形与光照的硬件(顶点着色)及象素管道(象素着色)。可编程管道为开发者们提供了极大的自主权,以用其去实现以前从未见过的实时应用程序。
直白一点的讲,着色器是一段运行在GPU上的程序,可以取代渲染的固定功能流水线中部分功能。我们利用可编程管道渲染,达到比用固定管道渲染更丰富的画面显示效果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。