RESEARCH
애니메이션 및 AGSL 리서치
AGSL (API 33+): RuntimeShader로 커스텀 셰이더 실행
- 용도: Space 전환, Dash 글로우, Orchestrator 브레싱, 융합 파티클, 동적 배경
- 제한: 프래그먼트 셰이더만, 디버깅 어려움, 동적 반복문 제한
폴백 3티어
- Tier A (API 33+): AGSL + RenderEffect 전체
- Tier B (API 31-32): RenderEffect (블러, 컬러) + Compose 그래디언트
- Tier C (API 26-30): Compose drawBehind + BlendMode + 수동 그래디언트
구현: VisualEffect 인터페이스 + AgslImpl/FallbackImpl 팩토리 패턴
Lottie vs Rive
- Phase 1-2: Lottie (Compose 통합 성숙, 커뮤니티 풍부)
- Phase 3+: Rive 추가 (State Machine, 인터랙티브, GPU 기반 고성능)
- manifest에 animation_engine: "lottie" | "rive" 필드
CSS -> Compose Spring 매핑
- 오버슈트: dampingRatio 0.4~0.5, stiffness 350~400
- 감속: dampingRatio 0.7, stiffness 300
- Material: FastOutSlowInEasing (tween)
- 무한 반복: infiniteRepeatable + RepeatMode.Reverse
동시 5+ Dash 성능 예산
- 개별 Dash: 최대 1.5ms, 동시 활성 애니메이션 2개/Dash
- AGSL 동시 3개, Lottie 동시 2개
- 최적화: 가시성 기반 중단(40-60%), LOD(20-30%), 공유 transition(10-15%)
- graphicsLayer로 리컴포지션 건너뜀(30-50%)
- AnimationQualityManager: 프레임 드롭 감지 시 자동 품질 하향