Войти
Unreal EngineФорумArt

Объекты, видимые сквозь другие объекты

#0
15:10, 9 окт. 2020

Друзья и коллеги, здравствуйте!
Возник вопрос, на который я не сумел ничего толкового нагуглить и пришел с ним к вам! Значит, проблема следующего характера - необходимо сделать один объект видимым для персонажа, даже если он скрыт за другим объектом (кубик за стеной). Я нашел частичное решение с помощью карты глубины и материала, который отображается у объекта с активным "Render Custom Depth". Но там объект заливается сплошным цветом, а хотелось бы видеть его в первозданном виде. Нет ли в камере каких-нибудь хитрых настроек в виде списка приоритетных объектов для рендера или еще чего интересного?
Заранее спасибо!


#1
15:19, 9 окт. 2020

1) Ты можешь установить у объекта translucent материал, у которого можно установить галку Ignore Depth Test(или как-то так).
2) Ты можешь рендерить в отдельный буффер с помощтю SceneCapture2D и потом в пост процессе совмещать два буффера

Оба варианта достаточно затратны по ресурсам. И каждый может дать специфичные артефакты. Надо конкретный случай смотреть, чтобы понять как лучше сделать.
Полагаю что второй вариант более универсальный и адекватный. Но бывают случаи и для первого варианта.

#2
(Правка: 15:52) 15:38, 9 окт. 2020

а я бы советовал подумать над подходом рисования виджета поверх преметов.
1. он всегда будет сверху
2. если не видим рисуем один виджет если видим рисуем другой
3. относительно дёшево и если художник есть то можно очень даже красиво это всё обернуть

или твоё пожелание:
https://www.tomlooman.com/the-many-uses-of-custom-depth-in-unreal-4/
но имхо твоя хотелка породит на экране "мусор", когда вместо картинки ты получишь непонятную кашу но решать тебе так или иначе

#3
16:24, 9 окт. 2020

@!!ex
> 2) Ты можешь рендерить в отдельный буффер с помощтю SceneCapture2D и потом в
> пост процессе совмещать два буффера

Сделали так у себя, SceneCapture2D в текстурку, к камере приделали виджет, который максимально далеко от камеры и отображает текстуру полученную. Тут все упирается в разрешение текстуры, но в целом результат приемлемый.

В совем движке я, конечно, делал просто проход с очищеным depth buffer, было идеально.

#4
16:36, 9 окт. 2020

Osiris
Накой виджет то? В постпроцессе просто два буфера смешиваешь и всё.

#5
17:04, 9 окт. 2020

@!!ex
> В постпроцессе просто два буфера смешиваешь и всё
А как смешивать то, если альфа у нас как раз на заднике?

#6
17:21, 9 окт. 2020

Спасибо за быстрые ответы, очень помогли! Галочка зовется "Disable Depth Test" и очень помогла, так как материалы довольно простые и сцена не особо тяжелая, так что пожертвовать немного ресурсов на это возможность есть. Еще раз спасибо всем!

#7
17:23, 9 окт. 2020

Disable Depth Test выворачивает объекты, так как отключен тест глубины, очевидно, то есть если это выпуклый меш, то его задние полигоны могут быть спереди.

Unreal EngineФорумArt