--- id: P-REINFORCE-AUTO-F01D3F category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๋Œ€๊ทœ๋ชจ ์›น ๊ทธ๋ž˜ํ”ฝ์Šค ํ”„๋กœ์ ํŠธ" --- # [[แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„‹แ…ฐแ†ธ แ„€แ…ณแ„…แ…ขแ„‘แ…ตแ†จแ„‰แ…ณ แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณ|๋Œ€๊ทœ๋ชจ ์›น ๊ทธ๋ž˜ํ”ฝ์Šค ํ”„๋กœ์ ํŠธ]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > InstancedMesh๋Š” ๋™์ผํ•œ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ์™€ ์žฌ์งˆ์„ ๊ฐ€์ง„ ์ˆ˜๋งŽ์€ ๊ฐ์ฒด๋ฅผ ๋‹จ ํ•œ ๋ฒˆ์˜ ๋“œ๋กœ์šฐ ์ฝœ(Draw Call)๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ CPU ๋ณ‘๋ชฉ์„ ํš๊ธฐ์ ์œผ๋กœ ์ค„์—ฌ์ฃผ๋Š” ์‹ค์‹œ๊ฐ„ ์›น ๊ทธ๋ž˜ํ”ฝ์Šค ๋ Œ๋”๋ง ์ตœ์ ํ™” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค[1-4]. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋“œ๋กœ์šฐ ์ฝœ ์ตœ์ ํ™”๋Š” ์‹œ์•ผ ์ ˆ๋‘์ฒด ์ปฌ๋ง(Frustum Culling)์˜ ๋น„ํšจ์œจ์„ฑ, ๊ฐœ๋ณ„ ๊ฐ์ฒด ์ •๋ ฌ ๋ถ€์žฌ๋กœ ์ธํ•œ ์˜ค๋ฒ„๋“œ๋กœ์šฐ(Overdraw), ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ ํ•œ๊ณ„, ๊ทธ๋ฆฌ๊ณ  ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ฐ ์ƒํ˜ธ์ž‘์šฉ ๊ตฌํ˜„์˜ ์–ด๋ ค์›€ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ตฌ์กฐ์  ํ•œ๊ณ„์™€ ์ƒˆ๋กœ์šด ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์œ ๋ฐœํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค[5, 6]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ ๋ฐ ์žฌ์งˆ์˜ ๋‹จ์ผ์„ฑ ์ œ์•ฝ** InstancedMesh์˜ ๊ฐ€์žฅ ๊ทผ๋ณธ์ ์ธ ํ•œ๊ณ„๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹จ ํ•˜๋‚˜์˜ `BufferGeometry`์™€ `Material`์„ ๊ณต์œ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค[3, 7]. ์žฅ๋ฉด ๋‚ด ์˜ค๋ธŒ์ ํŠธ ์ข…๋ฅ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ๊ฐœ๋ณ„์ ์ธ InstancedMesh๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ตœ์ ํ™” ํšจ๊ณผ๊ฐ€ ํฌ์„๋ฉ๋‹ˆ๋‹ค[7]. ๋˜ํ•œ, ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ํ…์Šค์ฒ˜๋ฅผ ์ ์šฉํ•˜๋ ค๋ฉด ํ…์Šค์ฒ˜ ์•„ํ‹€๋ผ์Šค(Texture Atlas)๋‚˜ ํ•ด์ƒ๋„ ์ œ์•ฝ์ด ์žˆ๋Š” ํ…์Šค์ฒ˜ ๋ฐฐ์—ด(Texture Array) ๋“ฑ์˜ ์šฐํšŒ ๊ธฐ๋ฒ•์ด ๊ฐ•์ œ๋˜์–ด ์…ฐ์ด๋” ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค[8]. * **์‹œ์•ผ ์ ˆ๋‘์ฒด ์ปฌ๋ง(Frustum Culling)์˜ ๋น„ํšจ์œจ์„ฑ** InstancedMesh๋Š” ์—”์ง„ ์ˆ˜์ค€์—์„œ ๋‹จ์ผ ๊ฐ์ฒด๋กœ ์ทจ๊ธ‰๋˜๋ฏ€๋กœ, ์ „์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ฐ”์šด๋”ฉ ๋ณผ๋ฅจ์„ ๊ธฐ์ค€์œผ๋กœ ๋‹จ ํ•œ ๋ฒˆ์˜ ์ปฌ๋ง ํŒ์ •๋งŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค[9]. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‹œ์•ผ์— ๋‹จ ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ๋ณด์ด๋”๋ผ๋„ GPU๋Š” ๋ณด์ด์ง€ ์•Š๋Š” ๋‚˜๋จธ์ง€ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์˜ ์ •์  ๋ณ€ํ™˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ GPU ์ ์œ ์œจ์ด ๋‚ญ๋น„๋ฉ๋‹ˆ๋‹ค[9, 10]. ์ด๋ฅผ ํ”ผํ•˜๊ณ ์ž CPU์—์„œ ์ง์ ‘ ๊ฐœ๋ณ„ ์ธ์Šคํ„ด์Šค์˜ ๊ฐ€์‹œ์„ฑ์„ ํŒ๋‹จํ•˜๊ณ  ๋ฒ„ํผ๋ฅผ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์— ๋ง‰๋Œ€ํ•œ ๋ถ€ํ•˜๋ฅผ ์ผ์œผํ‚ต๋‹ˆ๋‹ค[11]. * **์ •๋ ฌ(Sorting) ๋ถ€์žฌ๋กœ ์ธํ•œ ์˜ค๋ฒ„๋“œ๋กœ์šฐ(Overdraw)** InstancedMesh ๋‚ด๋ถ€์˜ ์ธ์Šคํ„ด์Šค๋“ค์€ ๋ฒ„ํผ์— ์ €์žฅ๋œ ์ˆœ์„œ๋Œ€๋กœ๋งŒ ๋ Œ๋”๋ง๋˜๋ฉฐ, ์—”์ง„ ์ฐจ์›์˜ ์ž๋™ ์ •๋ ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค[6, 12]. ๋ถˆํˆฌ๋ช…ํ•œ ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ ์•ž์—์„œ ๋’ค๋กœ(Front-to-Back) ๋ Œ๋”๋งํ•˜์—ฌ ๊ฐ€๋ ค์ง„ ํ”ฝ์…€ ์—ฐ์‚ฐ์„ ์ผ์ฐ ์ข…๋ฃŒํ•ด์•ผ ํ•˜์ง€๋งŒ, ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์ธ์Šคํ„ด์Šค๋“ค์€ ๋™์ผํ•œ ํ”ฝ์…€์— ์—ฌ๋Ÿฌ ๋ฒˆ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ง‰๋Œ€ํ•œ ์˜ค๋ฒ„๋“œ๋กœ์šฐ๋ฅผ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค[6, 13]. ๋ฐ˜ํˆฌ๋ช… ๊ฐ์ฒด์˜ ๊ฒฝ์šฐ ๋’ค์—์„œ ์•ž์œผ๋กœ(Back-to-Front) ๋ Œ๋”๋งํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ๊ฐ์  ๊ฒฐํ•จ์ด ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•ด ๋ฒ„ํผ๋ฅผ ์ •๋ ฌํ•˜๋Š” ๊ฒƒ์€ CPU์— ์น˜๋ช…์ ์ธ ๋ถ€ํ•˜๋ฅผ ์ค๋‹ˆ๋‹ค[14, 15]. * **๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ ์ž„๊ณ„์ ๊ณผ ๋ฐ์ดํ„ฐ ์ „์†ก ๋ณ‘๋ชฉ** ๊ฐ ์ธ์Šคํ„ด์Šค์˜ ๋ณ€ํ™˜ ์ •๋ณด๋Š” 64๋ฐ”์ดํŠธ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ํ–‰๋ ฌ๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค ์œ„์น˜๊ฐ€ ๋งค ํ”„๋ ˆ์ž„ ๋ณ€ํ•  ๊ฒฝ์šฐ ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ(GB/s) ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ GPU๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋Œ€์—ญํญ ๋ณ‘๋ชฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค[16]. ๋˜ํ•œ ์ธ์Šคํ„ด์Šค ์ˆ˜๊ฐ€ ๋™์ ์œผ๋กœ ์ดˆ๊ณผ๋˜์–ด ๋ฒ„ํผ๋ฅผ ์ƒˆ๋กœ ํ• ๋‹นํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ๋นˆ๋ฒˆํ•œ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC) ๋ถ€ํ•˜๋กœ ์ธํ•ด ํ”„๋ ˆ์ž„ ์Šคํ„ฐํ„ฐ๋ง(Stuttering)์ด ์œ ๋ฐœ๋ฉ๋‹ˆ๋‹ค[17]. * **ํ”ผํ‚น(Picking) ๋ฐ ์Šคํ‚จ๋“œ ์• ๋‹ˆ๋ฉ”์ด์…˜(Skinned Animation)์˜ ํ•œ๊ณ„** ์‚ฌ์šฉ์ž๊ฐ€ ํŠน์ • ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜๋Š” ๋ ˆ์ด์บ์ŠคํŒ…(Raycasting) ์ž‘์—… ์‹œ, CPU๋Š” ์ˆ˜๋งŒ ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค ํ–‰๋ ฌ์„ ๋ชจ๋‘ ์—ญ์‚ฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ทน์‹ฌํ•œ ๋ฐ˜์‘ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค[18]. GPU ํ”ผํ‚น ๋ฐฉ์‹์„ ๋Œ€์•ˆ์œผ๋กœ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ํŒŒ์ดํ”„๋ผ์ธ ๋™๊ธฐํ™” ์ง€์—ฐ(Sync stall)๊ณผ ์˜คํด๋ฃจ์ „ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค[19]. ๋˜ํ•œ ์Šคํ‚จ๋“œ ์• ๋‹ˆ๋ฉ”์ด์…˜์˜ ๊ฒฝ์šฐ, ์ธ์Šคํ„ด์Šค๋ณ„๋กœ ์ˆ˜์‹ญ ๊ฐœ์˜ ๋ณธ(Bone) ํ–‰๋ ฌ ์„ธํŠธ๋ฅผ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ธ์Šคํ„ด์Šค ์†์„ฑ ๋ฒ„ํผ ํ•œ๊ณ„๋ฅผ ์ดˆ๊ณผํ•˜๋ฉฐ ์—”์ง„์˜ ๊ธฐ๋ณธ `AnimationMixer`์™€๋„ ๊ตฌ์กฐ์ ์œผ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค[20]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[InstancedMesh|InstancedMesh]], [[BatchedMesh|BatchedMesh]], [[Frustum Culling|Frustum Culling]], [[Overdraw|Overdraw]], [[Draw Call|Draw Call]] - **Projects/Contexts:** [[WebGPU|WebGPU]], [[InstancedMesh2|InstancedMesh2]] - **Contradictions/Notes:** ๋“œ๋กœ์šฐ ์ฝœ์„ 1ํšŒ๋กœ ๊ทน์ ์œผ๋กœ ์ค„์ด๋Š” InstancedMesh๊ฐ€ ๋ฌด์กฐ๊ฑด์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ณด์žฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ์‹œ์•ผ ์ ˆ๋‘์ฒด ์ปฌ๋ง๊ณผ ๊นŠ์ด ์ •๋ ฌ(Depth Sorting)์ด ์ง€์›๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์กฐ๋ช… ์—ฐ์‚ฐ์ด ๋ณต์žกํ•œ `MeshStandardMaterial` ๋“ฑ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์‹ฌ๊ฐํ•œ ์˜ค๋ฒ„๋“œ๋กœ์šฐ๋กœ ์ธํ•ด ๋“œ๋กœ์šฐ ์ฝœ์ด 5,000ํšŒ์ธ ์ผ๋ฐ˜ Mesh ๋ฐฉ์‹๋ณด๋‹ค InstancedMesh ๋ฐฉ์‹์˜ FPS๊ฐ€ ์˜คํžˆ๋ ค ๋” ๋‚ฎ๊ฒŒ ์ธก์ •๋˜๋Š” ๋ชจ์ˆœ์ ์ธ ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ์‹ค์ฆ์ ์œผ๋กœ ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค[6, 12, 13]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/๋Œ€๊ทœ๋ชจ ์›น ๊ทธ๋ž˜ํ”ฝ์Šค ํ”„๋กœ์ ํŠธ.md ---