私の照明は正しいですか?

OpenGLの PDFファイルを読んでいます照明

それはGouraudシェーディングについて言います:

• Gouraud shading
– Set vertex normals
– Calculate colors at vertices
– Interpolate colors across polygon
• Must calculate vertex normals!
• Must normalize vertex normals to unit length!

それが私のしたことです。 ここに私のVertexとFragment Shaderファイルがあります

V_Shader:

#version 330

layout(location = 0) in vec3 in_Position; //declare position
layout(location = 1) in vec3 in_Color;

// mvpmatrix is the result of multiplying the model, view, and projection matrices */
uniform mat4 MVP_matrix;
vec3 ambient;

out vec3 ex_Color;

void main(void) {

  //Multiply the MVP_ matrix by the vertex to obtain our final vertex position (mvp was created in *.cpp)
   gl_Position = MVP_matrix * vec4(in_Position, 1.0);
   ambient = vec3(0.0f,0.0f,1.0f);
   ex_Color = ambient * normalize(in_Position) ; //anti ex_Color=in_Color;
}

F_shader:

#version 330

in vec3 ex_Color;
out vec4 gl_FragColor;

void main(void) {
   gl_FragColor = vec4(ex_Color,1.0);
}

補間は、フラグメントシェーダの権利に注意を払っていますか?

ここは私の球です(低ポリゴンbtwです):

enter image description here

Gouraud Shadingを実装する標準的な方法ですか? (私の球の中心は(0,0,0)です)
お待ち頂きまして、ありがとうございます

ベストアンサー

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です