当 GLSL 着色器的第一行中没有指定版本时(所以没有像"#version 330"这样的版本,实际使用哪个版本?
它是否特定于供应商(甚至驱动程序(?
默认的 GLSL 版本是什么?
- 假设默认版本为 1.10
- 请注意,
#version
指令必须始终位于第一行
#version
指令必须出现在着色器中的其他任何内容之前,空格和注释除外。如果#version
指令没有出现在顶部,那么它假定为 1.10,这几乎肯定不是您想要的。– OpenGL Wiki
如果它与组合源有关,那么您可以省略 #version
指令并执行以下操作:
const GLsizei stringCount = 2;
const GLchar *strings[stringCount] = {
"#version 330 coren",
shaderSource,
};
glShaderSource(shader, stringCount, strings, NULL);