使用哪个版本的OpenGL

Which version of OpenGL to use?

本文关键字:OpenGL 版本      更新时间:2023-10-16

我目前运行的机器允许我在opengl2.1中编程。如果我要编写一个程序,我是否应该使用当前OpenGL版本的功能,如3.x/4。X还是用2.1?

附带问题:我怎么知道我的电脑可以运行的OpenGL的最高版本是什么?

另一方面的问题:只有升级我的显卡允许我在升级版本的OpenGL编程吗?

OpenGL版本(用于AMD和NVIDIA gpu)大致对应于硬件级别。2.x OpenGL版本适用于dx9级别的硬件。3.x表示dx10级,4。x表示dx11类硬件。所以你选择的版本限制了你可以运行你的代码。

一般来说,任何你可以从商店买到的AMD或NVIDIA GPU都是3。X或更好(很可能是4.x)。甚至集成gpu,主板或CPU,从AMD是3。X或更高。我在HD 3300主板GPU上做了一些家庭开发工作,它工作得相当好。

英特尔是个问题。英特尔的OpenGL驱动质量相当差。许多旧的英特尔机器只能支持GL 1.4,这是dx9之前的类功能。它们确实支持一些高级扩展(着色器,但只有顶点着色器,因为它们在软件中运行)。

最近的英特尔gpu稍微好一点,但他们的GL驱动程序仍然相当多bug。

以上描述了Windows的情况。Linux有点模糊,因为有来自NVIDIA/AMD的驱动程序,以及开源社区编写的驱动程序。后者通常不那么好,但他们正在改善。这些趋向于3。x级硬件。

MacOSX的世界有点不同。最近发布的Mac OSX Lion(10.7)增加了对OpenGL 3.2的支持(遗憾的是,由于某种原因,不是3.3)。苹果严格控制OpenGL在他们平台上的工作方式,但希望他们能比最近更频繁地更新GL版本。

所以在mac上,你实际上有两个选择:2.1或3.2。注意,Lion的3.2只支持核心 OpenGL功能。

你不知道你的电脑能运行的最高版本是什么。当你创建一个上下文时,你会得到一个简单的版本。一般来说,除非你特别要求一个版本(即使这样,通常也不会),你将得到你的硬件和驱动程序可以处理的最高版本。

哦,是的:OpenGL版本是由你的显卡的功能(和安装的驱动程序)控制的。

下面的建议假设您正在开发一个严肃的应用程序,并打算让其他人使用。

一般来说,我建议不要明确地将代码限制为4.x。而4。x的采用率每天都在增加(NVIDIA和AMD都有2代硬件,4代。第三款可能会在年底前由AMD推出。此外,AMD也开始嵌入。现在他们的cpu中有x功能的gpu),仍然有很多3。x硬件。4.X并不能为您带来很多东西,您可以轻松地添加代码路径来有条件地支持4。

为了使用opengl3。您需要一张支持DirectX10的卡和支持它的适当驱动程序。与DirectX相反的优点是,你也可以在WindowsXP上使用OpenGL3和4。不需要7或Vista。你应该使用哪个版本取决于你的受众。如果你的受众是玩家,那就使用3。暂时不做独家4。DX11仍然很少见。要了解玩家如何使用他们的电脑以及他们拥有的硬件,steam是一个很好的来源:

http://store.steampowered.com/hwsurvey

你可以通过运行命令来确定版本:

glGetString(GL_VERSION);

一个好的OpenGL3教程:

http://arcsynthesis.org/gltut/

OpenGL 3.3 SDK参考:

http://www.opengl.org/sdk/docs/man3/

希望这对你有帮助:)。

很多嵌入式Intel显卡都限制在1.4或1.5。

Mac OSX卡在2.1版本,我听说。

所有的Radeon和GeForce卡都可以做3+(可能需要驱动程序更新)。

你可以用任何版本编程,但如果你的硬件不支持它,你最终会在软件渲染器下测试(慢!)

附带问题:我怎么知道我的电脑可以运行的OpenGL的最高版本是什么?

我回答上述问题。我遇到了下面的工具,它本身就很完整,让我看到了我的系统目前支持的所有OpenGL版本(从1.0到它实际支持的)。以及我的系统可以使用的扩展。不仅针对ARB,还包括NV、ATI、OES等。

http://www.realtech-vr.com/glview/download.html