使用哪个版本的OpenGL
Which version of OpenGL to use?
我目前运行的机器允许我在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- 在上下文初始化之前查询支持的最高 OpenGL 版本?
- 从版本字符串中提取 OpenGL 版本
- OpenGL 版本不等于支持的着色器版本
- CEGUI:无法获取桌面 OpenGL 版本
- 使用 C# 获取 OpenGL 版本的最简单方法
- Mac上的OpenGL版本
- 使用 SDL2 指定 OpenGL 版本
- 使用 OpenGL 版本 3+ 呈现文本/UI
- 为什么我不能在这个虚假的OpenGL上下文中检查OpenGL版本
- OS X 上的 OpenGL 版本支持
- 如何设置 OpenGL 版本
- 无法在 QGLWidget 中设置所需的 OpenGL 版本
- OpenGL 版本在 ContextAttribs() 值更改时更改
- OpenGL 版本未打印
- OpenGL 版本在使用 ifstream 时太低
- OpenGL 版本问题
- OpenGL版本和编程
- 在openGL(版本>3.3)的屏幕上显示纹理时如何更改纹理的大小?
- OpenGL版本(截至2014年底)
- 如何检查OpenGL版本一致性