darbycostello/Nav3D

Feature Request

Closed this issue · 2 comments

Ability to create non-uniform nav3D volumes.
e.g. input desired volume x,y,z dimensions, rather than overall volume.
Great Plugin and great work, btw.

Thanks, I did look into this idea. Unfortunately it's not possible to set different volume dimensions because the solution employs an octree, which partitions a space into eight uniform-size voxels, then each of these into eight more voxels and so on.

Any non-cubic volume would therefore prevent partitioning to create uniform voxels. Once this limitation is coupled with the ability to set the voxel depth of the octree (i.e. the level of detail) then it quickly becomes apparent that even the actual overall volume is approximated to meet the desired scale in 3D space as closely as possible. That's why it produces a volume which only closely approximates the desired size; I decided that both the total navigable area and the level of detail were the most important factors in the equation.

The good news is you can just ignore any part of the volume you don't want to use; it's a sparse voxel octree, which means it only builds voxels where it needs to, i.e. around your collision entities. No memory is used on empty space so for example, in the case of an elliptic-style 3D environment like an asteroid field, the majority of the voxels will be in the middle 'band' of the cubic volume, with the top and bottom mostly empty. The memory footprint is only taken up by this middle 'band'.

Thanks for that. I've got a massive cityscape that we're flying dropships around, blasting NPCs.
The way I've gotten around it so far is to have nav modifier volumes increasing thetraversal cost of the voxels above the highest buildings to keep the action in the streets and alleys (where it's fun). At least, I think that's how it's working.
Thanks again :)