2
爲什麼下面的着色器,不是在OpenGL(桌面)上編譯 - 而是在OpenGL ES 2.0(iPhone)上運行良好(我使用相同的c/C++代碼來加載,編譯&鏈接在兩個plattforms上着色)。 我FragmentShader:GLSL lowp:語法錯誤
varying lowp vec4 colorVarying;
void main()
{
gl_FragColor = colorVarying;
}
頂點着色器:
attribute vec4 position;
attribute vec4 color;
varying vec4 colorVarying;
uniform float translate;
void main()
{
gl_Position = position;
gl_Position.y += sin(translate)/2.0;
colorVarying = color;
}
的編譯日誌看起來是這樣的:
Shader compile log:
ERROR: 0:9: 'lowp' : syntax error syntax error
ERROR: Parser found no code to compile in source strings.
Failed to compile fragment shaderProgram validate log:
Validation Failed: Program is not successfully linked.
Failed to validate program: 1
任何想法?
您錯位了帶片段1的頂點着色器。 – kvark 2011-02-09 21:36:05
謝謝。實際上,如果使用語言的更新特性,則實際上是正確的 – Constantin 2011-02-09 22:11:59