跑步时
printf("%s\n", glGetString(GL_VERSION));
printf("%s\n", glGetString(GL_SHADING_LANGUAGE_VERSION));在我的电脑上打印出来:
3.1 Mesa 19.2.8 1.40
但是,当尝试访问3.1中的着色器特性时,我会收到以下错误消息:
支持的版本是: 1.10、1.20、1.30、1.40、1.00es和3.00es
令我困惑的是:
GL_SHADING_LANGUAGE_VERSION不支持GL_VERSION支持的许多特性。这是什么原因?有没有可能,我可以使用3.1功能在我的着色器?GL_SHADING_LANGUAGE_VERSION不同。为什么是这种情况?发布于 2020-05-26 15:43:17
GLSL版本1.40对应于OpenGL 3.1。见GLSL标签信息。
| GLSL | OpenGL | |
|-------|--------|----------------|
| 1.10 | 2.0 | #version 110 |
| 1.20 | 2.1 | #version 120 |
| 1.30 | 3.0 | #version 130 |
| 1.40 | 3.1 | #version 140 |
| 1.50 | 3.2 | #version 150 |
| 3.30 | 3.3 | #version 330 |
| 4.00 | 4.0 | #version 400 |
| 4.10 | 4.1 | #version 410 |
| 4.20 | 4.2 | #version 420 |
| 4.30 | 4.3 | #version 430 |
| 4.40 | 4.4 | #version 440 |
| 4.50 | 4.5 | #version 450 |
| 4.60 | 4.6 | #version 460 |OpenGL ES规范- Khronos OpenGL ES注册表
| GLSL ES | OpenGL ES | |
|---------|-----------|-----------------|
| 1.00 | ES 2.0 | #version 100 es |
| 3.00 | ES 3.0 | #version 300 es |
| 3.10 | ES 3.1 | #version 310 es |
| 3.20 | ES 3.2 | #version 320 es |https://stackoverflow.com/questions/62025942
复制相似问题