我已经有一段时间想在OpenGL,c++上做一个游戏了,我很想知道它到底是怎么工作的,它是什么。
没有OpenGL,计算机图形能生成吗?我在网上看到的大多数教程都展示了如何使用OpenGL绘制最基本的图形,是否可以直接与您的GPU进行接口?
OpenGL是如何在不同的CPU和操作系统上工作的?据我所知,如果像c++这样的语言想要在ARM处理器上使用,就必须重新编译它们,这不是一般GPU的情况吗?
如果你真的可以在没有OpenGL的情况下制作图形,还会有人这样做吗?一般来说,OpenGL节省了多少工作和精力,以及OpenGL为我们提供便利的系统有多复杂?
是否还有其他库(如OpenGL )是常用的?如果没有,新的图书馆最终会来取代它的位置吗?或者它是完美的工作而不去任何地方?
发布于 2019-04-30 11:35:11
它到底是怎么工作的以及它是什么?
OpenGL定义了一个您作为程序员可以用来开发图形程序(API)的接口。该接口以包含到项目中的头文件的形式提供给您。它是多平台的,这样您就可以在不同的操作系统上编译使用OpenGL的代码。管理OpenGL规范的人员不提供指定功能的实现。这是由操作系统和硬件供应商完成的。
没有OpenGL,计算机图形能生成吗?
是啊,当然。例如,您可以在程序中手动计算整个映像,然后调用一些特定于操作系统的函数将该图像放到屏幕上(就像Windows中的BitBlt )。
OpenGL是如何在不同的CPU和操作系统上工作的?
每个操作系统都有自己的OpenGL规范实现,通常调用硬件驱动程序。假设您有带有Windows操作系统和Nvidia显卡的机器。如果您运行一个调用glDrawElements的程序,它将如下所示:
your_program calls glDrawElements
which calls glDrawElements implementation written by people from Microsoft
which calls Nvidia drivers written by people from Nvidia
which operates the HW如果你真的可以在没有OpenGL的情况下制作图形,还会有人这样做吗?
当然可以。有些人可能想从底层实现他们自己的渲染引擎(尽管这是真正的核心工作)。
是否还有其他库(如OpenGL )是常用的?如果没有,新的图书馆最终会来取代它的位置吗?或者它是完美的工作而不去任何地方?
好的。微软维护的DirectX只针对Windows平台和Vulkan,后者可以被视为OpenGL的继承者。
https://stackoverflow.com/questions/55918685
复制相似问题