我正在尝试制作一个非常简单的点光源,而且我失败了。我所知道的是我的着色器无法正确编译(我似乎没有得到太多的错误信息)。 我的着色器是:
"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;" + "}";
谁能看到我做错了什么? 附:我对opengl es着色器语法知之甚少,所以对任何帮助都表示赞赏。
答案 0 :(得分:0)
uMVPMatrix
应为u_MVMatrix
在编译着色器时尝试获取编译日志。