Advanced Cave Culling Algorithm

For people working on the C++ code.
Post Reply
zsw
New member
Posts: 2
Joined: Fri Sep 19, 2014 11:16

Advanced Cave Culling Algorithm

by zsw » Post

https://tomcc.github.io/2014/08/31/visibility-1.html I thought this space should know about this.

User avatar
Krock
Developer
Posts: 4572
Joined: Thu Oct 03, 2013 07:48
GitHub: SmallJoker
Location: Switzerland
Contact:

Re: Advanced Cave Culling Algorithm

by Krock » Post

EDIT: Looks like I've misunderstood the topic. Looks interesting.
Last edited by Krock on Wed Oct 05, 2016 11:57, edited 1 time in total.
Look, I programmed a bug for you. >> Mod Search Engine << - Mods by Krock - DuckDuckGo mod search bang: !mtmod <keyword here>

zsw
New member
Posts: 2
Joined: Fri Sep 19, 2014 11:16

Re: Re: Advanced Cave Culling Algorithm

by zsw » Post

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)

Zeno
Member
Posts: 140
Joined: Sun Jun 29, 2014 03:36
GitHub: Zeno-
Location: Australia

Re: Advanced Cave Culling Algorithm

by Zeno » Post

Interesting article

electrodude512
Member
Posts: 39
Joined: Wed Sep 17, 2014 21:34
GitHub: electrodude
IRC: electrodude512
In-game: electrodude512
Location: USA

Re: Advanced Cave Culling Algorithm

by electrodude512 » Post

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.

gamergardencat
Member
Posts: 55
Joined: Wed Oct 01, 2014 11:58

Re: Advanced Cave Culling Algorithm

by gamergardencat » Post

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.
superman slices a giant apple into 3 and hands it to guest220

User avatar
rubenwardy
Moderator
Posts: 6295
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: United Kingdom
Contact:

Re: Advanced Cave Culling Algorithm

by rubenwardy » Post

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.

gamergardencat
Member
Posts: 55
Joined: Wed Oct 01, 2014 11:58

Re: Advanced Cave Culling Algorithm

by gamergardencat » Post

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.
superman slices a giant apple into 3 and hands it to guest220

User avatar
napodan
Member
Posts: 42
Joined: Mon Sep 29, 2014 12:07
GitHub: napodan
Location: Asnieres/France

Re: Advanced Cave Culling Algorithm

by napodan » Post

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

User avatar
rubenwardy
Moderator
Posts: 6295
Joined: Tue Jun 12, 2012 18:11
GitHub: rubenwardy
IRC: rubenwardy
In-game: rubenwardy
Location: United Kingdom
Contact:

Re: Advanced Cave Culling Algorithm

by rubenwardy » Post

Exactly. I don't see what your point is, napodan.

User avatar
napodan
Member
Posts: 42
Joined: Mon Sep 29, 2014 12:07
GitHub: napodan
Location: Asnieres/France

Re: Advanced Cave Culling Algorithm

by napodan » Post

When I read "MapBlocks (aka chunks) " I understand "MapBlocks = chunks". Sorry, but my English is not very good.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests