Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/ordinary.s3d_shader
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/ordinary.s3d_shader	(revision 2499)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/ordinary.s3d_shader	(revision 2503)
@@ -2,5 +2,5 @@
 shader_array
 {
-    name "ordinary"
+    name "ordinary_and_diffuse"
     ident "eng_shader_std.group"
     param
@@ -589,252 +589,4 @@
             }
         }
-    }
-}
-{
-    name "ordinary_diffuse"
-    ident "eng_shader_std.group"
-    param
-    {
-        env "shaderenv"
-        init_method "init_method"
-        child_array
-        {
-            ident "eng_shader_std.modelmesh"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                mesh_var "mesh"
-                texchan_var_array "tex0" "normalmap"
-                tex_attr_var_array "attr0"
-                usage "render"
-                tangentu_attr_var "tangentu"
-                tangentv_attr_var "tangentv"
-            }
-        }
-        {
-            ident "eng_shader_std.modelmesh"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                usage "shvol_occl"
-                mesh_var "mesh_shvol_occl"
-                texchan_var_array
-                tex_attr_var_array
-            }
-        }
-        {
-            ident "eng_shader_std.meshenter"
-            param
-            {
-                env "shaderenv"
-                mesh_var_array "mesh"
-                insp_ident "insp_shader_bound"
-                insp_rank 80000
-                insp_color 1.0 0.0 0.0
-                enter_array
-                {
-                    triggers "main_trigger" "mirror_trigger"
-                    method "main_method"
-                }
-                {
-                    triggers "gtp_distance_impostor_trigger"
-                    method "gtp_distance_impostor_method"
-                }
-                {
-                    triggers "gen_shmap_trigger"
-                    method "gen_shmap_method"
-                }
-                {
-                    triggers "light_trigger"
-                    method "light_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                }
-                {
-                    triggers "lightmild_trigger"
-                    method "lightmild_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                }
-                {
-                    triggers "lightbright_trigger"
-                    method "lightbright_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                    {
-                        src_extvar "ext_light_brighttex"
-                        dest_var "light_brighttex"
-                    }
-                    {
-                        src_extvar "ext_light_brightmat"
-                        dest_var "light_brightmat"
-                    }
-                }
-                {
-                    triggers "lightshmap_trigger"
-                    method "lightshmap_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                    {
-                        src_extvar "ext_light_projmat"
-                        dest_var "light_projmat"
-                    }
-                    {
-                        src_extvar "ext_light_shmapmat"
-                        dest_var "light_shmapmat"
-                    }
-                    {
-                        src_extvar "ext_light_projtex"
-                        dest_var "light_projtex"
-                    }
-                    {
-                        src_extvar "ext_light_shmap"
-                        dest_var "light_shmap"
-                    }
-                }
-                {
-                    triggers "gen_brightmap_for_softshmap_trigger"
-                    method "gen_brightmap_for_softshmap_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_intens"
-                        dest_var "light_intens"
-                    }
-                    {
-                        src_extvar "ext_light_projmat"
-                        dest_var "light_projmat"
-                    }
-                    {
-                        src_extvar "ext_light_shmapmat"
-                        dest_var "light_shmapmat"
-                    }
-                    {
-                        src_extvar "ext_light_projtex"
-                        dest_var "light_projtex"
-                    }
-                    {
-                        src_extvar "ext_light_shmap"
-                        dest_var "light_shmap"
-                    }
-                }
-                {
-                    triggers "gen_brightclear_trigger"
-                    method "gen_brightclear_method"
-                }
-            }
-        }
-        {
-            ident "eng_shader_std.meshenter"
-            param
-            {
-                env "shaderenv"
-                mesh_var_array "mesh_shvol_occl"
-                insp_ident "insp_shader_bound"
-                insp_rank 80000
-                insp_color 1.0 0.0 0.0
-                enter_array
-                {
-                    triggers "shvol_mark_trigger"
-                    method "shvol_mark_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_shvolparam"
-                        dest_var "light_shvolparam"
-                    }
-                }
-            }
-        }
-        {
-            ident "eng_shader_std.paintmesh"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank 12000
-                insp_ident "insp_shader_mesh"
-                cull_mode "back"
-                depth_test "less_equal"
-                depth_write 1
-                use_vertex_bone_wgh 1
-                use_vertex_bone_subscr 1
-                use_vertex_point 1
-                use_vertex_normal 0
-                color 0.0 0.0 0.0
-                mesh_var "mesh"
-                texchan_var_array
-                tex_attr_var_array
-                attrmat_var_array
-                lightarray_var ""
-                shaderprog_ident
-                    "levelutil/shader/prog/plain_point.s3d_shaderprog_run"
-                shaderprog_param_array
-            }
-        }
         {
             ident "gtp_shader.createtex"
@@ -1019,5 +771,5 @@
                 env "shaderenv"
                 methods "main_method"
-                rank 12000
+                rank 12100
                 insp_ident "insp_shader_mesh"
                 cull_mode "back"
@@ -1034,5 +786,5 @@
                 use_vertex_coloralpha 0
                 blend_col_src_fac "one"
-                blend_col_dest_fac "zero"
+                blend_col_dest_fac "one"
                 shaderprog_ident
                     "levelutil/shader/prog/gtp_diffuse.s3d_shaderprog_run"
@@ -1055,5 +807,5 @@
 }
 {
-    name "ordinary_caustic_receiver"
+    name "ordinary"
     ident "eng_shader_std.group"
     param
@@ -1111,17 +863,4 @@
                     triggers "gtp_distance_impostor_trigger"
                     method "gtp_distance_impostor_method"
-                }
-                {
-                    triggers "caustic_recieve_trigger"
-                    method "caustic_recieve_method"
-                    param_array
-                    {
-                        src_extvar "lastCenter"
-                        dest_var "cauCubeLastCenter"
-                    }
-                    {
-                        src_extvar "cauCubeMap"
-                        dest_var "cauCubeMap"
-                    }
                 }
                 {
@@ -1655,55 +1394,471 @@
             }
         }
-        {
-            ident "gtp_shader.worldmat"
-            param
-            {
-                env "shaderenv"
-                methods "caustic_recieve_method"
-                worldmat_var "worldMat"
-            }
-        }
-        {
-            ident "eng_shader_std.paintmesh"
-            param
-            {
-                env "shaderenv"
-                methods "caustic_recieve_method"
-                rank 14000
-                insp_ident "insp_shader_mesh"
-                cull_mode "back"
-                depth_test "less_equal"
-                depth_write 1
-                depth_bias_overlay 1
-                depth_bias_offs 1
-                mesh_var "mesh"
-                texchan_var_array "cauCubeMap"
-                tex_attr_var_array "attr0"
-                attrmat_var_array ""
-                use_vertex_bone_wgh 1
-                use_vertex_bone_subscr 1
-                use_vertex_point 1
-                blend_col_dest_fac "one"
-                blend_col_src_fac "one"
-                blend_col_op "src_plus_dest"
-                color 1.0 1.0 1.0
-                shaderprog_ident
-                    "levelutil/shader/prog/gtp_caustic_recieve.s3d_shaderprog_"
-                    & "run"
-                shaderprog_param_array
-                {
-                    src_var "cauCubeLastCenter"
-                    dest_progvar "lastCenter"
-                }
-                {
-                    src_var "worldMat"
-                    dest_progvar "worldMat"
-                }
-            }
-        }
     }
 }
 {
-    name "ordinary_copper"
+    name "ordinary_diffuse"
+    ident "eng_shader_std.group"
+    param
+    {
+        env "shaderenv"
+        init_method "init_method"
+        child_array
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0"
+                usage "render"
+                tangentu_attr_var "tangentu"
+                tangentv_attr_var "tangentv"
+            }
+        }
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                usage "shvol_occl"
+                mesh_var "mesh_shvol_occl"
+                texchan_var_array
+                tex_attr_var_array
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh"
+                insp_ident "insp_shader_bound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "main_trigger" "mirror_trigger"
+                    method "main_method"
+                }
+                {
+                    triggers "gtp_distance_impostor_trigger"
+                    method "gtp_distance_impostor_method"
+                }
+                {
+                    triggers "gen_shmap_trigger"
+                    method "gen_shmap_method"
+                }
+                {
+                    triggers "light_trigger"
+                    method "light_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightmild_trigger"
+                    method "lightmild_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightbright_trigger"
+                    method "lightbright_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_brighttex"
+                        dest_var "light_brighttex"
+                    }
+                    {
+                        src_extvar "ext_light_brightmat"
+                        dest_var "light_brightmat"
+                    }
+                }
+                {
+                    triggers "lightshmap_trigger"
+                    method "lightshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightmap_for_softshmap_trigger"
+                    method "gen_brightmap_for_softshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_intens"
+                        dest_var "light_intens"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightclear_trigger"
+                    method "gen_brightclear_method"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh_shvol_occl"
+                insp_ident "insp_shader_bound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "shvol_mark_trigger"
+                    method "shvol_mark_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_shvolparam"
+                        dest_var "light_shvolparam"
+                    }
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 0
+                color 0.0 0.0 0.0
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/plain_point.s3d_shaderprog_run"
+                shaderprog_param_array
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "envmap0"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 0
+                texprop_comp 4
+                texprop_bitspercomp 8
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -9000
+                max_ext 256
+                max_recursion 1
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "mirror_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 12
+                update_all_face 0
+                start_frame 0
+                last_center_var "lastCenter"
+                world_space 1
+                dest_array
+                {
+                    from_var "envmap0"
+                    to_var "envmap0"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 3
+                    texprop_float 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "dist"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 1
+                texprop_comp 2
+                texprop_bitspercomp 16
+                samplermode_clamp 0
+                samplermode_filter 0
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -9000
+                max_ext 128
+                max_recursion 1
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "gtp_distance_impostor_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 1
+                update_all_face 1
+                start_frame 0
+                last_center_var ""
+                world_space 1
+                dest_array
+                {
+                    from_var "dist"
+                    to_var "dist"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 1
+                    texprop_float 1
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "filteredenvmap"
+                width 4
+                height 4
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 0
+                texprop_comp 4
+                texprop_bitspercomp 8
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.cubetexfilter"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -8000
+                iter_start 0
+                iter_end 0
+                iter_step 0
+                width_scale 1.0
+                height_scale 1.0
+                destprop_antialias 0
+                passinfo_var ""
+                src_array "envmap0"
+                update_interval 1
+                dest_array
+                {
+                    from_var "filteredenvmap"
+                    to_var "filteredenvmap"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_float 0
+                    texprop_comp 4
+                    texprop_bitspercomp 0
+                    samplermode_filter 1
+                    samplermode_clamp 1
+                }
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_reduce_cubemap.s3d_shaderprog_r"
+                    & "un"
+                shaderprog_param_array
+                {
+                }
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMat"
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMatIT"
+                inverse 1
+                transpose 1
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                mesh_var "mesh"
+                texchan_var_array "filteredenvmap" "dist"
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                use_vertex_coloralpha 0
+                blend_col_src_fac "one"
+                blend_col_dest_fac "one"
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_diffuse.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "lastCenter"
+                    dest_progvar "lastCenter"
+                }
+                {
+                    src_var "worldMat"
+                    dest_progvar "worldMat"
+                }
+                {
+                    src_var "worldMatIT"
+                    dest_progvar "worldMatIT"
+                }
+            }
+        }
+    }
+}
+{
+    name "ordinary_caustic_receiver"
     ident "eng_shader_std.group"
     param
@@ -1761,4 +1916,17 @@
                     triggers "gtp_distance_impostor_trigger"
                     method "gtp_distance_impostor_method"
+                }
+                {
+                    triggers "caustic_recieve_trigger"
+                    method "caustic_recieve_method"
+                    param_array
+                    {
+                        src_extvar "lastCenter"
+                        dest_var "cauCubeLastCenter"
+                    }
+                    {
+                        src_extvar "cauCubeMap"
+                        dest_var "cauCubeMap"
+                    }
                 }
                 {
@@ -2022,4 +2190,136 @@
             {
                 env "shaderenv"
+                methods "light_method"
+                rank 99999
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/bump.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "lightmild_method"
+                rank 99999
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/bump_mild.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "lightbright_method"
+                rank 12000
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap" "light_brighttex"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array "" "" ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                shaderprog_ident
+                    "levelutil/shader/prog/bump_bright.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+                {
+                    src_var "light_brightmat"
+                    dest_progvar "prog_light_brightmat"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
                 methods "lightshmap_method"
                 rank 99999
@@ -2136,177 +2436,4 @@
         }
         {
-            ident "gtp_shader.createtex"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                texchan_var "envmap0"
-                width 32
-                height 32
-                texprop_rendertarget 1
-                texprop_cube 1
-                texprop_float 0
-                texprop_comp 4
-                texprop_bitspercomp 8
-                samplermode_clamp 0
-                samplermode_filter 1
-            }
-        }
-        {
-            ident "gtp_shader.envmap"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank -90000
-                max_ext 256
-                max_recursion 2
-                ext_dist_scale 20.0
-                proj_neg_z 0.1
-                proj_pos_z 100.0
-                enum_trigger "mirror_trigger"
-                destprop_antialias 0
-                mesh_var "mesh"
-                update_interval 6
-                update_all_face 0
-                start_frame 1
-                last_center_var "lastCenter"
-                world_space 1
-                dest_array
-                {
-                    from_var "envmap0"
-                    to_var "envmap0"
-                    texprop_restrusage 0
-                    texprop_depth 0
-                    texprop_comp 3
-                    texprop_float 0
-                    samplermode_filter 0
-                    samplermode_clamp 1
-                }
-            }
-        }
-        {
-            ident "gtp_shader.createtex"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                texchan_var "dist"
-                width 128
-                height 128
-                texprop_rendertarget 1
-                texprop_cube 1
-                texprop_float 1
-                texprop_comp 2
-                texprop_bitspercomp 16
-                samplermode_clamp 0
-                samplermode_filter 1
-            }
-        }
-        {
-            ident "gtp_shader.envmap"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank -90000
-                max_ext 128
-                max_recursion 1
-                ext_dist_scale 20.0
-                proj_neg_z 0.1
-                proj_pos_z 100.0
-                enum_trigger "gtp_distance_impostor_trigger"
-                destprop_antialias 0
-                mesh_var "mesh"
-                update_interval 6
-                update_all_face 1
-                start_frame 1
-                last_center_var "lastCenter"
-                world_space 1
-                dest_array
-                {
-                    from_var "dist"
-                    to_var "dist"
-                    texprop_restrusage 0
-                    texprop_depth 0
-                    texprop_comp 1
-                    texprop_float 1
-                    samplermode_filter 0
-                    samplermode_clamp 1
-                }
-            }
-        }
-        {
-            ident "gtp_shader.worldmat"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                worldmat_var "worldMat"
-            }
-        }
-        {
-            ident "gtp_shader.worldmat"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                worldmat_var "worldMatIT"
-                inverse 1
-                transpose 1
-            }
-        }
-        {
-            ident "eng_shader_std.constvec"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                val_var "Fresnel"
-                val 0.95 0.63 0.54 1.0
-            }
-        }
-        {
-            ident "eng_shader_std.paintmesh"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank 12000
-                insp_ident "insp_shader_mesh"
-                cull_mode "back"
-                depth_test "less_equal"
-                depth_write 0
-                mesh_var "mesh"
-                texchan_var_array "envmap0" "dist"
-                tex_attr_var_array "attr0"
-                attrmat_var_array ""
-                use_vertex_bone_wgh 1
-                use_vertex_bone_subscr 1
-                use_vertex_point 1
-                use_vertex_normal 1
-                use_vertex_coloralpha 0
-                shaderprog_ident
-                    "levelutil/shader/prog/gtp_envmap_metal.s3d_shaderprog_run"
-                shaderprog_param_array
-                {
-                    src_var "lastCenter"
-                    dest_progvar "lastCenter"
-                }
-                {
-                    src_var "worldMat"
-                    dest_progvar "worldMat"
-                }
-                {
-                    src_var "worldMatIT"
-                    dest_progvar "worldMatIT"
-                }
-                {
-                    src_var "Fresnel"
-                    dest_progvar "Fresnel"
-                }
-            }
-        }
-        {
             ident "eng_shader_std.paintmesh"
             param
@@ -2333,8 +2460,55 @@
             }
         }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "caustic_recieve_method"
