projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
large reduction, redoing things
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world_render.h
diff --git
a/world_render.h
b/world_render.h
index 1926364c6b437fa03ba206a82ae74af47a620af4..7eccc6e45518d9351722ea994146ee566dd3f745 100644
(file)
--- a/
world_render.h
+++ b/
world_render.h
@@
-92,6
+92,15
@@
VG_STATIC void world_bind_light_array( world_instance *world,
glUniform1i( location, slot );
}
glUniform1i( location, slot );
}
+VG_STATIC void world_bind_light_index( world_instance *world,
+ GLuint shader, GLuint location,
+ int slot )
+{
+ glActiveTexture( GL_TEXTURE0 + slot );
+ glBindTexture( GL_TEXTURE_3D, world->tex_light_cubes );
+ glUniform1i( location, slot );
+}
+
VG_STATIC void render_world_depth( world_instance *world, camera *cam );
/*
VG_STATIC void render_world_depth( world_instance *world, camera *cam );
/*
@@
-168,6
+177,8
@@
VG_STATIC void render_world_vb( world_instance *world, camera *cam )
_uniform_scene_vertex_blend_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_vertex_blend.id,
_uniform_scene_vertex_blend_uLightsArray, 3 );
_uniform_scene_vertex_blend_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_vertex_blend.id,
_uniform_scene_vertex_blend_uLightsArray, 3 );
+ world_bind_light_index( world, _shader_scene_vertex_blend.id,
+ _uniform_scene_vertex_blend_uLightsIndex, 4 );
vg_tex2d_bind( &tex_terrain_noise, 0 );
vg_tex2d_bind( &tex_terrain_noise, 0 );
@@
-198,6
+209,8
@@
VG_STATIC void render_world_standard( world_instance *world, camera *cam )
_uniform_scene_standard_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_standard.id,
_uniform_scene_standard_uLightsArray, 3 );
_uniform_scene_standard_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_standard.id,
_uniform_scene_standard_uLightsArray, 3 );
+ world_bind_light_index( world, _shader_scene_standard.id,
+ _uniform_scene_standard_uLightsIndex, 4 );
bind_terrain_noise();
bind_terrain_noise();
@@
-226,6
+239,8
@@
VG_STATIC void render_world_alphatest( world_instance *world, camera *cam )
_uniform_scene_standard_alphatest_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_standard_alphatest.id,
_uniform_scene_standard_alphatest_uLightsArray, 3 );
_uniform_scene_standard_alphatest_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_standard_alphatest.id,
_uniform_scene_standard_alphatest_uLightsArray, 3 );
+ world_bind_light_index( world, _shader_scene_standard_alphatest.id,
+ _uniform_scene_standard_alphatest_uLightsIndex, 4 );
bind_terrain_noise();
bind_terrain_noise();
@@
-267,6
+282,8
@@
VG_STATIC void render_terrain( world_instance *world, camera *cam )
_uniform_scene_terrain_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_terrain.id,
_uniform_scene_terrain_uLightsArray, 3 );
_uniform_scene_terrain_g_world_depth, 2 );
world_bind_light_array( world, _shader_scene_terrain.id,
_uniform_scene_terrain_uLightsArray, 3 );
+ world_bind_light_index( world, _shader_scene_terrain.id,
+ _uniform_scene_terrain_uLightsIndex, 4 );
vg_tex2d_bind( &tex_terrain_noise, 0 );
vg_tex2d_bind( &tex_terrain_noise, 0 );
@@
-281,7
+298,7
@@
VG_STATIC void render_terrain( world_instance *world, camera *cam )
world_render_both_stages( world, k_shader_terrain_blend, bindpoint_terrain );
}
world_render_both_stages( world, k_shader_terrain_blend, bindpoint_terrain );
}
-VG_STATIC void render_sky( camera *cam )
+VG_STATIC void render_sky(
world_instance *world,
camera *cam )
{
/*
* Modify matrix to remove clipping and view translation
{
/*
* Modify matrix to remove clipping and view translation
@@
-315,7
+332,7
@@
VG_STATIC void render_sky( camera *cam )
shader_model_sky_uPv( pv );
shader_model_sky_uPvmPrev( pv_prev );
shader_model_sky_uTexGarbage(0);
shader_model_sky_uPv( pv );
shader_model_sky_uPvmPrev( pv_prev );
shader_model_sky_uTexGarbage(0);
-
shader_model_sky_uTime( world_global.sky_time
);
+
world_link_lighting_ub( world, _shader_model_sky.id
);
vg_tex2d_bind( &tex_terrain_noise, 0 );
vg_tex2d_bind( &tex_terrain_noise, 0 );
@@
-379,7
+396,7
@@
VG_STATIC void render_world_gates( world_instance *world, camera *cam )
VG_STATIC void render_world( world_instance *world, camera *cam )
{
VG_STATIC void render_world( world_instance *world, camera *cam )
{
- render_sky( cam );
+ render_sky(
world,
cam );
render_world_routes( world, cam );
render_world_standard( world, cam );
render_world_routes( world, cam );
render_world_standard( world, cam );