讲解

▷Opengl:它有什么用?

目录:

Anonim

您听说过OpenGL吗? 它基本上是唯一可在多个平台上使用的API ,因此迅速成为业界领先的实时图形API 。 今天,我们为您带来这篇文章,其中我们解释了OpenGL的含义及其用途。

内容索引

历史沿革

80年代, 开发各种图形世界相关的硬件 兼容的 软件 对于开发人员来说是一个真正的挑战 。 您必须处理非常不同的接口为每种类型的硬件编写特定的驱动程序 ,因为它们非常昂贵,因此,外包了程序员团队以加快开发速度。 由于每个团队都在各自的界面上单独工作,因此产生了很多冗余代码。 在1992年, SGI领导了OpenGL体系结构审查委员会OpenGL ARB )的创建,这是一组将在随后的几年中维护和扩展该规范的公司。 OpenGL是从IRIS GL演变而来的,它通过为那些不受支持的功能提供软件仿真来解决其硬件依赖性问题。 因此,应用程序可以在相对较弱的系统上使用高级图形。

要了解什么是OpenGL, 我们首先必须知道什么是API。

了解OpenGL,什么是API?

API或应用程序编程接口是一组代码 ,可用于各种应用程序相互通信 。 它仅在软件环境中唯一且仅在应用程序中执行与用户界面类似的任务,以促进人与程序之间的交互 。 它用于连接不同平台之间的代码或功能,以便您可以利用一个网站在另一个平台上的服务

什么是OpenGL?

它主要被认为是一种API ,它为我们提供了很多功能 ,可用于操纵3D和2D图形和图像 。 但是,它本身不仅仅是一个API,而是由Khronos Group开发和维护的规范 。 它还用于视频游戏开发 ,在Microsoft平台上可与Direct3D竞争。

确切指定每个函数输出是什么以及如何工作。 由于OpenGL规范未提供实现细节,因此实际开发的版本可能具有不同的实现,只要它们的结果符合规范即可(因此对用户而言是相同的)。

OpenGL库的开发人员通常是图形卡制造商 。 每个GPU支持此API的特定版本 ,这些版本是专门为该图形卡开发的OpenGL版本。 例如,当使用Apple之类的公司的系统时,他们维护OpenGL库,而在Linux下,图形提供程序版本和这些库的改编版本组合在一起。 这可能意味着,每当OpenGL显示不应该出现的奇怪行为时 ,很可能是显卡制造商的错。 只要在实现中出现错误,通常可以通过更新显卡驱动程序来解决。 这些驱动程序包括您的GPU支持的最新版本。 因此,始终建议更新驱动程序。

OpenGL目标

主要目标是:

  • 降低不同图形卡的接口复杂性 ,为程序员提供独特而统一的API。 隐藏各种硬件平台的不同功能 ,要求所有实现都支持全套OpenGL功能(必要时使用软件仿真)。

OpenGL的基本操作是接受点,线多边形原始动作 ,并将其转换为像素。 此过程由称为OpenGL状态机的图形管线执行。 大多数OpenGL命令发出基本操作进行图形分割 。 在2.0版发布之前,分段的每个阶段都是在已建立的函数中执行的,因此几乎没有可配置性。 从该版本开始,可以使用GLSL完全编程几个阶段。

扩展名

一个非常有趣的伟大功能是它的扩展支持。 每当一家GPU公司引入一种新技术或一种新的优化方法来渲染3D图像时它都是在驱动程序中实现扩展 。 如果运行应用程序的硬件支持此扩展,则开发人员可以使用扩展提供的功能来获取更高级或更有效的图形 。 这样,视频游戏开发人员可以使用这些新的渲染技术,而不必等待OpenGL在将来的版本中包含该功能,只需检查图形卡是否支持该扩展即可。 通常,当扩展流行或非常有用时,它最终会成为OpenGL未来版本的一部分。

我们建议您Mad Max在Linux的新公开Beta中发布了对Vulkan的支持

OpenGL演变

2015年3 Vulkan API在游戏开发者大会上作为OpenGL后继产品推出。 最初被称为“下一代OpenGL”或“ glNext”,编程接口是开源和跨平台的。 与OpenGL的不同之处在于,在编程过程中更多地关注硬件,这大大提高了 功耗 。 一些PC游戏已经支持Vulkan,但大多数使用DirectX。 Vulkan也由Khronos Group开发。

我们建议阅读市场上最好的显卡。

到目前为止,我们在OpenGL上的文章,希望您已经了解了它的组成以及更多内容。 无论如何,您可以在评论中留下任何问题。

讲解

编辑的选择

Back to top button