Page 1 of 1

Advanced Cave Culling Algorithm

PostPosted: Fri Sep 19, 2014 11:43
by zsw
https://tomcc.github.io/2014/08/31/visibility-1.html I thought this space should know about this.

Re: Advanced Cave Culling Algorithm

PostPosted: Fri Sep 19, 2014 19:51
by Krock
EDIT: Looks like I've misunderstood the topic. Looks interesting.

Re: Re: Advanced Cave Culling Algorithm

PostPosted: Sun Sep 21, 2014 21:51
by zsw
I guess I don't understand the reply.
Is this you grinding an axe; lobbying for dungeons? Did i post off topic? (The current development topic is dungeons, while this would be a distraction from said topic?)
Is something similar to this already implemented in dungeons and you are asking my opinion on how it contrasts?

This is a removal algorithm that is best used to remove geometry from a render queue. In an unoptimized render queue this should be a good speedup for lots of hidden visual geometry that happen often with voxel games. (I wish i had numbers)

Re: Advanced Cave Culling Algorithm

PostPosted: Mon Sep 22, 2014 12:22
by Zeno
Interesting article

Re: Advanced Cave Culling Algorithm

PostPosted: Wed Sep 24, 2014 02:47
by electrodude512
Very nice optimization. I think it should definitely be added - more culling = faster framerate = farther render distance = happy. It would be great for survival, but it would have to be disabled if you're using noclip or noclip would become useless because (almost) nothing would be rendered when you're buried in a mostly solid chunk.

Re: Advanced Cave Culling Algorithm

PostPosted: Mon Oct 20, 2014 21:18
by gamergardencat
Some games like hl and q3a would connect two large area with hallways and use some sort of special portal that would hide the models and some of the object in the rest of the map. This lead to many map makers building about half of the map out of special meshes and props that would both cut compile time and allow higher fps. I thought that was what was so special about voxel mapping but I guess that kind of thinking hasn't made it to voxel gaming yet.

Re: Advanced Cave Culling Algorithm

PostPosted: Tue Oct 21, 2014 06:50
by rubenwardy
Cutting the maps into sections like that is to save ram- you don't want to load the whole map into the game.

Minetest uses MapBlocks (aka chunks) to modulate in the same way, except multiple MapBlocks can be loaded at the same time.

Re: Advanced Cave Culling Algorithm

PostPosted: Tue Oct 21, 2014 07:21
by gamergardencat
Well it saves processing of animation where you have 20 players in one room blasting off all their guns but none of that is rendered to players on the other side of that map. It was always fun to find glitches to move from one spot to another and suddenly see 5 players attacking you disappear. It's not a good idea to cut up a map like that if you don't know how to do it right. I don't really see much use for this in Minetest might be a good idea for something like Ace of Spades. I don't see a terribly easy way since Ace of Spades maps tend to be very wide and open maps. Those node blocks are very simple solid sans textures. Besides it's not like there is a whole bunch of animations or models made for Minetest except for a few mobs. Maybe it would be useful for that but not exactly the lowest hanging fruit at the moment. Every thing in a q3a map is loaded at start and wasn't written read and buffer from the drive on the client side. Which of course lead to errors sometimes for very larges maps meaning you have to mess with the configuration files to load certain maps. Sometimes player could not play those rare maps if they had an older computer.

Using chucks solves both problems I guess that would be something bsp mapping could gain somehow.

Re: Advanced Cave Culling Algorithm

PostPosted: Tue Oct 21, 2014 09:01
by napodan
rubenwardy wrote:
Minetest uses MapBlocks (aka chunks) to modulate in the same way, except multiple MapBlocks can be loaded at the same time.


Maybe I'm wrong, but I believe that '1 chunk = chunksize^3 MapBlock = chunksize^3 * 16^3 nodes' . All nodes in ONE chunk are loaded at the same time.

Edit : 1 MapBlock = 16^3 nodes

Re: Advanced Cave Culling Algorithm

PostPosted: Tue Oct 21, 2014 12:06
by rubenwardy
Exactly. I don't see what your point is, napodan.

Re: Advanced Cave Culling Algorithm

PostPosted: Tue Oct 21, 2014 12:18
by napodan
When I read "MapBlocks (aka chunks) " I understand "MapBlocks = chunks". Sorry, but my English is not very good.