【发布时间】:2014-07-18 09:07:00
【问题描述】:
我有一个简单的顶点着色器:
precision mediump float;
attribute vec4 position;
attribute vec4 color;
varying vec4 f_color;
uniform mat4 projection;
uniform mat4 modelView;
void main(void) {
gl_Position = projection * modelView * position;
f_color = color;
f_texCoord = texCoord;
}
编译失败,说明(使用 getShaderInfoLog()):
ERROR: 0:1: 'precision' : syntax error syntax error
如果我删除带有精度说明符的行,它编译得很好。
系统:
OS: Mac OX 10.9.2
GPU: NVIDIA GeForce 320M 256 MB
GLSL Ver.: 1.20
谁来帮帮我。
【问题讨论】:
-
OpenGL 和 GLSL 的版本是多少?自 GLSL 1.30 (OpenGL 3.0) 起,以下限定符已被弃用,并从 GLSL 1.40 及更高版本中删除。
-
@SAKrisT 我在标题中看到 gl3 所以我猜这是 OpenGL 3.0。有没有办法识别版本?抱歉,我是新手。
-
const GLubyte *v = glGetString(GL_SHADING_LANGUAGE_VERSION); NSLog(@"GLSL version %s", v); -
@SAKrisT 谢谢。它的版本 1.20。更新了我的问题。