--- id: P-REINFORCE-AUTO-589695 category: "10_Wiki/πŸ’‘ Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Fragment-bound" --- # [[Fragment-bound|Fragment-bound]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 'Fragment-bound(ν”„λž˜κ·Έλ¨ΌνŠΈ λ°”μš΄λ“œ)'λŠ” 3D κ·Έλž˜ν”½μŠ€ λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈμ—μ„œ GPU의 ν”„λž˜κ·Έλ¨ΌνŠΈ 셰이딩(ν”½μ…€ 처리) μš©λŸ‰μ΄ ν•œκ³„μ— λ„λ‹¬ν•˜μ—¬ 전체 μ‹œμŠ€ν…œμ˜ μ„±λŠ₯ 병λͺ©μ΄ λ˜λŠ” μƒνƒœλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€ [1, 2]. 이 μƒνƒœλŠ” 주둜 객체듀이 카메라 κΈ°μ€€ 깊이(Depth)에 따라 μ •λ ¬λ˜μ§€ μ•Šμ€ 채 λ Œλ”λ§λ  λ•Œ, λ™μΌν•œ 픽셀에 μ—¬λŸ¬ 번 그리기 연산이 μˆ˜ν–‰λ˜λŠ” 'μ˜€λ²„λ“œλ‘œμš°(Overdraw)' ν˜„μƒμœΌλ‘œ 인해 μ΄‰λ°œλ©λ‹ˆλ‹€ [1, 2]. 특히 μ—°μ‚° λΉ„μš©μ΄ 높은 μž¬μ§ˆμ„ μ‚¬μš©ν•  λ•Œ 이 병λͺ© ν˜„μƒμ€ λ”μš± κ·Ήμ‹¬ν•΄μ§‘λ‹ˆλ‹€ [2, 3]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μ˜€λ²„λ“œλ‘œμš°(Overdraw)에 μ˜ν•œ μ—°μ‚° κ³ΌλΆ€ν•˜:** ν”„λž˜κ·Έλ¨ΌνŠΈ λ°”μš΄λ“œ μƒνƒœλŠ” ν™”λ©΄μ˜ λ™μΌν•œ ν”½μ…€ μ˜μ—­μ— λŒ€ν•΄ 셰이더 μ—°μ‚°κ³Ό μ“°κΈ° μž‘μ—…μ΄ μ—¬λŸ¬ 번 μ€‘μ²©λ˜μ–΄ λ°œμƒν•˜λŠ” μ˜€λ²„λ“œλ‘œμš°μ— μ˜ν•΄ μ•ΌκΈ°λ©λ‹ˆλ‹€ [1, 2]. GPUκ°€ μ΅œμ’… 화면에 보이지 μ•Šκ³  κ°€λ €μ§ˆ ν”½μ…€κΉŒμ§€ λͺ¨λ‘ κ³„μ‚°ν•˜κ²Œ λ˜λ©΄μ„œ ν”½μ…€ 처리 μ„±λŠ₯을 μƒνšŒν•˜λŠ” λΆ€ν•˜κ°€ λ°œμƒν•©λ‹ˆλ‹€ [2]. - **InstancedMesh의 μ •λ ¬ λΆ€μž¬μ™€ 병λͺ©:** Three.js의 `InstancedMesh`λŠ” 단일 λ“œλ‘œμš° 콜둜 λ Œλ”λ§μ„ μˆ˜ν–‰ν•˜μ§€λ§Œ κ°œλ³„ μΈμŠ€ν„΄μŠ€λ“€μ˜ λ Œλ”λ§ μˆœμ„œλ₯Ό μžλ™μœΌλ‘œ μ •λ ¬(Sorting)ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ [1, 2]. λ§Œμ•½ 카메라와 κ°€μž₯ 멀리 μžˆλŠ” μΈμŠ€ν„΄μŠ€κ°€ λ¨Όμ € κ·Έλ €μ§€κ³  κ°€κΉŒμš΄ μΈμŠ€ν„΄μŠ€κ°€ λ‚˜μ€‘μ— κ·Έλ €μ§„λ‹€λ©΄ λ§‰λŒ€ν•œ μ˜€λ²„λ“œλ‘œμš° λΉ„μš©μ΄ λ°œμƒν•˜κ²Œ 되며, 이둜 인해 씬(Scene)이 ν”„λž˜κ·Έλ¨ΌνŠΈ λ°”μš΄λ“œ μƒνƒœμ— λΉ μ§€κ²Œ λ©λ‹ˆλ‹€ [2]. - **재질(Material) λ³΅μž‘λ„μ˜ 영ν–₯κ³Ό ν•΄κ²°μ±…:** λ³΅μž‘ν•œ μ‘°λͺ… 및 그림자 연산이 ν¬ν•¨λœ `MeshStandardMaterial`κ³Ό 같은 셰이더λ₯Ό μ‚¬μš©ν•  경우 ν”„λž˜κ·Έλ¨ΌνŠΈ λ°”μš΄λ“œ ν˜„μƒμ€ 훨씬 더 μ‹¬ν™”λ©λ‹ˆλ‹€ [2, 3]. 이 문제λ₯Ό μ™„ν™”ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ˜€λ²„λ“œλ‘œμš°μ˜ λΉ„μš© 자체λ₯Ό 쀄일 수 μžˆλŠ” λ‹¨μˆœν•œ `MeshBasicMaterial`을 μ‚¬μš©ν•˜μ—¬ λΉ„κ΅ν•˜κ±°λ‚˜ [3], μžλ™μœΌλ‘œ μΈμŠ€ν„΄μŠ€ 정렬을 μ§€μ›ν•˜λŠ” `BatchedMesh`둜 μ „ν™˜ν•˜μ—¬ λ Œλ”λ§ νš¨μœ¨μ„ λ†’μ΄λŠ” 것이 λŒ€μ•ˆμœΌλ‘œ μ œμ‹œλ©λ‹ˆλ‹€ [1]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Overdraw|Overdraw]], [[InstancedMesh|InstancedMesh]], [[MeshStandardMaterial α„Œα…©α„†α…§α†Ό 연ᄉᅑᆫ|MeshStandardMaterial]], [[BatchedMesh|BatchedMesh]] - **Projects/Contexts:** [[Three.js 렌ᄃα…₯α„…α…΅α†Ό ᄉα…₯α†Όα„‚α…³α†Ό α„Žα…¬α„Œα…₯ᆨᄒα…ͺ|Three.js λ Œλ”λ§ μ„±λŠ₯ μ΅œμ ν™”]] - **Contradictions/Notes:** λ“œλ‘œμš° μ½œμ„ 쀄여 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€κΈ° μœ„ν•΄ κ³ μ•ˆλœ `InstancedMesh`κ°€, μ •λ ¬ κΈ°λŠ₯의 λΆ€μž¬λ‘œ 인해 였히렀 μ‹¬κ°ν•œ μ˜€λ²„λ“œλ‘œμš°μ™€ ν”„λž˜κ·Έλ¨ΌνŠΈ λ°”μš΄λ“œλ₯Ό μœ λ°œν•˜μ—¬ 일반 `Mesh`λ₯Ό μ—¬λŸ¬ 번 그릴 λ•Œλ³΄λ‹€ ν”„λ ˆμž„ 레이트(FPS)λ₯Ό 더 ν•˜λ½μ‹œν‚¬ 수 μžˆλ‹€λŠ” 점이 μ£Όμ˜μ‚¬ν•­μœΌλ‘œ λ³΄κ³ λ©λ‹ˆλ‹€ [2, 4]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Fragment-bound.md ---