--- id: P-REINFORCE-AUTO-1BF809 category: "10_Wiki/πŸ’‘ Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Spatial Partitioning" --- # [[Spatial Partitioning|Spatial Partitioning]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 곡간 λΆ„ν• (Spatial Partitioning)은 3D κ·Έλž˜ν”½μŠ€μ—μ„œ λŒ€κ·œλͺ¨ 씬(Scene)의 μˆ˜λ§Žμ€ κ°μ²΄λ‚˜ λ³΅μž‘ν•œ κΈ°ν•˜ν•™μ  ꡬ쑰λ₯Ό 효율적으둜 λ Œλ”λ§ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ μ΅œμ ν™” κΈ°λ²•μž…λ‹ˆλ‹€. 3D 곡간을 BVH(Bounding Volume Hierarchy)λ‚˜ μ˜₯트리(Octree)와 같은 계측적 인덱슀 자료ꡬ쑰둜 λΆ„ν• ν•˜μ—¬ κ΄€λ¦¬ν•¨μœΌλ‘œμ¨, μ‹œμŠ€ν…œμ΄ μ‹œμ•Ό λ°–μ˜ 객체λ₯Ό 쑰기에 μ—°μ‚°μ—μ„œ μ œμ™Έ(Culling)ν•  수 있게 ν•©λ‹ˆλ‹€ [1]. 이λ₯Ό 톡해 κ΄‘μ„  좔적(Raycasting) μƒν˜Έμž‘μš©μ˜ 속도λ₯Ό 높이고, ν”„λŸ¬μŠ€ν…€ 컬링의 νš¨μœ¨μ„±μ„ κ·ΉλŒ€ν™”ν•˜μ—¬ CPU 및 GPU의 κ³ΌλΆ€ν•˜λ₯Ό λ°©μ§€ν•˜λŠ” 핡심적인 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€ [1-3]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **자료ꡬ쑰의 μ’…λ₯˜:** 주둜 BVH(Bounding Volume Hierarchy) 및 μ˜₯트리(Octree)와 같은 계측적 곡간 인덱슀(Hierarchical spatial index)λ₯Ό ν™œμš©ν•˜μ—¬ 전체 씬을 μ—¬λŸ¬ 곡간 λ…Έλ“œλ‘œ λ‚˜λˆ•λ‹ˆλ‹€ [1, 4]. ν•œνŽΈ, μ‹€λ‚΄ 건좕(Arch domain) ν™˜κ²½κ³Ό 같은 νŠΉμˆ˜ν•œ κ²½μš°μ—λŠ” λ°©(Room)κ³Ό λ¬Έ(Portal)을 μ—°κ²°ν•˜λŠ” 곡간-포털(Cell-portal) 접근법이 맀우 직관적이고 효과적인 곡간 λΆ„ν• λ²•μœΌλ‘œ μ±„νƒλ˜κΈ°λ„ ν•©λ‹ˆλ‹€ [5]. - **μ‹œμ•Ό μ ˆλ‘μ²΄ 컬링(Frustum Culling) μ΅œμ ν™”:** λ Œλ”λŸ¬λŠ” μƒμœ„ 레벨의 곡간 λ…Έλ“œλ₯Ό μΉ΄λ©”λΌμ˜ μ‹œμ•Ό ν”„λŸ¬μŠ€ν…€κ³Ό λ¨Όμ € λŒ€μ‘°ν•˜μ—¬, λ…Έλ“œκ°€ μ‹œμ•Ό 내에 μžˆμ„ λ•Œλ§Œ κ°œλ³„ μ»΄ν¬λ„ŒνŠΈ ν•˜μœ„λ‘œ 탐색해 λ‚΄λ €κ°‘λ‹ˆλ‹€ [1]. 이λ₯Ό 톡해 보이지 μ•ŠλŠ” 객체의 ꡐ차 ν…ŒμŠ€νŠΈμ™€ λ°”μš΄λ”© μŠ€ν”Όμ–΄ 계산을 과감히 μƒλž΅ν•  수 μžˆμ–΄ μ—°μ‚° μžμ›μ„ λŒ€ν­ μ ˆμ•½ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [1]. λŒ€λŸ‰μ˜ `InstancedMesh` ν™˜κ²½μ—μ„œλ„ 전체λ₯Ό ν•˜λ‚˜λ‘œ κ΄€λ¦¬ν•˜κΈ°λ³΄λ‹€λŠ” κ³΅κ°„μ μœΌλ‘œ μΈμ ‘ν•œ μ†Œκ·œλͺ¨ μΈμŠ€ν„΄μŠ€ κ·Έλ£Ή λ‹¨μœ„λ‘œ λΆ„ν•  κ΄€λ¦¬ν•˜λŠ” μ „λž΅μ„ μ·¨ν•΄μ•Ό 컬링 정밀도가 λ†’μ•„μ Έ GPU λ‚­λΉ„λ₯Ό 막을 수 μžˆμŠ΅λ‹ˆλ‹€ [3]. - **λ ˆμ΄μΊμŠ€νŒ… 가속 (Raycasting Acceleration):** 수만 개의 폴리곀 λ˜λŠ” λŒ€κ·œλͺ¨ μΈμŠ€ν„΄μŠ€ μ”¬μ—μ„œ μ‚¬μš©μžμ˜ ν”Όν‚Ή(Picking) μƒν˜Έμž‘μš©μ„ μ¦‰κ°μ μœΌλ‘œ μ²˜λ¦¬ν•˜λ €λ©΄ μ •κ΅ν•œ 곡간 λΆ„ν•  자료ꡬ쑰 ꡬ좕이 ν•„μˆ˜μ μž…λ‹ˆλ‹€ [6]. `three-mesh-bvh`와 같은 λΌμ΄λΈŒλŸ¬λ¦¬λŠ” 곡간 인덱싱(BVH)을 κ΅¬ν˜„ν•˜μ—¬ 8만 개 μ΄μƒμ˜ 폴리곀에 λŒ€ν•΄μ„œλ„ 60fpsλ₯Ό μœ μ§€ν•˜λ©° 맀우 λΉ λ₯Έ λ ˆμ΄μΊμŠ€νŒ…κ³Ό 곡간 쿼리(Spatial queries) μ„±λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€ [2, 7]. - **λŒ€κ·œλͺ¨ ν™˜κ²½ 및 λ‘œλ”© 관리:** κ±°λŒ€ν•œ μ˜€ν”ˆ μ›”λ“œ μ—”μ§„μ΄λ‚˜ λŒ€ν˜• 건좕물 μ”¬μ—μ„œ 곡간 인덱싱은 λ‹¨μˆœν•œ λ Œλ”λ§ 가속을 λ„˜μ–΄, λΌμ΄νŒ…(Lighting), 좩돌(Collisions), μ—μ…‹μ˜ RAM λ©”λͺ¨λ¦¬ λ‘œλ“œ 및 폐기, 그리고 청크 λ‹¨μœ„μ˜ μ›”λ“œ μ½˜ν…μΈ  슀트리밍(Chunked world content streaming) λ“± μ—¬λŸ¬ μ‹œμŠ€ν…œμ˜ λΆ€ν•˜λ₯Ό μ‘°μœ¨ν•˜λŠ” 핡심적인 λΌˆλŒ€ 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€ [5, 8]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Frustum Culling|Frustum Culling]], BVH (Bounding Volume Hierarchy), Octree, [[InstancedMesh|InstancedMesh]], [[Raycasting|Raycasting]] - **Projects/Contexts:** [[three-mesh-bvh|three-mesh-bvh]], Tesseract Engine - **Contradictions/Notes:** λŒ€κ·œλͺ¨ ν™˜κ²½μ—μ„œ λ ˆμ΄μΊμŠ€νŒ… 및 λ Œλ”λ§ μ΅œμ ν™”λ₯Ό μœ„ν•΄ 곡간 인덱슀(Spatial index)λ₯Ό ν™œμš©ν•˜λŠ” 것은 λͺ…ν™•ν•œ μ„±λŠ₯ ν–₯상을 μ œκ³΅ν•˜μ§€λ§Œ, μ΄λŸ¬ν•œ 곡간 λΆ„ν•  자료ꡬ쑰λ₯Ό κ΅¬μΆ•ν•˜κ³  μœ μ§€ν•˜λŠ” λ°μ—λŠ” μƒλ‹Ήν•œ λ³΅μž‘μ„±(non-trivial complexity)이 수반되며 κ΅¬ν˜„ λ‚œμ΄λ„κ°€ λ†’λ‹€λŠ” κ°œλ°œμžλ“€μ˜ λ…Όμ˜κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€ [6, 9]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Spatial Partitioning.md ---