UE4 - Как масштабировать текстуру или материал с учетом 4 координат экрана? - PullRequest
0 голосов
/ 12 июля 2020

Я пытаюсь воспроизвести портал, показанный в этом видео: https://youtu.be/_SmPR5mvH7w?t=245.

И, более конкретно, реализация концепции: «Что сейчас видит наша портальная камера это то, что наша камера должна видеть на самом деле: "

Прямо сейчас у меня есть SceneCaptureComponent2D, который выполняет рендеринг в Render Target, который подключен к материалу, показанному на изображении ниже.

Ссылка на изображение, показывающее мой материал.

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

Что я хочу сделать, так это взять этот белый квадрат и увеличить его, чтобы покрыть весь материал. Учитывая экранные координаты этих красных углов. Есть ли способ масштабировать изображение таким образом, чтобы эти углы теперь располагались в координатах (0,0), (0,1), (1,0) и (1,1) материала или текстуры?

CapureComponent перемещается по сцене по отношению к игроку, поэтому это нужно делать во время выполнения и учитывать просмотр белого квадрата под углом, делая координаты диагональными по отношению друг к другу. Ранее я пытался изменить UV материала и умножить смещение так, чтобы я как бы обнулял белый квадрат, но не смог сделать его диагональным, чтобы он соответствовал только квадрату, если смотреть под углом.

Могу ли я изменить камеру, текстуру или материал? Любая помощь приветствуется!

1 Ответ

0 голосов
/ 12 июля 2020

Понятия не имею, как это работает, но узел чертежа ScreenAlignedUVs является чистым магом c и решил его!

...