diff options
author | iurii <[email protected]> | 2024-09-07 21:29:10 +0200 |
---|---|---|
committer | iurii <[email protected]> | 2024-09-07 21:29:10 +0200 |
commit | b1e4ae8347be86d2bd67e261f00c72cc1dedf8d2 (patch) | |
tree | 8abcf2921d1ae6ccd6ccfb3bab8f9fd66a433edc | |
parent | 0330dd5bd261912c49bfe1656436f5f16415ccc2 (diff) | |
download | funhalla-b1e4ae8347be86d2bd67e261f00c72cc1dedf8d2.tar.gz |
ambient
Diffstat (limited to '')
-rw-r--r-- | res/shaders/colors.fs | 10 | ||||
-rw-r--r-- | src/main.odin | 2 |
2 files changed, 5 insertions, 7 deletions
diff --git a/res/shaders/colors.fs b/res/shaders/colors.fs index 142d843..030fdac 100644 --- a/res/shaders/colors.fs +++ b/res/shaders/colors.fs @@ -10,6 +10,7 @@ struct Material { }; struct Light { + vec3 position; vec3 direction; vec3 ambient; vec3 diffuse; @@ -31,27 +32,24 @@ uniform Light light; void main() { // ambient vec3 ambient = light.ambient * texture(material.diffuse, TexCoords).rgb; - // diffuse vec3 norm = normalize(Normal); - vec3 light_dir = normalize(-light.direction); + vec3 light_dir = normalize(light.position - FragPos); float diff = max(dot(norm, light_dir), 0.0); vec3 diffuse = light.diffuse * diff * texture(material.diffuse, TexCoords).rgb; - // specular vec3 view_dir = normalize(view_position - FragPos); vec3 reflect_dir = reflect(-light_dir, norm); float spec = pow(max(dot(view_dir, reflect_dir), 0.0), material.shininess); vec3 specular = light.specular * spec * texture(material.specular, TexCoords).rgb; - float distance = length(light.positon - FragPos); + float distance = length(light.position - FragPos); float attenuation = 1.0 / (light.constant + light.linear * distance + light.quadratic * (distance * distance)); - abient *= attenuation; + ambient *= attenuation; diffuse *= attenuation; specular *= attenuation; vec3 result = ambient + diffuse + specular; FragColor = vec4(result, 1.0); } - diff --git a/src/main.odin b/src/main.odin index eee26e2..d3d5cac 100644 --- a/src/main.odin +++ b/src/main.odin @@ -203,7 +203,7 @@ main :: proc() { shader_set_vec3(lighting_shader, cstring("light.diffuse"), &light_diffuse) shader_set_vec3(lighting_shader, cstring("light.specular"), &light_specular) - shader_set_vec3(lighting_shader, cstring("light_position"), &light_pos) + shader_set_vec3(lighting_shader, cstring("light.position"), &light_pos) shader_set_vec3(lighting_shader, cstring("view_position"), &camera.position) shader_set_f32(lighting_shader, "light.constant", 1.0) |