Понедельник, 18 Ноября 2024, 11:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
GLSL - Нормали и матрицы
holyblackcatДата: Воскресенье, 19 Января 2014, 00:05 | Сообщение # 1
уже был
Сейчас нет на сайте
Я пытаюсь написать свой шейдер освещения на GLSL. В принципе, основа шейдера готова, но есть одна проблема: Если я правильно понял, нормали не поворачиваются по матрице вида модели, так что если модель повернуть, уровень освещения полигонов не меняется. Я перепробовал кучу преобразований с матрицами, но так и не смог добиться нормального результата.
Код: Клац.


Сообщение отредактировал holyblackcat - Воскресенье, 19 Января 2014, 00:07
ArchidoДата: Воскресенье, 19 Января 2014, 18:19 | Сообщение # 2
Сэнсэй
Сейчас нет на сайте
Что-то там странное творится во фрагментном шейдере, на основе чего там строится освещение? Взял бы классического Ламберта + Фонга для попиксельного освещения. Что, касается нормалей то нужно помножить их на glNormalMatrix = transpose(inverse(ModelViewMatrix));

C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
holyblackcatДата: Понедельник, 20 Января 2014, 03:06 | Сообщение # 3
уже был
Сейчас нет на сайте
Все, тему можно закрывать. Просто, кое-кто сказал мне, что gluLookAt() нужно использовать в матрице вида модели, а не в матрице проекции. Именно поэтому операции над матрицами работали криво.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг