首页 > 编程知识 正文

opengl 形,opengl和gpu的关系

时间:2023-05-04 01:36:08 阅读:198256 作者:123

引言

接触计算机图形学,一定听说过两大编程接口:OpenGL和DirectX,两者之间不断竞争,也不断促进着各自的发展。API大战真的很有意思,一起来看看这两lybb究竟是什么,实力如何?

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的工作

两者都是图像应用编程接口,这些接口用于渲染二维或者三维图形。可以说这些接口架起了上层应用程序和底层GPU的桥梁。一个应用程序向这些接口发送渲染命令,而这些接口会依次向显卡驱动发送渲染命令,这些显卡驱动是真正知道如何和GPU通信的角色,正是它们把OpenGL或者Directx的函数调用翻译成了GPU能够听懂的语言,同时它们也负责把纹理等数据转换成GPU所支持的格式。

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平台上的游戏开发中,它占领了大部分的市场。

参考

https://blog.csdn.net/yupu56/article/details/81355090
《Unity Shader 入门精要》

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