这是一个很新的主题,在大学里我们每次需要时都会得到.dll.但我从来不知道我使用的是什么实际版本,我正在使用哪些扩展......说实话,这非常令人困惑.我在官方khronos网站上找不到任何下载链接.单击OpenGL SDK链接,只会向我提供更多文档.我已经习惯了DirectX,这很清楚你正在使用什么版本.(通过您创建的设备).
Tom*_*a17 11
OpenGL不是具有不同版本号的库,等等.相反,它是图形驱动程序必须自己支持的一个重要标准.因此,某些显卡可能不支持最新的OpenGL版本,而将来某些显卡可能不支持旧版本.
如果使用OpenGL 1.0或使用OpenGL 4.0,则无需在不同的库中包含不同的标题或链接.但是,要使用OpenGL 4.0,您必须检测程序运行的计算机是否支持它.目前,只有非常新的GPU支持OpenGL 4.0.你可能有更好的机会使用OpenGL 3.0
如果你在Windows上,请包含"gl/gl.h"并将程序与"OpenGL32.lib"链接
程序启动后,您可以检测GPU支持的OpenGL版本,或使用glString和wglGetProcAddress启用扩展.但是我强烈建议您使用第三方库(我最喜欢的是GLee).
使用OpenGL进行编程与使用DirectX进行编程完全不同.DirectX保证支持您正在使用的版本的所有功能.当您使用OpenGL编写代码时,您应该单独检测每个功能.
例如,假设您要使用顶点缓冲区.你的代码应该是这样的:
您可以在我上面链接的GLee页面中看到一些示例
当然,你无法做到这一切.例如,着色器无法在没有特定扩展名的情况下完成,如果它们不可用,您应该只显示错误消息.
更复杂:从OpenGL 3开始,一些函数已被弃用.您现在有两种方法来初始化OpenGL:
如果您请求的版本优于OpenGL 3,则理论上只能使用已弃用的功能,这要归功于卡可能支持或不支持的扩展ARB_compatibility.目前,所有现有GPU都支持ARB_compatibility,但将来可能不再如此.
如果您请求的版本低于OpenGL 3,则不会将这些函数视为已弃用,但如果卡不再支持这些函数,则初始化将失败.
| 归档时间: |
|
| 查看次数: |
6507 次 |
| 最近记录: |