From ab5dc26e3334269edb9e34f393843f8a3f30d550 Mon Sep 17 00:00:00 2001 From: Luke Benstead Date: Mon, 17 Feb 2020 19:05:18 +0000 Subject: [PATCH] Only calculate specular if there is an exponent --- GL/lighting.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/GL/lighting.c b/GL/lighting.c index d0bf104..9f31d0c 100644 --- a/GL/lighting.c +++ b/GL/lighting.c @@ -338,7 +338,8 @@ GL_FORCE_INLINE void _glLightVertexDirectional(uint8_t* final, int8_t lid, float #define _PROCESS_COMPONENT(T, X) \ F = (MATERIAL.ambient[X] * LIGHTS[lid].ambient[X]); \ F += (LdotN * MATERIAL.diffuse[X] * LIGHTS[lid].diffuse[X]); \ - F += FPOW(FI * NdotH, MATERIAL.exponent) * MATERIAL.specular[X] * LIGHTS[lid].specular[X]; \ + if(MATERIAL.exponent) \ + F += FPOW(FI * NdotH, MATERIAL.exponent) * MATERIAL.specular[X] * LIGHTS[lid].specular[X]; \ FO = (uint8_t) (F * 255.0f); \ \ final[T] += _MIN(FO, final[T] - FO); \ @@ -358,7 +359,8 @@ GL_FORCE_INLINE void _glLightVertexPoint(uint8_t* final, int8_t lid, float LdotN #define _PROCESS_COMPONENT(T, X) \ F = (MATERIAL.ambient[X] * LIGHTS[lid].ambient[X]); \ F += (LdotN * MATERIAL.diffuse[X] * LIGHTS[lid].diffuse[X]); \ - F += FPOW(FI * NdotH, MATERIAL.exponent) * MATERIAL.specular[X] * LIGHTS[lid].specular[X]; \ + if(MATERIAL.exponent) \ + F += FPOW(FI * NdotH, MATERIAL.exponent) * MATERIAL.specular[X] * LIGHTS[lid].specular[X]; \ FO = (uint8_t) (F * att * 255.0f); \ \ final[T] += _MIN(FO, final[T] - FO); \