OpenGL es 2,着色器未编译
OpenGL es 2, Shaders not compiling
我正在尝试制作一个非常简单的点光源,但我失败得很惨。我所知道的是我的着色器没有正确编译(我似乎没有得到太多错误信息)。
我的着色器是:
顶点着色器代码
"uniform mat4 u_MVPMatrix;"
+ "uniform mat4 u_MVMatrix;"
+ "attribute vec4 a_Position;"
+ "varying vec3 v_Position;"
+ "void main() {"
+ "v_Position = vec3(u_MVMatrix * a_Position);"
+ "gl_Position = uMVPMatrix * a_Position;" + "}";
片段着色器代码
"precision mediump float;"
+ "uniform vec3 u_LightPos;"
+ "varying vec3 v_Position;"
+ "uniform vec4 vColor;"
+ "void main() {"
+ "float distance = length(u_LightPos - v_Position);"
+ "distance = 1.0 / distance;"
+ "distance = clamp(distance, 0.0, 1.0);"
+ "gl_FragColor = vColor * distance;" + "}";
谁能看出我做错了什么?
P.S。我对 opengl es 着色器语法知之甚少,因此不胜感激。
uMVPMatrix
应该是 u_MVMatrix
编译着色器时尝试获取编译日志。
我正在尝试制作一个非常简单的点光源,但我失败得很惨。我所知道的是我的着色器没有正确编译(我似乎没有得到太多错误信息)。 我的着色器是:
顶点着色器代码
"uniform mat4 u_MVPMatrix;"
+ "uniform mat4 u_MVMatrix;"
+ "attribute vec4 a_Position;"
+ "varying vec3 v_Position;"
+ "void main() {"
+ "v_Position = vec3(u_MVMatrix * a_Position);"
+ "gl_Position = uMVPMatrix * a_Position;" + "}";
片段着色器代码
"precision mediump float;"
+ "uniform vec3 u_LightPos;"
+ "varying vec3 v_Position;"
+ "uniform vec4 vColor;"
+ "void main() {"
+ "float distance = length(u_LightPos - v_Position);"
+ "distance = 1.0 / distance;"
+ "distance = clamp(distance, 0.0, 1.0);"
+ "gl_FragColor = vColor * distance;" + "}";
谁能看出我做错了什么? P.S。我对 opengl es 着色器语法知之甚少,因此不胜感激。
uMVPMatrix
应该是u_MVMatrix
编译着色器时尝试获取编译日志。