Войти
ПрограммированиеФорумГрафика

Правильная трансформация нормалей. (3 стр)

Страницы: 1 2 3
#30
7:20, 20 апр. 2017

MrShoor
Даже если они были единичные в vs, то после растеризации они не будут единичные всюду, так что в fs их так и так нужно нормализовать! Причём не только нормали, но и все вектора направлений!

#31
9:04, 20 апр. 2017

Epsilon
> нормали меняют направление.
> Объясните пожалуйста нубу.

Любая нормаль подразумевает плоскость, к которой она и является нормалью. Ищем эту плоскость, трансформируем её нашей матрицей (даже не аффинной), а к полученной плоскости снова ищем нормаль - это и есть искомая величина. Если результат не совпадает с результатом, полученным таким образом - значит он неправильный. В п.16 я привёл именно такой, медленный, но верный расчёт.

#32
9:08, 20 апр. 2017

Mikle
Но при скейле и переносе,  вектор нормали по идее не меняется

#33
9:45, 20 апр. 2017

Mira
При разном скейле по осям меняется.

#34
9:58, 20 апр. 2017

Скейл в матрице у меня всегда юниформный. Значит не грозит

#35
12:13, 20 апр. 2017

Mikle
Всё равно пока не понял, как нормали могут менять направление.

Mikle
> При разном скейле по осям меняется.
Блин, а у меня в тестовом стенде он одинаков.

#36
12:22, 20 апр. 2017

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

+ Скрин
+ Пока пилил тестовый стенд, столкнулся с интересным совпадением: слова Shift, Angle и Scale имеют одинаковую длину.

Как работает:
1) В интерфейсе выставляем разные значения смещения, поворота и масштаба (масштаб пока только радиальный).
2) На основе этого формируется матрица.
3) Матрица применяется к векторам-нормалям.
4) Нормали визуализируются.

(Управление: С - вкл/откл захват мыши, ESC- выход , WASD-перемещение, Мышь - осмотреться.)

Тестовый стенд полного матричного преобразования

upd: никаких искажений нормалей обнаружить не смог.

#37
13:03, 20 апр. 2017
+ Теперь сам код
Страницы: 1 2 3
ПрограммированиеФорумГрафика

Тема в архиве.