From 692d2f42c843e7bbc5959ba7f8ad61b9765befeb Mon Sep 17 00:00:00 2001 From: Quantum Date: Sun, 26 Aug 2018 14:15:12 -0400 Subject: [PATCH] Fixup: specular lighting. --- punyverse/entity.py | 6 +++--- punyverse/shaders/planet.fragment.glsl | 2 +- punyverse/world.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/punyverse/entity.py b/punyverse/entity.py index fda7803..f7f88aa 100644 --- a/punyverse/entity.py +++ b/punyverse/entity.py @@ -356,10 +356,10 @@ class SphericalBody(Body): shader.uniform_bool('u_planet.hasSpecular', self.specular_texture) if self.specular_texture: glActiveTexture(GL_TEXTURE2) - glBindTexture(GL_TEXTURE_2D, self.emission_texture) + glBindTexture(GL_TEXTURE_2D, self.specular_texture) shader.uniform_texture('u_planet.specularMap', 2) - shader.uniform_vec3('u_planet.specular', 2, 2, 2) - shader.uniform_float('u_planet.shininess', 5) + shader.uniform_vec3('u_planet.specular', 1, 1, 1) + shader.uniform_float('u_planet.shininess', 10) else: shader.uniform_vec3('u_planet.specular', 0, 0, 0) shader.uniform_float('u_planet.shininess', 0) diff --git a/punyverse/shaders/planet.fragment.glsl b/punyverse/shaders/planet.fragment.glsl index f312b2e..e03b903 100644 --- a/punyverse/shaders/planet.fragment.glsl +++ b/punyverse/shaders/planet.fragment.glsl @@ -47,7 +47,7 @@ void main() { vec3 ambient = u_planet.ambient * u_sun.ambient * diffuse; diffuse *= u_planet.diffuse * u_sun.diffuse * diffuseIntensity; emission *= u_planet.emission * (1 - min(diffuseIntensity * 2, 1)); - specular *= u_planet.specular * u_sun.specular * max(shininess, 0); + specular *= u_planet.specular * u_sun.specular * max(shininess, 0) * diffuseIntensity; gl_FragColor = vec4((ambient + diffuse + emission + specular) * u_sun.intensity, 1); } diff --git a/punyverse/world.py b/punyverse/world.py index 6f4ff57..927e913 100644 --- a/punyverse/world.py +++ b/punyverse/world.py @@ -49,7 +49,7 @@ class World(object): shader = self.activate_shader('planet') shader.uniform_vec3('u_sun.ambient', 0.1, 0.1, 0.1) shader.uniform_vec3('u_sun.diffuse', 1, 1, 1) - shader.uniform_vec3('u_sun.specular', 1, 1, 1) + shader.uniform_vec3('u_sun.specular', 0.5, 0.5, 0.5) shader.uniform_vec3('u_sun.position', 0, 0, 0) shader.uniform_float('u_sun.intensity', 1) self.activate_shader(None)