Войти
АртФорумОбщее

Вопрос. Проскакивает светлая линия на переходах между 3D объектами

#0
13:13, 18 янв. 2018

Доброго.
Есть вот такая вот сцена, на ней внимание на два объекта, на стену (что светлая лицом к камере), и на горизонтальную платформу из досок:
dd_line_1 | Вопрос. Проскакивает светлая линия на переходах между 3D объектами

И вот если посмотреть под почти прямым углом, то проскакивают светлые полосы, на переходе от платформы:
dd_line_2 | Вопрос. Проскакивает светлая линия на переходах между 3D объектами

На картинке видны аналогичные "косяки" и рядом.
Вот откуда она берется? Сама текстура на платформе имеет черный фон, и если даже UW модели смещается на пару пикселей, то на черное.

Попробовал сменить текстуру у задней стены (что светлая в обоях с узором), то линия приобретает оттенок новой текстуры. Так, если сделаю стену чисто красным, то линия эта становится красноватого оттенка. Как побороть это?

Уточню. Unity3D 2017.1.1f, полосы видно не только в редакторе, но и во время запуска билда.


#1
17:52, 18 янв. 2018

Попробуй wrap mode и filter mode покрутить.

#2
13:17, 19 янв. 2018

Indiegma
> Попробуй wrap mode и filter mode покрутить.
попробовал, не помогает.

Эти полосы на переходе от одного объекта на другой в тени именно, вроде как не удается понять, что выводить, тень или сам объект.
Но еще раздражает похожее мерцание на грани объектов, когда плоско горизонтально к камере. Не спасает и лучшее разрешение и прочее.

#3
14:06, 19 янв. 2018

Может, стоит Unity обновить?
С дровами все норм?

#4
17:53, 19 янв. 2018

Сложно так сказать на глаз.
Ответ может в таком случае подсказать только тот, кто сталкивался с таким же.
Проблема возможна с развёрткой и как на нее положена текстура. Полоса возможно получается из-за неправильного расчёта/запекания света на второй Uv-set.
Кидай модель сюда, может кто посмотрит) и решит твою проблему. А так, вряд ли.

#5
18:10, 19 янв. 2018

Покажи саму текстуру. Сто пудов проблема от того, что развертка слишком близка к краю изображения + мипмаппинг

#6
19:04, 19 янв. 2018

в каком формате эти текстуры, прозрачность на них есть?

отключение mipmap на текстуре помогает?

#7
12:15, 20 янв. 2018

Betruger
> Может, стоит Unity обновить?
> С дровами все норм?
Попробую обновить Юнити, но что-то сомневаюсь.С дровами все норм, да и проблема проявляется на всех устройствах (тестировал на двух ноутах и 3 компах)

Den_Guding
> Проблема возможна с развёрткой и как на нее положена текстура.
E-Cone
> Сто пудов проблема от того, что развертка слишком близка к краю изображения +
> мипмаппинг
Такая проблема действительно была, но этот так называемый UV padding я поправил и сразу написал, что с текстурой теперь все норм. Могу позже кинуть и модель и текстуру, но это не в ней проблема(

thesunwillnevershine
> в каком формате эти текстуры, прозрачность на них есть?
> отключение mipmap на текстуре помогает?
прозрачности нету, мипмапинг ничего не дает. С текстурой что только не делал, все что можно)


Все же похоже, что Юнити не понимает тень там рисовать или текстуру дальней стены, и видимо, при антиалиасинге особенно. Настройки графики крутил и на максимум, по максимуму деталей на все, не помогает.

#8
11:40, 23 янв. 2018

Так и не нашел толкового решения. Эта полоса мерцающая в области тени лечится "хорошим" анти-алиасингом. Пробовал в Unity3D все какие возможно, лучше всего справился тот, что в PostProcesses, который TAA. Но этот TAA портит все спрайты в игре, да и производительность проседает. "Встроенный" AA в Unity не сильно это поборол. Пришлось играться источниками освещения, убирать у них интенсивность и прочее крутить, стало более менее.

Проблема еще была, что полосы мерцают не только в области тени, но и просто на горизонтальном переходе с объекта. И когда AA хорошо справлялся в тени с полосой, то мерцали "обычные" грани особо "прямых" объектов. Получалось, что одна проблема решалась, а другая сильнее проявлялась.

#9
19:02, 23 янв. 2018

zelder
> Так и не нашел толкового решения

Так ты проект выложи, пусть народ у себя покрутит.

#10
8:27, 5 фев. 2018

zelder
> Все же похоже, что Юнити не понимает тень там рисовать или текстуру дальней
> стены, и видимо, при антиалиасинге особенно.

Давняя проблема, этому "багу" уже 7 лет.

Вот посмотрите скриншоты в этих темах:

https://forum.unity.com/threads/shadows-anti-aliasing-smoothing.213212/
https://forum.unity.com/threads/anti-aliasing-not-so-good-against… hadows.64385/
https://www.reddit.com/r/Unity3D/comments/1pf97t/dynamic_shadows_… ed_correctly/
https://forum.unity.com/threads/anti-aliasing-causes-white-outlin… jects.307137/
https://forum.unity.com/threads/antialiasing-shadow.276497/
https://forum.unity.com/threads/fixing-screen-space-directional-s… asing.379902/


Похоже, применяемые динамические тени в Unity плоховато совместимы с forward rendering'ом.
(zelder, кстати, проверьте не влияет ли на проблему отключение HDR опции?)


Решения такие:
1. как советуют тут, можно перейти на deferred rendering
(и FXAA)

2. или написать хитрый шейдер - вот тут код шейдера есть

3. или почаще использовать статические тени - банально запечь в лайтмапу тени зданий, комнат и т.д., что вполне нормально для объектов, которые не двигаются
(и видеокарте легче)

#11
9:32, 5 фев. 2018

ELena_Shloemovich
> Давняя проблема, этому "багу" уже 7 лет.
> Вот посмотрите скриншоты в этих темах:

Спасибо за ссылки и советы. Нагугливал это тоже. Пришел к выводу, что правильный (по мне) вариант, это учить шейдер, иначе это все манипуляции светом и прочий "обход" проблемы.

ELena_Shloemovich
> 3. или почаще использовать статические тени - банально запечь в лайтмапу тени
> зданий, комнат и т.д
Вот к этому и пришел. Убрал интенсивность у источника света, и эти мерцания пропали (ну или совсем не заметны), правда, и тени стали совсем слабо выражены. Что равносильно убрать проблему вместе с тенями. Такой результат меня не устроил.
Полез запекать освещение, впервые. До этого делал игры под мобильники без каких либо теней и запекания. Покрутив амбиент освещение, расставив источники освещения для запекания и прочие - получил картинку лучше, чем сам ожидал.

Правда, с этим Bake GI, на выходе получилось +60 мегабайт лайтмап текстур на недоделанный уровень. Но, потратив выходные на изучение документации по Bake GI и по Precomputed Realtime GI, удалось до мелочей понять все настройки света у сцены и объектов, и размер сократился до +5 мегабайт. При этом избавился и от артефактов при запекании.

Как итог моего случая, саму проблему решить не удалось, как написал выше, нужно в движке глобально учить шейдер. Но обошел ее играясь с освещением и с запеканием. В результате получил потрясающую картинку (по сравнению, когда только один источник освещения), нет худа без добра. Этот результат меня устроил.

АртФорумОбщее

Тема в архиве.