--- id: [[P-Reinforce|P-Reinforce]]-AUTO-8AF01A category: Unified confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Data Array Textures" --- # [[Data Array Textures|Data Array Textures]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > Data Array Textures(λ°°μ—΄ ν…μŠ€μ²˜)λŠ” μ…°μ΄λ”μ—μ„œ 인덱슀λ₯Ό 톡해 μ ‘κ·Όν•  수 μžˆλŠ” μ—¬λŸ¬ 2D ν…μŠ€μ²˜λ“€μ˜ μŠ€νƒ λ˜λŠ” λ ˆμ΄μ–΄ ꡬ쑰λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€ [1, 2]. μ΄λŠ” μ—¬λŸ¬ 이미지λ₯Ό 단일 μ΄λ―Έμ§€λ‘œ νŒ¨ν‚Ήν•˜λŠ” 전톡적인 ν…μŠ€μ²˜ μ•„ν‹€λΌμŠ€([[Texture Atlas|Texture Atlas]])의 λ¬Έμ œμ λ“€μ„ ν•΄κ²°ν•˜λŠ” ν˜„λŒ€μ μΈ μ ‘κ·Ό λ°©μ‹μž…λ‹ˆλ‹€ [2]. 특히 λ‹€μ–‘ν•œ ν…μŠ€μ²˜λ₯Ό μ‚¬μš©ν•˜λŠ” μ—¬λŸ¬ 객체λ₯Ό `BatchedMesh`와 κ²°ν•©ν•˜μ—¬ μ΅œμ†Œν•œμ˜ λ“œλ‘œμš° 콜([[Draw Call|Draw Call]])둜 λ Œλ”λ§ν•  수 있게 ν•΄μ£Όμ–΄ 3D λ Œλ”λ§ μ„±λŠ₯ μ΅œμ ν™”μ— 핡심적인 역할을 ν•©λ‹ˆλ‹€ [1, 2]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μ£Όμš” μž₯점:** λ°°μ—΄ ν…μŠ€μ²˜λŠ” μΈμ ‘ν•œ ν…μŠ€μ²˜κ°€ μ„žμ΄λŠ” 경계 번짐([[Edge Bleeding|Edge Bleeding]]) ν˜„μƒμ„ μ œκ±°ν•˜κ³ , λ„€μ΄ν‹°λΈŒ ν…μŠ€μ²˜ λž˜ν•‘(Wrapping) 및 타일링(Tiling)을 μ§€μ›ν•˜λ©°, ꡐ차 μ˜€μ—Ό 없이 각 λ ˆμ΄μ–΄λ³„λ‘œ μ˜¬λ°”λ₯Έ λ°‰λ§΅([[Mipmap|Mipmap]])을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€ [2]. λ˜ν•œ λ³΅μž‘ν•œ UV μ˜€ν”„μ…‹ κ³„μ‚°μ΄λ‚˜ μ•„ν‹€λΌμŠ€ νŒ¨ν‚Ή μ•Œκ³ λ¦¬μ¦˜μ΄ ν•„μš”ν•˜μ§€ μ•Šμ•„ 셰이더 μ½”λ“œκ°€ 크게 λ‹¨μˆœν™”λ©λ‹ˆλ‹€ [2]. - **λ Œλ”λ§ μ„±λŠ₯ 및 ν™œμš©:** `BatchedMesh`와 ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ 셰이더 λΆ„κΈ°(Branching) 처리 λŒ€μ‹  ν•˜λ“œμ›¨μ–΄ 인덱싱을 직접 μ‚¬μš©ν•˜μ—¬ ν•œ 번의 λ“œλ‘œμš° 콜만으둜 μ„œλ‘œ λ‹€λ₯Έ ν…μŠ€μ²˜λ₯Ό κ°€μ§„ μˆ˜λ§Žμ€ 객체λ₯Ό λ Œλ”λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [2]. λ˜ν•œ λ…Έλ©€ λ§΅, λŸ¬ν”„λ‹ˆμŠ€ λ§΅, λ©”νƒˆλ‹ˆμŠ€ λ§΅ 등을 TextureArray둜 μ €μž₯ν•˜μ—¬ κ°μ²΄λ³„λ‘œ κ³ μœ ν•œ μ§ˆκ°μ„ λΆ€μ—¬ν•˜κ±°λ‚˜ [3], 원거리 객체λ₯Ό ν‘œμ‹œν•˜κΈ° μœ„ν•œ λΉŒλ³΄λ“œ μž„ν¬μŠ€ν„°(Billboard impostors)의 닀각도 λ·°λ₯Ό ν…μŠ€μ²˜ λ°°μ—΄λ‘œ μ €μž₯ν•˜μ—¬ λ Œλ”λ§ν•˜λŠ” 데에도 ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€ [4]. - **ꡬ쑰적 ν•œκ³„ 및 단점:** λ°°μ—΄ ν…μŠ€μ²˜ 내에 ν¬ν•¨λ˜λŠ” λͺ¨λ“  ν…μŠ€μ²˜λŠ” λ°˜λ“œμ‹œ λ™μΌν•œ 크기(Dimensions)λ₯Ό κ°€μ Έμ•Όλ§Œ ν•©λ‹ˆλ‹€ [5]. λ‹€μ–‘ν•œ 해상도λ₯Ό μ„žμ–΄ 써야 ν•œλ‹€λ©΄ μ—¬λŸ¬ 개의 λ°°μ—΄ ν…μŠ€μ²˜λ₯Ό μƒμ„±ν•˜κ±°λ‚˜ 기쑴의 ν…μŠ€μ²˜ μ•„ν‹€λΌμŠ€λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [5]. - **λ©”λͺ¨λ¦¬ 및 ν˜Έν™˜μ„±:** ν…μŠ€μ²˜ μ•„ν‹€λΌμŠ€κ°€ λ©”λͺ¨λ¦¬λ₯Ό 더 밀도 있게 νŒ¨ν‚Ήν•  수 μžˆλŠ” 반면, λ°°μ—΄ ν…μŠ€μ²˜λŠ” λŸ°νƒ€μž„μ— λͺ¨λ“  λ ˆμ΄μ–΄μ˜ λ©”λͺ¨λ¦¬λ₯Ό 사전에 ν• λ‹Ήν•΄μ•Ό ν•˜λŠ” λ©”λͺ¨λ¦¬ μ˜€λ²„ν—€λ“œκ°€ μžˆμŠ΅λ‹ˆλ‹€ [5]. 이 κΈ°μˆ μ€ [[WebGL|WebGL]]2 ν™˜κ²½μ„ μš”κ΅¬ν•˜μ§€λ§Œ, 2025λ…„ κΈ°μ€€ λΈŒλΌμš°μ € 지원이 맀우 μš°μˆ˜ν•˜μ—¬ λ™μΌν•œ 크기의 ν…μŠ€μ²˜λ₯Ό λ‹€λ£¨λŠ” ν˜„λŒ€ μ›Ή κ·Έλž˜ν”½ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 전톡적 아틀라싱보닀 λ›°μ–΄λ‚œ μ„±λŠ₯을 λ°œνœ˜ν•©λ‹ˆλ‹€ [5]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Graphics & Performance λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Texture Atlas|Texture Atlas]], BatchedMesh, Draw Calls, [[WebGL2|WebGL2]] - **Projects/Contexts:** Three.js μ„±λŠ₯ μ΅œμ ν™”, [[발보드 암포스ᄐα…₯(Billboard Impostors)|λΉŒλ³΄λ“œ μž„ν¬μŠ€ν„°(Billboard Impostors]] - **Contradictions/Notes:** μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ Data Array TexturesλŠ” ν…μŠ€μ²˜ μ•„ν‹€λΌμŠ€μ˜ 단점듀을 μ™„λ²½νžˆ λ³΄μ™„ν•˜λŠ” ν˜„λŒ€μ  λŒ€μ•ˆμ΄μ§€λ§Œ, 'λͺ¨λ“  ν…μŠ€μ²˜μ˜ 크기가 κ°™μ•„μ•Ό ν•œλ‹€'λŠ” μ—„κ²©ν•œ μ œμ•½κ³Ό 'λ©”λͺ¨λ¦¬ μ„ ν• λ‹Ή'의 뢀담이 μ‘΄μž¬ν•˜λ―€λ‘œ, 가변적인 크기의 ν…μŠ€μ²˜λ₯Ό μ••μΆ•ν•˜κ±°λ‚˜ κ΅¬ν˜• WebGL1 ν™˜κ²½μ„ 지원해야 ν•  λ•ŒλŠ” μ—¬μ „νžˆ ν…μŠ€μ²˜ μ•„ν‹€λΌμŠ€(Texture Atlas)κ°€ κ°€μΉ˜ μžˆλŠ” μ„ νƒμ§€λ‘œ λ‚¨λŠ”λ‹€κ³  μ§€μ ν•©λ‹ˆλ‹€ [5]. --- *Last updated: 2026-04-19* ---