+                worldmat_var "worldMat"
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "caustic_recieve_method"
+                rank 14000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                depth_bias_overlay 1
+                depth_bias_offs 1
+                mesh_var "mesh"
+                texchan_var_array "cauCubeMap"
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                blend_col_dest_fac "one"
+                blend_col_src_fac "one"
+                blend_col_op "src_plus_dest"
+                color 1.0 1.0 1.0
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_caustic_recieve.s3d_shaderprog_"
+                    & "run"
+                shaderprog_param_array
+                {
+                    src_var "cauCubeLastCenter"
+                    dest_progvar "lastCenter"
+                }
+                {
+                    src_var "worldMat"
+                    dest_progvar "worldMat"
+                }
+            }
+        }
     }
 }
 {
-    name "ordinary_alu"
+    name "ordinary_copper"
     ident "eng_shader_std.group"
     param
@@ -2773,6 +2947,6 @@
                 methods "init_method"
                 texchan_var "envmap0"
-                width 128
-                height 128
+                width 32
+                height 32
                 texprop_rendertarget 1
                 texprop_cube 1
@@ -2799,6 +2973,6 @@
                 destprop_antialias 0
                 mesh_var "mesh"
-                update_interval 1
-                update_all_face 1
+                update_interval 6
+                update_all_face 0
                 start_frame 1
                 last_center_var "lastCenter"
@@ -2850,5 +3024,5 @@
                 destprop_antialias 0
                 mesh_var "mesh"
-                update_interval 1
+                update_interval 6
                 update_all_face 1
                 start_frame 1
@@ -2895,5 +3069,5 @@
                 methods "init_method"
                 val_var "Fresnel"
-                val 0.9 0.92 0.92 1.0
+                val 0.95 0.63 0.54 1.0
             }
         }
@@ -2967,5 +3141,5 @@
 }
 {
-    name "caustic_caster"
+    name "ordinary_alu"
     ident "eng_shader_std.group"
     param
@@ -2981,9 +3155,27 @@
                 methods "init_method"
                 mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0"
+                usage "render"
+                tangentu_attr_var "tangentu"
+                tangentv_attr_var "tangentv"
+                insp_ident "showmesh"
+                insp_rank 80000
+                insp_color 1.0 1.0 0.0
+            }
+        }
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                usage "shvol_occl"
+                mesh_var "mesh_shvol_occl"
                 texchan_var_array
                 tex_attr_var_array
-                usage "render"
-                tangentu_attr_var
-                tangentv_attr_var
+                insp_ident "showocclmesh"
+                insp_rank 80000
+                insp_color 0.5 1.0 0.0
             }
         }
@@ -2994,5 +3186,5 @@
                 env "shaderenv"
                 mesh_var_array "mesh"
-                insp_ident "insp_shader_bound"
+                insp_ident "showbound"
                 insp_rank 80000
                 insp_color 1.0 0.0 0.0
@@ -3007,6 +3199,10 @@
                 }
                 {
-                    triggers "caustic_cast_trigger"
-                    method "caustic_cast_method"
+                    triggers "gen_shmap_trigger"
+                    method "gen_shmap_method"
+                }
+                {
+                    triggers "light_trigger"
+                    method "light_method"
                     param_array
                     {
@@ -3015,18 +3211,362 @@
                     }
                     {
-                        src_extvar "recievers"
-                        dest_var "recievers"
-                    }
-                }
-            }
-        }
-        {
-            ident "eng_shader_std.constvec"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                val_var "lastCenter"
-                val 0.0 0.0 0.0 1.0
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightmild_trigger"
+                    method "lightmild_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightbright_trigger"
+                    method "lightbright_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_brighttex"
+                        dest_var "light_brighttex"
+                    }
+                    {
+                        src_extvar "ext_light_brightmat"
+                        dest_var "light_brightmat"
+                    }
+                }
+                {
+                    triggers "lightshmap_trigger"
+                    method "lightshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightmap_for_softshmap_trigger"
+                    method "gen_brightmap_for_softshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_intens"
+                        dest_var "light_intens"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightclear_trigger"
+                    method "gen_brightclear_method"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh_shvol_occl"
+                insp_ident "showbound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "shvol_mark_trigger"
+                    method "shvol_mark_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_shvolparam"
+                        dest_var "light_shvolparam"
+                    }
+                }
+            }
+        }
+        {
+            ident "eng_shader_shvol.occluder"
+            param
+            {
+                env "shaderenv"
+                methods "shvol_mark_method"
+                reverse_rank 90010
+                nonreverse_rank 90000
+                insp_ident "showocclwire"
+                rel_gap 0.01
+                backface 0
+                mesh_var "mesh_shvol_occl"
+                cenrange_var "light_cenrange"
+                shvolparam_var "light_shvolparam"
+                extrude_var "light_extrude"
+                strict_shaderprog_ident
+                    "levelutil/shader/prog/gen_shvol_strict.s3d_shaderprog_run"
+                strict_shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_extrude"
+                    dest_progvar "prog_light_extrude"
+                }
+                quick_shaderprog_ident
+                    "levelutil/shader/prog/gen_shvol_quick.s3d_shaderprog_run"
+                quick_shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_extrude"
+                    dest_progvar "prog_light_extrude"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                rank 99999
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                methods "gen_shmap_method"
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                shaderprog_ident
+                    "levelutil/shader/prog/gen_shmap.s3d_shaderprog_run"
+                shaderprog_param_array
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 0
+                color 0.0 0.0 0.0
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/plain_point.s3d_shaderprog_run"
+                shaderprog_param_array
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "lightshmap_method"
+                rank 99999
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap" "light_projtex"
+                    "light_shmap"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/bump_shmap.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+                {
+                    src_var "light_projmat"
+                    dest_progvar "prog_light_projmat"
+                }
+                {
+                    src_var "light_shmapmat"
+                    dest_progvar "prog_light_shmapmat"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "gen_brightmap_for_softshmap_method"
+                rank 99999
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "light_projtex" "light_shmap"
+                tex_attr_var_array ""
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/gen_brightmap_for_softshmap.s3d_sha"
+                    & "derprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_intens"
+                    dest_progvar "prog_light_intens"
+                }
+                {
+                    src_var "light_projmat"
+                    dest_progvar "prog_light_projmat"
+                }
+                {
+                    src_var "light_shmapmat"
+                    dest_progvar "prog_light_shmapmat"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "gen_brightclear_method"
+                rank 12000
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array
+                fog_enabled 0
+                blend_col_src_fac "one"
+                blend_col_dest_fac "zero"
+                color 0.0 0.0 0.0
+                alpha 0.0
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                shaderprog_ident
+                    "levelutil/shader/prog/gen_brightclear.s3d_shaderprog_run"
+                shaderprog_param_array
             }
         }
@@ -3055,5 +3595,5 @@
                 env "shaderenv"
                 methods "main_method"
-                rank -89500
+                rank -90000
                 max_ext 256
                 max_recursion 2
@@ -3064,7 +3604,7 @@
                 destprop_antialias 0
                 mesh_var "mesh"
-                update_interval 6
-                update_all_face 0
-                start_frame 0
+                update_interval 1
+                update_all_face 1
+                start_frame 1
                 last_center_var "lastCenter"
                 world_space 1
@@ -3106,4 +3646,269 @@
                 env "shaderenv"
                 methods "main_method"
