Re: Расчет нормалей
От: NikeByNike Россия  
Дата: 28.03.07 14:01
Оценка: +1
Здравствуйте, Sysel, Вы писали:

S>Hi


S>Помогите плиз, я начинающий gamedevelop'er.

S>Есть ландшафт, нужно сделать нормали к грани или вертексу.
S>Пишу на OpenGL. Если можно пример или линк.

Нормаль к грани считается очень просто: (V2 — V1) * (V3 — V1), нормализовать её перед использованием или нет — зависит от методов использования. Как правило можно обойтись без нормализации.

Нормаль к вертексу, которая собственно говоря и используется для отрисовки, считается как: Normal = SUMM(FaceNormal * поправочный коэффициент), для всех фейсов инцидентных вершине. В простом случае поправочный коэффициент можно сделать = 1, или высчитывать в зависимости от важности фейса. Нормализация тоже по обстоятельствам (обычно нормализация происходит в видяхе).

Практический алгоритм такой: обнуляешь все вертексные нормали, проходишь по всем треугольникам, для каждого считаешь нормаль и прибавляешь её к каждой (из трех) нормалей вертексов.

P.S.
В случае ландшафта, если считать, что он представлен картой высот — можно соптимизировать расчеты, но это зависит от его структуры.
Нужно разобрать угил.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.