Октодерево (3D) использует те же самые концепции как квадрадерево (2D). Если вы прочитаете и поймете статью в Википедии о Quadtrees, вы сможете применить те же концепции в 3D.
Оба этих дерева позволяют вам использовать поиск на основе областей, который может значительно сократить количество сравнений, необходимых для выяснения, какие объекты находятся в определенной области. Это может быть полезно для визуального отбора или даже для столкновений, в зависимости от вашей игры.
Основная концепция заключается в том, что мировое пространство делится на «ведра»: квадраты для 2D или кубы для 3D. С пустым миром вы начинаете с одного квадрата или куба, который охватывает весь мир. Когда вы добавляете объекты в мир, вы начинаете с корневого узла и прокладываете путь к дереву в зависимости от местоположения и размера объекта. Если целевое ведро достигает емкости, вы делите его, разбивая квадраты на 4 меньших квадрата (квадри) или разделяя кубы на 8 меньших кубов (октри). Каждый объект, который вы добавляете в мир, вставляется в дерево только настолько глубоко, насколько он может физически вписаться в границы ковша. Если объект не помещается в границы текущего сегмента, вы должны переместить объект в наименьший родительский сегмент, внутри которого он полностью помещается.
Обратите внимание, что использование Quadtree или Octree является излишним, если в вашем мире мало объектов. Есть также решения с открытым исходным кодом для обоих.