Я выбрал алгоритм обхода на основе стека ( Рекурсивный алгоритм обхода луча ), и у меня возникли небольшие проблемы с его пониманием.
Вот что я понимаю.
Мне нужно найти точку, в которой луч входит в воксель (затем вычислить расстояние до источника луча и эту точку), где он выходит (затем вычислить расстояние между источником и этой точкой), расстояние между происхождение луча и плоскость (в некоторых работах я видел формулу:
(splitPoint - rayOrigin[currentAxle]) / rayOrientation[currentAxle]
Моя лучевая ориентация (0, 0, -1)
, и тогда в некоторых случаях я буду делиться с нулем (потому что x = 0
и y = 0
). Как это может быть?
И в начале алгоритма источник луча находится в главном вокселе, как мне узнать расстояние, на котором луч входит в воксел?
Правильно ли я понимаю? Может кто-нибудь объяснить?