Сначала я «экономил» и сделал «нулевую» толщину стенки помещения. Все это я делал в Blender, а затем импортировал в Unity файл с расширением .blender. Поскольку внешнюю сторону этой стены никто не видит, то не было смысла расходовать ресурсы компьютера, напрягая его лишними полигонами и текстурами. Однако свет от «солнца» (Directional Light) проникал сквозь крышу/потолок, а если в метре от этой комнаты есть другая комната, в которой установлен достаточно мощный точечный источник света (Point light), то и стенка в этой комнате также будет подсвечена:
Я перерыл кучу форумов на эту тему, но ничего вразумительного не находил. Одним из советов было уменьшение интенсивности источника света, а в техподдержке порекомендовали добавить толщину стенам:
The problem is that you are using one sided planes.
You need to use two sided shadows or solid objects, so the light wont shine trough your objects.
Я сделал стены толщиной 20 сантиметров, т.е. их толщина стала «ненулевой», но свет все равно проникал через нее.
Решение накопал где-то в инете. Суть в том, чтобы использовать слои (Layers).
1. Назначаем комнате слой
2. Для источника света в этой комнате устанавливаем Culling Mask только для этого слоя:
3. Пункт 2 позволяет использовать освещение только на конкретный объект, но все равно нужные объекты будут слегка освещаться:
4. Если нужна абсолютная темень, то нужно открыть Window -> Lighting -> Scene -> General GI и выставить значение Indirect Intensity = 0
- C#: Сравнить два массива - 12.12.2024
- EVE-Online: Фильтры каналов - 23.11.2024
- Не приходит СМС для авторизации на сайте Госуслуги - 01.11.2024