Files
2nd/10_Wiki/Topics/AI_and_ML/Depth Pre-Pass.md
T

4.8 KiB

id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, tags, raw_sources, last_reinforced, github_commit, inferred_by, tech_stack
id title category status canonical_id aliases duplicate_of source_trust_level confidence_score tags raw_sources last_reinforced github_commit inferred_by tech_stack
wiki-2026-0508-depth-pre-pass Depth Pre Pass 10_Wiki/Topics needs_review self
P-Reinforce-AUTO-B5A436
none A 0.9
auto-reinforced
2026-04-20 [P-Reinforce] Continuous Worker - Depth Pre-Pass Claude Opus 4.7 (auto-normalize 2026-05-08)
language framework
unspecified unspecified

Depth Pre-Pass

📌 한 줄 통찰 (The Karpathy Summary)

Depth Pre-Pass는 복잡한 기하학적 구조를 가진 씬에서 가려진 객체를 제거하는 오클루전 컬링(Occlusion culling)을 수행하기 위해 사용되는 효과적인 렌더링 전략입니다 [1]. 특히 필 레이트(fill-rate)와 프래그먼트 처리 성능이 제한된 내장 GPU(iGPU) 환경에서 유용한 해결책으로 활용됩니다 [1]. 렌더링을 두 단계로 나누어 불필요한 프래그먼트 셰이더 연산을 방지함으로써 오버드로우(Overdraw)가 심한 모델의 렌더링 성능을 크게 향상시킵니다 [1, 2].

📖 구조화된 지식 (Synthesized Content)

  • 작동 원리 (두 단계의 렌더링 프로세스): Depth Pre-Pass는 다음과 같은 두 가지 렌더링 단계로 구성됩니다 [1].

    1. Stage 1 (Depth-Only): 씬 전체를 MeshBasicMaterial과 같이 매우 단순한 재질을 사용하여 렌더링하며, 이때 색상 쓰기 기능은 비활성화(colorWrite: false)합니다 [1]. 이 첫 번째 패스는 가장 가까운 프래그먼트의 깊이(depth) 값으로 Z-버퍼(Z-buffer)를 채우는 역할만을 수행합니다 [1].
    2. Stage 2 (Main Render): 깊이 테스트(depth test) 함수를 EQUAL로 설정한 후, 전체 셰이딩을 적용하여 씬을 다시 렌더링합니다 [1]. Z-버퍼에는 이미 화면에 보이는 표면의 깊이 값만 저장되어 있으므로, GPU는 다른 물체에 가려진(occluded) 프래그먼트들이 연산 비용이 높은 메인 셰이더 로직에 진입하기 전에 이를 자동으로 폐기(discard)합니다 [1].
  • 성능 향상 및 적용 효과: 이러한 수동 Z-prepass 로직을 구현하면 프래그먼트 셰이더에 가해지는 부하를 최대 30%까지 줄일 수 있습니다 [2]. 이는 숨겨진 내부 기하구조 레이어가 많아 픽셀이 여러 번 덧그려지는 '오버드로우(overdraw)'가 심하게 발생하는 CAD 모델을 렌더링할 때 특히 귀중한 최적화 기법입니다 [2]. 개발자들은 이러한 깊이 기반의 가시성 판별(Depth Pre-Pass) 기술을 구조적 최적화 및 Render-on-Demand 실행 모델과 결합하여, 표준 모바일 하드웨어에서도 워크스테이션 수준의 시각화 경험을 제공할 수 있습니다 [3].

⚠️ 모순 및 업데이트 (Contradictions & Updates)

  • 과거 데이터와의 충돌: 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
  • 정책 변화: Programming & Language 분야의 자동 자산화 수행.

🔗 지식 연결 (Graph)

  • Related Topics: Occlusion Culling, Z-buffer, Overdraw, Fragment Shader
  • Projects/Contexts: WebGL/Three.js CAD Rendering Optimization
  • Contradictions/Notes: 소스에 상충되는 내용은 없으며, 오클루전 컬링을 CPU에서 처리하기 어렵거나 GPU 레이턴시로 인해 비용이 높을 때 이를 해결하는 가장 효과적인 우회(workaround) 기법으로 설명됩니다 [1].

Last updated: 2026-04-19


🤖 LLM 활용 힌트 (How to Use This Knowledge)

언제 이 지식을 쓰는가:

  • (TODO)

언제 쓰면 안 되는가:

  • (TODO)

🧪 검증 상태 (Validation)

  • 정보 상태: needs_review
  • 출처 신뢰도: A
  • 검토 이유: (P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)

🧬 중복 검사 (Duplicate Check)

  • 기존 유사 문서: (TODO: 인덱서 클러스터 리포트 참조)
  • 처리 방식: UPDATE (자동 정규화)
  • 처리 이유: Phase 1 정규화 — 옛 템플릿/누락 필드 보강.

🕓 변경 이력 (Changelog)

날짜 변경 내용 처리 방식 신뢰도
2026-05-08 P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) UPDATE A

💻 코드 패턴 (Code Patterns)

패턴 1: (TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)

# TODO

🤔 의사결정 기준 (Decision Criteria)

선택 A를 써야 할 때:

  • (TODO)

선택 B를 써야 할 때:

  • (TODO)

기본값:

(TODO)

안티패턴 (Anti-Patterns)

  • [안티패턴]: (TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)