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