これは、デバッグ エラーの取得に関して私ができる最善の方法です。
ご覧のとおり、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() の組み合わせを試してみましたが、まだうまくいきません。