ПрограммированиеФорумГрафика

Unity3d - проблема с тенями ("peter panning")

Страницы: 1 2 3 Следующая »
#0
1:43, 19 ноя 2018

В соседней теме я задал вопрос по поводу своих проблем с тенями в движке Unity3d.
Проблема заключается в том, что они "отодвинуты" от объекта который их отбрасывает:

+ Показать

Этот баг называется "peter panning". В документации по Unity он описывается,
но готовых решений как с ним бороться там не приводится. Интересно, что такие
неправильные тени изображены даже в промо материалах по версии Unity 5.0,
которые выложены на официальном сайте разработчика движка:

+ Показать

Так же этот баг наличествует в коммерческом паке из ассетстора ценой в $85:
Скрин взят отсюда: https://youtu.be/SHxChfQ2_pc?t=164

+ Показать

==============

В общем камрад arte_de_mort обозначил направление куда копать, за что ему большое спасибо!

arte_de_mort
> Я так понимаю речь про то, что тень начинается не сразу от меша, а с некоторым
> зазором? Просто сбивает с толку светлая полоса посреди картинки, и невозможно
> понять геометрию пространства :)
> Но если так, я бы поигрался сначала с самим мешем, - cast shadow double sided,
> потом проверил UV меша и скорее всего разложил бы вручную UV2 под лайтмапу,
> затем сделал меш кубами (т.е. на картинке стены выглядят просто плоскостями -
> это стрёмный подход, я бы делал замкнутыми мешами), потом поставил бы
> кубик-шадоукастер, затем у источника света shadow bias, потом бы вообще
> попробовал изменить угол падения света, есть подозрение, что он слишком
> сильный, отчего тень может беситься. Ну и наконец lightmap parameters - это уже
> тяжёлая артиллерия, где надо закапываться.

Я сделал вот такой вот меш:

+ Показать

с такой вот UV-сеткой:

+ Показать

покрутил все перечисленные выше настройки, изменял угол падения света, и т.д.
но данные действия не привели ни к какому результату...

+ Показать

Кто что может посоветовать?

#1
2:30, 19 ноя 2018

MSA2
забей, никто не будет вглядываться в такие детали ..

#2
9:23, 19 ноя 2018

ради интереса сшей вот это в один UV шелл на UV2
https://s.mail.ru/AWHw/Psz3izDBh

P.S. и да, я не верю что ты попробовал всё перечисленное, в частности lightmap parameters :)

#3
10:04, 19 ноя 2018

Уменьшить bias на источнике света.

#4
12:10, 19 ноя 2018

1. Эффект Питера пена в теневых картах устранить невозможно, если только не городить хитровыделанных алгоритмов. Сейчас чаще всего от него избавляются за счёт ScreenSpace теней, которые дополняют ShadowMap.
2. Какое отношение UV развёртка имеет к реалтайм теням?

#5
12:35, 19 ноя 2018

marggob
> 2. Какое отношение UV развёртка имеет к реалтайм теням?
А я чё-то думал это запечённые.

#6
12:55, 19 ноя 2018

Обычная фигня для стандартного шадоумаппинга. Выбор между смещенной тенью и глитчем от z-fighting , подбирать bias и ловить эту тонкую грань.

#7
13:12, 19 ноя 2018

arte_de_mort
> А я чё-то думал это запечённые.
Да, я забыл уточнить, что это реалтайм тени.

marggob
> 1. Эффект Питера пена в теневых картах устранить невозможно, если только не
> городить хитровыделанных алгоритмов. Сейчас чаще всего от него избавляются за
> счёт ScreenSpace теней, которые дополняют ShadowMap.

Печаль.

Скажите, а в различных играх эти проблемы устраняются способом о котором вы говорите?
В оутласте, TLOU, дизонерде и т.д. я ни разу не замечал этого эффекта, хотя многие места
просматривал по-кадрово - изучал строение мешей и текстурирование на их примере.

Mira
> Обычная фигня для стандартного шадоумаппинга. Выбор между смещенной тенью и
> глитчем от z-fighting , подбирать bias и ловить эту тонкую грань.
Да, я уже понял, что это стандартный гемор, если уж он присутствует даже в промо-материалах.

Bias у меня на минимуме, особой роли он не играет как мне показалось.
А про  "глитчем от z-fighting" можете чуть более подробно? Я не владею столь
специфичным техническим слэнгом и очень трудно понимать контекст, даже с гуглом.

#8
13:18, 19 ноя 2018

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

#9
13:27, 19 ноя 2018

marggob
> Эффект Питера пена в теневых картах устранить невозможно
Подтверждаю.
Эффект связан с погрешностью float и принципиально неустраним (для карт теней).
Тему можно закрывать.

#10
14:48, 19 ноя 2018

Для ShadowMap это не баг а результат работы PolygonOffset, который накручивают, чтобы не было з-файтинга. То есть стоит выбор - или з-файтинг или питер пэн.

#11
14:58, 19 ноя 2018

g-cont
> Для ShadowMap это не баг а результат работы PolygonOffset, который накручивают,
> чтобы не было з-файтинга. То есть стоит выбор - или з-файтинг или питер пэн.
Вот теперь мне почти всё ясно. Спасибо за ёмкий комментарий!
Похоже стоит поэкспериментировать с запеканием теней,
а по-большому счёту махнуть на всё это рукой.

Всем спасибо за комментарии!

#12
15:04, 19 ноя 2018

MSA2
если долго крутить параметры PolygonOffset можно найти такой компромисс, чтобы и з-файтинга почти не было и питер пэннинг свести к минимуму. Но всё равно будет неидеально.

#13
19:26, 19 ноя 2018

g-cont
> если долго крутить параметры PolygonOffset можно найти такой компромисс, чтобы
> и з-файтинга почти не было и питер пэннинг свести к минимуму. Но всё равно
> будет неидеально.
Тут всё просто: хотя и хочется, но я не полезу в QT и вообще api GPU,
поскольку этой темой специально не занимался и разбираться с ней
несколько месяцев не стану. Моя цель - сделать продукт, а не закапываться
в бесконечных технологиях и фичах. Я очень хорошо умею делать другие
вещи, которые как раз и обуславливают потребительскую стоимость игры.
С таким подходом я уже посрезал много всего интересного, что
выглядело бы весьма эффектно с точки зрения геймерского опыта,
но требует для реализации и отладки пусть небольшой, но слаженной
команды, которой у меня нет. По крайней мере пока.

#14
23:41, 26 ноя 2018

MSA2
> Этот баг называется "peter panning". В документации по Unity он описывается,
> но готовых решений как с ним бороться там не приводится

Detailed Screen Space Shadows

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика

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