http://graphicsrunner.blogspot.com/search?updated-max=2009-08-27T02%3A45%3A00-04%3A00&max-results=10

ли кто-нибудь дать краткое и приятное объяснение (или предложитьхороший учебное пособие) о том, как наложить луч на октрею вокселей без рекурсии?

У меня сложная модель, запеченная в октое, и мне нужно найти лучший / ближайший лист, который пересекает луч. Стандартная развернутая итеративная прогулка по дереву:

Захватить корневой узелПроверьте на пересечениеНет? ВыходДа? Найдите ребенка, который пересекает луч, ближайший к его происхождениюЦикл пока я не достигну листа или не выйду из дерева

Всегда возвращает лист, но в случаях, когда дерево хранит, скажем, ландшафт, ближайший узел к началу луча не обязательно содержит лист, который лучше всего соответствует. Это не удивительно - более высокие объекты в дальних узлах не будут тестироваться с использованием этого подхода.

Я могу сделать это рекурсивно, находя все пересекающиеся листья в дереве, сортируя по расстоянию и выбирая ближайший к положению луча. Однако это медленно и требует рекурсии.

Я немного читал об использовании алгоритма линии Брезенхэма для обхода дерева, которое, по-видимому, требует, чтобы каждый узел содержал указатели на соседние соседи, но мне неясно, как реализовать это полезным способом.

Какие-либо предложения? Я могу подделать стек в HLSL, используя массив фиксированной длины или структуру с элементом для каждой потенциальной записи в стеке, но требования к памяти для этого могут стать вредными для достаточно большого дерева.

Помогите.

Ответы на вопрос(1)

Ваш ответ на вопрос