Освещение и тени.
Так как карта (сцена) визуализируется только в рантайме при подключении к игровой сессии, у нас нет возможности использовать запекаемые (baked) лайтмапы в движке Unity для просчета освещения сцены. Для наружных элементов все остается не так плохо. А вот если накрыть крышами внутренние помещения, то свет пропадет. Если не накрывать крышами то сцена будет проигрывать визуально, тени от зданий не будут полноценными, внутренние тени от стен не соответствуют действительности.
Нам бы хотелось использовать Area light, но он только baked в URP. Эффект от Point light в каждом закрытом помещении выглядит не очень естественное и создает дополнительные проблемы и вопросы.
Проблема real-time освещения в URP для сцен, созданных динамически в рантайме:
- нет Area light
- нет рефлексов от Emission material
- нет вторичного освещения для темных мест
- нет рефлексов
- нет отражений (можно исключить)
Возможные варианты решения:
для Area light:
- Ассеты - есть парочка, но не нашел где их скачать, чтобы попробовать.
-
https://github.com/pimaker/ltcgi Optimized plug-and-play real-time area lighting using the linearly transformed cosine algorithm for Unity/VRChat.
- в HDRP есть Area light real-time (но нельзя Web сборки!)
- запекание (требуется переработка структуры проекта)
для рефлексов от Emission материалов и вторичного освещения для темных мест:
- ассет Radiant Global Illumination. Это хоть и не очень честный свет, но как раз не требует запекания и лайт проб.
- ассет LUMINA GI 2024: Real-Time Voxel Global Illumination (но нельзя Web сборки!)
- HDRP (но нельзя Web сборки!)
- запекание (требуется переработка структуры проекта)
Попробовал Radiant Global Illumination - выглядит неплохо, но нужен еще Area Light, сам по себе он не является решением проблемы. Иногда создает не нужные рефлексы/артефакты там где их не должно быть.
Попробовал LTCGI - как оказалось заявления о real-time не означает, что там не требуется запеканием лайтмап, еще как требуется. Но демонстрируемые экраны мониторов выглядят хорошо! Будем иметь ввиду, Unity URP не предлагает таких возможностей сам по себе.
На данный момент продолжается поиск решения проблемы освещения...