projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
grid based
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world.h
diff --git
a/world.h
b/world.h
index 3f806cb8714e00dbabf0d8564dede4a7b9acd43b..cfa809c4dfe2d852ecf9af9edf0ba07bd0b3d3e6 100644
(file)
--- a/
world.h
+++ b/
world.h
@@
-53,6
+53,8
@@
enum geo_type
k_geo_type_water = 2
};
k_geo_type_water = 2
};
+static const float k_light_cube_size = 8.0f;
+
struct world_instance
{
/* This is a small flag we use to changelevel.
struct world_instance
{
/* This is a small flag we use to changelevel.
@@
-79,6
+81,9
@@
struct world_instance
/* STD140 */
struct ub_world_lighting
{
/* STD140 */
struct ub_world_lighting
{
+ v4f g_cube_min,
+ g_cube_inv_range;
+
/* v3f (padded) */
v4f g_light_colours[3],
g_light_directions[3],
/* v3f (padded) */
v4f g_light_colours[3],
g_light_directions[3],
@@
-93,6
+98,9
@@
struct world_instance
int g_light_preview;
int g_shadow_samples;
int g_light_preview;
int g_shadow_samples;
+ int g_debug_indices;
+ int g_debug_complexity;
+
#if 0
v4f g_point_light_positions[32];
v4f g_point_light_colours[32];
#if 0
v4f g_point_light_positions[32];
v4f g_point_light_colours[32];
@@
-103,7
+111,10
@@
struct world_instance
int ubo_bind_point;
GLuint tbo_light_entities,
int ubo_bind_point;
GLuint tbo_light_entities,
- tex_light_entities;
+ tex_light_entities,
+ tex_light_cubes;
+
+ v3i light_cubes;
struct framebuffer heightmap;
struct framebuffer heightmap;
@@
-213,6
+224,8
@@
struct world_instance
{
mdl_node *node;
struct classtype_world_light *inf;
{
mdl_node *node;
struct classtype_world_light *inf;
+ m4x3f inverse_world;
+ v2f angle_sin_cos;
/* enabled.. etc?
* TODO: we should order entities in the binary by their type */
/* enabled.. etc?
* TODO: we should order entities in the binary by their type */
@@
-625,6
+638,8
@@
VG_STATIC void world_update( world_instance *world, v3f pos )
g_time += vg.time_delta * (1.0/(k_day_length*60.0));
world->ub_lighting.g_time = g_time;
g_time += vg.time_delta * (1.0/(k_day_length*60.0));
world->ub_lighting.g_time = g_time;
+ world->ub_lighting.g_debug_indices = k_debug_light_indices;
+ world->ub_lighting.g_debug_complexity = k_debug_light_complexity;
glBindBuffer( GL_UNIFORM_BUFFER, world->ubo_lighting );
glBufferSubData( GL_UNIFORM_BUFFER, 0,
glBindBuffer( GL_UNIFORM_BUFFER, world->ubo_lighting );
glBufferSubData( GL_UNIFORM_BUFFER, 0,
@@
-734,7
+749,7
@@
VG_STATIC void world_update( world_instance *world, v3f pos )
0xff00ff00 );
}
0xff00ff00 );
}
- if( k_debug_light_ind
ex
)
+ if( k_debug_light_ind
ices
)
{
for( int i=0; i<world->light_count; i++ )
{
{
for( int i=0; i<world->light_count; i++ )
{