+                rank -90000
+                max_ext 128
+                max_recursion 1
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "gtp_distance_impostor_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 1
+                update_all_face 1
+                start_frame 1
+                last_center_var "lastCenter"
+                world_space 1
+                dest_array
+                {
+                    from_var "dist"
+                    to_var "dist"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 1
+                    texprop_float 1
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMat"
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMatIT"
+                inverse 1
+                transpose 1
+            }
+        }
+        {
+            ident "eng_shader_std.constvec"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                val_var "Fresnel"
+                val 0.9 0.92 0.92 1.0
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                mesh_var "mesh"
+                texchan_var_array "envmap0" "dist"
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                use_vertex_coloralpha 0
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_envmap_metal.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "lastCenter"
+                    dest_progvar "lastCenter"
+                }
+                {
+                    src_var "worldMat"
+                    dest_progvar "worldMat"
+                }
+                {
+                    src_var "worldMatIT"
+                    dest_progvar "worldMatIT"
+                }
+                {
+                    src_var "Fresnel"
+                    dest_progvar "Fresnel"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "gtp_distance_impostor_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                color 1.0 1.0 1.0
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_distance_impostor.s3d_shaderpro"
+                    & "g_run"
+                shaderprog_param_array
+            }
+        }
+    }
+}
+{
+    name "caustic_caster"
+    ident "eng_shader_std.group"
+    param
+    {
+        env "shaderenv"
+        init_method "init_method"
+        child_array
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                usage "render"
+                tangentu_attr_var
+                tangentv_attr_var
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh"
+                insp_ident "insp_shader_bound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "main_trigger" "mirror_trigger"
+                    method "main_method"
+                }
+                {
+                    triggers "gtp_distance_impostor_trigger"
+                    method "gtp_distance_impostor_method"
+                }
+                {
+                    triggers "caustic_cast_trigger"
+                    method "caustic_cast_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "recievers"
+                        dest_var "recievers"
+                    }
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.constvec"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                val_var "lastCenter"
+                val 0.0 0.0 0.0 1.0
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "envmap0"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 0
+                texprop_comp 4
+                texprop_bitspercomp 8
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -89500
+                max_ext 256
+                max_recursion 2
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "mirror_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 6
+                update_all_face 0
+                start_frame 0
+                last_center_var "lastCenter"
+                world_space 1
+                dest_array
+                {
+                    from_var "envmap0"
+                    to_var "envmap0"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 3
+                    texprop_float 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "dist"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 1
+                texprop_comp 2
+                texprop_bitspercomp 16
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
                 rank -89600
                 max_ext 128
@@ -3224,6 +4029,6 @@
                 texchan_var "cauCubeMap"
                 texprop_cube 1
-                width 32
-                height 32
+                width 128
+                height 128
                 texprop_rendertarget 1
                 texprop_float 1
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/.sconsign
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/.sconsign	(revision 2486)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/.sconsign	(revision 2503)
@@ -10,5 +10,7 @@
 JÉEeFubUblack.s3d_shaderprogq(hoq}q(h
 JÉEeFh
-JÉEeFubU"gtp_caustic_recieve.s3d_shaderprogq(hoq}q(U	timestampqJÉEeFUcsigqJÉEeFubU(gtp_caustic_cubemap_point.s3d_shaderprogq(hoq}q(hJÉEeFhJÉEeFubU$gtp_distance_impostor.s3d_shaderprogq(hoq
+JÉEeFubU"gtp_caustic_recieve.s3d_shaderprogq(hoq}q(U	timestampqJÉEeFUcsigqJÉEeFubUbloom_smooth.s3d_shaderprogq(hoq}q(h
+JÉEeFh
+JÉEeFubU$gtp_distance_impostor.s3d_shaderprogq(hoq
 }q
 (U	timestampq
@@ -22,7 +24,5 @@
 plain_pointtex.s3d_shaderprogq)(hoq*}q+(h
 JÉEeFh
-JÉEeFubUbloom_smooth.s3d_shaderprogq,(hoq-}q.(h
-JÉEeFh
-JÉEeFubUpartic.s3d_shaderprogq/(hoq0}q1(h
+JÉEeFubU(gtp_caustic_cubemap_point.s3d_shaderprogq,(hoq-}q.(hJÉEeFhJÉEeFubUpartic.s3d_shaderprogq/(hoq0}q1(h
 JÉEeFh
 JÉEeFubUlightfilter.s3d_shaderprogq2(hoq3}q4(h
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/d3d9_hlsl/.sconsign
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/d3d9_hlsl/.sconsign	(revision 2486)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/d3d9_hlsl/.sconsign	(revision 2503)
@@ -5,9 +5,9 @@
 (hoq
 }q
-(hJÉEeFhJÉEeFubU'standard_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU*plain_point_d3d9_hlsl_vs2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU"gtp_caustic_recieve.s3d_shaderprogq(hoq}q(U	timestampqJÊëmEUcsigqJÊëmEubU*plain_point_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU0gen_shvol_extrude_d3d9_hlsl_vs1x1.s3d_shadercodeq
+(hJÉEeFhJÉEeFubU'standard_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU*plain_point_d3d9_hlsl_vs2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU"gtp_caustic_recieve.s3d_shaderprogq(hoq}q(U	timestampqJÊëmEUcsigqJÊëmEubU(gtp_caustic_cubemap_point.s3d_shaderprogq(hoq}q(hJtmEhJtmEubU0gen_shvol_extrude_d3d9_hlsl_vs1x1.s3d_shadercodeq
 (hoq
 }q
-(hJÉEeFhJÉEeFubU(gen_shmap_d3d9_hlsl_vs2x0.s3d_shadercodeq(hoq }q!(hJÉEeFhJÉEeFubU-plain_pointcol_d3d9_hlsl_ps2x0.s3d_shadercodeq"(hoq#}q$(hJÉEeFhJÉEeFubU:gen_brightmap_for_softshmap_d3d9_hlsl_vs1x1.s3d_shadercodeq%(hoq&}q'(hJÉEeFhJÉEeFubU#bump_d3d9_hlsl_vs1x1.s3d_shadercodeq((hoq)}q*(hJÉEeFhJÉEeFubU-plain_pointtex_d3d9_hlsl_vs2x0.s3d_shadercodeq+(hoq,}q-(hJÉEeFhJÉEeFubU.gen_brightclear_d3d9_hlsl_ps2x0.s3d_shadercodeq.(hoq/}q0(hJÉEeFhJÉEeFubU+bloom_bright_d3d9_hlsl_ps2x0.s3d_shadercodeq1(hoq2}q3(hJÉEeFhJÉEeFubU/gtp_envmapSimple_d3d9_hlsl_vs1x1.s3d_shadercodeq4(hoq5}q6(hJÉEeFhJÉEeFubU8gtp_caustic_cubemap_point_d3d9_hlsl_ps3x0.s3d_shadercodeq7(hoq8}q9(hJÖ&pFhJÖ&pFubU'standard_d3d9_hlsl_vs2x0.s3d_shadercodeq:(hoq;}q<(hJÉEeFhJÉEeFubU-plain_pointcol_d3d9_hlsl_vs2x0.s3d_shadercodeq=(hoq>}q?(hJÉEeFhJÉEeFubU'include_stddef_d3d9_hlsl.s3d_shadercodeq@(hoqA}qB(hJÉEeFhJÉEeFubU:gen_brightmap_for_softshmap_d3d9_hlsl_ps2x0.s3d_shadercodeqC(hoqD}qE(hJÉEeFhJÉEeFubU4gtp_distance_impostor_d3d9_hlsl_vs3x0.s3d_shadercodeqF(hoqG}qH(U	timestampqIJÉEeFUcsigqJJÉEeFubU$comic_d3d9_hlsl_vs2x0.s3d_shadercodeqK(hoqL}qM(hJÉEeFhJÉEeFubU5bloom_presmooth_bright_d3d9_hlsl_vs1x1.s3d_shadercodeqN(hoqO}qP(hJÉEeFhJÉEeFubU(gtp_caustic_cubemap_point.s3d_shaderprogqQ(hoqR}qS(hJtmEhJtmEubU+bloom_bright_d3d9_hlsl_vs1x1.s3d_shadercodeqT(hoqU}qV(hJÉEeFhJÉEeFubU)include_stdstate_d3d9_hlsl.s3d_shadercodeqW(hoqX}qY(hJÉEeFhJÉEeFubU1gtp_reduce_cubemap_d3d9_hlsl_vs2x0.s3d_shadercodeqZ(hoq[}q\(hJÉEeFhJÉEeFubU-include_shmap_filter_d3d9_hlsl.s3d_shadercodeq](hoq^}q_(hJÉEeFhJÉEeFubU*lightfilter_d3d9_hlsl_vs2x0.s3d_shadercodeq`(hoqa}qb(hJÉEeFhJÉEeFubU4gtp_distance_impostor_d3d9_hlsl_ps3x0.s3d_shadercodeqc(hoqd}qe(hIJÉEeFhJJÉEeFubU0gtp_cau_photonmap_d3d9_hlsl_vs3x0.s3d_shadercodeqf(hoqg}qh(hJÉEeFhJÉEeFubU0plain_pointcoltex_d3d9_hlsl_ps2x0.s3d_shadercodeqi(hoqj}qk(hJÉEeFhJÉEeFubU1gtp_reduce_cubemap_d3d9_hlsl_ps3x0.s3d_shadercodeql(hoqm}qn(hJÉEeFhJÉEeFubU*gtp_diffuse_d3d9_hlsl_ps3x0.s3d_shadercodeqo(hoqp}qq(hJ¢nFhJ¢nFubU'standard_d3d9_hlsl_vs1x1.s3d_shadercodeqr(hoqs}qt(hJÉEeFhJÉEeFubU0plain_pointcoltex_d3d9_hlsl_vs2x0.s3d_shadercodequ(hoqv}qw(hJÉEeFhJÉEeFubU!gtp_reduce_cubemap.s3d_shaderprogqx(hoqy}qz(hJäaEhJäaEubU+bloom_smooth_d3d9_hlsl_ps2x0.s3d_shadercodeq{(hoq|}q}(hJÉEeFhJÉEeFubU-gen_shvol_view_d3d9_hlsl_vs1x1.s3d_shadercodeq~(hoq}q(hJÉEeFhJÉEeFubU.gen_brightclear_d3d9_hlsl_vs1x1.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU$black_d3d9_hlsl_ps1x1.s3d_shadercodeq(hoq
-}q(hJÉEeFhJÉEeFubU#bump_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJpFhJpFubU,bloom_combine_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÍ
+(hJÉEeFhJÉEeFubU-plain_pointcol_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq }q!(hJÉEeFhJÉEeFubU:gen_brightmap_for_softshmap_d3d9_hlsl_vs1x1.s3d_shadercodeq"(hoq#}q$(hJÉEeFhJÉEeFubU#bump_d3d9_hlsl_vs1x1.s3d_shadercodeq%(hoq&}q'(hJÉEeFhJÉEeFubU-plain_pointtex_d3d9_hlsl_vs2x0.s3d_shadercodeq((hoq)}q*(hJÉEeFhJÉEeFubU.gen_brightclear_d3d9_hlsl_ps2x0.s3d_shadercodeq+(hoq,}q-(hJÉEeFhJÉEeFubU+bloom_bright_d3d9_hlsl_ps2x0.s3d_shadercodeq.(hoq/}q0(hJÉEeFhJÉEeFubU/gtp_envmapSimple_d3d9_hlsl_vs1x1.s3d_shadercodeq1(hoq2}q3(hJÉEeFhJÉEeFubU8gtp_caustic_cubemap_point_d3d9_hlsl_ps3x0.s3d_shadercodeq4(hoq5}q6(hJÖ&pFhJÖ&pFubU'standard_d3d9_hlsl_vs2x0.s3d_shadercodeq7(hoq8}q9(hJÉEeFhJÉEeFubU-plain_pointcol_d3d9_hlsl_vs2x0.s3d_shadercodeq:(hoq;}q<(hJÉEeFhJÉEeFubU'include_stddef_d3d9_hlsl.s3d_shadercodeq=(hoq>}q?(hJÉEeFhJÉEeFubU:gen_brightmap_for_softshmap_d3d9_hlsl_ps2x0.s3d_shadercodeq@(hoqA}qB(hJÉEeFhJÉEeFubU4gtp_distance_impostor_d3d9_hlsl_vs3x0.s3d_shadercodeqC(hoqD}qE(U	timestampqFJÉEeFUcsigqGJÉEeFubU$comic_d3d9_hlsl_vs2x0.s3d_shadercodeqH(hoqI}qJ(hJÉEeFhJÉEeFubU*gtp_diffuse_d3d9_hlsl_ps3x0.s3d_shadercodeqK(hoqL}qM(hJ¢nFhJ¢nFubU*plain_point_d3d9_hlsl_ps2x0.s3d_shadercodeqN(hoqO}qP(hJÉEeFhJÉEeFubU+bloom_bright_d3d9_hlsl_vs1x1.s3d_shadercodeqQ(hoqR}qS(hJÉEeFhJÉEeFubU)include_stdstate_d3d9_hlsl.s3d_shadercodeqT(hoqU}qV(hJÉEeFhJÉEeFubU1gtp_reduce_cubemap_d3d9_hlsl_vs2x0.s3d_shadercodeqW(hoqX}qY(hJÉEeFhJÉEeFubU-include_shmap_filter_d3d9_hlsl.s3d_shadercodeqZ(hoq[}q\(hJÉEeFhJÉEeFubU*lightfilter_d3d9_hlsl_vs2x0.s3d_shadercodeq](hoq^}q_(hJÉEeFhJÉEeFubU4gtp_distance_impostor_d3d9_hlsl_ps3x0.s3d_shadercodeq`(hoqa}qb(hFJÉEeFhGJÉEeFubU0gtp_cau_photonmap_d3d9_hlsl_vs3x0.s3d_shadercodeqc(hoqd}qe(hJÉEeFhJÉEeFubU0plain_pointcoltex_d3d9_hlsl_ps2x0.s3d_shadercodeqf(hoqg}qh(hJÉEeFhJÉEeFubU1gtp_reduce_cubemap_d3d9_hlsl_ps3x0.s3d_shadercodeqi(hoqj}qk(hJÉEeFhJÉEeFubU5bloom_presmooth_bright_d3d9_hlsl_vs1x1.s3d_shadercodeql(hoqm}qn(hJÉEeFhJÉEeFubU'standard_d3d9_hlsl_vs1x1.s3d_shadercodeqo(hoqp}qq(hJÉEeFhJÉEeFubU0plain_pointcoltex_d3d9_hlsl_vs2x0.s3d_shadercodeqr(hoqs}qt(hJÉEeFhJÉEeFubU!gtp_reduce_cubemap.s3d_shaderprogqu(hoqv}qw(hJäaEhJäaEubU+bloom_smooth_d3d9_hlsl_ps2x0.s3d_shadercodeqx(hoqy}qz(hJÉEeFhJÉEeFubU-gen_shvol_view_d3d9_hlsl_vs1x1.s3d_shadercodeq{(hoq|}q}(hJÉEeFhJÉEeFubUgtp_diffuse.s3d_shaderprogq~(hoq}q(hJÜbEhJÜbEubU$black_d3d9_hlsl_ps1x1.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU#bump_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq
+}q(hJpFhJpFubU,bloom_combine_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÍ
 pFhJÍ
-pFubU gtp_cau_photonmap.s3d_shaderprogq(hoq}q(hJ>vÐEhJ>vÐEubU2gtp_caustic_recieve_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU,bloom_combine_d3d9_hlsl_vs1x1.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU-plain_pointtex_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU5bloom_presmooth_bright_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubUgtp_envmap.s3d_shaderprogq(hoq}q(hJí]EhJí]EubU0gen_shvol_extrude_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq }q¡(hJÉEeFhJÉEeFubU%partic_d3d9_hlsl_ps2x0.s3d_shadercodeq¢(hoq£}q€(hJÉEeFhJÉEeFubU2gtp_caustic_recieve_d3d9_hlsl_vs2x0.s3d_shadercodeq¥(hoqŠ}q§(hJÉEeFhJÉEeFubU+bloom_smooth_d3d9_hlsl_vs1x1.s3d_shadercodeqš(hoq©}qª(hJÉEeFhJÉEeFubU(gen_shmap_d3d9_hlsl_ps2x0.s3d_shadercodeq«(hoq¬}q­(hJÉEeFhJÉEeFubUgtp_diffuse.s3d_shaderprogq®(hoq¯}q°(hJÜbEhJÜbEubU$comic_d3d9_hlsl_ps2x0.s3d_shadercodeq±(hoq²}q³(hJÉEeFhJÉEeFubU$black_d3d9_hlsl_vs1x1.s3d_shadercodeqŽ(hoqµ}q¶(hJÉEeFhJÉEeFubU8gtp_caustic_cubemap_point_d3d9_hlsl_vs3x0.s3d_shadercodeq·(hoqž}q¹(hJ$pFhJ$pFubU*gtp_diffuse_d3d9_hlsl_vs2x0.s3d_shadercodeqº(hoq»}qŒ(hJÉEeFhJÉEeFubU0gtp_cau_photonmap_d3d9_hlsl_ps3x0.s3d_shadercodeqœ(hoqŸ}q¿(hJ$pFhJ$pFubU/gtp_envmapSimple_d3d9_hlsl_ps1x1.s3d_shadercodeqÀ(hoqÁ}qÂ(hJ³nFhJ³nFubu.
+pFubU gtp_cau_photonmap.s3d_shaderprogq(hoq}q(hJ>vÐEhJ>vÐEubU2gtp_caustic_recieve_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU0gtp_cau_photonmap_d3d9_hlsl_ps3x0.s3d_shadercodeq(hoq}q(hJ$pFhJ$pFubU-plain_pointtex_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU5bloom_presmooth_bright_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubUgtp_envmap.s3d_shaderprogq(hoq}q(hJí]EhJí]EubU0gen_shvol_extrude_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU%partic_d3d9_hlsl_ps2x0.s3d_shadercodeq(hoq }q¡(hJÉEeFhJÉEeFubU/gtp_envmapSimple_d3d9_hlsl_ps1x1.s3d_shadercodeq¢(hoq£}q€(hJ³nFhJ³nFubU2gtp_caustic_recieve_d3d9_hlsl_vs2x0.s3d_shadercodeq¥(hoqŠ}q§(hJÉEeFhJÉEeFubU+bloom_smooth_d3d9_hlsl_vs1x1.s3d_shadercodeqš(hoq©}qª(hJÉEeFhJÉEeFubU(gen_shmap_d3d9_hlsl_ps2x0.s3d_shadercodeq«(hoq¬}q­(hJÉEeFhJÉEeFubU(gen_shmap_d3d9_hlsl_vs2x0.s3d_shadercodeq®(hoq¯}q°(hJÉEeFhJÉEeFubU$comic_d3d9_hlsl_ps2x0.s3d_shadercodeq±(hoq²}q³(hJÉEeFhJÉEeFubU$black_d3d9_hlsl_vs1x1.s3d_shadercodeqŽ(hoqµ}q¶(hJÉEeFhJÉEeFubU8gtp_caustic_cubemap_point_d3d9_hlsl_vs3x0.s3d_shadercodeq·(hoqž}q¹(hJ$pFhJ$pFubU*gtp_diffuse_d3d9_hlsl_vs2x0.s3d_shadercodeqº(hoq»}qŒ(hJÉEeFhJÉEeFubU,bloom_combine_d3d9_hlsl_vs1x1.s3d_shadercodeqœ(hoqŸ}q¿(hJÉEeFhJÉEeFubU.gen_brightclear_d3d9_hlsl_vs1x1.s3d_shadercodeqÀ(hoqÁ}qÂ(hJÉEeFhJÉEeFubu.
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/ogl_glsl/.sconsign
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/ogl_glsl/.sconsign	(revision 2486)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/shader/prog/ogl_glsl/.sconsign	(revision 2503)
@@ -1,3 +1,3 @@
-}q(U+bloom_combine_ogl_glsl_fs1x0.s3d_shadercodeq(cSCons.Node.FS
+}q(U*bloom_smooth_ogl_glsl_vs1x0.s3d_shadercodeq(cSCons.Node.FS
 BuildInfo
 qoq}q(U	timestampqJÉEeFUcsigqJÉEeFubU)lightfilter_ogl_glsl_vs1x0.s3d_shadercodeq(hoq	}q
@@ -5,6 +5,6 @@
 (hoq
 }q
-(hJÉEeFhJÉEeFubU*bloom_bright_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU2include_shmap_filter_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU+bloom_combine_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU-gen_brightclear_ogl_glsl_fs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU&standard_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q
-(hJÉEeFhJÉEeFubU"bump_ogl_glsl_vs1x0.s3d_shadercodeq
+(hJÉEeFhJÉEeFubU#black_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU2include_shmap_filter_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU+bloom_combine_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU-gen_brightclear_ogl_glsl_fs1x0.s3d_shadercodeq(hoq}q(hJÉEeFhJÉEeFubU*bloom_bright_ogl_glsl_vs1x0.s3d_shadercodeq(hoq}q
+(hJÉEeFhJÉEeFubU&standard_ogl_glsl_vs1x0.s3d_shadercodeq
 (hoq
-}q(hJÉEeFhJÉEeFubU*bloom_smooth_ogl_glsl_vs1x0.s3d_shadercodeq (hoq!}q"(hJÉEeFhJÉEeFubU#black_ogl_glsl_fs1x0.s3d_shadercodeq#(hoq$}q%(hJÉEeFhJÉEeFubU"bump_ogl_glsl_fs1x0.s3d_shadercodeq&(hoq'}q((hJÉEeFhJÉEeFubU$partic_ogl_glsl_fs1x0.s3d_shadercodeq)(hoq*}q+(hJÉEeFhJÉEeFubU*bloom_smooth_ogl_glsl_fs1x0.s3d_shadercodeq,(hoq-}q.(hJÉEeFhJÉEeFubU#plain_ogl_glsl_vs1x0.s3d_shadercodeq/(hoq0}q1(hJÉEeFhJÉEeFubU/gen_shvol_extrude_ogl_glsl_vs1x0.s3d_shadercodeq2(hoq3}q4(hJÉEeFhJÉEeFubU#comic_ogl_glsl_vs1x0.s3d_shadercodeq5(hoq6}q7(hJÉEeFhJÉEeFubU-gen_brightclear_ogl_glsl_vs1x0.s3d_shadercodeq8(hoq9}q:(hJÉEeFhJÉEeFubU#shvol_ogl_glsl_vs1x0.s3d_shadercodeq;(hoq<}q=(hJÉEeFhJÉEeFubU#black_ogl_glsl_vs1x0.s3d_shadercodeq>(hoq?}q@(hJÉEeFhJÉEeFubU)lightfilter_ogl_glsl_fs1x0.s3d_shadercodeqA(hoqB}qC(hJÉEeFhJÉEeFubU#comic_ogl_glsl_fs1x0.s3d_shadercodeqD(hoqE}qF(hJÉEeFhJÉEeFubU&standard_ogl_glsl_fs1x0.s3d_shadercodeqG(hoqH}qI(hJÉEeFhJÉEeFubU,gen_shvol_view_ogl_glsl_vs1x0.s3d_shadercodeqJ(hoqK}qL(hJÉEeFhJÉEeFubU*bloom_bright_ogl_glsl_fs1x0.s3d_shadercodeqM(hoqN}qO(hJÉEeFhJÉEeFubU,include_shmap_filter_ogl_glsl.s3d_shadercodeqP(hoqQ}qR(hJÉEeFhJÉEeFubU,include_stddef_ogl_glsl_vs1x0.s3d_shadercodeqS(hoqT}qU(hJÉEeFhJÉEeFubu.
+}q(hJÉEeFhJÉEeFubU"bump_ogl_glsl_vs1x0.s3d_shadercodeq (hoq!}q"(hJÉEeFhJÉEeFubU+bloom_combine_ogl_glsl_fs1x0.s3d_shadercodeq#(hoq$}q%(hJÉEeFhJÉEeFubU*bloom_bright_ogl_glsl_fs1x0.s3d_shadercodeq&(hoq'}q((hJÉEeFhJÉEeFubU"bump_ogl_glsl_fs1x0.s3d_shadercodeq)(hoq*}q+(hJÉEeFhJÉEeFubU$partic_ogl_glsl_fs1x0.s3d_shadercodeq,(hoq-}q.(hJÉEeFhJÉEeFubU*bloom_smooth_ogl_glsl_fs1x0.s3d_shadercodeq/(hoq0}q1(hJÉEeFhJÉEeFubU#plain_ogl_glsl_vs1x0.s3d_shadercodeq2(hoq3}q4(hJÉEeFhJÉEeFubU/gen_shvol_extrude_ogl_glsl_vs1x0.s3d_shadercodeq5(hoq6}q7(hJÉEeFhJÉEeFubU#comic_ogl_glsl_vs1x0.s3d_shadercodeq8(hoq9}q:(hJÉEeFhJÉEeFubU#shvol_ogl_glsl_vs1x0.s3d_shadercodeq;(hoq<}q=(hJÉEeFhJÉEeFubU-gen_brightclear_ogl_glsl_vs1x0.s3d_shadercodeq>(hoq?}q@(hJÉEeFhJÉEeFubU)lightfilter_ogl_glsl_fs1x0.s3d_shadercodeqA(hoqB}qC(hJÉEeFhJÉEeFubU#comic_ogl_glsl_fs1x0.s3d_shadercodeqD(hoqE}qF(hJÉEeFhJÉEeFubU&standard_ogl_glsl_fs1x0.s3d_shadercodeqG(hoqH}qI(hJÉEeFhJÉEeFubU,gen_shvol_view_ogl_glsl_vs1x0.s3d_shadercodeqJ(hoqK}qL(hJÉEeFhJÉEeFubU#black_ogl_glsl_fs1x0.s3d_shadercodeqM(hoqN}qO(hJÉEeFhJÉEeFubU,include_shmap_filter_ogl_glsl.s3d_shadercodeqP(hoqQ}qR(hJÉEeFhJÉEeFubU,include_stddef_ogl_glsl_vs1x0.s3d_shadercodeqS(hoqT}qU(hJÉEeFhJÉEeFubu.
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/server/actor/.sconsign
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/server/actor/.sconsign	(revision 2486)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/server/actor/.sconsign	(revision 2503)
@@ -1,4 +1,4 @@
-}q(Userver.s3d_actorq(cSCons.Node.FS
+}q(Userverlink.s3d_actorq(cSCons.Node.FS
 BuildInfo
-qoq}q(U	timestampqJÊEeFUcsigqJÊEeFubUserverlink.s3d_actorq(hoq	}q
+qoq}q(U	timestampqJÊEeFUcsigqJÊEeFubUserver.s3d_actorq(hoq	}q
 (hJÊEeFhJÊEeFubu.
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/level/texture/.sconsign
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/level/texture/.sconsign	(revision 2486)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/level/texture/.sconsign	(revision 2503)
@@ -8,14 +8,14 @@
 (hoq}q(U	timestampqJÕEeFUcsigqJÕEeFubU
 GOLDFOIL.tgaq(hoq}q(U	timestampqJÕEeFUcsigqJÕEeFubU
-dummy1to2.tgaq(hoq}q(hJÕEeFhJÕEeFubU
-firecolor.tgaq(hoq}q
-(U	timestampq
-JÕEeFUcsigq
-JÕEeFubU
-dummy1to1.tgaq(hoq }q!(hJÕEeFhJÕEeFubUlamp.jpgq"(hoq#}q$(h
+dummy1to2.tgaq(hoq}q(hJÕEeFhJÕEeFubUsky_front_clamp.tgaq(hoq}q
+(hJÕEeFhJÕEeFubU
+dummy1to1.tgaq
+(hoq
+}q(hJÕEeFhJÕEeFubUlamp.jpgq (hoq!}q"(h
 J¢ÞµEh
-J¢ÞµEubUpillarbump2.ddsq%(hoq&}q'(U	timestampq(JÕEeFUcsigq)JÕEeFubU
-texnormal.tgaq*(hoq+}q,(hJÕEeFhJÕEeFubUsky_left_clamp.tgaq-(hoq.}q/(hJÕEeFhJÕEeFubUred.tgaq0(hoq1}q2(U	timestampq3J]ÜoFUcsigq4J]ÜoFubU
-dummy2to1.tgaq5(hoq6}q7(hJÕEeFhJÕEeFubUsky_front_clamp.tgaq8(hoq9}q:(hJÕEeFhJÕEeFubUpillarcolor.tgaq;(hoq<}q=(h(JÕEeFh)JÕEeFubUMtlPlat2_Bump.jpgq>(hoq?}q@(U	timestampqAJz8>UcsigqBJz8>ubUsima.tgaqC(hoqD}qE(U	timestampqFJÕEeFUcsigqGJÕEeFubUsky_right_clamp.tgaqH(hoqI}qJ(hJÕEeFhJÕEeFubU
+J¢ÞµEubUpillarbump2.ddsq#(hoq$}q%(U	timestampq&JÕEeFUcsigq'JÕEeFubU
+texnormal.tgaq((hoq)}q*(hJÕEeFhJÕEeFubUsky_left_clamp.tgaq+(hoq,}q-(hJÕEeFhJÕEeFubUred.tgaq.(hoq/}q0(U	timestampq1J]ÜoFUcsigq2J]ÜoFubU
+dummy2to1.tgaq3(hoq4}q5(hJÕEeFhJÕEeFubU
+firecolor.tgaq6(hoq7}q8(U	timestampq9JÕEeFUcsigq:JÕEeFubUpillarcolor.tgaq;(hoq<}q=(h&JÕEeFh'JÕEeFubUMtlPlat2_Bump.jpgq>(hoq?}q@(U	timestampqAJz8>UcsigqBJz8>ubUsima.tgaqC(hoqD}qE(U	timestampqFJÕEeFUcsigqGJÕEeFubUsky_right_clamp.tgaqH(hoqI}qJ(hJÕEeFhJÕEeFubU
 BENEDETI.tgaqK(hoqL}qM(hFJÕEeFhGJÕEeFubU
 laborwall.jpgqN(hoqO}qP(h
@@ -25,7 +25,7 @@
 JÕEeFubU
 dummy4to1.tgaqY(hoqZ}q[(hJÕEeFhJÕEeFubUsky_top_clamp.tgaq\(hoq]}q^(hJÕEeFhJÕEeFubU
-STEELPLT.jpgq_(hoq`}qa(U	timestampqbJz8>UcsigqcJz8>ubU
-particle.tgaqd(hoqe}qf(U	timestampqgJÕEeFUcsigqhJÕEeFubU	green.tgaqi(hoqj}qk(h3JmÜoFh4JmÜoFubUszar.pngql(hoqm}qn(U	timestampqoJÀpmFUcsigqpJÀpmFubU	white.tgaqq(hoqr}qs(h3J'§nFh4J'§nFubU
-steelplt.jpgqt(hoqu}qv(U	timestampqwJz8>UcsigqxJz8>ubU
+particle.tgaq_(hoq`}qa(U	timestampqbJÕEeFUcsigqcJÕEeFubU	green.tgaqd(hoqe}qf(h1JmÜoFh2JmÜoFubUszar.pngqg(hoqh}qi(U	timestampqjJÀpmFUcsigqkJÀpmFubU
+steelplt.jpgql(hoqm}qn(U	timestampqoJz8>UcsigqpJz8>ubU	white.tgaqq(hoqr}qs(h1J'§nFh2J'§nFubU
+STEELPLT.jpgqt(hoqu}qv(U	timestampqwJz8>UcsigqxJz8>ubU
 greenside.tgaqy(hoqz}q{(h
 JÕEeFh
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/level/shader/world.s3d_shader
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/level/shader/world.s3d_shader	(revision 2453)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/level/shader/world.s3d_shader	(revision 2503)
@@ -799,3 +799,297 @@
     }
 }
+{
+    name "new_shvol_light_soft_tetra_new"
+    sort "light_softshvol_tetra"
+    ident "eng_shader_std.group"
+    param
+    {
+        env "shaderenv"
+        init_method "init_method"
+        child_array
+        {
+            ident "eng_shader_std.lightparam"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                diffuse 0.419608 0.419608 0.419608
+                specular 0.0 0.0 0.0
+                range 8.3
+                multiplier 0.02
+                diffuse_var "light_diffuse"
+                ambient_var "light_ambient"
+                specular_var "light_specular"
+                cenrange_var "light_cenrange"
+            }
+        }
+        {
+            ident "eng_shader_shvol.lenparam"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                max_abs_len 20.0
+                max_rel_len 20.0
+                shvolparam_var "light_shvolparam"
+            }
+        }
+        {
+            ident "eng_shader_std.constfloat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                val 0.25
+                val_var "size"
+            }
+        }
+        {
+            ident "eng_shader_std.lightenter"
+            param
+            {
+                env "shaderenv"
+                cenrange_var "light_cenrange"
+                enter_array
+                {
+                    triggers "main_trigger" "mirror_trigger"
+                    method "main_method"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.lightenum"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -99999
+                cenrange_var "light_cenrange"
+                coll_var "receivers"
+            }
+        }
+        {
+            ident "eng_shader_shvol.combineparam"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                lenparam_var "light_shvolparam"
+                bloat_var "size"
+                bloat_scale 0.5
+                shvolparam_var "light_bloated_shvolparam"
+            }
+        }
+        {
+            ident "eng_shader_shvol.enum"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -99999
+                cenrange_var "light_cenrange"
+                shvolparam_var "light_bloated_shvolparam"
+                coll_var "occluders"
+            }
+        }
+        {
+            ident "eng_shader_std.totex"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                new_method "totex_method"
+                rank -99999
+                size_scale 1.0
+                destprop_antialias 0
+                dest_array
+                {
+                    from_var ""
+                    to_var "light_brighttex"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_float 0
+                    texprop_comp 4
+                    texprop_bitspercomp 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+                attrmat_var "light_brightmat"
+            }
+        }
+        {
+            ident "eng_shader_std.collexec"
+            param
+            {
+                env "shaderenv"
+                methods "totex_method"
+                coll_var "receivers"
+                rank 99999
+                exec_trigger "gen_brightclear_trigger"
+                exec_param_array
+            }
+        }
+        {
+            ident "eng_shader_special.multilight"
+            param
+            {
+                env "shaderenv"
+                first_methods "totex_method"
+                cenrange_var "light_cenrange"
+                projmat_var ""
+                scale_var "size"
+                sub_rank 99999
+                sub_method "sub_method"
+                sub_cenrange_var "sub_light_cenrange"
+                sub_projmat_var ""
+                sub_bloat_var "sub_light_bloat"
+                sub_intens_var "sub_light_intens"
+                elem_array
+                {
+                    offs -0.5 -0.5 -0.5
+                    bloat 0.0
+                }
+                {
+                    offs 0.5 0.5 -0.5
+                    bloat 0.0
+                }
+                {
+                    offs 0.5 -0.5 0.5
+                    bloat 0.0
+                }
+                {
+                    offs -0.5 0.5 0.5
+                    bloat 0.0
+                }
+            }
+        }
+        {
+            ident "eng_shader_shvol.combineparam"
+            param
+            {
+                env "shaderenv"
+                methods "sub_method"
+                lenparam_var "light_shvolparam"
+                bloat_var "sub_light_bloat"
+                bloat_scale 1.0
+                shvolparam_var "sub_light_shvolparam"
+            }
+        }
+        {
+            ident "eng_shader_shvol.perform"
+            param
+            {
+                env "shaderenv"
+                methods "sub_method"
+                rank 99999
+                coll_var "occluders"
+                mark_trigger "shvol_mark_trigger"
+                mark_param_array
+                {
+                    src_var "sub_light_cenrange"
+                    dest_extvar "ext_light_cenrange"
+                }
+                {
+                    src_var "sub_light_shvolparam"
+                    dest_extvar "ext_light_shvolparam"
+                }
+                paint_method ""
+                unmark_shaderprog_ident
+                    "levelutil/shader/prog/plain_pointcol.s3d_shaderprog_run"
+                unmark_shaderprog_param_array
+                unmark_blend_col_src_fac "one"
+                unmark_blend_col_dest_fac "one"
+                unmark_neg 1
+                unmark_color_var "sub_light_intens"
+                unmark_alpha 0.0
+            }
+        }
+        {
+            ident "eng_shader_std.constvec"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                val 0.5 0.0 0.0 0.0
+                val_var "filterinfo"
+            }
+        }
+        {
+            ident "eng_shader_special.filter"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -99999
+                iter_start 5
+                iter_end 0
+                iter_step -1
+                width_scale 1.0
+                height_scale 1.0
+                destprop_antialias 0
+                passinfo_var "passinfo"
+                src_array "light_brighttex"
+                dest_array
+                {
+                    from_var ""
+                    to_var "light_brighttex"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_float 0
+                    texprop_comp 4
+                    texprop_bitspercomp 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+                shaderprog_ident
+                    "levelutil/shader/prog/lightfilter.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "passinfo"
+                    dest_progvar "prog_passinfo"
+                }
+                {
+                    src_var "filterinfo"
+                    dest_progvar "prog_filterinfo"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.collexec"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                coll_var "receivers"
+                rank 32000
+                exec_trigger "lightbright_trigger"
+                exec_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_extvar "ext_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_extvar "ext_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_extvar "ext_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_extvar "ext_light_specular"
+                }
+                {
+                    src_var "light_brighttex"
+                    dest_extvar "ext_light_brighttex"
+                }
+                {
+                    src_var "light_brightmat"
+                    dest_extvar "ext_light_brightmat"
+                }
+            }
+        }
+    }
+}
 $
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/collect.txt
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/collect.txt	(revision 2486)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/collect.txt	(revision 2503)
@@ -49,4 +49,5 @@
 level/texture/green.tga
 level/texture/greenside.tga
+level/texture/headed.tga
 level/texture/laborwall.jpg
 level/texture/lamp.jpg
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/res_targets.lst
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/res_targets.lst	(revision 2486)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/res_targets.lst	(revision 2503)
@@ -29,17 +29,17 @@
     "level/texture/dummy4to1.tga" "level/texture/firecolor.tga"
     "level/texture/GOLDFOIL.tga" "level/texture/green.tga"
-    "level/texture/greenside.tga" "level/texture/laborwall.jpg"
-    "level/texture/lamp.jpg" "level/texture/MtlPlat2.jpg"
-    "level/texture/MtlPlat2_Bump.jpg" "level/texture/particle.tga"
-    "level/texture/pillarbump2.dds" "level/texture/pillarbump3.tga"
-    "level/texture/pillarcolor.tga" "level/texture/red.tga"
-    "level/texture/redbackground.tga" "level/texture/redthing.tga"
-    "level/texture/sima.tga" "level/texture/sky_back_clamp.tga"
-    "level/texture/sky_bottom_clamp.tga" "level/texture/sky_front_clamp.tga"
-    "level/texture/sky_left_clamp.tga" "level/texture/sky_right_clamp.tga"
-    "level/texture/sky_top_clamp.tga" "level/texture/steelplt.jpg"
-    "level/texture/szar.png" "level/texture/texdiffuse.tga"
-    "level/texture/texnormal.tga" "level/texture/white.tga"
-    "levelutil/actor/door.s3d_perch_run"
+    "level/texture/greenside.tga" "level/texture/headed.tga"
+    "level/texture/laborwall.jpg" "level/texture/lamp.jpg"
+    "level/texture/MtlPlat2.jpg" "level/texture/MtlPlat2_Bump.jpg"
+    "level/texture/particle.tga" "level/texture/pillarbump2.dds"
+    "level/texture/pillarbump3.tga" "level/texture/pillarcolor.tga"
+    "level/texture/red.tga" "level/texture/redbackground.tga"
+    "level/texture/redthing.tga" "level/texture/sima.tga"
+    "level/texture/sky_back_clamp.tga" "level/texture/sky_bottom_clamp.tga"
+    "level/texture/sky_front_clamp.tga" "level/texture/sky_left_clamp.tga"
+    "level/texture/sky_right_clamp.tga" "level/texture/sky_top_clamp.tga"
+    "level/texture/steelplt.jpg" "level/texture/szar.png"
+    "level/texture/texdiffuse.tga" "level/texture/texnormal.tga"
+    "level/texture/white.tga" "levelutil/actor/door.s3d_perch_run"
     "levelutil/shader/basic.s3d_shader_run"
     "levelutil/shader/comic.s3d_shader_run"
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/levelutil/actor/door.s3d_perch_lst
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/levelutil/actor/door.s3d_perch_lst	(revision 2499)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/levelutil/actor/door.s3d_perch_lst	(revision 2503)
@@ -1,4 +1,4 @@
                                         # Perch byte-code assembly file:
-                                        # Time stamp: 2007-07-03T09:18:26,446
+                                        # Time stamp: 2007-07-03T11:11:23,312
                                         # Shark 3D (tm) Engine (www.shark3d.com)
                                         # Copyright 1996-2006 Spinor GmbH
@@ -12,364 +12,469 @@
 00001e        95                        data.intcompact 21
                                         # Info string 0:
-00001f        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|14,1"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 31 34 2c 31 00 
+00001f        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|14,1"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 31 34 2c 31 
+              00 
                                         # Info string 1:
-000075        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|18,6"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 31 38 2c 36 00 
+000098        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|18,6"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 31 38 2c 36 
+              00 
                                         # Info string 2:
-0000cb        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|20,25"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 32 30 2c 32 35 00 
+000111        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|20,25"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 32 30 2c 32 
+              35 00 
                                         # Info string 3:
-000122        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|20,14"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 32 30 2c 31 34 00 
+00018b        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|20,14"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 32 30 2c 31 
+              34 00 
                                         # Info string 4:
-000179        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|21,28"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 32 31 2c 32 38 00 
+000205        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|21,28"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 32 31 2c 32 
+              38 00 
                                         # Info string 5:
-0001d0        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|21,17"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 32 31 2c 31 37 00 
+00027f        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|21,17"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 32 31 2c 31 
+              37 00 
                                         # Info string 6:
-000227        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|24,6"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 32 34 2c 36 00 
+0002f9        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|24,6"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 32 34 2c 36 
+              00 
                                         # Info string 7:
-00027d        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|28,6"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 32 38 2c 36 00 
+000372        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|28,6"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 32 38 2c 36 
+              00 
                                         # Info string 8:
-0002d3        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|29,14"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 32 39 2c 31 34 00 
+0003eb        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|29,14"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 32 39 2c 31 
+              34 00 
                                         # Info string 9:
-00032a        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|30,17"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 33 30 2c 31 37 00 
+000465        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|30,17"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 33 30 2c 31 
+              37 00 
                                         # Info string 10:
-000381        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|31,35"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 33 31 2c 33 35 00 
+0004df        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|31,35"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 33 31 2c 33 
+              35 00 
                                         # Info string 11:
-0003d8        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|32,5"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 33 32 2c 35 00 
+000559        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|32,5"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 33 32 2c 35 
+              00 
                                         # Info string 12:
-00042e        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|36,6"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 33 36 2c 36 00 
+0005d2        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|36,6"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 33 36 2c 36 
+              00 
                                         # Info string 13:
-000484        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|37,14"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 33 37 2c 31 34 00 
+00064b        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|37,14"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 33 37 2c 31 
+              34 00 
                                         # Info string 14:
-0004db        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|38,17"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 33 38 2c 31 37 00 
+0006c5        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|38,17"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 33 38 2c 31 
+              37 00 
                                         # Info string 15:
-000532        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|39,35"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 33 39 2c 33 35 00 
+00073f        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|39,35"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 33 39 2c 33 
+              35 00 
                                         # Info string 16:
-000589        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|40,5"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 34 30 2c 35 00 
+0007b9        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|40,5"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 34 30 2c 35 
+              00 
                                         # Info string 17:
-0005df        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|44,6"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 34 34 2c 36 00 
+000832        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|44,6"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 34 34 2c 36 
+              00 
                                         # Info string 18:
-000635        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|52,6"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 35 32 2c 36 00 
+0008ab        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|52,6"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 35 32 2c 36 
+              00 
                                         # Info string 19:
-00068b        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|60,6"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 36 30 2c 36 00 
+000924        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|60,6"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 36 30 2c 36 
+              00 
                                         # Info string 20:
-0006e1        64 3a 2f 53 68 61 72 6b   data.str "d:/Shark3D/GTP/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|61,17"
-              33 44 2f 47 54 50 2f 76 
-              65 72 73 69 6f 6e 31 36 
-              34 78 31 32 75 2f 43 6c 
-              65 61 6e 54 68 65 4c 61 
-              62 2f 73 72 63 2f 72 65 
-              73 2f 6c 65 76 65 6c 75 
-              74 69 6c 2f 61 63 74 6f 
-              72 2f 64 6f 6f 72 2e 73 
-              33 64 5f 70 65 72 63 68 
-              7c 36 31 2c 31 37 00 
+00099d        63 3a 2f 47 61 6d 65 54   data.str "c:/GameToolsSVN/gtp/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/src/res/levelutil/actor/door.s3d_perch|61,17"
+              6f 6f 6c 73 53 56 4e 2f 
+              67 74 70 2f 74 72 75 6e 
+              6b 2f 41 70 70 2f 44 65 
+              6d 6f 73 2f 49 6c 6c 75 
+              6d 2f 53 68 61 72 6b 33 
+              44 2f 76 65 72 73 69 6f 
+              6e 31 36 34 78 31 32 75 
+              2f 43 6c 65 61 6e 54 68 
+              65 4c 61 62 2f 73 72 63 
+              2f 72 65 73 2f 6c 65 76 
+              65 6c 75 74 69 6c 2f 61 
+              63 74 6f 72 2f 64 6f 6f 
+              72 2e 73 33 64 5f 70 65 
+              72 63 68 7c 36 31 2c 31 
+              37 00 
                                         
                                         # Float constant cnt:
-000738        80                        data.intcompact 0
+000a17        80                        data.intcompact 0
                                         
                                         # String constant cnt:
-000739        91                        data.intcompact 17
+000a18        91                        data.intcompact 17
                                         # String constant 0:
-00073a        69 6e 69 74 41 63 74 6f   data.str "initActor"
+000a19        69 6e 69 74 41 63 74 6f   data.str "initActor"
               72 00 
                                         # String constant 1:
-000744        2d 76 00                  data.str "-v"
+000a23        2d 76 00                  data.str "-v"
                                         # String constant 2:
-000747        61 63 74 75 00            data.str "actu"
+000a26        61 63 74 75 00            data.str "actu"
                                         # String constant 3:
-00074c        73 70 65 61 6b 65 72 00   data.str "speaker"
+000a2b        73 70 65 61 6b 65 72 00   data.str "speaker"
                                         # String constant 4:
-000754        66 69 6e 69 73 68 41 63   data.str "finishActor"
+000a33        66 69 6e 69 73 68 41 63   data.str "finishActor"
               74 6f 72 00 
                                         # String constant 5:
-000760        6f 70 65 6e 00            data.str "open"
+000a3f        6f 70 65 6e 00            data.str "open"
                                         # String constant 6:
-000765        70 6c 61 79 5f 74 6f 5f   data.str "play_to_end"
+000a44        70 6c 61 79 5f 74 6f 5f   data.str "play_to_end"
               65 6e 64 00 
                                         # String constant 7:
-000771        73 74 61 72 74 00         data.str "start"
+000a50        73 74 61 72 74 00         data.str "start"
                                         # String constant 8:
-000777        67 65 74 5f 64 75 72 61   data.str "get_duration"
+000a56        67 65 74 5f 64 75 72 61   data.str "get_duration"
               74 69 6f 6e 00 
                                         # String constant 9:
-000784        3e 66 00                  data.str ">f"
+000a63        3e 66 00                  data.str ">f"
                                         # String constant 10:
-000787        73 6f 75 6e 64 4f 66 66   data.str "soundOff"
+000a66        73 6f 75 6e 64 4f 66 66   data.str "soundOff"
               00 
                                         # String constant 11:
-000790        63 6c 6f 73 65 00         data.str "close"
+000a6f        63 6c 6f 73 65 00         data.str "close"
                                         # String constant 12:
-000796        70 6c 61 79 5f 74 6f 5f   data.str "play_to_start"
+000a75        70 6c 61 79 5f 74 6f 5f   data.str "play_to_start"
               73 74 61 72 74 00 
                                         # String constant 13:
-0007a4        65 6e 74 65 72 00         data.str "enter"
+000a83        65 6e 74 65 72 00         data.str "enter"
                                         # String constant 14:
-0007aa        2d 76 3c 61 00            data.str "-v<a"
+000a89        2d 76 3c 61 00            data.str "-v<a"
                                         # String constant 15:
-0007af        6c 65 61 76 65 00         data.str "leave"
+000a8e        6c 65 61 76 65 00         data.str "leave"
                                         # String constant 16:
-0007b5        73 74 6f 70 00            data.str "stop"
+000a94        73 74 6f 70 00            data.str "stop"
                                         
                                         # Main info string:
-0007ba        80                        data.intcompact 0
+000a99        80                        data.intcompact 0
                                         
                                         # Exported function cnt:
-0007bb        85                        data.intcompact 5
+000a9a        85                        data.intcompact 5
                                         # Exported function "initActor", dynamic linkage "-v":
-0007bc        81                        data.intcompact 1
-0007bd        80                        data.intcompact 0
-0007be        81                        data.intcompact 1
-0007bf        80                        data.labdist l10 l1
+000a9b        81                        data.intcompact 1
+000a9c        80                        data.intcompact 0
+000a9d        81                        data.intcompact 1
+000a9e        80                        data.labdist l10 l1
                                         # Exported function "finishActor", dynamic linkage "-v":
-0007c0        86                        data.intcompact 6
-0007c1        84                        data.intcompact 4
-0007c2        81                        data.intcompact 1
-0007c3        94                        data.labdist l10 l2
+000a9f        86                        data.intcompact 6
+000aa0        84                        data.intcompact 4
+000aa1        81                        data.intcompact 1
+000aa2        94                        data.labdist l10 l2
                                         # Exported function "enter", dynamic linkage "-v<a":
-0007c4        91                        data.intcompact 17
-0007c5        8d                        data.intcompact 13
-0007c6        8e                        data.intcompact 14
-0007c7        00 d9                     data.labdist l10 l5
+000aa3        91                        data.intcompact 17
+000aa4        8d                        data.intcompact 13
+000aa5        8e                        data.intcompact 14
+000aa6        00 d9                     data.labdist l10 l5
                                         # Exported function "leave", dynamic linkage "-v<a":
-0007c9        92                        data.intcompact 18
-0007ca        8f                        data.intcompact 15
-0007cb        8e                        data.intcompact 14
-0007cc        00 f0                     data.labdist l10 l6
+000aa8        92                        data.intcompact 18
+000aa9        8f                        data.intcompact 15
+000aaa        8e                        data.intcompact 14
+000aab        00 f0                     data.labdist l10 l6
                                         # Exported function "soundOff", dynamic linkage "-v":
-0007ce        93                        data.intcompact 19
-0007cf        8a                        data.intcompact 10
-0007d0        81                        data.intcompact 1
-0007d1        01 87                     data.labdist l10 l7
+000aad        93                        data.intcompact 19
+000aae        8a                        data.intcompact 10
+000aaf        81                        data.intcompact 1
+000ab0        01 87                     data.labdist l10 l7
                                         
                                         # Script variable of type "i" cnt:
-0007d3        81                        data.intcompact 1
+000ab2        81                        data.intcompact 1
                                         # Script variable of type "i" entry 0:
-0007d4        6d 5f 69 6e 73 69 64 65   data.str "m_inside"
+000ab3        6d 5f 69 6e 73 69 64 65   data.str "m_inside"
               00 
                                         # Script variable of type "f" cnt:
-0007dd        80                        data.intcompact 0
+000abc        80                        data.intcompact 0
                                         # Script variable of type "s" cnt:
-0007de        80                        data.intcompact 0
+000abd        80                        data.intcompact 0
                                         # Script variable of type "o" cnt:
-0007df        80                        data.intcompact 0
+000abe        80                        data.intcompact 0
                                         # Script variable of type "a" cnt:
-0007e0        82                        data.intcompact 2
+000abf        82                        data.intcompact 2
                                         # Script variable of type "a" entry 0:
-0007e1        6d 5f 61 63 74 75 00      data.str "m_actu"
+000ac0        6d 5f 61 63 74 75 00      data.str "m_actu"
                                         # Script variable of type "a" entry 1:
-0007e8        6d 5f 73 70 65 61 6b 65   data.str "m_speaker"
+000ac7        6d 5f 73 70 65 61 6b 65   data.str "m_speaker"
               72 00 
                                         # Script variable of type "ir" cnt:
-0007f2        80                        data.intcompact 0
+000ad1        80                        data.intcompact 0
                                         # Script variable of type "fr" cnt:
-0007f3        80                        data.intcompact 0
+000ad2        80                        data.intcompact 0
                                         # Script variable of type "sr" cnt:
-0007f4        80                        data.intcompact 0
+000ad3        80                        data.intcompact 0
                                         # Script variable of type "or" cnt:
-0007f5        80                        data.intcompact 0
+000ad4        80                        data.intcompact 0
                                         # Script variable of type "ar" cnt:
-0007f6        80                        data.intcompact 0
+000ad5        80                        data.intcompact 0
                                         
                                         # Code size:
-0007f7        01 8f                     data.labdist l10 l11
+000ad6        01 8f                     data.labdist l10 l11
                                         
                                         # Code:
@@ -378,98 +483,98 @@
                                         # Function "initActor" of type "@void-", dynamic linkage "-v":
 l1:
-0007f9 000000 32                        null.i
-0007fa 000001 0a 80                     storescr.i 0
-0007fc 000003 7a 82                     const.s 2
-0007fe 000005 bc 82                     bi.getParamStr 2
-000800 000007 c4 83                     bi.findActor 3
-000802 000009 0e 80                     storescr.a 0
-000804 00000b 7a 83                     const.s 3
-000806 00000d bc 84                     bi.getParamStr 4
-000808 00000f c4 85                     bi.findActor 5
-00080a 000011 0e 81                     storescr.a 1
-00080c 000013 7f                        return
+000ad8 000000 32                        null.i
+000ad9 000001 0a 80                     storescr.i 0
+000adb 000003 7a 82                     const.s 2
+000add 000005 bc 82                     bi.getParamStr 2
+000adf 000007 c4 83                     bi.findActor 3
+000ae1 000009 0e 80                     storescr.a 0
+000ae3 00000b 7a 83                     const.s 3
+000ae5 00000d bc 84                     bi.getParamStr 4
+000ae7 00000f c4 85                     bi.findActor 5
+000ae9 000011 0e 81                     storescr.a 1
+000aeb 000013 7f                        return
                                         
                                         # Function "finishActor" of type "@void-", dynamic linkage "-v":
 l2:
-00080d 000014 7f                        return
+000aec 000014 7f                        return
                                         
                                         # Function "open" of type "@void-", dynamic linkage "":
 l3:
-00080e 000015 29 81                     changeloc.f 1
-000810 000017 04 80                     loadscr.a 0
-000812 000019 7a 86                     const.s 6
-000814 00001b ca 88 81                  bi.a.dyncall 8 1
-000817 00001e 04 81                     loadscr.a 1
-000819 000020 7a 87                     const.s 7
-00081b 000022 ca 89 81                  bi.a.dyncall 9 1
-00081e 000025 04 80                     loadscr.a 0
-000820 000027 7a 88                     const.s 8
-000822 000029 ca 8a 89                  bi.a.dyncall 10 9
-000825 00002c 1f ff                     storeloc.f -1
-000827 00002e 7a 8a                     const.s 10
-000829 000030 15 ff                     loadloc.f -1
-00082b 000032 c8 8b                     bi.evtAppoint 11
-00082d 000034 29 ff                     changeloc.f -1
-00082f 000036 7f                        return
+000aed 000015 29 81                     changeloc.f 1
+000aef 000017 04 80                     loadscr.a 0
+000af1 000019 7a 86                     const.s 6
+000af3 00001b ca 88 81                  bi.a.dyncall 8 1
+000af6 00001e 04 81                     loadscr.a 1
+000af8 000020 7a 87                     const.s 7
+000afa 000022 ca 89 81                  bi.a.dyncall 9 1
+000afd 000025 04 80                     loadscr.a 0
+000aff 000027 7a 88                     const.s 8
+000b01 000029 ca 8a 89                  bi.a.dyncall 10 9
+000b04 00002c 1f ff                     storeloc.f -1
+000b06 00002e 7a 8a                     const.s 10
+000b08 000030 15 ff                     loadloc.f -1
+000b0a 000032 c8 8b                     bi.evtAppoint 11
+000b0c 000034 29 ff                     changeloc.f -1
+000b0e 000036 7f                        return
                                         
                                         # Function "close" of type "@void-", dynamic linkage "":
 l4:
-000830 000037 29 81                     changeloc.f 1
-000832 000039 04 80                     loadscr.a 0
-000834 00003b 7a 8c                     const.s 12
-000836 00003d ca 8d 81                  bi.a.dyncall 13 1
-000839 000040 04 81                     loadscr.a 1
-00083b 000042 7a 87                     const.s 7
-00083d 000044 ca 8e 81                  bi.a.dyncall 14 1
-000840 000047 04 80                     loadscr.a 0
-000842 000049 7a 88                     const.s 8
-000844 00004b ca 8f 89                  bi.a.dyncall 15 9
-000847 00004e 1f ff                     storeloc.f -1
-000849 000050 7a 8a                     const.s 10
-00084b 000052 15 ff                     loadloc.f -1
-00084d 000054 c8 90                     bi.evtAppoint 16
-00084f 000056 29 ff                     changeloc.f -1
-000851 000058 7f                        return
+000b0f 000037 29 81                     changeloc.f 1
+000b11 000039 04 80                     loadscr.a 0
+000b13 00003b 7a 8c                     const.s 12
+000b15 00003d ca 8d 81                  bi.a.dyncall 13 1
+000b18 000040 04 81                     loadscr.a 1
+000b1a 000042 7a 87                     const.s 7
+000b1c 000044 ca 8e 81                  bi.a.dyncall 14 1
+000b1f 000047 04 80                     loadscr.a 0
+000b21 000049 7a 88                     const.s 8
+000b23 00004b ca 8f 89                  bi.a.dyncall 15 9
+000b26 00004e 1f ff                     storeloc.f -1
+000b28 000050 7a 8a                     const.s 10
+000b2a 000052 15 ff                     loadloc.f -1
+000b2c 000054 c8 90                     bi.evtAppoint 16
+000b2e 000056 29 ff                     changeloc.f -1
+000b30 000058 7f                        return
                                         
                                         # Function "enter" of type "@void-<@actor", dynamic linkage "-v<a":
 l5:
-000852 000059 2c 81                     changeloc.a 1
-000854 00005b 22 ff                     storeloc.a -1
-000856 00005d 00 80                     loadscr.i 0
-000858 00005f 32                        null.i
-000859 000060 46                        equal.i
-00085a 000061 7c 83                     jumpz l8
-00085c 000063 7e 7f af                  call l3
+000b31 000059 2c 81                     changeloc.a 1
+000b33 00005b 22 ff                     storeloc.a -1
+000b35 00005d 00 80                     loadscr.i 0
+000b37 00005f 32                        null.i
+000b38 000060 46                        equal.i
+000b39 000061 7c 83                     jumpz l8
+000b3b 000063 7e 7f af                  call l3
 l8:
-00085f 000066 00 80                     loadscr.i 0
-000861 000068 78 81                     const.i 1
-000863 00006a 87                        bi.i.add
-000864 00006b 0a 80                     storescr.i 0
-000866 00006d 2c ff                     changeloc.a -1
-000868 00006f 7f                        return
+000b3e 000066 00 80                     loadscr.i 0
+000b40 000068 78 81                     const.i 1
+000b42 00006a 87                        bi.i.add
+000b43 00006b 0a 80                     storescr.i 0
+000b45 00006d 2c ff                     changeloc.a -1
+000b47 00006f 7f                        return
                                         
                                         # Function "leave" of type "@void-<@actor", dynamic linkage "-v<a":
 l6:
-000869 000070 2c 81                     changeloc.a 1
-00086b 000072 22 ff                     storeloc.a -1
-00086d 000074 00 80                     loadscr.i 0
-00086f 000076 78 81                     const.i 1
-000871 000078 88                        bi.i.sub
-000872 000079 0a 80                     storescr.i 0
-000874 00007b 00 80                     loadscr.i 0
-000876 00007d 32                        null.i
-000877 00007e 46                        equal.i
-000878 00007f 7c 83                     jumpz l9
-00087a 000081 7e 7f b3                  call l4
+000b48 000070 2c 81                     changeloc.a 1
+000b4a 000072 22 ff                     storeloc.a -1
+000b4c 000074 00 80                     loadscr.i 0
+000b4e 000076 78 81                     const.i 1
+000b50 000078 88                        bi.i.sub
+000b51 000079 0a 80                     storescr.i 0
+000b53 00007b 00 80                     loadscr.i 0
+000b55 00007d 32                        null.i
+000b56 00007e 46                        equal.i
+000b57 00007f 7c 83                     jumpz l9
+000b59 000081 7e 7f b3                  call l4
 l9:
-00087d 000084 2c ff                     changeloc.a -1
-00087f 000086 7f                        return
+000b5c 000084 2c ff                     changeloc.a -1
+000b5e 000086 7f                        return
                                         
                                         # Function "soundOff" of type "@void-", dynamic linkage "-v":
 l7:
-000880 000087 04 81                     loadscr.a 1
-000882 000089 7a 90                     const.s 16
-000884 00008b ca 94 81                  bi.a.dyncall 20 1
-000887 00008e 7f                        return
+000b5f 000087 04 81                     loadscr.a 1
+000b61 000089 7a 90                     const.s 16
+000b63 00008b ca 94 81                  bi.a.dyncall 20 1
+000b66 00008e 7f                        return
                                         
                                         # End of assembly file.
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/level/model/worldmodel.s3d_model_log
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/level/model/worldmodel.s3d_model_log	(revision 2499)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/tmp/res/level/model/worldmodel.s3d_model_log	(revision 2503)
@@ -1810,8 +1810,8 @@
 }
 {
-    name "head_group_2"
-    bound_min -0.351627 -0.391826 -0.436515
-    bound_max 0.351627 0.391824 0.436515
-    texture_cnt 0
+    name "diffuse_head"
+    bound_min -0.351627 -0.391825 -0.436515
+    bound_max 0.351626 0.391824 0.436515
+    texture_cnt 2
     bone_cnt 0
     variant_array
@@ -1845,11 +1845,11 @@
         has_tangentv 0
         has_coloralpha 0
-        tex_layer_cnt 0
-        tex_attr_cnt 0
+        tex_layer_cnt 2
+        tex_attr_cnt 2
     }
 }
 {
     name "head"
-    bound_min -0.28564 -0.426236 -0.358121
+    bound_min -0.285639 -0.426236 -0.358122
     bound_max 0.252187 0.436978 0.360846
     texture_cnt 2
@@ -1921,3 +1921,75 @@
     }
 }
+{
+    name "Box04"
+    bound_min -0.151901 -0.19194 0.0
+    bound_max 0.151901 0.19194 0.289064
+    texture_cnt 2
+    bone_cnt 0
+    variant_array
+    {
+        variant_idx 0
+        kind_pat "render|geo"
+        packet_max_vert_cnt 0
+        packet_max_tri_cnt 0
+        packet_max_bone_cnt 32
+        prec 0.0
+        usage "geo" "render"
+        optimized 1
+        closed 0
+        sealed 0
+        caulked 0
+        family_cnt 1
+        vert_cnt 24
+        vert_ess_cnt 24
+        tri_cnt 12
+        tri_ess_cnt 12
+        bone_idx_cnt 0
+        bone_idx_ess_cnt 0
+        packet_cnt 1
+        key_cnt 1
+        has_bones 0
+        has_bone_subscr 0
+        has_opp 1
+        has_neigh 0
+        has_normal 1
+        has_tangentu 1
+        has_tangentv 1
+        has_coloralpha 0
+        tex_layer_cnt 2
+        tex_attr_cnt 1
+    }
+    {
+        variant_idx 1
+        kind_pat "sep_neigh"
+        packet_max_vert_cnt 200
+        packet_max_tri_cnt 200
+        packet_max_bone_cnt 32
+        prec 0.0
+        usage "shvol_occl"
+        optimized 1
+        closed 1
+        sealed 0
+        caulked 0
+        family_cnt 1
+        vert_cnt 8
+        vert_ess_cnt 8
+        tri_cnt 12
+        tri_ess_cnt 12
+        bone_idx_cnt 0
+        bone_idx_ess_cnt 0
+        packet_cnt 1
+        key_cnt 1
+        has_bones 0
+        has_bone_subscr 0
+        has_opp 0
+        has_neigh 1
+        has_normal 0
+        has_tangentu 0
+        has_tangentv 0
+        has_coloralpha 0
+        tex_layer_cnt 0
+        tex_attr_cnt 0
+    }
+}
 $
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/bin/res/levelutil/shader/ordinary.s3d_shader_run
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/bin/res/levelutil/shader/ordinary.s3d_shader_run	(revision 2499)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/bin/res/levelutil/shader/ordinary.s3d_shader_run	(revision 2503)
@@ -2,5 +2,5 @@
 shader_array
 {
-    name "ordinary"
+    name "ordinary_and_diffuse"
     ident "eng_shader_std.group"
     param
@@ -589,252 +589,4 @@
             }
         }
-    }
-}
-{
-    name "ordinary_diffuse"
-    ident "eng_shader_std.group"
-    param
-    {
-        env "shaderenv"
-        init_method "init_method"
-        child_array
-        {
-            ident "eng_shader_std.modelmesh"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                mesh_var "mesh"
-                texchan_var_array "tex0" "normalmap"
-                tex_attr_var_array "attr0"
-                usage "render"
-                tangentu_attr_var "tangentu"
-                tangentv_attr_var "tangentv"
-            }
-        }
-        {
-            ident "eng_shader_std.modelmesh"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                usage "shvol_occl"
-                mesh_var "mesh_shvol_occl"
-                texchan_var_array
-                tex_attr_var_array
-            }
-        }
-        {
-            ident "eng_shader_std.meshenter"
-            param
-            {
-                env "shaderenv"
-                mesh_var_array "mesh"
-                insp_ident "insp_shader_bound"
-                insp_rank 80000
-                insp_color 1.0 0.0 0.0
-                enter_array
-                {
-                    triggers "main_trigger" "mirror_trigger"
-                    method "main_method"
-                }
-                {
-                    triggers "gtp_distance_impostor_trigger"
-                    method "gtp_distance_impostor_method"
-                }
-                {
-                    triggers "gen_shmap_trigger"
-                    method "gen_shmap_method"
-                }
-                {
-                    triggers "light_trigger"
-                    method "light_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                }
-                {
-                    triggers "lightmild_trigger"
-                    method "lightmild_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                }
-                {
-                    triggers "lightbright_trigger"
-                    method "lightbright_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                    {
-                        src_extvar "ext_light_brighttex"
-                        dest_var "light_brighttex"
-                    }
-                    {
-                        src_extvar "ext_light_brightmat"
-                        dest_var "light_brightmat"
-                    }
-                }
-                {
-                    triggers "lightshmap_trigger"
-                    method "lightshmap_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_ambient"
-                        dest_var "light_ambient"
-                    }
-                    {
-                        src_extvar "ext_light_diffuse"
-                        dest_var "light_diffuse"
-                    }
-                    {
-                        src_extvar "ext_light_specular"
-                        dest_var "light_specular"
-                    }
-                    {
-                        src_extvar "ext_light_projmat"
-                        dest_var "light_projmat"
-                    }
-                    {
-                        src_extvar "ext_light_shmapmat"
-                        dest_var "light_shmapmat"
-                    }
-                    {
-                        src_extvar "ext_light_projtex"
-                        dest_var "light_projtex"
-                    }
-                    {
-                        src_extvar "ext_light_shmap"
-                        dest_var "light_shmap"
-                    }
-                }
-                {
-                    triggers "gen_brightmap_for_softshmap_trigger"
-                    method "gen_brightmap_for_softshmap_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_intens"
-                        dest_var "light_intens"
-                    }
-                    {
-                        src_extvar "ext_light_projmat"
-                        dest_var "light_projmat"
-                    }
-                    {
-                        src_extvar "ext_light_shmapmat"
-                        dest_var "light_shmapmat"
-                    }
-                    {
-                        src_extvar "ext_light_projtex"
-                        dest_var "light_projtex"
-                    }
-                    {
-                        src_extvar "ext_light_shmap"
-                        dest_var "light_shmap"
-                    }
-                }
-                {
-                    triggers "gen_brightclear_trigger"
-                    method "gen_brightclear_method"
-                }
-            }
-        }
-        {
-            ident "eng_shader_std.meshenter"
-            param
-            {
-                env "shaderenv"
-                mesh_var_array "mesh_shvol_occl"
-                insp_ident "insp_shader_bound"
-                insp_rank 80000
-                insp_color 1.0 0.0 0.0
-                enter_array
-                {
-                    triggers "shvol_mark_trigger"
-                    method "shvol_mark_method"
-                    param_array
-                    {
-                        src_extvar "ext_light_cenrange"
-                        dest_var "light_cenrange"
-                    }
-                    {
-                        src_extvar "ext_light_shvolparam"
-                        dest_var "light_shvolparam"
-                    }
-                }
-            }
-        }
-        {
-            ident "eng_shader_std.paintmesh"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank 12000
-                insp_ident "insp_shader_mesh"
-                cull_mode "back"
-                depth_test "less_equal"
-                depth_write 1
-                use_vertex_bone_wgh 1
-                use_vertex_bone_subscr 1
-                use_vertex_point 1
-                use_vertex_normal 0
-                color 0.0 0.0 0.0
-                mesh_var "mesh"
-                texchan_var_array
-                tex_attr_var_array
-                attrmat_var_array
-                lightarray_var ""
-                shaderprog_ident
-                    "levelutil/shader/prog/plain_point.s3d_shaderprog_run"
-                shaderprog_param_array
-            }
-        }
         {
             ident "gtp_shader.createtex"
@@ -1019,5 +771,5 @@
                 env "shaderenv"
                 methods "main_method"
-                rank 12000
+                rank 12100
                 insp_ident "insp_shader_mesh"
                 cull_mode "back"
@@ -1034,5 +786,5 @@
                 use_vertex_coloralpha 0
                 blend_col_src_fac "one"
-                blend_col_dest_fac "zero"
+                blend_col_dest_fac "one"
                 shaderprog_ident
                     "levelutil/shader/prog/gtp_diffuse.s3d_shaderprog_run"
@@ -1055,5 +807,5 @@
 }
 {
-    name "ordinary_caustic_receiver"
+    name "ordinary"
     ident "eng_shader_std.group"
     param
@@ -1111,17 +863,4 @@
                     triggers "gtp_distance_impostor_trigger"
                     method "gtp_distance_impostor_method"
-                }
-                {
-                    triggers "caustic_recieve_trigger"
-                    method "caustic_recieve_method"
-                    param_array
-                    {
-                        src_extvar "lastCenter"
-                        dest_var "cauCubeLastCenter"
-                    }
-                    {
-                        src_extvar "cauCubeMap"
-                        dest_var "cauCubeMap"
-                    }
                 }
                 {
@@ -1655,55 +1394,471 @@
             }
         }
-        {
-            ident "gtp_shader.worldmat"
-            param
-            {
-                env "shaderenv"
-                methods "caustic_recieve_method"
-                worldmat_var "worldMat"
-            }
-        }
-        {
-            ident "eng_shader_std.paintmesh"
-            param
-            {
-                env "shaderenv"
-                methods "caustic_recieve_method"
-                rank 14000
-                insp_ident "insp_shader_mesh"
-                cull_mode "back"
-                depth_test "less_equal"
-                depth_write 1
-                depth_bias_overlay 1
-                depth_bias_offs 1
-                mesh_var "mesh"
-                texchan_var_array "cauCubeMap"
-                tex_attr_var_array "attr0"
-                attrmat_var_array ""
-                use_vertex_bone_wgh 1
-                use_vertex_bone_subscr 1
-                use_vertex_point 1
-                blend_col_dest_fac "one"
-                blend_col_src_fac "one"
-                blend_col_op "src_plus_dest"
-                color 1.0 1.0 1.0
-                shaderprog_ident
-                    "levelutil/shader/prog/gtp_caustic_recieve.s3d_shaderprog_"
-                    & "run"
-                shaderprog_param_array
-                {
-                    src_var "cauCubeLastCenter"
-                    dest_progvar "lastCenter"
-                }
-                {
-                    src_var "worldMat"
-                    dest_progvar "worldMat"
-                }
-            }
-        }
     }
 }
 {
-    name "ordinary_copper"
+    name "ordinary_diffuse"
+    ident "eng_shader_std.group"
+    param
+    {
+        env "shaderenv"
+        init_method "init_method"
+        child_array
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0"
+                usage "render"
+                tangentu_attr_var "tangentu"
+                tangentv_attr_var "tangentv"
+            }
+        }
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                usage "shvol_occl"
+                mesh_var "mesh_shvol_occl"
+                texchan_var_array
+                tex_attr_var_array
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh"
+                insp_ident "insp_shader_bound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "main_trigger" "mirror_trigger"
+                    method "main_method"
+                }
+                {
+                    triggers "gtp_distance_impostor_trigger"
+                    method "gtp_distance_impostor_method"
+                }
+                {
+                    triggers "gen_shmap_trigger"
+                    method "gen_shmap_method"
+                }
+                {
+                    triggers "light_trigger"
+                    method "light_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightmild_trigger"
+                    method "lightmild_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightbright_trigger"
+                    method "lightbright_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_brighttex"
+                        dest_var "light_brighttex"
+                    }
+                    {
+                        src_extvar "ext_light_brightmat"
+                        dest_var "light_brightmat"
+                    }
+                }
+                {
+                    triggers "lightshmap_trigger"
+                    method "lightshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightmap_for_softshmap_trigger"
+                    method "gen_brightmap_for_softshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_intens"
+                        dest_var "light_intens"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightclear_trigger"
+                    method "gen_brightclear_method"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh_shvol_occl"
+                insp_ident "insp_shader_bound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "shvol_mark_trigger"
+                    method "shvol_mark_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_shvolparam"
+                        dest_var "light_shvolparam"
+                    }
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 0
+                color 0.0 0.0 0.0
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/plain_point.s3d_shaderprog_run"
+                shaderprog_param_array
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "envmap0"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 0
+                texprop_comp 4
+                texprop_bitspercomp 8
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -9000
+                max_ext 256
+                max_recursion 1
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "mirror_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 12
+                update_all_face 0
+                start_frame 0
+                last_center_var "lastCenter"
+                world_space 1
+                dest_array
+                {
+                    from_var "envmap0"
+                    to_var "envmap0"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 3
+                    texprop_float 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "dist"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 1
+                texprop_comp 2
+                texprop_bitspercomp 16
+                samplermode_clamp 0
+                samplermode_filter 0
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -9000
+                max_ext 128
+                max_recursion 1
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "gtp_distance_impostor_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 1
+                update_all_face 1
+                start_frame 0
+                last_center_var ""
+                world_space 1
+                dest_array
+                {
+                    from_var "dist"
+                    to_var "dist"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 1
+                    texprop_float 1
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "filteredenvmap"
+                width 4
+                height 4
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 0
+                texprop_comp 4
+                texprop_bitspercomp 8
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.cubetexfilter"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -8000
+                iter_start 0
+                iter_end 0
+                iter_step 0
+                width_scale 1.0
+                height_scale 1.0
+                destprop_antialias 0
+                passinfo_var ""
+                src_array "envmap0"
+                update_interval 1
+                dest_array
+                {
+                    from_var "filteredenvmap"
+                    to_var "filteredenvmap"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_float 0
+                    texprop_comp 4
+                    texprop_bitspercomp 0
+                    samplermode_filter 1
+                    samplermode_clamp 1
+                }
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_reduce_cubemap.s3d_shaderprog_r"
+                    & "un"
+                shaderprog_param_array
+                {
+                }
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMat"
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMatIT"
+                inverse 1
+                transpose 1
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                mesh_var "mesh"
+                texchan_var_array "filteredenvmap" "dist"
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                use_vertex_coloralpha 0
+                blend_col_src_fac "one"
+                blend_col_dest_fac "one"
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_diffuse.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "lastCenter"
+                    dest_progvar "lastCenter"
+                }
+                {
+                    src_var "worldMat"
+                    dest_progvar "worldMat"
+                }
+                {
+                    src_var "worldMatIT"
+                    dest_progvar "worldMatIT"
+                }
+            }
+        }
+    }
+}
+{
+    name "ordinary_caustic_receiver"
     ident "eng_shader_std.group"
     param
@@ -1761,4 +1916,17 @@
                     triggers "gtp_distance_impostor_trigger"
                     method "gtp_distance_impostor_method"
+                }
+                {
+                    triggers "caustic_recieve_trigger"
+                    method "caustic_recieve_method"
+                    param_array
+                    {
+                        src_extvar "lastCenter"
+                        dest_var "cauCubeLastCenter"
+                    }
+                    {
+                        src_extvar "cauCubeMap"
+                        dest_var "cauCubeMap"
+                    }
                 }
                 {
@@ -2022,4 +2190,136 @@
             {
                 env "shaderenv"
+                methods "light_method"
+                rank 99999
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/bump.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "lightmild_method"
+                rank 99999
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/bump_mild.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "lightbright_method"
+                rank 12000
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap" "light_brighttex"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array "" "" ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                shaderprog_ident
+                    "levelutil/shader/prog/bump_bright.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+                {
+                    src_var "light_brightmat"
+                    dest_progvar "prog_light_brightmat"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
                 methods "lightshmap_method"
                 rank 99999
@@ -2136,177 +2436,4 @@
         }
         {
-            ident "gtp_shader.createtex"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                texchan_var "envmap0"
-                width 32
-                height 32
-                texprop_rendertarget 1
-                texprop_cube 1
-                texprop_float 0
-                texprop_comp 4
-                texprop_bitspercomp 8
-                samplermode_clamp 0
-                samplermode_filter 1
-            }
-        }
-        {
-            ident "gtp_shader.envmap"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank -90000
-                max_ext 256
-                max_recursion 2
-                ext_dist_scale 20.0
-                proj_neg_z 0.1
-                proj_pos_z 100.0
-                enum_trigger "mirror_trigger"
-                destprop_antialias 0
-                mesh_var "mesh"
-                update_interval 6
-                update_all_face 0
-                start_frame 1
-                last_center_var "lastCenter"
-                world_space 1
-                dest_array
-                {
-                    from_var "envmap0"
-                    to_var "envmap0"
-                    texprop_restrusage 0
-                    texprop_depth 0
-                    texprop_comp 3
-                    texprop_float 0
-                    samplermode_filter 0
-                    samplermode_clamp 1
-                }
-            }
-        }
-        {
-            ident "gtp_shader.createtex"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                texchan_var "dist"
-                width 128
-                height 128
-                texprop_rendertarget 1
-                texprop_cube 1
-                texprop_float 1
-                texprop_comp 2
-                texprop_bitspercomp 16
-                samplermode_clamp 0
-                samplermode_filter 1
-            }
-        }
-        {
-            ident "gtp_shader.envmap"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank -90000
-                max_ext 128
-                max_recursion 1
-                ext_dist_scale 20.0
-                proj_neg_z 0.1
-                proj_pos_z 100.0
-                enum_trigger "gtp_distance_impostor_trigger"
-                destprop_antialias 0
-                mesh_var "mesh"
-                update_interval 6
-                update_all_face 1
-                start_frame 1
-                last_center_var "lastCenter"
-                world_space 1
-                dest_array
-                {
-                    from_var "dist"
-                    to_var "dist"
-                    texprop_restrusage 0
-                    texprop_depth 0
-                    texprop_comp 1
-                    texprop_float 1
-                    samplermode_filter 0
-                    samplermode_clamp 1
-                }
-            }
-        }
-        {
-            ident "gtp_shader.worldmat"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                worldmat_var "worldMat"
-            }
-        }
-        {
-            ident "gtp_shader.worldmat"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                worldmat_var "worldMatIT"
-                inverse 1
-                transpose 1
-            }
-        }
-        {
-            ident "eng_shader_std.constvec"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                val_var "Fresnel"
-                val 0.95 0.63 0.54 1.0
-            }
-        }
-        {
-            ident "eng_shader_std.paintmesh"
-            param
-            {
-                env "shaderenv"
-                methods "main_method"
-                rank 12000
-                insp_ident "insp_shader_mesh"
-                cull_mode "back"
-                depth_test "less_equal"
-                depth_write 0
-                mesh_var "mesh"
-                texchan_var_array "envmap0" "dist"
-                tex_attr_var_array "attr0"
-                attrmat_var_array ""
-                use_vertex_bone_wgh 1
-                use_vertex_bone_subscr 1
-                use_vertex_point 1
-                use_vertex_normal 1
-                use_vertex_coloralpha 0
-                shaderprog_ident
-                    "levelutil/shader/prog/gtp_envmap_metal.s3d_shaderprog_run"
-                shaderprog_param_array
-                {
-                    src_var "lastCenter"
-                    dest_progvar "lastCenter"
-                }
-                {
-                    src_var "worldMat"
-                    dest_progvar "worldMat"
-                }
-                {
-                    src_var "worldMatIT"
-                    dest_progvar "worldMatIT"
-                }
-                {
-                    src_var "Fresnel"
-                    dest_progvar "Fresnel"
-                }
-            }
-        }
-        {
             ident "eng_shader_std.paintmesh"
             param
@@ -2333,8 +2460,55 @@
             }
         }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "caustic_recieve_method"
+                worldmat_var "worldMat"
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "caustic_recieve_method"
+                rank 14000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                depth_bias_overlay 1
+                depth_bias_offs 1
+                mesh_var "mesh"
+                texchan_var_array "cauCubeMap"
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                blend_col_dest_fac "one"
+                blend_col_src_fac "one"
+                blend_col_op "src_plus_dest"
+                color 1.0 1.0 1.0
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_caustic_recieve.s3d_shaderprog_"
+                    & "run"
+                shaderprog_param_array
+                {
+                    src_var "cauCubeLastCenter"
+                    dest_progvar "lastCenter"
+                }
+                {
+                    src_var "worldMat"
+                    dest_progvar "worldMat"
+                }
+            }
+        }
     }
 }
 {
-    name "ordinary_alu"
+    name "ordinary_copper"
     ident "eng_shader_std.group"
     param
@@ -2773,6 +2947,6 @@
                 methods "init_method"
                 texchan_var "envmap0"
-                width 128
-                height 128
+                width 32
+                height 32
                 texprop_rendertarget 1
                 texprop_cube 1
@@ -2799,6 +2973,6 @@
                 destprop_antialias 0
                 mesh_var "mesh"
-                update_interval 1
-                update_all_face 1
+                update_interval 6
+                update_all_face 0
                 start_frame 1
                 last_center_var "lastCenter"
@@ -2850,5 +3024,5 @@
                 destprop_antialias 0
                 mesh_var "mesh"
-                update_interval 1
+                update_interval 6
                 update_all_face 1
                 start_frame 1
@@ -2895,5 +3069,5 @@
                 methods "init_method"
                 val_var "Fresnel"
-                val 0.9 0.92 0.92 1.0
+                val 0.95 0.63 0.54 1.0
             }
         }
@@ -2967,5 +3141,5 @@
 }
 {
-    name "caustic_caster"
+    name "ordinary_alu"
     ident "eng_shader_std.group"
     param
@@ -2981,9 +3155,27 @@
                 methods "init_method"
                 mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap"
+                tex_attr_var_array "attr0"
+                usage "render"
+                tangentu_attr_var "tangentu"
+                tangentv_attr_var "tangentv"
+                insp_ident "showmesh"
+                insp_rank 80000
+                insp_color 1.0 1.0 0.0
+            }
+        }
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                usage "shvol_occl"
+                mesh_var "mesh_shvol_occl"
                 texchan_var_array
                 tex_attr_var_array
-                usage "render"
-                tangentu_attr_var
-                tangentv_attr_var
+                insp_ident "showocclmesh"
+                insp_rank 80000
+                insp_color 0.5 1.0 0.0
             }
         }
@@ -2994,5 +3186,5 @@
                 env "shaderenv"
                 mesh_var_array "mesh"
-                insp_ident "insp_shader_bound"
+                insp_ident "showbound"
                 insp_rank 80000
                 insp_color 1.0 0.0 0.0
@@ -3007,6 +3199,10 @@
                 }
                 {
-                    triggers "caustic_cast_trigger"
-                    method "caustic_cast_method"
+                    triggers "gen_shmap_trigger"
+                    method "gen_shmap_method"
+                }
+                {
+                    triggers "light_trigger"
+                    method "light_method"
                     param_array
                     {
@@ -3015,18 +3211,362 @@
                     }
                     {
-                        src_extvar "recievers"
-                        dest_var "recievers"
-                    }
-                }
-            }
-        }
-        {
-            ident "eng_shader_std.constvec"
-            param
-            {
-                env "shaderenv"
-                methods "init_method"
-                val_var "lastCenter"
-                val 0.0 0.0 0.0 1.0
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightmild_trigger"
+                    method "lightmild_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                }
+                {
+                    triggers "lightbright_trigger"
+                    method "lightbright_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_brighttex"
+                        dest_var "light_brighttex"
+                    }
+                    {
+                        src_extvar "ext_light_brightmat"
+                        dest_var "light_brightmat"
+                    }
+                }
+                {
+                    triggers "lightshmap_trigger"
+                    method "lightshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_ambient"
+                        dest_var "light_ambient"
+                    }
+                    {
+                        src_extvar "ext_light_diffuse"
+                        dest_var "light_diffuse"
+                    }
+                    {
+                        src_extvar "ext_light_specular"
+                        dest_var "light_specular"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightmap_for_softshmap_trigger"
+                    method "gen_brightmap_for_softshmap_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_intens"
+                        dest_var "light_intens"
+                    }
+                    {
+                        src_extvar "ext_light_projmat"
+                        dest_var "light_projmat"
+                    }
+                    {
+                        src_extvar "ext_light_shmapmat"
+                        dest_var "light_shmapmat"
+                    }
+                    {
+                        src_extvar "ext_light_projtex"
+                        dest_var "light_projtex"
+                    }
+                    {
+                        src_extvar "ext_light_shmap"
+                        dest_var "light_shmap"
+                    }
+                }
+                {
+                    triggers "gen_brightclear_trigger"
+                    method "gen_brightclear_method"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh_shvol_occl"
+                insp_ident "showbound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "shvol_mark_trigger"
+                    method "shvol_mark_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "ext_light_shvolparam"
+                        dest_var "light_shvolparam"
+                    }
+                }
+            }
+        }
+        {
+            ident "eng_shader_shvol.occluder"
+            param
+            {
+                env "shaderenv"
+                methods "shvol_mark_method"
+                reverse_rank 90010
+                nonreverse_rank 90000
+                insp_ident "showocclwire"
+                rel_gap 0.01
+                backface 0
+                mesh_var "mesh_shvol_occl"
+                cenrange_var "light_cenrange"
+                shvolparam_var "light_shvolparam"
+                extrude_var "light_extrude"
+                strict_shaderprog_ident
+                    "levelutil/shader/prog/gen_shvol_strict.s3d_shaderprog_run"
+                strict_shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_extrude"
+                    dest_progvar "prog_light_extrude"
+                }
+                quick_shaderprog_ident
+                    "levelutil/shader/prog/gen_shvol_quick.s3d_shaderprog_run"
+                quick_shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_extrude"
+                    dest_progvar "prog_light_extrude"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                rank 99999
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                methods "gen_shmap_method"
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                shaderprog_ident
+                    "levelutil/shader/prog/gen_shmap.s3d_shaderprog_run"
+                shaderprog_param_array
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 0
+                color 0.0 0.0 0.0
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/plain_point.s3d_shaderprog_run"
+                shaderprog_param_array
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "lightshmap_method"
+                rank 99999
+                insp_ident "showwire"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "tex0" "normalmap" "light_projtex"
+                    "light_shmap"
+                tex_attr_var_array "attr0" "tangentu" "tangentv"
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/bump_shmap.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_progvar "prog_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_progvar "prog_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_progvar "prog_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_progvar "prog_light_specular"
+                }
+                {
+                    src_var "light_projmat"
+                    dest_progvar "prog_light_projmat"
+                }
+                {
+                    src_var "light_shmapmat"
+                    dest_progvar "prog_light_shmapmat"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "gen_brightmap_for_softshmap_method"
+                rank 99999
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                mesh_var "mesh"
+                texchan_var_array "light_projtex" "light_shmap"
+                tex_attr_var_array ""
+                attrmat_var_array ""
+                blend_col_src_fac "one"
+                blend_col_dest_fac "inv_src_col"
+                lightarray_var ""
+                shaderprog_ident
+                    "levelutil/shader/prog/gen_brightmap_for_softshmap.s3d_sha"
+                    & "derprog_run"
+                shaderprog_param_array
+                {
+                    src_var "light_intens"
+                    dest_progvar "prog_light_intens"
+                }
+                {
+                    src_var "light_projmat"
+                    dest_progvar "prog_light_projmat"
+                }
+                {
+                    src_var "light_shmapmat"
+                    dest_progvar "prog_light_shmapmat"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "gen_brightclear_method"
+                rank 12000
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                attrmat_var_array
+                fog_enabled 0
+                blend_col_src_fac "one"
+                blend_col_dest_fac "zero"
+                color 0.0 0.0 0.0
+                alpha 0.0
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                shaderprog_ident
+                    "levelutil/shader/prog/gen_brightclear.s3d_shaderprog_run"
+                shaderprog_param_array
             }
         }
@@ -3055,5 +3595,5 @@
                 env "shaderenv"
                 methods "main_method"
-                rank -89500
+                rank -90000
                 max_ext 256
                 max_recursion 2
@@ -3064,7 +3604,7 @@
                 destprop_antialias 0
                 mesh_var "mesh"
-                update_interval 6
-                update_all_face 0
-                start_frame 0
+                update_interval 1
+                update_all_face 1
+                start_frame 1
                 last_center_var "lastCenter"
                 world_space 1
@@ -3106,4 +3646,269 @@
                 env "shaderenv"
                 methods "main_method"
+                rank -90000
+                max_ext 128
+                max_recursion 1
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "gtp_distance_impostor_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 1
+                update_all_face 1
+                start_frame 1
+                last_center_var "lastCenter"
+                world_space 1
+                dest_array
+                {
+                    from_var "dist"
+                    to_var "dist"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 1
+                    texprop_float 1
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMat"
+            }
+        }
+        {
+            ident "gtp_shader.worldmat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                worldmat_var "worldMatIT"
+                inverse 1
+                transpose 1
+            }
+        }
+        {
+            ident "eng_shader_std.constvec"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                val_var "Fresnel"
+                val 0.9 0.92 0.92 1.0
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 0
+                mesh_var "mesh"
+                texchan_var_array "envmap0" "dist"
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                use_vertex_normal 1
+                use_vertex_coloralpha 0
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_envmap_metal.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "lastCenter"
+                    dest_progvar "lastCenter"
+                }
+                {
+                    src_var "worldMat"
+                    dest_progvar "worldMat"
+                }
+                {
+                    src_var "worldMatIT"
+                    dest_progvar "worldMatIT"
+                }
+                {
+                    src_var "Fresnel"
+                    dest_progvar "Fresnel"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.paintmesh"
+            param
+            {
+                env "shaderenv"
+                methods "gtp_distance_impostor_method"
+                rank 12000
+                insp_ident "insp_shader_mesh"
+                cull_mode "back"
+                depth_test "less_equal"
+                depth_write 1
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array "attr0"
+                attrmat_var_array ""
+                use_vertex_bone_wgh 1
+                use_vertex_bone_subscr 1
+                use_vertex_point 1
+                color 1.0 1.0 1.0
+                shaderprog_ident
+                    "levelutil/shader/prog/gtp_distance_impostor.s3d_shaderpro"
+                    & "g_run"
+                shaderprog_param_array
+            }
+        }
+    }
+}
+{
+    name "caustic_caster"
+    ident "eng_shader_std.group"
+    param
+    {
+        env "shaderenv"
+        init_method "init_method"
+        child_array
+        {
+            ident "eng_shader_std.modelmesh"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                mesh_var "mesh"
+                texchan_var_array
+                tex_attr_var_array
+                usage "render"
+                tangentu_attr_var
+                tangentv_attr_var
+            }
+        }
+        {
+            ident "eng_shader_std.meshenter"
+            param
+            {
+                env "shaderenv"
+                mesh_var_array "mesh"
+                insp_ident "insp_shader_bound"
+                insp_rank 80000
+                insp_color 1.0 0.0 0.0
+                enter_array
+                {
+                    triggers "main_trigger" "mirror_trigger"
+                    method "main_method"
+                }
+                {
+                    triggers "gtp_distance_impostor_trigger"
+                    method "gtp_distance_impostor_method"
+                }
+                {
+                    triggers "caustic_cast_trigger"
+                    method "caustic_cast_method"
+                    param_array
+                    {
+                        src_extvar "ext_light_cenrange"
+                        dest_var "light_cenrange"
+                    }
+                    {
+                        src_extvar "recievers"
+                        dest_var "recievers"
+                    }
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.constvec"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                val_var "lastCenter"
+                val 0.0 0.0 0.0 1.0
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "envmap0"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 0
+                texprop_comp 4
+                texprop_bitspercomp 8
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -89500
+                max_ext 256
+                max_recursion 2
+                ext_dist_scale 20.0
+                proj_neg_z 0.1
+                proj_pos_z 100.0
+                enum_trigger "mirror_trigger"
+                destprop_antialias 0
+                mesh_var "mesh"
+                update_interval 6
+                update_all_face 0
+                start_frame 0
+                last_center_var "lastCenter"
+                world_space 1
+                dest_array
+                {
+                    from_var "envmap0"
+                    to_var "envmap0"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_comp 3
+                    texprop_float 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+            }
+        }
+        {
+            ident "gtp_shader.createtex"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                texchan_var "dist"
+                width 128
+                height 128
+                texprop_rendertarget 1
+                texprop_cube 1
+                texprop_float 1
+                texprop_comp 2
+                texprop_bitspercomp 16
+                samplermode_clamp 0
+                samplermode_filter 1
+            }
+        }
+        {
+            ident "gtp_shader.envmap"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
                 rank -89600
                 max_ext 128
@@ -3224,6 +4029,6 @@
                 texchan_var "cauCubeMap"
                 texprop_cube 1
-                width 32
-                height 32
+                width 128
+                height 128
                 texprop_rendertarget 1
                 texprop_float 1
Index: GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/bin/res/level/shader/world.s3d_shader_run
===================================================================
--- GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/bin/res/level/shader/world.s3d_shader_run	(revision 2453)
+++ GTP/trunk/App/Demos/Illum/Shark3D/version164x12u/CleanTheLab/bin/res/level/shader/world.s3d_shader_run	(revision 2503)
@@ -799,3 +799,297 @@
     }
 }
+{
+    name "new_shvol_light_soft_tetra_new"
+    sort "light_softshvol_tetra"
+    ident "eng_shader_std.group"
+    param
+    {
+        env "shaderenv"
+        init_method "init_method"
+        child_array
+        {
+            ident "eng_shader_std.lightparam"
+            param
+            {
+                env "shaderenv"
+                methods "init_method"
+                diffuse 0.419608 0.419608 0.419608
+                specular 0.0 0.0 0.0
+                range 8.3
+                multiplier 0.02
+                diffuse_var "light_diffuse"
+                ambient_var "light_ambient"
+                specular_var "light_specular"
+                cenrange_var "light_cenrange"
+            }
+        }
+        {
+            ident "eng_shader_shvol.lenparam"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                max_abs_len 20.0
+                max_rel_len 20.0
+                shvolparam_var "light_shvolparam"
+            }
+        }
+        {
+            ident "eng_shader_std.constfloat"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                val 0.25
+                val_var "size"
+            }
+        }
+        {
+            ident "eng_shader_std.lightenter"
+            param
+            {
+                env "shaderenv"
+                cenrange_var "light_cenrange"
+                enter_array
+                {
+                    triggers "main_trigger" "mirror_trigger"
+                    method "main_method"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.lightenum"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -99999
+                cenrange_var "light_cenrange"
+                coll_var "receivers"
+            }
+        }
+        {
+            ident "eng_shader_shvol.combineparam"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                lenparam_var "light_shvolparam"
+                bloat_var "size"
+                bloat_scale 0.5
+                shvolparam_var "light_bloated_shvolparam"
+            }
+        }
+        {
+            ident "eng_shader_shvol.enum"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -99999
+                cenrange_var "light_cenrange"
+                shvolparam_var "light_bloated_shvolparam"
+                coll_var "occluders"
+            }
+        }
+        {
+            ident "eng_shader_std.totex"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                new_method "totex_method"
+                rank -99999
+                size_scale 1.0
+                destprop_antialias 0
+                dest_array
+                {
+                    from_var ""
+                    to_var "light_brighttex"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_float 0
+                    texprop_comp 4
+                    texprop_bitspercomp 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+                attrmat_var "light_brightmat"
+            }
+        }
+        {
+            ident "eng_shader_std.collexec"
+            param
+            {
+                env "shaderenv"
+                methods "totex_method"
+                coll_var "receivers"
+                rank 99999
+                exec_trigger "gen_brightclear_trigger"
+                exec_param_array
+            }
+        }
+        {
+            ident "eng_shader_special.multilight"
+            param
+            {
+                env "shaderenv"
+                first_methods "totex_method"
+                cenrange_var "light_cenrange"
+                projmat_var ""
+                scale_var "size"
+                sub_rank 99999
+                sub_method "sub_method"
+                sub_cenrange_var "sub_light_cenrange"
+                sub_projmat_var ""
+                sub_bloat_var "sub_light_bloat"
+                sub_intens_var "sub_light_intens"
+                elem_array
+                {
+                    offs -0.5 -0.5 -0.5
+                    bloat 0.0
+                }
+                {
+                    offs 0.5 0.5 -0.5
+                    bloat 0.0
+                }
+                {
+                    offs 0.5 -0.5 0.5
+                    bloat 0.0
+                }
+                {
+                    offs -0.5 0.5 0.5
+                    bloat 0.0
+                }
+            }
+        }
+        {
+            ident "eng_shader_shvol.combineparam"
+            param
+            {
+                env "shaderenv"
+                methods "sub_method"
+                lenparam_var "light_shvolparam"
+                bloat_var "sub_light_bloat"
+                bloat_scale 1.0
+                shvolparam_var "sub_light_shvolparam"
+            }
+        }
+        {
+            ident "eng_shader_shvol.perform"
+            param
+            {
+                env "shaderenv"
+                methods "sub_method"
+                rank 99999
+                coll_var "occluders"
+                mark_trigger "shvol_mark_trigger"
+                mark_param_array
+                {
+                    src_var "sub_light_cenrange"
+                    dest_extvar "ext_light_cenrange"
+                }
+                {
+                    src_var "sub_light_shvolparam"
+                    dest_extvar "ext_light_shvolparam"
+                }
+                paint_method ""
+                unmark_shaderprog_ident
+                    "levelutil/shader/prog/plain_pointcol.s3d_shaderprog_run"
+                unmark_shaderprog_param_array
+                unmark_blend_col_src_fac "one"
+                unmark_blend_col_dest_fac "one"
+                unmark_neg 1
+                unmark_color_var "sub_light_intens"
+                unmark_alpha 0.0
+            }
+        }
+        {
+            ident "eng_shader_std.constvec"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                val 0.5 0.0 0.0 0.0
+                val_var "filterinfo"
+            }
+        }
+        {
+            ident "eng_shader_special.filter"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                rank -99999
+                iter_start 5
+                iter_end 0
+                iter_step -1
+                width_scale 1.0
+                height_scale 1.0
+                destprop_antialias 0
+                passinfo_var "passinfo"
+                src_array "light_brighttex"
+                dest_array
+                {
+                    from_var ""
+                    to_var "light_brighttex"
+                    texprop_restrusage 0
+                    texprop_depth 0
+                    texprop_float 0
+                    texprop_comp 4
+                    texprop_bitspercomp 0
+                    samplermode_filter 0
+                    samplermode_clamp 1
+                }
+                shaderprog_ident
+                    "levelutil/shader/prog/lightfilter.s3d_shaderprog_run"
+                shaderprog_param_array
+                {
+                    src_var "passinfo"
+                    dest_progvar "prog_passinfo"
+                }
+                {
+                    src_var "filterinfo"
+                    dest_progvar "prog_filterinfo"
+                }
+            }
+        }
+        {
+            ident "eng_shader_std.collexec"
+            param
+            {
+                env "shaderenv"
+                methods "main_method"
+                coll_var "receivers"
+                rank 32000
+                exec_trigger "lightbright_trigger"
+                exec_param_array
+                {
+                    src_var "light_cenrange"
+                    dest_extvar "ext_light_cenrange"
+                }
+                {
+                    src_var "light_ambient"
+                    dest_extvar "ext_light_ambient"
+                }
+                {
+                    src_var "light_diffuse"
+                    dest_extvar "ext_light_diffuse"
+                }
+                {
+                    src_var "light_specular"
+                    dest_extvar "ext_light_specular"
+                }
+                {
+                    src_var "light_brighttex"
+                    dest_extvar "ext_light_brighttex"
+                }
+                {
+                    src_var "light_brightmat"
+                    dest_extvar "ext_light_brightmat"
+                }
+            }
+        }
+    }
+}
 $
