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

Хочется сделать тени в проекте из png-картинок, но как?

#0
14:18, 6 мая 2020

В общем, парни, такой вопрос. Исходные данные:
Анриаловский трёхмерный проект с видом сбоку (пользователь видит именно 2D-картинку с перспективой).
Главный герой и все остальные предметы - двумерные, нарисованные художником. Каждый представляет собой эктора, в котором присутствует компонент PaperSprite с png-картинкой.

Мне нужны тени, которые отбрасывали бы одни экторы на других.

В обычном 3D-проекте с моделями достаточно сделать динамический источник света, и в зависимости от расположения этого источника, регулировать освещение (и тени). Но PaperSprite с png-картинкой теней не отбрасывают.

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

Как поступают в таком случае с картинками?
Если кто-то работал с ними и с освещением, помогите, пожалуйста!


#1
14:35, 6 мая 2020

papa
Есть ещё Default Lit Sprite Material. Не помогает?

#2
14:40, 6 мая 2020

Хм. А наложение декалей не подойдет?
По идее декали проецируются очень похожим способом. Единственный момент - таким образом получится только направленные источники света сделать, потому что декаль проецируется кубом, а не пирамидой.

#3
(Правка: 15:15) 15:15, 6 мая 2020

Насчёт декалей - не уверен, по-моему, они совсем для другого, хотя можно, вероятно, и так применять.

А что за Default Lit Sprite Material? У меня в настройках материала и так Shading Model - Default Lit, Two sided.

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

#4
15:40, 6 мая 2020

papa
> А что за Default Lit Sprite Material?
Ну материал такой, чтобы спрайт мог взаимодействовать с освещением на уровне (если не будет источника света, спрайт будет чёрным). По умолчанию же используется Unlit. На сколько это поможет, не уверен (не возился с этим). Скорее всего вряд ли. Это у Unity есть Shadow Caster (и то может быть в Universal RP и то может быть экспериментально).

Вообще, есть ещё такое направление (там всё про одно):

+ Показать
+ Показать
+ Показать
#5
(Правка: 16:12) 16:12, 6 мая 2020

Ну а вообще, как я и сказал, есть DefaultLitSpriteMaterial, который я применил для стены. А есть MaskedLitSpriteMaterial, который я применил для персонажа. Их можно будет найти если включить Show Plugin Content

+ Показать

Затем для персонажа включаем Cast Shadow и получаем:

+ Показать
#6
16:33, 6 мая 2020

Насчёт последнего - гениально. И, кстати, к мужику с крестом и красным носом это тоже относится. )

#7
18:29, 17 мая 2020

В качестве альтернативы лайнтрейсам есть еще такой вариант:
http://www.catalinzima.com/2010/07/my-technique-for-the-shader-ba… c-2d-shadows/
https://github.com/mattdesl/lwjgl-basics/wiki/2D-Pixel-Perfect-Shadows

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

#8
19:14, 17 мая 2020

Alex.L
> В качестве альтернативы лайнтрейсам есть еще такой вариант
Спасибо! А насколько сложно, кстати, в UE4 применить?

#9
(Правка: 19:43) 19:40, 17 мая 2020

не знаю предлагали уже или нет,
можно сгенерировать геометрию необходимой формы по спрайту и юзать стандартное освещение
ну для статики конечно, кстати возможно кто-то уже делал
поидее проход по контуру и треугольники до центра спрайта, в самом простом исполнении

#10
8:05, 18 мая 2020

mitroxa
> можно сгенерировать геометрию необходимой формы по спрайту и юзать стандартное
> освещение
К сожалению все не так просто. В УЕ при использовании ортогональной камеры с тенями, да и вообще светом, начинаются проблемы. Спекуляра от источников света - нет, теней - тоже нет.
Для paper 2d, если я не ошибаюсь, решили проблему со спекуляром, но тени, по моему, до сих пор не отрисовываются.

papa
> Спасибо! А насколько сложно, кстати, в UE4 применить?
Сложно сказать. Для меня такие шейдеры сложноваты. Через чистый HLSL и плюсы, можно что угодно в УЕ имплементировать. Если пытаться это делать через дефолтный материал эдитор и БП - хз, возможно возникнут проблемы и какие-то ограничения.

#11
10:38, 18 мая 2020

Alex.L
> В УЕ при использовании ортогональной камеры с тенями, да и вообще светом,
> начинаются проблемы.
а причем тут ортогональная камера?
papa
> Анриаловский трёхмерный проект с видом сбоку (пользователь видит именно
> 2D-картинку с перспективой).

Unreal EngineФорумОбщее