Я понимаю, что для создания фигуры (скажем, 3D-сферы для примера) мне нужно сначала найти расположение вершины фигуры, а во-вторых, использовать параметрическое уравнение, чтобы создать точки x, y, z треугольные сетки. В настоящее время я рассматриваю пример кода для создания фигур и, как представляется, после использования параметрического уравнения для нахождения векторов треугольных сеток найдены единичные нормали к сфере в вершинах.Какова цель единичного нормального вектора при создании 3D-фигуры?
Я понимаю, почему обычные векторы на первом этапе используются для создания 3D-формы и что нормальный вектор перпендикулярен объекту фигуры, но я не понимаю, почему единичные нормальные векторы в вершинах используются для создания формы? Какова цель поиска нормали векторов?
Здесь нет эксперта ... но iirc нормали используются для определения того, как освещается освещение объекта, а формулы, которые принимают нормальные векторы, несколько ожидают, что они будут единичной длиной? У меня создается впечатление, что для хотя бы некоторых вычислений интенсивность «отражения» или «диффузии» освещения напрямую связана с величиной нормали. Кроме того, IIRC, для треугольника, нормали из каждой вершины суммируются, затем нормируются (или, по крайней мере, делятся на 3?). Не 100% уверены, но если они не являются единичной длиной, я думаю, что некоторые вещи могут оказаться не совсем правильными. – Serge
Отличное объяснение, спасибо –
Серж и mdunsmuir правы. Не забывайте, что в самой последней версии Java3D (1.6.0 pre 11) используется JOGL, которая является привязкой Java для OpenGL и API OpenGL ES. Если вы не нормализуете нормали, вы можете попросить OpenGL сделать это. В конце OpenGL ожидает нормали с единичной длиной. – gouessej