X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world_gen.c;h=7c0f7560d74d205fb8127626bfd72d4e413d7519;hb=dbbdf411d1aaf70cb995c3371cfae37fd0b7dbcc;hp=b522cba80fca626acde99aebad4aa650b8075aa9;hpb=35b57a341eb37d863ec69e4f011a88b7bfba5c01;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world_gen.c b/world_gen.c index b522cba..7c0f756 100644 --- a/world_gen.c +++ b/world_gen.c @@ -277,12 +277,12 @@ VG_STATIC void world_gen_generate_meshes( world_instance *world ){ } /* unpack challenge models */ - for( u32 i=0; ient_challenge ); i++ ){ - ent_challenge *challenge = mdl_arritm( &world->ent_challenge, i ); + for( u32 i=0; ient_objective ); i++ ){ + ent_objective *objective = mdl_arritm( &world->ent_objective, i ); - for( u32 j=0; jsubmesh_count; j ++ ){ + for( u32 j=0; jsubmesh_count; j ++ ){ mdl_submesh *sm = mdl_arritm( &world->meta.submeshs, - challenge->submesh_start+j ); + objective->submesh_start+j ); world_unpack_submesh_dynamic( world, &world->scene_no_collide, sm ); } } @@ -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 );