以下のシェーダでは法線をそのままカラーとして出力していますが
#version 120 varying vec3 normal; void main(){ normal = gl_NormalMatrix * gl_Normal; gl_Position = ftransform(); } //frag #version 120 varying vec3 normal; void main(){ vec3 N = normalize(normal); gl_FragColor = vec4((N + vec3(1.0, 1.0, 1.0)) / 2.0,1.0); }
これをversion430で描画したいのですが上手くいきません
//vert #version 430 uniform mat4 mvpM; in vec4 position; in vec3 normal; out vec3 vnor; void main() { vnor= vec3(normal).xyz; gl_Position = mvpM*vec4(position); } //frag #version 430 in vec3 vnor; out vec4 fragColor; void main() { fragColor = vec4(vnor,1); }
法線のX値しか入力されていないようですが、これの原因も解っておりません。。アドバイスいただきたく思います。
あなたの回答
tips
プレビュー