2014-12-02 3 views
0

Я понимаю, что для создания фигуры (скажем, 3D-сферы для примера) мне нужно сначала найти расположение вершины фигуры, а во-вторых, использовать параметрическое уравнение, чтобы создать точки x, y, z треугольные сетки. В настоящее время я рассматриваю пример кода для создания фигур и, как представляется, после использования параметрического уравнения для нахождения векторов треугольных сеток найдены единичные нормали к сфере в вершинах.Какова цель единичного нормального вектора при создании 3D-фигуры?

Я понимаю, почему обычные векторы на первом этапе используются для создания 3D-формы и что нормальный вектор перпендикулярен объекту фигуры, но я не понимаю, почему единичные нормальные векторы в вершинах используются для создания формы? Какова цель поиска нормали векторов?

+0

Здесь нет эксперта ... но iirc нормали используются для определения того, как освещается освещение объекта, а формулы, которые принимают нормальные векторы, несколько ожидают, что они будут единичной длиной? У меня создается впечатление, что для хотя бы некоторых вычислений интенсивность «отражения» или «диффузии» освещения напрямую связана с величиной нормали. Кроме того, IIRC, для треугольника, нормали из каждой вершины суммируются, затем нормируются (или, по крайней мере, делятся на 3?). Не 100% уверены, но если они не являются единичной длиной, я думаю, что некоторые вещи могут оказаться не совсем правильными. – Serge

+0

Отличное объяснение, спасибо –

+0

Серж и mdunsmuir правы. Не забывайте, что в самой последней версии Java3D (1.6.0 pre 11) используется JOGL, которая является привязкой Java для OpenGL и API OpenGL ES. Если вы не нормализуете нормали, вы можете попросить OpenGL сделать это. В конце OpenGL ожидает нормали с единичной длиной. – gouessej

ответ

2

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

+1

... и даже в менее сложных методах рендеринга: нормальная поверхность является неотъемлемой частью расчета освещения практически в каждом алгоритме реального времени, поскольку модель Ламберта была впервые применена к плоскоугольным многоугольникам. – Tommy

Смежные вопросы