Yur*_*ury 7 opengl opengl-es opengl-3 opengl-es-2.0
我正在开发一些带有大量二维图形的跨平台桌面应用程序.我使用OpenGL 2.0规范,因为我需要顶点着色器.我喜欢3.2+核心API,因为它的简单性和强大功能.我认为3.2+核心可能是未来的选择.但我担心现在某些平台上可能无法使用此功能(我的意思是旧的显卡和现代Linux驱动程序缺乏(?)).也许,我应该使用类似OpenGL ES 2.0的API,以便将来轻松移植.
什么是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(tesselation着色器).
因此,您想要的版本是1.5(如果您关心前Sandy-Bridge Intel废话),2.1(几乎所有硬件),3.3(适用于体面硬件和闭源驱动程序)或4.1(前沿) ).
我有使用#version 120编写的顶点和片段着色器以及用#version 330编写的几何着色器,以便更容易地回退旧硬件.
你可以继续使用OpenGL ES 2.0.即使ES意味着嵌入,这也是一个很好的方法,因为它删除了所有固定的函数(glBegin等等):你正在使用OpenGL 2.x的一个子集.因此,如果您只考虑OpenGL ES 2.0来编写软件,它将会很快并且可以在大多数情况下工作.
实际上,OpenGL ES 2.0和桌面GL可能会有一些区别,但我不认为它会是你将使用的东西.如果GL_ARB_ES2_compatibility支持扩展,则您拥有支持完整嵌入子集的"桌面"卡.(4个功能和一些常量.)
现在,真正的问题是你想要支持多少年的硬件?它们仍然是许多非常旧的硬件,支持非常差.最好的是支持较旧的(OpenGL 2.0已经老了):)
| 归档时间: |
|
| 查看次数: |
2243 次 |
| 最近记录: |