bzdb setVars Volume C

Place for people to discuss public servers, and also for admins to lay out the details of their servers
Post Reply
User avatar
SilverFox
Private First Class
Private First Class
Posts: 163
Joined: Wed Oct 06, 2004 6:51 pm
Contact:

bzdb setVars Volume C

Post by SilverFox »

I'm trying to put together documentation of the setvars here, and could use some help. Let's start with set vars beginning with the letter C. If you know what any of the variables below do, please reply and let me know!

_coldetDepth
_coldetElements
_cullDepth
_cullElements
_cullOccluders

Thanks,
Last edited by SilverFox on Thu Feb 24, 2005 8:58 pm, edited 1 time in total.
trepan
Dev Wizard
Dev Wizard
Posts: 704
Joined: Fri Feb 21, 2003 7:50 pm

Post by trepan »

Those variables control the visual culling octree and
and the collision detection octree. The depth parameters
are the max depths that the octrees can be split into. The
elements parameters is the number of elements within
an octree node before the subdivision stops (unless the
max depth has already been reached). The _cullOccluders
parameter indicates the max number of occluders that can
be used (if you don't know what an occluder is, set it to 0).

The best way to understand what these values do is to
turn on WireFrame, Collision Tree, and Culling Tree in
the Display options. The most recent 2.0.1 build allow you
to do this even if you have not build the client with debug
mode (but you'll have to start the client with a -d option)
User avatar
SilverFox
Private First Class
Private First Class
Posts: 163
Joined: Wed Oct 06, 2004 6:51 pm
Contact:

Post by SilverFox »

For those that are ignorant as I:

culling: Ignoring hidden image data to reduce the amount of time required to render a model.

octree: A space-occupancy representation used for representing 3D volumetric objects. It is a hierarchical representation, designed to use less memory than representing every voxel of the object explicitly. Octrees are based on subdividing the full voxel space containing the represented object into 8 octants by planes perpendicular to the three coordinate axes. Octants that completely contain a single object are denoted as being pure. Octants that contain multiple objects are recursively split into 8 new smaller octants. This splitting continues until all volumes are either pure, or some volume size limit is reached. A tree data structure can be used to represent the octree. Normally, the octree data structure will have only about as many nodes as there are voxels on the object surface, which can be much less than the total number of voxels in the object. Hence, an octree representation can save a lot of space when representing an object or scene.

Understanding that and what trep said above, the following questions remain (aside from WTH is a voxel!?!):

1) From what I understand about what I just read (above) and octree is a a group of all 8 of the 3d quadrants (more like cube) and could (not necessarily) be split into infinate more octrees. There's probably a better way to articulate that. So, the default for _coldetDepth is 6, does this mean the "collision octree" can be split up to 6 times? For example the first split could narrow to above ground, positive X, positive Y, then the next would split that quadrant into 8 cubes, of which one of those could be split and so on? This would narrow the map to a cube area from which a tank (or other collideable object, like a bullet) could collide into something? I guess what I really want to know is a) what happens when you increase this value and b) what happens when you decrease the _coldetDepth value?

2) What is an element? Is that a single object, or is that the points in an object (ie, a box 2x2x2 would have 2^3 elements in it)?

3) What is an occluder? I presume it has something to do with the culling, telling a client what to draw and what not to draw (no sense drawing a face that isn't visible to the client, right?)

4) These all seem to be options for how a client displays the world. Why are they in the bzfs bzdb?

As soon as I have access to a client, I will run it w/Debug and check this out more, until then I'm resigned to googling and cooresponding with you. I appreciate you (and all devs) taking the time to educate us (me in particular) on this modeling stuff as it is very very new to me.
User avatar
wegstar
Private First Class
Private First Class
Posts: 127
Joined: Sun Dec 26, 2004 4:33 am
Location: Good ol' California
Contact:

Post by wegstar »

Grab some info from http://bzflag.org/wiki/ServerVariables I had updated with 2.0 vars some time ago... hope that helps!
Formerly "nader"
---
Microsoft broke Volkswagen's world record: Volkswagen only made 22 million bugs!
-----
"Do not meddle in the affairs of cats, for they are subtle and will pee on your computer." -- Bruce Graham
User avatar
SilverFox
Private First Class
Private First Class
Posts: 163
Joined: Wed Oct 06, 2004 6:51 pm
Contact:

Post by SilverFox »

More importantly, what do I put for a short descriptiong for each of these in the man page?
User avatar
RPG
Lieutenant, Junior Grade
Lieutenant, Junior Grade
Posts: 2015
Joined: Fri Sep 17, 2004 2:37 am
Location: Chicago, Illinois
Contact:

Post by RPG »

Plea to someone that has CVS commit access. Basically, a dev.
Post Reply