Ответ: Clear Engine (Понятный движок)
Цитата:
покажи на флипанутом кубе, затекстурь все стены одной и той же нормалкой и таскай там лайт повсюду. |
Ответ: Clear Engine (Понятный движок)
Цитата:
вот куб, что-то здесь не так http://rutube.ru/video/e7c98c126c668...9ebc1ed97240d/ |
Ответ: Clear Engine (Понятный движок)
да, выглядит сломано, отрисовывай в какой позиции находится лайт, шариком или спрайтом
|
Ответ: Clear Engine (Понятный движок)
Цитата:
|
Ответ: Clear Engine (Понятный движок)
я делаю так
Код:
vec3 normtex = texture2D(normalmap, IN_TexCoords).xyz; некоторые любят переводить лайты в тангент спейс, но мне кажется так удобнее. |
Ответ: Clear Engine (Понятный движок)
Ребят посмотрите мой шейдер
PHP код:
|
Ответ: Clear Engine (Понятный движок)
Цитата:
Цитата:
Цитата:
Цитата:
-- а, я понял, ты переводишь направление от лайтов в тангент спейс в VS, все равно непонятно что за прибавление вертексной нормали в PS тогда, плюс направление от поинтлайтов считать в VS на сцене из кубов это жесть по-любому. |
Ответ: Clear Engine (Понятный движок)
Я не сильно силен в такой математике, что то как то по формулам набросал. Мажешь помочь с этими шейдерами? Что как правильно написать
|
Ответ: Clear Engine (Понятный движок)
лучше помоги ему с математикой
|
Ответ: Clear Engine (Понятный движок)
|
Ответ: Clear Engine (Понятный движок)
TBN!
|
Ответ: Clear Engine (Понятный движок)
лучше скажи в теории как ты понимаешь как работает бамп.
я тебя поправлю где надо. без понимания всё время придётся копипастить. |
Ответ: Clear Engine (Понятный движок)
Цитата:
|
Ответ: Clear Engine (Понятный движок)
Цитата:
мы накладываем обычное попиксельное освещение, но нормали берем из текстуры, учитывая нормаль самого объекта и матрицы нормали... как это все между собой связывается в коде, я понятия не имею, да и не видел по этому поводу простых для понимания мануалов |
Ответ: Clear Engine (Понятный движок)
Цитата:
Нормалмапа - находится в пространстве TBN, которое образуется одной матрицей, сделанной из тангента, бинормали и нормали. Эти три хреновины - тупо 3 перпендикулярные друг другу вектора. Каждый пиксель нормалмапы это вектор в их системе координат. Синий канал это насколько вектор повёрнут в сторону нормали, красный и зеленый - в стороны других осей (в каждом пикселе). Только щас заметил, ты не декодируешь сам вектор из карты то. Нужно всегда делать nmap = nmap*2-1, чтобы из диапазона [0;1] перевести каждый компонент вектора нормалмапы в диапазон [-1;1]. Ну вот, короче тебе надо соорудить TBN матрицу из трёх векторов и умножить нормалмапу на неё - тогда ты переведёшь нормалку в ворлдспейс, или (как у тебя было) умножить ворлдспейсовые вектора направлений света на неё (в другой последовательности), тогда ты переведёшь их в пространство нормалки и осветишь там. В блице TFormNormal видел? Ну вот, там были локальные координаты и глобальные, а тут локальные координаты задаются TBN матрицей на каждый вертекс/фрагмент и надо тформить чтобы всё оказалось в одном пространстве в результате. Я бы по-прежнему рекомендовал перевести нормалку в ворлдспейс, потому что это 1 умножение матрицы против кучи умножений на каждый лайт в цикле. Направление света от поинт лайтов надо считать в PS! Если у тебя не супер тесселлированная геометрия. Повертексно это слишком убого и ты вообще не поймёшь правильно или неправильно. |
Часовой пояс GMT +4, время: 17:37. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot