c++ - 如何让我用 C++ 编写的图形程序使用 GPU 而不是 CPU 进行渲染?

标签 c++ opengl gpu glut

我目前正在用 C++ 编写一个简单的图形应用程序,它只显示一个房间和房间中的对象。我想使用计算机的 GPU 进行此渲染,但如何在具有广泛兼容性(指 Nvidia、Intel 和 ATI、旧卡和新卡)的情况下进行此渲染。我的计算机使用 AMD/ATI 芯片组(而不是主板上的集成显卡,我在处理器芯片中集成了一个 GPU,称为 APU 而不是 CPU,以及专用显卡,也称为 ATI)。但是,运行该程序的计算机很可能具有 Intel 或 Nvidia 的集成显卡,或者具有 Nvidia 卡,因此我希望它能够使用任何显卡,但不能使用 CPU。我正在为这个应用程序使用 glut 库

更新:真正的问题是教授似乎认为程序需要额外的代码才能使用显卡而不是处理器来渲染图形。据我现在的了解,无论如何,所有显卡都支持opengl。

最佳答案

通过使用将绘图调用定向到 GPU 驱动程序的抽象 API。 OpenGL 和 Direct3D 就是这样的 API。 OpenGL 和 DirectX 都不是库。是的,你链接到一些名为 libGL.soopengl32.dlld3dxxx.dll 的库,但这些只是与 GPU 的驱动程序对话,它将然后将 GPU 指向通过 API 请求的任何内容。

或者换句话说:如果您的程序正在使用 OpenGL 或 DirectX 并链接到系统上的标准接口(interface)库(这是默认情况下发生的情况),那么它可以与任何 GPU 一起工作,只要它的驱动程序支持相关 API。

关于c++ - 如何让我用 C++ 编写的图形程序使用 GPU 而不是 CPU 进行渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28654293/

相关文章:

C++ 需要解释这个函数

c++ - 在 C++ 程序中嵌入 ruby​​ 源时出错

c++ - SDL 1.3 : How to render video with out displaying it?

opengl - C++ OpenGL,使用不止一种统一

opengl - 延迟渲染 vs 前向渲染 + early-z

CUDA 多 GPU 执行中的并发

java - 如何在 GPU 上而不是 CPU 上渲染? -Java-

c++ - 新的 std::map 条目如何仅通过键插入来初始化?

c++ - C/C++ 中的跨平台字符串日期到 unix 时间

macos - 如何在 Cocoa 中禁止 Macbook Pro 切换到高性能显卡?