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

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

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

6
Hannesh 20 Мар 2011 в 00:27

2 ответа

Лучший ответ

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

4
Xodarap 20 Мар 2011 в 20:23

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

-2
RobotRock 25 Июн 2011 в 14:22
4
Octree - это структура данных, а не алгоритм.
 – 
Sebastian Mach
10 Фев 2012 в 16:57