![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Smooth shading ландшафта [Delphi, OpenGL]
Ricks © (2005-09-25 01:36:00)Люди, подскажите, какаим образом лучше высчитать нормали для карты высот так, чтобы не было резких переходов на границах???
!Trinix (2005-09-27 08:06:00) [1]Извините за флуд, но прошу зайти на мой сайт: gameislands.ru.
«Downloads» только для зарегистрированных пользователей!
XProger (2005-09-27 04:08:00) [2]Ricks, сколько плоскостей можно построить по 4 точкам? Следовательно, сколько нормалей будет у тебя на каждый квад? Куда их пихать?
Попытайся вникнуть в код и не задавать глупых вопросов...
Ricks (2005-09-27 00:40:00) [3]> XProger
То есть, просто их усреднять по текущему треугольнику?
Видимо надо уточнить, что у меня карта высот состоит из квадратов...
И мне нужно именно РАСЧИТАТЬ нормали, а не сгладить существующие...
XProger (2005-09-25 02:53:00) [4]
// Подготовка массива нормалей
SetLength(Normal, V_Count);
FillChar(Normal[0], V_Count*SizeOf(TVector), 0);
for i := 0 to F_Count - 1 do
begin
// Вычисляем нормаль к полигону
n := P_Normal(Vertex[Face[i][0]], Vertex[Face[i][1]], Vertex[Face[i][2]]);
// Прибавляем к нормалям в вершинах полигона
for j := 0 to 2 do
Normal[Face[i][j]] := V_Add(Normal[Face[i][j]], n);
end;
// Нормализация
for i := 0 to V_Count - 1 do
Normal[i] := V_Normalize(Normal[i]);