我想了解图形卡版本,OpenGL版本和API标头如何一起工作。我已经阅读了OpenGL论坛和其他地方的OpenGL 2.0/3.0/3.1的崩溃消息,但是作为开发人员(OpenGL的新手),我还不清楚这会如何解决。 (顺便说一句,我在这个问题中使用nVidia作为例子,因为我正在购买他们的一张卡片,但很显然,我想成为我开发的软件的供应商不可知论者)。OpenGL版本和gpus - 有什么样的兼容性?
首先,有GPU需要支持OpenGL版本。但例如nVidia有支持OpenGL 3的旧版视频卡的驱动程序。这是否意味着这些驱动程序在软件中实现某些功能以模拟不在硬件中的新功能?
然后有API头。如果我决定编写OpenGL 3的应用程序,我应该等到微软发布支持此版本的标题的平台SDK的更新版本吗?你如何选择使用哪个版本的API - 通过代码中的预处理器定义,或者更新到最新的平台SDK,只需升级到最新版本(无法想象最后一个选项,但你永远不知道)。 ..)。
向后兼容性怎么样?如果我编写一个针对OpenGL 1.2的应用程序,那么已安装支持OpenGL 3的卡的驱动程序的用户是否仍能运行它,或者是否应该在我的应用程序中测试该卡的功能/支持的版本?阅读http://developer.nvidia.com/object/opengl_3_driver.html似乎证实,至少对于nVidia卡1.2编写的应用程序将继续工作,但这也意味着其他供应商可能会停止支持1.2 API。基本上这会使我(潜在地)在未来软件无法使用最近的卡的地位,因为他们不再支持1.2。但是如果我今天为OpenGL 3或者甚至2开发,我可能会拒绝那些只有gpu支持1.2的用户。
我不需要OpenGL中的奇特功能 - 我几乎不使用任何阴影,固定管道对我来说工作正常(我的应用程序类似于CAD)。基于新应用程序的最佳版本是什么?预计它将是一个长期的应用程序,在未来几年会有增量更新?
我可能会忘记在这方面有关的其他问题,任何见解都非常感谢。
为了教育开发人员关于特定情况下正确的API使用的精神,我想补充一点:`即时模式=提交的'几何体'数量与API调用数量之间的线性相关性零开销)。 – Gigi 2013-07-19 11:10:30