+VG_STATIC void render_world_override( world_instance *world ){
+ struct world_pass pass = {
+ .cam = &skaterift.cam,
+ .fn_bind_textures = bindpoint_override,
+ .fn_set_mdl = shader_scene_override_uMdl,
+ .fn_set_uPvmPrev = shader_scene_override_uPvmPrev,
+ .shader = k_shader_override
+ };
+
+ shader_scene_override_use();
+ respawn_chooser_shader_uniforms();
+ shader_scene_override_uTexGarbage(0);
+ shader_scene_override_uTexMain(1);
+ shader_scene_override_uPv( pass.cam->mtx.pv );
+
+ world_link_lighting_ub( world, _shader_scene_override.id );
+ world_bind_position_texture( world, _shader_scene_override.id,
+ _uniform_scene_override_g_world_depth, 2 );
+ world_bind_light_array( world, _shader_scene_override.id,
+ _uniform_scene_override_uLightsArray, 3 );
+ world_bind_light_index( world, _shader_scene_override.id,
+ _uniform_scene_override_uLightsIndex, 4 );
+
+ bind_terrain_noise();
+ shader_scene_override_uCamera( pass.cam->transform[3] );
+
+ glDisable( GL_CULL_FACE );
+ mesh_bind( &world->mesh_geo );
+ pass.geo_type = k_world_geo_type_solid;
+ render_world_override_pass( world, &pass );
+ mesh_bind( &world->mesh_no_collide );
+ pass.geo_type = k_world_geo_type_nonsolid;
+ render_world_override_pass( world, &pass );
+ glEnable( GL_CULL_FACE );
+}
+