zombihello
Создавать - нормально. Главное потом лайтмапины эти упаковывай в один атлас.
bool
Спасибо огромное, вроде как с этим разобрался и теперь знаю, что иду по верному пути :)
Только подскажите, пожалуйста, какие существуют простые алгоритмы для добавления теней в лайты?
Ибо трассировка лучей очень долгая. Например, у меня есть демо-уровень и на нем в сумме где-то 1500 треугольников
и сие чудо запекается приличное время.
zombihello
> Подскажите, пожалуйста, лёгкий и простой метод который бы заменил трассировку
> лучей, ибо ждать три часа пока просчитаються все лайты не айс.
Лёгкого и простого, да так, чтобы ждать три часа не приходилось, не существует, ну или существует, но с существенной потерей качества.
Я понял, а в наше время для этого какие алгоритмы применяют, подскажите, пожалуйста, чтобы я знал в какую сторону копать.
zombihello
Для ускорение трассировки разного рода вариации BVH. Также хорошо помогает разбивка на тайлы и многопоток, если реализуешь трассировку сам.
Все это касается как CPU, так и GPU реализаций.
Корректные тени без трассировки получить нереально. По крайней мере от прямого освещения. Надо оптимизировать саму трассу. Конечно если на каждый вызов в цикле перебирать 100500 треугольников, это будет очень долго.
ты можешь взять что-нибудь из этого:
https://developer.nvidia.com/optix
https://gpuopen.com/gaming-product/radeon-rays/
https://blogs.msdn.microsoft.com/directx/tag/dxr/
и проблема быстрой трассировки лучей будет решена, останется только развлекаться )
Спасибо за ссылки, завтра как-то посмотрю.
Ребят, подскажите, пожалуйста, в чем может быть проблема?
zombihello
> в чем может быть проблема?
Похоже, что карту теней нужно сдвинуть на полпикселя.
Mikle
> Похоже, что карту теней нужно сдвинуть на полпикселя.
Это тени в лайтмапах, а не в shadow maps. Простите, забыл уточнить. Или я чего-то не понял?
zombihello
> тени в лайтмапах, а не в shadow maps
Понятно. И в том, и в другом случае, нужно учитывать, что при записи в текстуру пикселя с индексом, скажем, x-y, мы закрашиваем прямоугольник с центром в x+h, y+h, где h - половина размера пикселя. И в случае Light Maps, и в случае Shadow Maps, это можно учитывать сразу при создании текстуры, а можно вносить поправку в текстурные координаты.
Mikle
Спасибо большое, ваш совет помог (ну, на этой карте уж точно), но я столкнулся с одной неприятной проблемой.
Дело вот в чем. Тень идеально ложиться с light maps размером 512х512, а с размером ниже, например, 32х32, то
опять вылазят такие бока. Как я понял не хватает точности. Каким образом можно эту точность увеличить, ибо
хранить лайты огромных размеров, например, 512х512 это какое-то кощунство. И да, подскажите, пожалуйста, в чем
может быть проблема на третьем скриншоте. Вроде как мне кажется проблема с наложением лайта, но
проверил вычисление UV координат, то они такие же как в том уроке (я учитывал центр пикселя при просчете
лайтов).
Скриншоты:
zombihello
прибавляй по пикселю к размерам каждой лайтмапы, типа охранного бордюра. И потом сдвинешь на полпикселя.
g-cont
Спасибо за совет, домой приду попробую так сделать.
К слову, баг на третьем скриншоте уже исправил. Я криво UV координаты считал (брались не те треугольники)
Лайтмапы неудобно накладывать на треугольники, уже говорили вроде.
Тема в архиве.