Реализация эффекта размытия матового стекла в Unity

Полноэкранный эффект размытия матового стекла

принцип

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

Принцип размытия матового стекла для некоторых объектов заключается в использовании двух камер: одна камера визуализирует только тот объект, который необходимо размыть, а другая камера визуализирует другие объекты и фон. Затем используйте RenderTexture, чтобы захватить изображение, визуализированное второй камерой, размыть изображение RenderTexture и, наконец, вставить обработанное изображение в качестве материала на объект, визуализированный первой камерой. Этот метод позволяет добиться эффекта матового стекла на некоторых объектах, но требует более высокой производительности.

Полный код

// Создаём RenderTexture в качестве промежуточной цели рендеринга
Private RenderTexture rt;

// Получаем объект, который нужно размыть
Private GameObject targetObj;

// Получаем камеру, которую нужно размыть
Private Camera BlurCamera;

void Start()
{ // Создать a RenderTexture, разрешение может быть любым. Отрегулируйте rt = new RenderTexture(Screen.width, Screen.height, 0); // Получаем объект, который нужно размыть targetObj = GameObject.Find("TargetObject"); // Получаем камера, которую нужно размыть BlurCamera = GameObject.Find("BlurCamera ").GetComponent<Camera>(); // Используем RenderTexture в качестве цели рендеринга BlurCamera BlurCamera.targetTexture = rt; // Вставляем визуализированное изображение в качестве материала на TargetObject targetObj.GetComponent<Renderer>().material.SetTexture ("_BlurTex", rt); }
















void OnRenderImage(RenderTexture src, RenderTexture dest)
{ // Размытие изображения RenderTexture Graphics.Blit(src, rt, BluMaterial); // Отображение обработанного изображения на экране Graphics.Blit(rt, dest); }







Некоторые объекты размыты матовым стеклом, но основная часть не размыта.

принцип

Принцип размытия матового стекла для некоторых объектов заключается в использовании двух камер: одна камера визуализирует только тот объект, который необходимо размыть, а другая камера визуализирует другие объекты и фон. Затем используйте RenderTexture, чтобы захватить изображение, визуализированное второй камерой, размыть изображение RenderTexture и, наконец, вставить обработанное изображение в качестве материала на объект, визуализированный первой камерой. Этот метод позволяет добиться эффекта матового стекла на некоторых объектах, но требует более высокой производительности.

Полный код

// Создаём RenderTexture в качестве промежуточной цели рендеринга
Private RenderTexture rt;

// Получаем объект, который нужно размыть
Private GameObject targetObj;

// Получаем камеру, которую нужно размыть
Private Camera BlurCamera;

void Start()
{ // Создать a RenderTexture, разрешение может быть любым. Отрегулируйте rt = new RenderTexture(Screen.width, Screen.height, 0); // Получаем объект, который нужно размыть targetObj = GameObject.Find("TargetObject"); // Получаем камера, которую нужно размыть BlurCamera = GameObject.Find("BlurCamera ").GetComponent<Camera>(); // Используем RenderTexture в качестве цели рендеринга BlurCamera BlurCamera.targetTexture = rt; // Вставляем визуализированное изображение в качестве материала на TargetObject targetObj.GetComponent<Renderer>().material.SetTexture ("_BlurTex", rt); }
















void OnRenderImage(RenderTexture src, RenderTexture dest)
{ // Размытие изображения RenderTexture Graphics.Blit(src, rt, BluMaterial); // Отображение обработанного изображения на экране Graphics.Blit(rt, dest); }








Реализовано с использованием функций URP

6db35c17efd6b9e7d8968df425aad0a8.jpeg

66dc3f0aa2becd52cc3f29dbe222b03a.jpeg

1d623be5098f100bd4e05b7d60f28495.jpeg

e42e8222a8c49c7467e08fd9ca341b4d.jpeg

642157c4d11f914d38bc7ef6b87861f1.jpeg

рекомендация

отblog.csdn.net/shguxudong11/article/details/129422391