Запекание света и теней в реальном времени
|
|
robertono | Дата: Пятница, 24 Октября 2014, 20:42 | Сообщение # 1 |
Чокнутый Кот
Сейчас нет на сайте
| Можно ли запечь свет и тени в реальном времени? Допустим у меня есть источник света (point light), запекаю его свет и всё, он больше не использует процессор и не реагирует на новые объекты. Всё что за 1 секунду он осветил сразу запекается. Можно так сделать?
А можно запечь тени? Отрендерить их 1 кадр и всё, так и оставить, но выключив их оставить их на объекте.
Заранее спасибо
|
|
| |
Lertmind | Дата: Пятница, 24 Октября 2014, 21:59 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Думаю нельзя, это лишено смысла. Запекают всегда заранее, ты же не хочешь включать в дистрибутив игры lightmapper – Beast. Тени там же запекаются, как ты хочешь - нельзя. Что ты хочешь звучит возможным, но мне кажется сложно реализуемо и того не стоит.
|
|
| |
robertono | Дата: Пятница, 24 Октября 2014, 22:04 | Сообщение # 3 |
Чокнутый Кот
Сейчас нет на сайте
| Lertmind, для динамических миров очень даже стоит. Beast lightmapper имеет свои тени, они позволяют делать soft shadows в free. Но почему нельзя просто сохранить hard shadows с одного кадра и всё?
|
|
| |
romgerman | Дата: Суббота, 25 Октября 2014, 17:23 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Во-первых, запекание будет идти долго.
|
|
| |
robertono | Дата: Суббота, 25 Октября 2014, 18:00 | Сообщение # 5 |
Чокнутый Кот
Сейчас нет на сайте
| romgerman, это не совсем запекание.. Ведь тени рендерятся каждый кадр по новой, почему нельзя просто взять и сохранить их... Наверно поэтому и некоторые делают свои движки
|
|
| |
Xakep | Дата: Суббота, 25 Октября 2014, 18:44 | Сообщение # 6 |
めちゃくちゃちゃ
Сейчас нет на сайте
| я вообще не понял что ты имеешь ввиду? запекают освещенность в карты освещенности (lightmap) для того, чтобы выглядило реалистичнее картинка, соответственно на подобную процедуру тратятся большие вычислительные ресурсы, для большой сцены, на обычном компьютере, приемлимое качество будет запекаться ну очень долго, может больше часа запекаться. Как ты говоришь на первом кадре запечь и все, но зачем?? если лучше заранее запечь все эти карты, чтобы уменьшить объем? Если же хочется реалтайм, то lightmap'ы тут и подавно не нужны, реалтаймовый GI самый реалистичный сейчас SVOGI придуманный эпиками, но он настолько много ресурсов жрет, что они его выкинули из своего движка на время, сейчас оно пилется NVIDIA и называется VXGI. SVOGI реализовывали и на юнити: ссылка
Вроде бы для Unity еще плагин пилится SpectraGI пишут что до 20 отражений один луч может иметь, вроде как реалтаймовый GI через Path Tracing, но звучит как-то слишком фантастично, если уж с SVOGI со своими 2 отражениями не справляются современные компьютеры, то что уж говорить о 20.
|
|
| |
robertono | Дата: Суббота, 25 Октября 2014, 19:45 | Сообщение # 7 |
Чокнутый Кот
Сейчас нет на сайте
| Xakep, ну да, выразился я конечно не очень корректно. Тогда скажу просто : есть Realtime hard тени которые идут в юнити. Я так понимаю они рендорятся каждый кадр по новой (realtime ведь). Можно ли как то прорендерить их только один кадр, а потом это отображать? Тени довольно прожорливые на старых пк, вместо того, что бы каждый кадр рендерить по новой можно было бы сохранить их прежнее состояние. Когда мир изменился перерендерить тени по новой и опять отображать то что было в одном кадре. Можно так сделать? В этих тенях так можно сделать, но эти тени имеют несколько минусов.
|
|
| |
Xakep | Дата: Вторник, 28 Октября 2014, 03:52 | Сообщение # 8 |
めちゃくちゃちゃ
Сейчас нет на сайте
| Я не разбираюсь в юнити, нов общем то можно такое сделать, один раз только Shadow Map карту построить и все, как такое сделать в юнити увы не знаю )
|
|
| |
SEvg | Дата: Вторник, 28 Октября 2014, 08:27 | Сообщение # 9 |
Алхимик
Сейчас нет на сайте
| Цитата robertono ( ) Ведь тени рендерятся каждый кадр по новой, почему нельзя просто взять и сохранить их... Потому что это динамические тени, чтобы не проверять каждый раз где сменилась тень, проще их перерисовывать каждый кадр. Допустим, на сцене 100 объектов, для которых нам надо запечь тень, значит придётся 100 раз сцену отрисовать в сто текстур, а это на старый ПК ещё сильнее убьёт производительность...
|
|
| |
robertono | Дата: Вторник, 28 Октября 2014, 11:41 | Сообщение # 10 |
Чокнутый Кот
Сейчас нет на сайте
| SEvg, мне нужно только один объект "запечь". Это вообще реально сделать в юнити?
|
|
| |
SEvg | Дата: Вторник, 28 Октября 2014, 13:28 | Сообщение # 11 |
Алхимик
Сейчас нет на сайте
| Должно быть реально, только вот думаю что на деле не один объект надо... Ведь тень то падает на другие объекты тоже
|
|
| |
Archido | Дата: Вторник, 28 Октября 2014, 17:30 | Сообщение # 12 |
Сэнсэй
Сейчас нет на сайте
| robertono А стоит ли оно того? У тебя настолько все статично, динамики нет совсем? Это из той же оперы примерно как и "не рисовать новую сцену, пока камера не переместилась":) И я подозреваю, что из коробки такое вряд ли осуществимо, ибо слишком частный случай
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
MANMANA | Дата: Вторник, 28 Октября 2014, 18:42 | Сообщение # 13 |
почти ветеран
Сейчас нет на сайте
| а если запечь тени на объекте в 3d-редакторе, если уж про один объект говорим и тени на нем.
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |