Как я генерирую поверхностные нормали?

9

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

На данный момент я не генерирую нормалей для этих фигур. Существует ли метод общего назначения для генерации нормали граней и нормалей по вершинам для произвольной сетки? (Я полагаю, вам понадобятся грани нормали для генерации по каждой вершине?)

Cubed2D
источник

Ответы:

12

Для генерации нормали грани используйте векторное произведение двух ребер в каждом треугольнике, а затем нормализуйте результат. Убедитесь, что вы правильно указали направление, в противном случае некоторые нормали будут указывать, а некоторые - нет.

Тогда нормали вершин будут интерполяцией всех нормалей граней, к которым прикреплена вершина.

Skizz
источник
Вы имеете в виду нормализованную интерполяцию (или просто нормализованное суммирование), предположительно;)
Эндрю Рассел
3
Всегда перенормируйте после суммирования! Даже если вы интерполировали из нормализованных векторов, результат НЕ нормализуется!
Боб Сомерс