--- id: [[P-Reinforce|P-Reinforce]]-AUTO-1189F7 category: Unified confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - SkinnedMesh" --- # [[SkinnedMesh|SkinnedMesh]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > SkinnedMesh๋Š” ๋ผˆ๋Œ€(Bone) ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜(์˜ˆ: ์บ๋ฆญํ„ฐ์˜ ์–ผ๊ตด ๋ผˆ๋Œ€๋‚˜ ์†๊ฐ€๋ฝ ์›€์ง์ž„ ๋“ฑ)์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” 3D ๊ฐ์ฒด ํƒ€์ž…์ž…๋‹ˆ๋‹ค [1-3]. ๋‹จ์ผ ๊ฐ์ฒด๋กœ๋Š” ์›ํ™œํ•˜๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ ๋Œ€๋Ÿ‰์œผ๋กœ ๋ Œ๋”๋งํ•  ๊ฒฝ์šฐ ์‹ฌ๊ฐํ•œ CPU ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์œ ๋ฐœํ•˜๋ฉฐ [4], ์ •์ ์ด ๋‹ค์ˆ˜์˜ ๋ณธ ํ–‰๋ ฌ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š” ํŠน์„ฑ์ƒ ๋Œ€๊ทœ๋ชจ ๋ Œ๋”๋ง ์ตœ์ ํ™” ๊ธฐ๋ฒ•์ธ [[InstancedMesh|InstancedMesh]]์™€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฌผ๋ฆฌ์  ํ•œ๊ณ„๋ฅผ ์ง€๋‹™๋‹ˆ๋‹ค [3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **๋™์ž‘ ์›๋ฆฌ์™€ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ:** SkinnedMesh์˜ ๊ฐ ์ •์ ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณธ(Bone) ๋ณ€ํ™˜ ํ–‰๋ ฌ์— ์˜ํ•ด ์˜ํ–ฅ์„ ๋ฐ›์•„ ๋ณ€ํ˜•๋ฉ๋‹ˆ๋‹ค [3]. ๋”ฐ๋ผ์„œ ํ™”๋ฉด์— 100๊ฐœ์—์„œ 1,000๊ฐœ ์ด์ƒ์˜ ๋งŽ์€ SkinnedMesh๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ๊ฒฝ์šฐ, ์—ฐ์‚ฐ ๋ถ€ํ•˜๋กœ ์ธํ•ด ์‹ฌ๊ฐํ•œ CPU ๋ณ‘๋ชฉ ํ˜„์ƒ์— ์ง๋ฉดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [4]. - **InstancedMesh ์—ฐ๋™์˜ ๊ตฌ์กฐ์  ํ•œ๊ณ„:** Three.js์˜ ๊ธฐ๋ณธ InstancedMesh๋Š” ๋ณธ ๊ธฐ๋ฐ˜์˜ ์Šคํ‚จ๋“œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [3]. ๊ฐ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๊ณ ์œ ํ•œ ํฌ์ฆˆ๋ฅผ ์ทจํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ๊ฐœ๋ณ„ ์ธ์Šคํ„ด์Šค๋ณ„๋กœ ์ „์ฒด ๋ณธ ํ–‰๋ ฌ ์„ธํŠธ๋ฅผ GPU๋กœ ์ „์†กํ•ด์•ผ ํ•˜๋Š”๋ฐ(์˜ˆ: 100๊ฐœ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ๊ฐ 60๊ฐœ์˜ ๋ณธ์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ ๋งค ํ”„๋ ˆ์ž„ 6,000๊ฐœ์˜ ํ–‰๋ ฌ ๋ฐ์ดํ„ฐ ์ „์†ก ํ•„์š”), ์ด๋Š” ์ธ์Šคํ„ด์Šค ์†์„ฑ ๋ฒ„ํผ์˜ ์ œํ•œ ์šฉ๋Ÿ‰์„ ์‰ฝ๊ฒŒ ์ดˆ๊ณผํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค [3]. - **์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์Šคํ…œ(AnimationMixer)์˜ ๋น„ํ˜ธํ™˜์„ฑ:** Three.js์˜ ํ‘œ์ค€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์Šคํ…œ์ธ `AnimationMixer`๋Š” ๊ฐœ๋ณ„ ๊ฐ์ฒด์˜ ์‹œ๊ฐ„์ถ•์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์–ด, ๋‹จ์ผ ๋“œ๋กœ์šฐ ์ฝœ๋กœ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” InstancedMesh์˜ ๊ตฌ์กฐ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [3]. ๊ฐ ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์žฌ์ƒ ์ƒํƒœ๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ์…ฐ์ด๋”์—์„œ ์ง์ ‘ ์ธ์Šคํ„ด์Šค ID ๊ธฐ๋ฐ˜์œผ๋กœ ์‹œ๊ฐ„ ์˜คํ”„์…‹์„ ๊ณ„์‚ฐํ•˜๋Š” ๋“ฑ ๋ณต์žกํ•œ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค [3]. - **์Šคํ‚จ๋“œ ๋ฉ”์‰ฌ ๋ Œ๋”๋ง ์ตœ์ ํ™” ์ „๋žต:** - **๋ณธ ํ…์Šค์ฒ˜(Bone Texture) ๋„์ž…:** GPU ์ „์†ก ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ณ€ํ™˜ ํ–‰๋ ฌ ๋ฐ์ดํ„ฐ๋ฅผ '๋ณธ ํ…์Šค์ฒ˜(Bone Texture)' ๋˜๋Š” ํ…์Šค์ฒ˜ ์•„ํ‹€๋ผ์Šค์— ๊ตฌ์›Œ ๋„ฃ๊ณ , ์ปค์Šคํ…€ ์…ฐ์ด๋” ๋‹จ๊ณ„์—์„œ ์ด๋ฅผ ์ƒ˜ํ”Œ๋งํ•ด ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ์šฐํšŒ ํŒŒ์ดํ”„๋ผ์ธ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [1, 3, 5]. - **์• ๋‹ˆ๋ฉ”์ด์…˜ LOD(Level of Detail):** ๊ฑฐ๋ฆฌ๊ฐ€ ๋จผ SkinnedMesh ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ ๊ณ„์‚ฐํ•ด์•ผ ํ•  ๋ณธ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ค„์ด๊ฑฐ๋‚˜(์˜ˆ: ์†๊ฐ€๋ฝ์ด๋‚˜ ๋ฐœ์˜ ๊ตฝํž˜ ๋ผˆ๋Œ€ ์—ฐ์‚ฐ ์ƒ๋žต), ์• ๋‹ˆ๋ฉ”์ด์…˜ ์—…๋ฐ์ดํŠธ ์ฃผ๊ธฐ๋ฅผ ๋‚ฎ์ถ”์–ด ๋ณธ ํ…์Šค์ฒ˜์˜ ํฌ๊ธฐ์™€ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๋Š” ๋ฐฉ์‹์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [6-9]. - **์ปค์Šคํ…€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ:** ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์˜ ํ•œ๊ณ„๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด, ๊ฐœ๋ณ„ ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฏน์„œ ์ œ์–ด, LOD ์‹œ์Šคํ…œ, ๊ทธ๋ฆฌ๊ณ  ์ ˆ๋‘์ฒด ์ปฌ๋ง([[Frustum Culling|Frustum Culling]]) ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ 2๋งŒ ๊ฐœ ์ด์ƒ์˜ ์Šคํ‚จ๋“œ ์ธ์Šคํ„ด์Šค ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” `[[InstancedMesh2|InstancedMesh2]]`์™€ ๊ฐ™์€ ํ™•์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค [6, 10-13]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[InstancedMesh|InstancedMesh]], InstancedMesh2, AnimationMixer, Bone Texture, [[Level of Detail (LOD)|Level of Detail (LOD]] - **Projects/Contexts:** Three.js ์—”์ง„์˜ ๋Œ€๊ทœ๋ชจ ๊ตฐ์ค‘ ๋ Œ๋”๋ง ๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ฒ˜๋ฆฌ - **Contradictions/Notes:** ์—”์ง„์˜ ๊ณต์‹ ๊ธฐ๋Šฅ ์ƒ์œผ๋กœ๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์˜ ๊ธฐํ•˜๊ธ‰์ˆ˜์  ์ฆ๊ฐ€ ๋ฐ `AnimationMixer`์™€์˜ ์•„ํ‚คํ…์ฒ˜ ์ถฉ๋Œ ๋ฌธ์ œ๋กœ ์Šคํ‚จ๋“œ ๋ฉ”์‰ฌ์˜ ๋Œ€๊ทœ๋ชจ ์ธ์Šคํ„ด์‹ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ง€์ ๋˜์ง€๋งŒ [3], ๊ฐœ๋ฐœ์ž๋“ค์€ ๋ณธ ํ…์Šค์ฒ˜๋ฅผ ํ™œ์šฉํ•œ ์…ฐ์ด๋” ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด๋‚˜ `InstancedMesh2` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ๊ฐ€์ง„ ์ˆ˜๋งŒ ๊ฐœ์˜ SkinnedMesh๋ฅผ ๋‹จ์ผ ํ˜น์€ ์ตœ์†Œํ•œ์˜ ๋“œ๋กœ์šฐ ์ฝœ๋กœ ์ตœ์ ํ™”ํ•˜์—ฌ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์„ฑ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [3, 6, 12]. --- *Last updated: 2026-04-19* ---