본문으로 건너뛰기
CHOI HONGSU
1 min read

UI Glitch Shader

RGB Split · 텍스처 기반 UV 왜곡 · Mask 레이어 3단 조합으로 구현한 UI 글리치 셰이더

Period
2026.2
Engine
Unity 6 (6000.3.14f1) / URP 17.3.0
Platforms
AOS · iOS
Team
TA
My contribution
UI Glitch Shader

UI 글리치 셰이더

Implementation

  1. 01

    RGB Split (색수차)

    R·B 채널만 각 방향으로 오프셋 샘플 → G는 원본 유지. 오프셋 0이면 분기 없이 원본 그대로.

     
  2. 02

    2. 이산 시간 스테핑 (끊기는 글리치 느낌)

    floor로 시간을 계단형으로 잘라 UV가 뚝뚝 튀게 만듦 → 아날로그 테이프 글리치 느낌.

     
  3. 03

    3. 텍스처 × 텍스처 UV 왜곡

    GlitchTexture(공간 패턴) × WiggleTexture(시간 변화) 조합 → 두 텍스처를 바꿔 끼우는 것만으로 전혀 다른 패턴.

     
  4. 04

    4. 브랜치리스 Mask (Flip Blink + RGB Channel Cycle)

    GPU 브랜치 없이 step/lerp 조합으로 처리. #pragma target 2.0 모바일 타겟이라 분기 비용 최소화.

     

Tradeoffs & Future Work

Tradeoffs

  • 텍스처 샘플 최대 4회 (Main×3 + Glitch + Wiggle + Mask) — 단순 UI에는 과하므로 사용처 제한 필요
  • discard가 있어 early-z 이득 없음 - 마스크가 0인 픽셀은 명시적 폐기 // 하지만 프로젝트 MSAA 미사용, FXAA 사용

Future Work

  • Atlas 지원 — GlitchTexture / WiggleTexture를 Sprite Atlas에서 슬라이스해 쓸 수 있도록 ST 변환 추가

Tags

UIShaderGlitchRGB-SplitBranchless