master #6

Merged
BRNSystems merged 85 commits from Mirrorlandia_minetest/minetest:master into master 2024-01-09 17:53:52 +01:00
4 changed files with 12 additions and 11 deletions
Showing only changes of commit bd42cc2c77 - Show all commits

@ -2103,7 +2103,7 @@ server_side_occlusion_culling (Server-side occlusion culling) bool true
# rendering glitches (missing blocks). # rendering glitches (missing blocks).
# This is especially useful for very large viewing range (upwards of 500). # This is especially useful for very large viewing range (upwards of 500).
# Stated in MapBlocks (16 nodes). # Stated in MapBlocks (16 nodes).
block_cull_optimize_distance (Block cull optimize distance) int 20 2 2047 block_cull_optimize_distance (Block cull optimize distance) int 25 2 2047
[**Mapgen] [**Mapgen]

@ -397,7 +397,7 @@ void set_default_settings()
// This causes frametime jitter on client side, or does it? // This causes frametime jitter on client side, or does it?
settings->setDefault("max_block_send_distance", "12"); settings->setDefault("max_block_send_distance", "12");
settings->setDefault("block_send_optimize_distance", "4"); settings->setDefault("block_send_optimize_distance", "4");
settings->setDefault("block_cull_optimize_distance", "20"); settings->setDefault("block_cull_optimize_distance", "25");
settings->setDefault("server_side_occlusion_culling", "true"); settings->setDefault("server_side_occlusion_culling", "true");
settings->setDefault("csm_restriction_flags", "62"); settings->setDefault("csm_restriction_flags", "62");
settings->setDefault("csm_restriction_noderange", "0"); settings->setDefault("csm_restriction_noderange", "0");

@ -1193,13 +1193,14 @@ bool Map::isBlockOccluded(v3s16 pos_relative, v3s16 cam_pos_nodes, bool simple_c
// this is a HACK, we should think of a more precise algorithm // this is a HACK, we should think of a more precise algorithm
u32 needed_count = 2; u32 needed_count = 2;
// This should be only used in server occlusion cullung.
// The client recalculates the complete drawlist periodically,
// and random sampling could lead to visible flicker.
if (simple_check) {
v3s16 random_point(myrand_range(-bs2, bs2), myrand_range(-bs2, bs2), myrand_range(-bs2, bs2)); v3s16 random_point(myrand_range(-bs2, bs2), myrand_range(-bs2, bs2), myrand_range(-bs2, bs2));
if (!isOccluded(cam_pos_nodes, pos_blockcenter + random_point, step, stepfac, return isOccluded(cam_pos_nodes, pos_blockcenter + random_point, step, stepfac,
start_offset, end_offset, needed_count)) start_offset, end_offset, 1);
return false; }
if (simple_check)
return true;
// Additional occlusion check, see comments in that function // Additional occlusion check, see comments in that function
v3s16 check; v3s16 check;

@ -305,9 +305,9 @@ public:
} }
} }
bool isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes, bool simple_check = false) bool isBlockOccluded(MapBlock *block, v3s16 cam_pos_nodes)
{ {
return isBlockOccluded(block->getPosRelative(), cam_pos_nodes, simple_check); return isBlockOccluded(block->getPosRelative(), cam_pos_nodes, false);
} }
bool isBlockOccluded(v3s16 pos_relative, v3s16 cam_pos_nodes, bool simple_check = false); bool isBlockOccluded(v3s16 pos_relative, v3s16 cam_pos_nodes, bool simple_check = false);