opengl代码是在GPU上运行的吗?

发布于 2024-12-23 09:35:04 字数 125 浏览 0 评论 0原文

当有一个程序时,它由普通的c++代码和opengl代码组成。 因此,c++和opengl都被编译并链接到ELF。 而且,看起来它们都在 CPU 上运行。

为什么 opengl 代码比 c++ 代码在屏幕上绘图的能力更强?

When there is a program,which consists of normal c++ code and opengl code.
So,both c++ and opengl are compiled and linked to ELF.
And,seemingly they both run on CPU.

Why opengl code has more power to paint on screen than c++ code ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绾颜 2024-12-30 09:35:04

为什么 opengl 代码比 c++ 代码在屏幕上绘图的能力更强?

因为 OpenGL 只是将绘图命令发送到 GPU,然后由 GPU 执行大量工作。请注意,还有一些 OpenGL 实现不是 GPU 加速的,因此并不比在 CPU 上运行的其他软件光栅器更快。

Why opengl code has more power to paint on screen than c++ code?

Because OpenGL merely sends drawing commands to the GPU, which is then doing the bulk work. Note that there are also OpenGL implementations that are not GPU accelerated and therefore not faster than other software rasterizers running on the CPU.

起风了 2024-12-30 09:35:04

除非您谈论的是 GLSL,否则“C++ 代码”和“OpenGL 代码”之间没有区别。全部都是 C 或 C++,具体取决于您要构建的内容。 OpenGL 是一个 API,一个包含执行某些操作的函数的库。

您的代码调用 OpenGL 函数,这些函数在功能上与您可能调用的任何其他 C++ 函数没有什么不同。 C++ 中的函数根据其实现方式来执行某些操作。

OpenGL 函数使用 GPU 特定的结构告诉 GPU 做什么。这就是 OpenGL 的用途:抽象出硬件的细节,以便您可以编写不依赖于硬件的代码。调用 OpenGL 函数的代码应该适用于支持最低 GL 版本(以及扩展,如果您正在使用这些版本)的任何 OpenGL 实现。

类似地,std::fstream 抽象化了 Windows 和 Linux 文件访问命令之间的差异。为用户提供相同的 API,但在不同的操作系统上有不同的实现。

Unless you're talking about GLSL, there is no distinction between "C++ code" and "OpenGL code". It's all just C or C++, depending on what you're building. OpenGL is an API, a library that contains functions that do stuff.

Your code calls OpenGL functions, which are functionally no different from any other C++ function you might call. Functions in C++ do something, based on how they're implemented.

OpenGL functions tell the GPU what to do, using GPU-specific constructs. That's what OpenGL is for: to abstract away the specifics of hardware, so that you can write code that is not hardware-dependent. Your code that calls OpenGL functions should work on any OpenGL implementation that supports your minimum GL version (and extensions, if you're using those).

Similarly, std::fstream abstracts away differences between, say, Windows and Linux file access commands. Same API for the user, but it has different implementations on different OS's.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文