🎨 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