這是我能夠獲得調試錯誤的最佳選擇。Android OpenGL ES 2.0:頂點着色器無效。鏈接無法繼續
Link for a larger image version
正如你所看到的,glGetProgramInfoLog()返回下面的句子:
「無效的頂點着色器鏈接無法進行。」
Eclipse IDE中的黃線是程序剛剛通過跳過執行的代碼行。帶箭頭指向的綠線是程序執行的地方。
如果它告訴我我的頂點着色器代碼在哪一行出錯,或者是某個方向指向了一個好方向,我更喜歡它。有了這種模糊的描述,我只能請求你的幫助。
頂點着色器的代碼如下所示:
uniform mat4 u_mvpMatrix;
uniform mat4 u_mvMatrix;
uniform vec3 u_lightPosition;
attribute vec4 a_position;
attribute vec4 a_color;
attribute vec3 a_normal;
varying vec4 v_color;
void main() {
vec3 modelViewVertex = vec3(u_mvMatrix * a_position);
vec3 modelViewNormal = vec3(u_mvMatrix * vec4(a_normal, 0.0));
float distance = length(u_lightPosition - modelViewVertex);
vec3 lightVector = normalize(u_lightPosition - modelViewVertex);
float diffuse = max(dot(modelViewNormal, lightVector), 0.1);
diffuse = diffuse * (1.0/(0.25 * distance * distance));
v_color = a_color * diffuse;
gl_Position = mvpMatrix * a_position;
}
我不知道我做錯了。你能幫我找到它嗎?如果您需要更多信息,我會添加它們。提前致謝。
編輯1:
有來自glGetShaderInfo沒有調試信息()。
甚至更多的信息:
編輯2:
嘗試glGetShader()和glGetShaderInfo(),仍然沒有運氣的結合。
你是否檢查着色器編譯成功?發佈代碼的那一部分。 –
已經發布。它已經包含在問題中。它編譯得很好。 –
是否因爲Imgur圖像太低? –