Unity URP에서 블러 처리하기 – 포스트 프로세싱 완전 정복

🎨 Unity URP에서 블러 처리하기 – 포스트 프로세싱 완전 정복

**포스트 프로세싱(Post-processing)**은 게임 화면의 최종 결과물에 시각 효과를 더하는 과정입니다. Bloom, Color Grading, Vignette 등 다양한 효과가 있지만, 그중에서도 오늘은 "블러(Blur)" 처리에 집중해봅니다.

URP(Unity Universal Render Pipeline)에서는 기본적으로 블러 기능이 제공되지 않기 때문에, 직접 구현하거나 외부 예제를 활용해야 합니다.


✅ 포스트 프로세싱이란?

🎞️ 정의

렌더링이 끝난 뒤 화면 전체 혹은 일부에 시각 효과를 추가하는 단계입니다.
감성 연출, 몰입도 향상, 주의 집중 등에 자주 활용됩니다.

🧰 자주 쓰는 포스트 프로세싱 효과

효과 설명 활용 예시

Bloom 빛 번짐 효과 반짝이는 마법 효과
Color Grading 색감 조정 감성 톤, 시간대 표현
Depth of Field 초점 흐림 선택 아이템 강조
Vignette 테두리 어둡게 집중 유도
Motion Blur 잔상 효과 속도감 표현
Chromatic Aberration 색 분리 마법 연출, 실패 시
Ambient Occlusion 접촉부 음영 강화 현실감 있는 그림자

💡 왜 블러 효과가 중요한가요?

  • UI 팝업 등장 시 배경 흐림
  • 실패/성공 연출 시 화면 효과 강조
  • 특정 오브젝트 강조 및 주의 유도
  • 마법적 분위기 or 현실감 있는 깊이감 표현

🔧 Unity URP에서 블러 적용하는 3가지 실전 방법


✅ 1. GaussianBlurURP (by aki-null)

항목 내용

💬 특징 경량화된 가우시안 블러 함수, HLSL로 구성
🧩 구성 GaussianBlur.hlsl 파일을 쉐이더에 include하여 사용
📍 용도 전체 화면 블러, 패널 블러링 등

장점: 가볍고 효율적이며 직접 함수만 가져와서 커스터마이징 가능
단점: Shader 코드 수정에 익숙해야 함


✅ 2. shaders-gaussian-blur (by daniel-ilett)

항목 내용

💬 특징 URP 전용 포스트 프로세싱 Volume 효과 구현
🧩 구성 Custom VolumeComponent + Renderer Feature + Shader
📍 용도 팝업 등장 시 화면 전체 블러 처리

장점: Volume 시스템과 자연스럽게 연동
단점: 구조가 약간 복잡할 수 있음 (초보자에겐 부담)


✅ 3. urp-kawase-blur (by tomc128)

항목 내용

💬 특징 Kawase 방식의 빠른 블러, 성능 최적화에 유리
🧩 구성 Render Feature 방식으로 쉽게 URP에 통합 가능
📍 용도 모바일 앱, 부드러운 배경 흐림 등

장점: 반복 Pass 설정 가능 → 다양한 블러 강도 연출
단점: 약간의 반복 계산 필요 (GPU 성능 고려)


✅ 4. CatDarkGames 블로그 튜토리얼

항목 내용

💬 설명 URP에서 커스텀 박스 블러, 가우시안 블러 만드는 과정을 자세히 설명
🧩 구성 HLSL Shader + Render Feature 튜토리얼
📍 용도 처음 블러 구현을 시도해보는 개발자에게 추천

✍️ 실습 예시: Blur Render Feature 기본 구조

public class BlurFeature : ScriptableRendererFeature {
    class BlurPass : ScriptableRenderPass {
        public Material blurMat;
        public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) {
            var cmd = CommandBufferPool.Get("Blur");
            cmd.Blit(source, tempRT, blurMat);
            cmd.Blit(tempRT, source);
            context.ExecuteCommandBuffer(cmd);
            CommandBufferPool.Release(cmd);
        }
    }

    public Material blurMaterial;
    BlurPass blurPass;

    public override void Create() {
        blurPass = new BlurPass { blurMat = blurMaterial };
        blurPass.renderPassEvent = RenderPassEvent.AfterRenderingTransparents;
    }

    public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) {
        renderer.EnqueuePass(blurPass);
    }
}

🎯 요약 비교표

방법 방식 난이도 추천 대상

GaussianBlurURP 함수 호출 직접 구현 원하는 유저
daniel-ilett Volume + Shader 중상 정통 URP 스타일 추구
tomc128 Kawase Blur 모바일, 빠른 연출
CatDarkGames Box/Gaussian 튜토리얼 하중 학습 목적에 최고

🚀 마무리

Unity URP에서 블러는 단순 시각 효과를 넘어서, 몰입감과 감정 전달의 핵심 도구가 될 수 있습니다.
Custom Render Feature를 적절히 활용하면, URP에서도 고급 포스트 프로세싱이 가능합니다

 

https://github.com/PavelDoGreat/Super-Blur?tab=readme-ov-file

 

GitHub - PavelDoGreat/Super-Blur: Screen and UI gaussian blur for Unity

Screen and UI gaussian blur for Unity. Contribute to PavelDoGreat/Super-Blur development by creating an account on GitHub.

github.com

 

https://github.com/Experience-Monks/glsl-fast-gaussian-blur

 

GitHub - Experience-Monks/glsl-fast-gaussian-blur: optimized single-pass blur shaders for GLSL

optimized single-pass blur shaders for GLSL. Contribute to Experience-Monks/glsl-fast-gaussian-blur development by creating an account on GitHub.

github.com

https://darkcatgame.tistory.com/160

 

URP 렌더피처를 활용한 Sprite 개별 블러 효과 구현

개요 SpriteRenderer 오브젝트 개별로 블러 효과를 다르게 적용하는 것을 목표로 URP 렌더피처 및 쉐이더 개발 과정을 소개합니다. 개발 환경 Unity 2021.3.30f1 URP 12.1.12 핵심 요소 다운 샘플링 블러 - 저

darkcatgame.tistory.com

https://github.com/CatDarkGame/LayerFilterSpriteBlur/tree/main

 

GitHub - CatDarkGame/LayerFilterSpriteBlur: Unity URP, Blur effect for each spriterenderer

Unity URP, Blur effect for each spriterenderer. Contribute to CatDarkGame/LayerFilterSpriteBlur development by creating an account on GitHub.

github.com