Interested Article - Октодерево

Октодерево
Слева: Рекурсивное разделение куба на октанты. Справа: Соответствующее октодерево.
Сферическая модель октодерева с глубиной 7

Октодерево ( дерево октантов , восьмеричное дерево , англ. octree ) — тип древовидной структуры данных , в которой у каждого внутреннего узла ровно восемь «потомков». Восьмеричные деревья чаще всего используются для разделения трёхмерного пространства, рекурсивно разделяя его на восемь ячеек. Октодеревья являются трёхмерными аналогами квадродеревьев . Англоязычное название «octree» сформировано из oct + tree и обычно пишется как «octree», а не «octtree».

Представление пространства октодеревом

Каждый узел ( англ. node ) в дереве октантов делит пространство на восемь новых октантов. В региональной точке ( англ. point region — PR ) октодерева узел сохраняет явную трёхмерную точку, которая является «центром» разделения пространства для этого узла. Данная точка определяет один из углов каждого из восьми дочерних пространств. В MX-октодереве точка разделения является неявным центром пространства, которое представляет узел. Корневой узел PR-октодерева может представлять бесконечное пространство. Корневой узел MX-октодерева должен представлять ограниченную область пространства, так чтобы неявные центры были чётко определёнными. Октодеревья не могут считаться k-мерными деревьями , поскольку k-мерные деревья разделяются вдоль размерности, а октодеревья разделяются вокруг точки. Кроме того, k-мерные деревья всегда являются двоичными , что неверно для октодеревьев.

Общее использование октодеревьев

Применение для квантования цвета

Алгоритм октодерева для (англ.) , изобретённый Гервауцем и Пургатхофером в 1988 году, кодирует данные о цвете изображения как октодерево с девятью уровнями в глубину. Использование октодерева объясняется тем, что и в системе RGB есть три компоненты цвета. Данный алгоритм очень эффективен по отношению к использованию памяти, потому что размер дерева может быть ограничен. Нижний (базовый) уровень октодерева состоит из узловых листьев ( англ. leaf nodes ), которые накапливают данные о цвете, которые не представлены в дереве; эти узлы первоначально содержат единичные биты. Если в октодерево введено намного большее количество цветовой палитры, чем желательное, то размер октодерева может непрерывно сокращаться, ведя поиск узла на нижнем (базовом) уровне и составляя в среднем его битовые данные в узловой лист, сокращая часть дерева. Как только осуществление выборки закончено, в дереве исследуются все маршруты по направлению вниз к узловым листьям, принимая во внимание биты по пути поиска. Этот процесс приведёт к приблизительному количеству требуемых цветов.

Использование октодеревьев в конкретных приложениях

Внешние ссылки

Англоязычные источники
  • (недоступная ссылка)
  • (недоступная ссылка)
  • от 3 марта 2016 на Wayback Machine
Русскоязычные источники
  • Артем Мерец «Scart». 2. (26 февраля 2007). Дата обращения: 3 июня 2009. 2 апреля 2012 года.
  • Артем Мерец «Scart». 2. (5 февраля 2008). Дата обращения: 3 июня 2009. 2 апреля 2012 года.
  • Джо. . GameDev.ru . Дата обращения: 3 июня 2009.
  • . GameDev.ru . Дата обращения: 3 июня 2009.
  • Алексей Игнатенко. . Дата обращения: 3 июня 2009. Архивировано из 2 апреля 2012 года.
Источник —

Same as Октодерево