2 xDShot: а зачем дорисовывать лайтмапу?
Вообщем разобрался я с той бякой. Там представлены нормали, ну например такого вида
0.107106 0.107107 0
0.107107 0.107107 0
С учётом точности эпсилона код индексации всё же считает что между ними нет различия, а вероятность того, какая из двух нормалей будет проиндексирована первой зависит лишь от того, какой из потоков раньше встретит ту или иную. Понятно, что время выполнения потоков зависит от внешних факторов, ну например от параллельно запущенных программ. Вот и меняются они, а выглядит так как будто плавает точность. Я рассудил что нормаль в 45 градусов, это вполне себе объект для снаппинга. И снапнул их к сетку. И получилось очень неплохо, ящетаю. Оно и на сглаживание повлияло в хорошем смысле. Но надо как можно больше карт потестировать. Потому что к примеру снаппинг к значению 0.107106 даёт отличные результаты, а вот снаппинг к 0.107108 уже даёт теневые артефакты на грасс_тесте, в виде протяженных невидимых колонн.
Но как легко догадаться 0.107108 - это уже не косинус угла в 45 градусов (можете на куруляторе убедиться). Так же на c1a0d этот стрёмный угол с лампой который я вам показывал уже тыщу раз, внезапно полностью сгладился и стал хорошо выглядеть. Но я не исключаю что где-то будут и негативные эффекты + китаец посадил мерзкую пакость с субдивайдом, из-за чего при некоторых значениях max_extent hlbsp имеет тенденцию впадать в бесконечный цикл. Причём посадил он этот баг, якобы исправляя другой - зонеровский.
Скажем карты того же Тхамбса отказываются субдивайдится в халфовское значение 16 текселей на люксель. Ставишь 8 (под который он собственно и делался) - пошло поехало. Ну может быть ошибки округления конечно.