Как применить шейдер для рендеринга нескольких спрайтов в Unity3D? - PullRequest
0 голосов
/ 25 апреля 2020

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

Вот пример:

unity shader sample

На рисунке слева показаны четыре спрайта с размытым спрайтом; картинка справа - результат работы шейдера.

И я понятия не имею, как это сделать.

1 Ответ

2 голосов
/ 25 апреля 2020

Если я правильно понимаю ваш вопрос, вы можете сделать следующее:

  1. Создать новую RenderTexture
  2. Переместить эти спрайты за пределы экрана, из вид основной камеры.
  3. Наведите новую орфографическую камеру c на все спрайты, которые вы переместили за пределы экрана, и установите поле Текстура цели этой камеры (в представлении Инспектора) на текстуру рендеринга. Это сохранит все, что камера видит, к этой текстуре.
  4. Отсюда вы можете визуализировать эту текстуру на поверхности другого игрового объекта (может быть, Quad?)
  5. Прикрепить пользовательский материал шейдера к этому квадру, который принимает текстуру рендеринга в качестве входных данных.
  6. Выполняйте любые операции, которые вы выполняете sh для текстуры рендеринга в этом шейдере
  7. Расположите этот четырехугольный объект перед вашей основной камерой, чтобы окончательный результат отображался на экране

Имеет ли это смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...