我正在开发一些跨平台的桌面应用程序,需要使用大量的二维图形。我使用OpenGL 2.0规范,因为我需要顶点着色器。我喜欢3.2+核心API,因为它简单而强大。我认为3.2+核心可能是未来的选择。但我担心现在这个功能在某些平台上可能不可用(我的意思是旧的图形卡和缺乏现代Linux驱动程序)。也许,我应该使用类似于OpenGL ES 2.0的API,以便未来容易移植。
3.2+核心、显卡和Linux驱动程序的现状如何?
3.2+核心、显卡和Linux驱动程序的现状如何?
旧版的英特尔芯片只支持OpenGL 1.5。新一些的芯片(大概两年前之后)支持2.1,但性能比1.5要差。Sandy Bridge声称支持“OpenGL 3”,但没有说明是能否执行3.3(正如Damon所提议的),而现在的Linux驱动器只支持2.1。所有较近期的Radeons和带有闭源驱动程序的Nvidia硬件都支持3.3(几何着色器),而400-500系列支持4.1(曲面细分着色器)。
因此,您想要的版本是1.5(如果您关心早于Sandy Bridge的老旧英特尔硬件),2.1(适用于几乎所有硬件),3.3(适用于良好的硬件和闭源驱动程序)或4.1(激进的前沿版本)。
我已经使用#version 120编写了顶点和片段着色器,并且使用#version 330编写了几何着色器,以便更轻松地回退到旧硬件。
目前Mac OS X不支持GL-3上下文。今年夏天可能会改变这种情况,但我仍然建议坚持使用GL-2加扩展。
取决于你的目标市场的平均计算机配置。虽然说实话,现在OpenGL 3.2+已经非常普及了。