diff options
author | lhofhansl <lhofhansl@yahoo.com> | 2016-12-18 21:43:04 -0800 |
---|---|---|
committer | est31 <est31@users.noreply.github.com> | 2016-12-19 06:43:04 +0100 |
commit | 24edfb77afbb631cb83d26a095b609850f997e5c (patch) | |
tree | 79ffb22ace61f691d263a3a3e4f03ed9b9efe1c9 | |
parent | e4f7ce1985bda1c37b62f24d028828c5d3851ca2 (diff) | |
download | minetest-24edfb77afbb631cb83d26a095b609850f997e5c.tar.gz minetest-24edfb77afbb631cb83d26a095b609850f997e5c.tar.bz2 minetest-24edfb77afbb631cb83d26a095b609850f997e5c.zip |
Fix occlusion culling, again (#4930)
-rw-r--r-- | src/clientmap.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/clientmap.cpp b/src/clientmap.cpp index db71d4b57..faa1461f6 100644 --- a/src/clientmap.cpp +++ b/src/clientmap.cpp @@ -301,7 +301,10 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver) float endoff = -BS * MAP_BLOCKSIZE * 1.732050807569; v3s16 spn = cam_pos_nodes; s16 bs2 = MAP_BLOCKSIZE / 2 + 1; - u32 needed_count = 1; + // to reduce the likelihood of falsely occluded blocks + // require at least two solid blocks + // this is a HACK, we should think of a more precise algorithm + u32 needed_count = 2; if (occlusion_culling_enabled && // For the central point of the mapblock 'endoff' can be halved isOccluded(this, spn, cpn, |