PHONG minus report

This commit is contained in:
ScorpionX90
2025-10-03 14:24:34 +02:00
parent b1312b5f60
commit 21e102f5cb
2 changed files with 27 additions and 3 deletions

View File

@@ -2,11 +2,34 @@
in vec4 fragment_colors;
in vec3 normal_vec;
in vec3 viewing_vec;
out vec4 color;
void main()
{
float lightVec = normal_vec.x * -0.8 + normal_vec.y * 0.5 + normal_vec.z * -0.6;
vec3 albedo = vec3(fragment_colors) * max(0, lightVec);
// Constants
vec3 i_ambient = vec3(0.4);
vec3 i_diffuse = vec3(0.6);
vec3 i_spec = vec3(0.8);
float k_ambient = 0.5;
float k_diffuse = 0.9;
float k_spec = 0.6;
float alpha = 8;
// Light vector
vec3 L = normalize(vec3(-0.8, 0.5, -0.6));
// Reflected light vector
vec3 R = 2 * dot(normalize(normal_vec), L) * normalize(normal_vec) - L;
// Component vectors
vec3 ambient = k_ambient * i_ambient;
vec3 diff = k_diffuse * max(dot(normalize(normal_vec), L), 0.0) * i_diffuse;
vec3 spec = k_spec * pow(max(dot(R, normalize(viewing_vec)), 0.0), alpha) * i_spec;
// Final color vector
vec3 intensity = ambient + diff + spec;
vec3 albedo = fragment_colors.rgb * intensity;
color = vec4(albedo, 1);
}

View File

@@ -7,11 +7,12 @@ uniform mat4 mvp_transform;
uniform mat4 model_transform;
out vec4 fragment_colors;
out vec3 normal_vec;
out vec3 viewing_vec;
void main()
{
gl_Position = mvp_transform * vec4(position, 1.0f);
fragment_colors = vertex_colors;
normal_vec = normalize(mat3(model_transform) * normal);
viewing_vec = vec3(-gl_Position);
}