GL_RENDERER: 如何更改我的应用程序使用的渲染器?

GL_RENDERER: How do I change the renderer that my application uses?

我看过我的 i5 笔记本的规格,发现它有两个视频适配器:

在我使用 python SDL2 python 和 pyOpenGL 制作的应用程序中,我放置了这行代码来了解它使用的是哪个渲染器:

print('Renderer:', GL.glGetString(GL.GL_RENDERER).decode("utf-8"))

这是打印出来的:

Renderer: Intel(R) HD Graphics 4000

我不太明白这个独立显卡还是集成显卡的问题。所以...

使用其他渲染器怎么办?

这取决于操作系统。

在同时配备 Intel 集成 GPU 和单独 AMD/NVIDIA GPU 芯片的笔记本电脑上,由操作系统决定使用哪一个。如果您有 NVIDIA 芯片,则为 "Optimus",对于 AMD,为 "Dynamic Switchable Graphics"。默认情况下,笔记本电脑 OS 将尝试使用 Intel GPU,因为它的功耗较低。

有时,如果 OS 检测到您的程序正在执行大量 3D 操作,它会切换到外部 GPU。在 MS Windows 上,应该有一个控制面板选项可以始终使用外部 GPU(如果您需要的话)。在使用 NVIDIA 的 Linux 和特殊的 "Bumblebee" 软件包(无论如何 Ubuntu )上,当您从命令行 运行 带有 [=28= 的程序时,您可以选择哪个 GPU ] 包装纸。在 MacOS X 或 AMD Linux 上,我不知道。

如果您希望您的程序在没有用户干预的情况下决定使用哪个 GPU,您将不得不编写系统特定的代码来迭代可用的 devices/contexts/pixel 格式。