minor performance stuff
[carveJwlIkooP6JGAAIwe30JlM.git] / world_gen.c
index 6bef3ef9ed6e53fd82b6f0c5ca9684bdf49aa09e..7c0f7560d74d205fb8127626bfd72d4e413d7519 100644 (file)
@@ -435,12 +435,14 @@ VG_STATIC void world_gen_compute_light_indices( world_instance *world ){
                v3f closest;
                closest_point_aabb( light->transform.co, bbx, closest );
 
-               float dist = v3_dist( closest, light->transform.co ),
-                     influence = 1.0f/(dist+1.0f);
+               f32 dist2 = v3_dist2( closest, light->transform.co );
 
-               if( dist > light->range )
+               if( dist2 > light->range*light->range )
                   continue;
 
+               f32 dist = sqrtf(dist2),
+                   influence = 1.0f/(dist+1.0f);
+
                if( light->type == k_light_type_spot){
                   v3f local;
                   m4x3_mulv( light->inverse_world, center, local );