From 7c76e3901a5f4c776c046a1b8b1d1041d75f7e40 Mon Sep 17 00:00:00 2001 From: PedroEdiaz Date: Thu, 17 Oct 2024 19:42:16 -0600 Subject: [PATCH] Fix illumination --- src/data/shaders.h | 16 ++++++++-------- src/main.c | 19 ++++++++----------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/src/data/shaders.h b/src/data/shaders.h index 9c3039c..180e159 100644 --- a/src/data/shaders.h +++ b/src/data/shaders.h @@ -16,9 +16,9 @@ const char * vs = "void main()" "{" " index=idx;" + " Normal = mat3(transpose(inverse(rot*mdl))) * aNormal;" " gl_Position = fix * rot * mdl * vec4( aPos, 1.0 );\n" - "Normal = aNormal;" - "FragPos = vec3( rot * vec4(aPos, 1.0));" + " FragPos = vec3( rot * mdl * vec4(aPos, 1.0));" "}"; @@ -35,16 +35,16 @@ const char * fs = "void main()" "{" + + " vec4 color = texture( palette, vec3( 0, 0, index ) ).rgba;" " vec3 lightColor = vec3(1,1,1);" - " vec3 lightPos = vec3(10,10,10);" + " vec3 lightPos = vec3(0,000,-15);" + " vec3 lightDir = normalize(lightPos - FragPos);" " vec3 norm = normalize(Normal);" - " vec3 lightDir = normalize(lightPos - FragPos);" - " float diffuse = max(dot(norm, lightDir), 0.0);" - " float ambient = 0.1;" - - " FragColor = vec4((ambient + diffuse)*lightColor,1.0)* texture( palette, vec3( 0, 0, index ) ).rgba;" + " float ambient = 0.5;" + " FragColor = vec4((ambient + diffuse)*lightColor,1.0)*color;" "}"; diff --git a/src/main.c b/src/main.c index ddf395e..0399574 100755 --- a/src/main.c +++ b/src/main.c @@ -18,13 +18,13 @@ unsigned char palette[] = void calc_normal(float* v1, float* v2, float* v3, float* normal) { - vec3 lado1, lado2; + vec3 lado1, lado2; - glm_vec3_sub(v2, v1, lado1); - glm_vec3_sub(v3, v1, lado2); + glm_vec3_sub(v2, v1, lado1); + glm_vec3_sub(v3, v1, lado2); - glm_vec3_cross(lado1, lado2, normal); - glm_vec3_normalize(normal); + glm_vec3_cross(lado1, lado2, normal); + glm_vec3_normalize(normal); } void fill_normal( float * d, float * n ) @@ -35,11 +35,9 @@ void fill_normal( float * d, float * n ) vec3 norm_vec; calc_normal((d+1)+i, (d+1)+i+3, (d+1)+i+6, norm_vec); - glm_vec3_copy( norm_vec, (n+1)+i ); - glm_vec3_copy( norm_vec, (n+1)+i+3 ); - glm_vec3_copy( norm_vec, (n+1)+i+6 ); - - + glm_vec3_copy( norm_vec, (n+1)+i ); + glm_vec3_copy( norm_vec, (n+1)+i+3 ); + glm_vec3_copy( norm_vec, (n+1)+i+6 ); } } @@ -68,7 +66,6 @@ int main( void ) gload_program( shader, fs, FRAGMENT ); use_shader( shader ); - load_fix_matrix( shader, (float)WIDTH/HEIGHT ); if( !( m_cube = create_mesh( d_cube ) ) )