Пересечение лучей вокселей - PullRequest
5 голосов
/ 20 марта 2011

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

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

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

Ответы [ 2 ]

3 голосов
/ 20 марта 2011

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

0 голосов
/ 25 июня 2011

Я полагаю, что алгоритм octree выполняет то, что вы просите.

...