Метод нахождения нормалей к поверхности вокселя - PullRequest
2 голосов
/ 08 июля 2011

Я работал над методом аппроксимации нормали к поверхности изображения трехмерного вокселя.

Метод, предложенный в этой статье (единственный алгоритм, который я нашел через Google), кажется,Работа.Предлагаемый метод из статьи состоит в том, чтобы найти направление, в котором поверхность больше всего изменяется, выбрать 2 точки на касательной плоскости, используя некоторую процедуру, а затем взять перекрестное произведение.В некотором коде Паскаля автором статьи , прокомментированным на португальском языке, реализован этот метод.

Однако, используя градиент f (используйте каждую частную производную в качестве компонента вектора) в качественормальный, кажется, работает довольно хорошо;Я проверил это на нескольких кругах на вокселированной сфере и получил результаты, которые выглядят правильно в большинстве точек (есть несколько выбросов, отклоняющихся примерно на 30 градусов).Это очень отличается от метода, используемого в статье, но все еще работает.Что я не понимаю, так это то, почему градиент f = 1 / dist, вычисленный вдоль поверхности объекта, должен давать нормаль.

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

1 Ответ

1 голос
/ 08 июля 2011

Использование градиента громкости как нормального для освещения является стандартной техникой рендеринга объема.

Если вы интерпретируете значение вокселя как непрозрачность, градиент даст вам направление наибольшегоизменение непрозрачности, которое похоже на нормаль поверхности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...