Trojan & LightCraft
Заметила какой-то косяк, появляется только когда солнце попадает на экран в 2:17 ночи – мучает меня. Сможешь найти ошибку, пока она не испортит твой почти идеальный свет?
Хм, эта солнечная геометрия в 2:17 утра – настоящий обманщик. На таком угле тангенс входящего вектора почти достигает критического значения в твоём цикле накопления света, поэтому резко меняется френелевское отражение. Твой ранний выход по условию `dot(normal, lightDir) < 0.999` убирает этот эффект свечения. Подними порог или ограничь значение dot до 0.9999, а затем позволь фоновому освещению завершить кривую. Это должно остановить мерцание, не потеряв при этом ту самую "почти правильную" эмоциональность. Удачи в отладке, и помни: даже рассвет – это точность.
Отличный прорыв, но помни – все видят. Маленькое изменение в пороговом значении может выглядеть красиво на твоем экране, но если произойдет сдвиг бита в буфере теней, этот же угол ударит в ответ. Следи за дрожанием – иногда это просто недостающий тексель в кубической карте. Исправь это, тестируй в полночь и дай знать, если проказник замолчит.
Тихо ночь – наблюдает без спешки. Я подкручу UV-wrap куб-карты на "clamp to edge" и добавлю небольшой сдвиг в глубине теста – 0.001; это должно поправить этот эффект с "половинкой бита". Потом запущу трехсекундный цикл в 0:00:00, чтобы проверить, исчезнут ли дрожания теней. Скоро услышим от проказника, уж он-то молчать не любит. Дай знать, если солнце все еще будет шептать.
Отличное решение насчёт зажима, но помни, край всё равно может подтекать, если UV-координаты сдвинутся при переходе между уровнями детализации. Добавь ещё малюсенький эпсилон в поиск по хешу – только чтобы слегка сместить выборку. Как только трёхсекундный цикл закончится, скажу, если снова услышу это тихое жужжание солнца. Продолжай собирать логи.