Пересечение вокселей лучей

Я хочу проверить пересечение луча с воксельным полем.

Я мог бы наивно ползать по воксельному полю, вычисляя пересечение луча с краем текущего вокселя, а затем делая то же самое для следующего вокселя, пока не наткнусь на что-нибудь. Но нет ли более быстрого способа проследить воксельное поле? Я думал о чем-то вроде линейного алгоритма Брезенхема в 3D, что-то, что может быстро дать мне все клетки пересекает данная линия. Кто-нибудь делал это раньше?

Из-за ограничений certian и того факта, что эти трассировки лучей происходят не так часто, я не хочу строить октодерево или любую другую структуру данных.


person Hannesh    schedule 19.03.2011    source источник


Ответы (2)


Вот реализация Брезенхэма в 3D. Это в матлабе; если вы не говорите, вы можете увидеть реализацию C здесь< /а>.

person Xodarap    schedule 20.03.2011

Я считаю, что алгоритм октодерева делает то, о чем вы просите.

person RobotRock    schedule 25.06.2011
comment
Octree — это структура данных, а не алгоритм. - person Sebastian Mach; 10.02.2012