StainBerg
> Не свет не в префабе. Но как это сделать если у меня префабов 5 штук ?
Ну вот тут-то и проблема. Юнити-лайт должен знать, что он в режиме шадоумаски, и на какой её канал он влияет. Поэтому лайты, которые часть префаба, будут работать, а какие-то левые лайты из другой сцены - нет.
В принципе ты можешь маленьким скриптом изменить свой лайт в главной сцене. Если допустить, что это у тебя солнце, скорее всего у него первый (красный) канал.
См. light.bakingOutput: https://docs.unity3d.com/ScriptReference/Light.html
Создаём структуру LightBakingOutput: https://docs.unity3d.com/ScriptReference/LightBakingOutput.html
Ставим
isBaked = true
lightmapBakeType = LightmapBakeType.Mixed
mixedLightingMode = MixedLightingMode.Shadowmask
occlusionMaskChannel = 0 // это номер канала, на который влияет лайт
И суём заполненную структуру лайту.
...
Также если ты просто в главной сцене запечешь хотя бы что-то с шадоумаской (кубик там), то лайт должен настроиться сам и работать с префабами нормально.
Mr F
Спасибо за ответ) В целом помогло запекания кубика на мэйн сцене. Вроде все ок заработало !
Свет при запекании имеет множественные артефакты в виде белых пятен.
На форуме Unity описана данная проблема:
https://forum.unity.com/threads/bakery-gpu-lightmapper-v1-9-rtpre… 6008/page-121
Но я не понимаю, как ее исправить. Не могли бы вы мне в этом помочь. Заранее большое спасибо)
Настройки рендера на скрине.
Andy_Walker
Это Open Image Denioser мылит лайтмапу, попробуй попереключать на другие денойсеры.
Andy_Walker
Если это импортнутая моделька, то как раз adjust uv padding (вместо remove adjustments) должен твикнуть расстояния между юв островами, чтобы такого не было. Либо руками на ассете задать pack margin. По дефолту он в юнити слишком тоненький (для 1024+ лайтмапы). Это если развертка генерируемая юнити. Если же своя самодельная, то у себя в юв редакторе делать шире паддинг)