From 791f807111a1f740f745c67db642aa7a8bee56e8 Mon Sep 17 00:00:00 2001 From: hgn Date: Thu, 2 Mar 2023 22:28:04 +0000 Subject: [PATCH] checkin --- blender_export.py | 38 +++++++++++-- common.h | 5 +- maps_src/mp_mtzero.mdl | Bin 12912240 -> 12910176 bytes model.h | 4 +- shaders/common_scene.glsl | 80 +++++++++++++++++---------- shaders/common_world.glsl | 3 ++ shaders/model_character_view.h | 3 ++ shaders/model_sky.h | 3 ++ shaders/scene_depth.h | 83 +++++++++++++++++++---------- shaders/scene_position.h | 83 +++++++++++++++++++---------- shaders/scene_route.h | 83 +++++++++++++++++++---------- shaders/scene_standard.h | 83 +++++++++++++++++++---------- shaders/scene_standard_alphatest.h | 83 +++++++++++++++++++---------- shaders/scene_terrain.h | 83 +++++++++++++++++++---------- shaders/scene_vertex_blend.h | 83 +++++++++++++++++++---------- shaders/scene_water.h | 83 +++++++++++++++++++---------- shaders/scene_water_fast.h | 83 +++++++++++++++++++---------- world.h | 7 ++- world_gen.h | 51 ++++++++++-------- 19 files changed, 622 insertions(+), 319 deletions(-) diff --git a/blender_export.py b/blender_export.py index b60b2e0..6117ff8 100644 --- a/blender_export.py +++ b/blender_export.py @@ -837,6 +837,9 @@ class classtype_world_light( Structure ): _.type = 1 _.angle = math.cos(data.spot_size*0.5) #} + + if data.cv_data.bp0: + _.type += 2 #} @staticmethod @@ -1340,7 +1343,7 @@ def encoder_build_scene_graph( collection ): for obj in collection.all_objects: #{ - if obj.parent: continue + #if obj.parent: continue def _extend( p, n, d ): #{ @@ -1915,7 +1918,7 @@ def encoder_process_definition( node_def ): #{ obj = node_def['obj'] obj_type = obj.type - obj_co = obj.location + obj_co = obj.matrix_world @ Vector((0,0,0)) if obj_type == 'ARMATURE': obj_classtype = 'classtype_skeleton' @@ -2642,6 +2645,31 @@ class CV_MESH_SETTINGS(bpy.types.PropertyGroup): v3: bpy.props.FloatVectorProperty(name="v3",size=3) #} +class CV_LIGHT_SETTINGS(bpy.types.PropertyGroup): +#{ + bp0: bpy.props.BoolProperty( name="bp0" ); +#} + +class CV_LIGHT_PANEL(bpy.types.Panel): +#{ + bl_label="[Skate Rift]" + bl_idname="SCENE_PT_cv_light" + bl_space_type='PROPERTIES' + bl_region_type='WINDOW' + bl_context='data' + + def draw(_,context): + #{ + active_object = context.active_object + if active_object == None: return + + if active_object.type != 'LIGHT': return + + data = active_object.data.cv_data + _.layout.prop( data, "bp0", text="Only on during night" ) + #} +#} + class CV_OBJ_SETTINGS(bpy.types.PropertyGroup): #{ uid: bpy.props.IntProperty( name="" ) @@ -2709,7 +2737,7 @@ class CV_BONE_SETTINGS(bpy.types.PropertyGroup): class CV_BONE_PANEL(bpy.types.Panel): #{ - bl_label="Bone Config" + bl_label="[Skate Rift]" bl_idname="SCENE_PT_cv_bone" bl_space_type='PROPERTIES' bl_region_type='WINDOW' @@ -3002,7 +3030,8 @@ class CV_INTERFACE(bpy.types.Panel): classes = [CV_OBJ_SETTINGS,CV_OBJ_PANEL,CV_COMPILE,CV_INTERFACE,\ CV_MESH_SETTINGS, CV_SCENE_SETTINGS, CV_BONE_SETTINGS,\ CV_BONE_PANEL, CV_COLLECTION_SETTINGS, CV_COMPILE_THIS,\ - CV_MATERIAL_SETTINGS, CV_MATERIAL_PANEL ] + CV_MATERIAL_SETTINGS, CV_MATERIAL_PANEL, CV_LIGHT_SETTINGS,\ + CV_LIGHT_PANEL] def register(): #{ @@ -3019,6 +3048,7 @@ def register(): bpy.props.PointerProperty(type=CV_COLLECTION_SETTINGS) bpy.types.Material.cv_data = \ bpy.props.PointerProperty(type=CV_MATERIAL_SETTINGS) + bpy.types.Light.cv_data = bpy.props.PointerProperty(type=CV_LIGHT_SETTINGS) cv_view_draw_handler = bpy.types.SpaceView3D.draw_handler_add(\ cv_draw,(),'WINDOW','POST_VIEW') diff --git a/common.h b/common.h index c1f325e..7420009 100644 --- a/common.h +++ b/common.h @@ -114,7 +114,8 @@ VG_STATIC int k_ragdoll_div = 1, k_ragdoll_debug_collider = 1, k_ragdoll_debug_constraints = 0; -VG_STATIC int k_debug_light_index = 1; +VG_STATIC int k_debug_light_indices = 0, + k_debug_light_complexity = 0; VG_STATIC int freecam = 0; VG_STATIC int walk_grid_iterations = 1; @@ -156,6 +157,8 @@ VG_STATIC void common_var_temp(void) VG_VAR_I32( k_ragdoll_div ); VG_VAR_I32( k_ragdoll_debug_collider ); VG_VAR_I32( k_ragdoll_debug_constraints ); + VG_VAR_I32( k_debug_light_indices ); + VG_VAR_I32( k_debug_light_complexity ); VG_VAR_F32( k_friction_lat ); diff --git a/maps_src/mp_mtzero.mdl b/maps_src/mp_mtzero.mdl index 0c4d0ab63588503e051c76626f31b0b8e54bc2a9..d20a0e8af04343db0096f7881958faff155e5232 100644 GIT binary patch delta 125747 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 z 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⪙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 diff --git a/model.h b/model.h index b2d258d..7c4e0d9 100644 --- a/model.h +++ b/model.h @@ -276,7 +276,9 @@ struct classtype_world_light enum light_type { k_light_type_point, - k_light_type_spot + k_light_type_spot, + k_light_type_point_nighttime_only, + k_light_type_spot_nighttime_only } type; diff --git a/shaders/common_scene.glsl b/shaders/common_scene.glsl index 2cf00b9..91dc6a1 100644 --- a/shaders/common_scene.glsl +++ b/shaders/common_scene.glsl @@ -72,35 +72,57 @@ vec3 scene_do_lighting( vec3 diffuse, vec3 wnormal ) vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 ); vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 ); - //return vec3(fract(distance(light_co_0.xyz,aWorldCo)), - // fract(distance(light_co_1.xyz,aWorldCo)), - // fract(distance(light_co_2.xyz,aWorldCo))); - - // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125), - // fract(light_indices.z * 0.125 )); - - total_light += newlight_compute_spot - ( - wnormal, halfview, - light_colour_0.rgb, - light_co_0.xyz, - light_dir_0 - ) * board_shadow; - - total_light += newlight_compute_spot - ( - wnormal, halfview, - light_colour_1.rgb, - light_co_1.xyz, - light_dir_1 - ) * board_shadow; - total_light += newlight_compute_spot - ( - wnormal, halfview, - light_colour_2.rgb, - light_co_2.xyz, - light_dir_2 - ) * board_shadow; + if( g_debug_indices == 1 ) + { + float rings = min( fract(distance(light_co_0.xyz,aWorldCo)), + min( fract(distance(light_co_1.xyz,aWorldCo)), + fract(distance(light_co_2.xyz,aWorldCo)) ) + ); + + return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125), + fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25; + } + + if( g_debug_complexity == 1 ) + { + return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 ); + } + + if( light_indices.w >= 1 ) + { + total_light += newlight_compute_spot + ( + wnormal, halfview, + light_colour_0.rgb, + light_co_0.xyz, + light_dir_0 + ) * board_shadow + * step( world.day_phase, light_colour_0.w ); + + if( light_indices.w >= 2 ) + { + total_light += newlight_compute_spot + ( + wnormal, halfview, + light_colour_1.rgb, + light_co_1.xyz, + light_dir_1 + ) * board_shadow + * step( world.day_phase, light_colour_1.w ); + + if( light_indices.w >= 3 ) + { + total_light += newlight_compute_spot + ( + wnormal, halfview, + light_colour_2.rgb, + light_co_2.xyz, + light_dir_2 + ) * board_shadow + * step( world.day_phase, light_colour_2.w ); + } + } + } vec3 fog_colour = scene_sky( -halfview, world ); diff --git a/shaders/common_world.glsl b/shaders/common_world.glsl index 4393409..ccf416e 100644 --- a/shaders/common_world.glsl +++ b/shaders/common_world.glsl @@ -14,6 +14,9 @@ layout (std140) uniform ub_world_lighting int g_light_preview; int g_shadow_samples; + int g_debug_indices; + int g_debug_complexity; + // g_time ? //vec4 g_point_light_positions[32]; diff --git a/shaders/model_character_view.h b/shaders/model_character_view.h index 68a4667..2017f7d 100644 --- a/shaders/model_character_view.h +++ b/shaders/model_character_view.h @@ -100,6 +100,9 @@ static struct vg_shader _shader_model_character_view = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" diff --git a/shaders/model_sky.h b/shaders/model_sky.h index d1edd1d..2fb62ff 100644 --- a/shaders/model_sky.h +++ b/shaders/model_sky.h @@ -91,6 +91,9 @@ static struct vg_shader _shader_model_sky = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" diff --git a/shaders/scene_depth.h b/shaders/scene_depth.h index 63ff702..f40c461 100644 --- a/shaders/scene_depth.h +++ b/shaders/scene_depth.h @@ -101,6 +101,9 @@ static struct vg_shader _shader_scene_depth = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -441,35 +444,57 @@ static struct vg_shader _shader_scene_depth = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_position.h b/shaders/scene_position.h index 5fed747..8966955 100644 --- a/shaders/scene_position.h +++ b/shaders/scene_position.h @@ -101,6 +101,9 @@ static struct vg_shader _shader_scene_position = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -441,35 +444,57 @@ static struct vg_shader _shader_scene_position = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_route.h b/shaders/scene_route.h index 9d95111..61c14e6 100644 --- a/shaders/scene_route.h +++ b/shaders/scene_route.h @@ -102,6 +102,9 @@ static struct vg_shader _shader_scene_route = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -442,35 +445,57 @@ static struct vg_shader _shader_scene_route = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_standard.h b/shaders/scene_standard.h index 239a8ad..a385437 100644 --- a/shaders/scene_standard.h +++ b/shaders/scene_standard.h @@ -102,6 +102,9 @@ static struct vg_shader _shader_scene_standard = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -442,35 +445,57 @@ static struct vg_shader _shader_scene_standard = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_standard_alphatest.h b/shaders/scene_standard_alphatest.h index c2c479a..46c1976 100644 --- a/shaders/scene_standard_alphatest.h +++ b/shaders/scene_standard_alphatest.h @@ -102,6 +102,9 @@ static struct vg_shader _shader_scene_standard_alphatest = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -442,35 +445,57 @@ static struct vg_shader _shader_scene_standard_alphatest = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_terrain.h b/shaders/scene_terrain.h index cf19762..da84797 100644 --- a/shaders/scene_terrain.h +++ b/shaders/scene_terrain.h @@ -103,6 +103,9 @@ static struct vg_shader _shader_scene_terrain = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -443,35 +446,57 @@ static struct vg_shader _shader_scene_terrain = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_vertex_blend.h b/shaders/scene_vertex_blend.h index 028392d..097046f 100644 --- a/shaders/scene_vertex_blend.h +++ b/shaders/scene_vertex_blend.h @@ -101,6 +101,9 @@ static struct vg_shader _shader_scene_vertex_blend = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -441,35 +444,57 @@ static struct vg_shader _shader_scene_vertex_blend = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_water.h b/shaders/scene_water.h index a6fa804..e9e052b 100644 --- a/shaders/scene_water.h +++ b/shaders/scene_water.h @@ -109,6 +109,9 @@ static struct vg_shader _shader_scene_water = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -449,35 +452,57 @@ static struct vg_shader _shader_scene_water = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/shaders/scene_water_fast.h b/shaders/scene_water_fast.h index 7708cac..bab38cd 100644 --- a/shaders/scene_water_fast.h +++ b/shaders/scene_water_fast.h @@ -106,6 +106,9 @@ static struct vg_shader _shader_scene_water_fast = { " int g_light_preview;\n" " int g_shadow_samples;\n" "\n" +" int g_debug_indices;\n" +" int g_debug_complexity;\n" +"\n" " // g_time ?\n" "\n" " //vec4 g_point_light_positions[32];\n" @@ -446,35 +449,57 @@ static struct vg_shader _shader_scene_water_fast = { " vec4 light_dir_1 = texelFetch( uLightsArray, light_indices.y*3+2 );\n" " vec4 light_dir_2 = texelFetch( uLightsArray, light_indices.z*3+2 );\n" "\n" -" //return vec3(fract(distance(light_co_0.xyz,aWorldCo)),\n" -" // fract(distance(light_co_1.xyz,aWorldCo)),\n" -" // fract(distance(light_co_2.xyz,aWorldCo)));\n" -"\n" -" // return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" -" // fract(light_indices.z * 0.125 ));\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_0.rgb,\n" -" light_co_0.xyz,\n" -" light_dir_0\n" -" ) * board_shadow;\n" -"\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_1.rgb,\n" -" light_co_1.xyz,\n" -" light_dir_1\n" -" ) * board_shadow;\n" -" total_light += newlight_compute_spot\n" -" ( \n" -" wnormal, halfview,\n" -" light_colour_2.rgb,\n" -" light_co_2.xyz,\n" -" light_dir_2\n" -" ) * board_shadow;\n" +" if( g_debug_indices == 1 )\n" +" {\n" +" float rings = min( fract(distance(light_co_0.xyz,aWorldCo)),\n" +" min( fract(distance(light_co_1.xyz,aWorldCo)),\n" +" fract(distance(light_co_2.xyz,aWorldCo)) ) \n" +" );\n" +" \n" +" return vec3(fract(light_indices.x * 0.125), fract(light_indices.y*0.125),\n" +" fract(light_indices.z * 0.125 )) + (rings-0.5) * 0.25;\n" +" }\n" +"\n" +" if( g_debug_complexity == 1 )\n" +" {\n" +" return vec3(1.0,0.0,0.0) * ( light_indices.w/3.0 );\n" +" }\n" +"\n" +" if( light_indices.w >= 1 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_0.rgb,\n" +" light_co_0.xyz,\n" +" light_dir_0\n" +" ) * board_shadow \n" +" * step( world.day_phase, light_colour_0.w );\n" +"\n" +" if( light_indices.w >= 2 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_1.rgb,\n" +" light_co_1.xyz,\n" +" light_dir_1\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_1.w );\n" +"\n" +" if( light_indices.w >= 3 )\n" +" {\n" +" total_light += newlight_compute_spot\n" +" ( \n" +" wnormal, halfview,\n" +" light_colour_2.rgb,\n" +" light_co_2.xyz,\n" +" light_dir_2\n" +" ) * board_shadow\n" +" * step( world.day_phase, light_colour_2.w );\n" +" }\n" +" }\n" +" }\n" "\n" " vec3 fog_colour = scene_sky( -halfview, world );\n" " \n" diff --git a/world.h b/world.h index 3f806cb..ef93596 100644 --- a/world.h +++ b/world.h @@ -93,6 +93,9 @@ struct world_instance int g_light_preview; int g_shadow_samples; + int g_debug_indices; + int g_debug_complexity; + #if 0 v4f g_point_light_positions[32]; v4f g_point_light_colours[32]; @@ -625,6 +628,8 @@ VG_STATIC void world_update( world_instance *world, v3f pos ) g_time += vg.time_delta * (1.0/(k_day_length*60.0)); world->ub_lighting.g_time = g_time; + world->ub_lighting.g_debug_indices = k_debug_light_indices; + world->ub_lighting.g_debug_complexity = k_debug_light_complexity; glBindBuffer( GL_UNIFORM_BUFFER, world->ubo_lighting ); glBufferSubData( GL_UNIFORM_BUFFER, 0, @@ -734,7 +739,7 @@ VG_STATIC void world_update( world_instance *world, v3f pos ) 0xff00ff00 ); } - if( k_debug_light_index ) + if( k_debug_light_indices ) { for( int i=0; ilight_count; i++ ) { diff --git a/world_gen.h b/world_gen.h index b6c2f15..026701a 100644 --- a/world_gen.h +++ b/world_gen.h @@ -450,7 +450,7 @@ VG_STATIC float colour_luminance( v3f v ) } VG_STATIC float calc_light_influence( world_instance *world, v3f position, - v3f normal, int light ) + int light ) { struct world_light *world_light = &world->lights[ light ]; struct classtype_world_light *inf = world_light->inf; @@ -462,16 +462,15 @@ VG_STATIC float calc_light_influence( world_instance *world, v3f position, float quadratic = v3_dot( light_delta, light_delta ), attenuation = 1.0f/( 1.0f + quadratic ); - v3_normalize( light_delta ); - //attenuation *= vg_maxf( 0.0, v3_dot( light_delta, normal ) ); - float quadratic_light = attenuation * colour_luminance( inf->colour ); - if( inf->type == k_light_type_point ) + if( (inf->type == k_light_type_point) || + (inf->type == k_light_type_point_nighttime_only) ) { return quadratic_light; } - else if( inf->type == k_light_type_spot ) + else if( (inf->type == k_light_type_spot) || + (inf->type == k_light_type_spot_nighttime_only) ) { v3f dir; q_mulv( world_light->node->q, (v3f){0.0f,1.0f,0.0f}, dir ); @@ -494,31 +493,23 @@ VG_STATIC void world_scene_compute_light_clusters( world_instance *world, vert->lights[0] = 0; vert->lights[1] = 1; vert->lights[2] = 2; - vert->lights[3] = 3; - - float influences[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; - - v3f co, norm; - v3_copy( vert->co, co ); + vert->lights[3] = 0; - norm[0] = vert->norm[0]; - norm[1] = vert->norm[1]; - norm[2] = vert->norm[2]; - - v3_muls( norm, 1.0f/127.0f, norm ); + float influences[3] = { 0.0f, 0.0f, 0.0f }; + const int N = vg_list_size( influences ); for( int j=0; jlight_count; j ++ ) { - float influence = calc_light_influence( world, co, norm, j ); + float influence = calc_light_influence( world, vert->co, j ); - int best_pos = 4; + int best_pos = N; for( int k=best_pos-1; k>=0; k -- ) if( influence > influences[k] ) best_pos = k; - if( best_pos < 4 ) + if( best_pos < N ) { - for( int k=3; k>best_pos; k -- ) + for( int k=N-1; k>best_pos; k -- ) { influences[k] = influences[k-1]; vert->lights[k] = vert->lights[k-1]; @@ -528,6 +519,12 @@ VG_STATIC void world_scene_compute_light_clusters( world_instance *world, vert->lights[best_pos] = j; } } + + for( int j=0; j 0.00000125f ) + vert->lights[3] ++ ; + } } } @@ -669,7 +666,17 @@ VG_STATIC void world_post_process( world_instance *world ) /* colour + night */ v3_muls( inf->colour, inf->colour[3] * 2.0f, light_dst[i*3+0] ); - light_dst[i*3+0][3] = 1.0f; + light_dst[i*3+0][3] = 0.0f; + + if( (inf->type == k_light_type_spot_nighttime_only) || + (inf->type == k_light_type_point_nighttime_only ) ) + { + u32 hash = (i * 29986577) & 0xff; + float switch_on = hash; + switch_on *= (1.0f/255.0f); + + light_dst[i*3+0][3] = 0.44f + switch_on * 0.015f; + } /* position + nothing */ v3_copy( light->node->co, light_dst[i*3+1] ); -- 2.25.1