Вложений: 1
Нормали - это пермендикуляры к поверхности в любой точке. В Blitz'е нормали имеет каждый вертекс модели.
Вы спросите, а зачем они нужны? Сперва может показатся что они ненужны вовсе... но это на первый взгляд. На самом деле нормали влияют на освещение модели: - если нормаль направлена прямо на источник света, то эта часть модели освещается полностью (освещенность в этой точке максимальна); - если нормаль находится под углом к источнику то возмодны два случая: 1. Угол нормали больше 0 но меньше 90 градусов - в этом случае освещенность меняется по мере изменения угла т.е. чем больше угол тем меньше освященность; 2. Угол нормали больше или равна 90 градусов - в этом случае модель освещается глобальной подсветкой (в Blitz'е она задается оператором AmbientLight red#,green#,blue#). Таким образом правильное направление нормали влияет на качаство освещения модели. В Blitz'е нормали можно изменить двумя методами: - возложить определение нормалей на Blitz - это осуществляется оператором UpdateNormals mesh; - вручную - осуществляется оператором VertexNormal surface,index,nx#,ny#,nz#. Пример использования этого оператора: Код:
For k=1 To CountSurfaces(Mesh) Пример прикрепленный к этому сообщению демонстрирует влияние нормалей на освещение сфер: зеленая сфера имеет правильное направление нормалей (т.е. перпендикулярно к поверхности), а нормали оранжевой сферы направлены в точку, из которой начал движение источник света. |
Ну нормаль не совем перпендикуляр - это вектор, перпендикулярный плоскости.
|
Вот нашел определение нормали в БЕС'е:
Цитата:
|
Часовой пояс GMT +4, время: 17:53. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot