--- id: P-REINFORCE-AUTO-1C7197 category: "10_Wiki/๐Ÿ’ก Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ์ž…์ž ์‹œ์Šคํ…œ(Particle Systems)" --- # [[แ„‹แ…ตแ†ธแ„Œแ…ก แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท(Particle Systems)|์ž…์ž ์‹œ์Šคํ…œ(Particle Systems)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์ž…์ž ์‹œ์Šคํ…œ(Particle Systems)์€ ๊ฒŒ์ž„์ด๋‚˜ 3D ๊ทธ๋ž˜ํ”ฝ ํ™˜๊ฒฝ์—์„œ ์œ ์ฒด, ์ด์•Œ, ํŠน์ˆ˜ ํšจ๊ณผ ๋“ฑ ์ˆ˜๋งŽ์€ ๊ฐœ์ฒด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค [1, 2]. ์ „ํ†ต์ ์ธ CPU ๊ธฐ๋ฐ˜์˜ ์ž…์ž ์—…๋ฐ์ดํŠธ๋Š” ์—ฐ์‚ฐ ํ•œ๊ณ„๋กœ ์ธํ•ด ์•ฝ 5๋งŒ ๊ฐœ ๋ถ€๊ทผ์—์„œ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์— ๋„๋‹ฌํ•˜์ง€๋งŒ, WebGPU์˜ ์ปดํ“จํŠธ ์…ฐ์ด๋”๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ ๋‹จ์œ„๋กœ ๋Œ์–ด์˜ฌ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 3]. ๋˜ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋”ฐ๋ผ InstancedMesh๋‚˜ Solid Particle System(SPS)์„ ํ™œ์šฉํ•˜์—ฌ ๋“œ๋กœ์šฐ ์ฝœ(Draw call)์„ ์ค„์ด๊ณ  ๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4-6]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute Shaders) ๋ฐ WebGPU ํ™œ์šฉ:** ์ „ํ†ต์ ์ธ ๋ฐฉ์‹์˜ ์ž…์ž ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” CPU-GPU ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก์€ ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค [1]. ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์ž…์ž ์‹œ์Šคํ…œ์„ WebGPU์˜ ์ปดํ“จํŠธ ์…ฐ์ด๋”๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ฉด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ์ž…์ž ์ˆ˜๋ฅผ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ ๋‹จ์œ„๋กœ ํฌ๊ฒŒ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 3]. - **GPU ์˜๊ตฌ ๋ฒ„ํผ ๋ฐ ๊ฐ์ฒด ํ’€๋ง:** `instancedArray`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ ˆ์ž„ ๊ฐ„์—๋„ ์œ ์ง€๋˜๋Š” GPU ์˜๊ตฌ ๋ฒ„ํผ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ์ž…์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋งค ํ”„๋ ˆ์ž„ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก ๋ณ‘๋ชฉ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 7]. ๋˜ํ•œ, ์žฆ์€ ์ƒ์„ฑ๊ณผ ์†Œ๋ฉธ์ด ์ผ์–ด๋‚˜๋Š” ์ž…์ž๋“ค์€ ๊ฐ์ฒด ํ’€๋ง(Object pooling) ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC)์œผ๋กœ ์ธํ•œ ๋ฉˆ์ถค ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [2]. - **์ธ์Šคํ„ด์‹ฑ(Instancing)๊ณผ ์ปค์Šคํ…€ ์…ฐ์ด๋” ๊ฒฐํ•ฉ:** ๋ฐ˜๋ณต๋˜๋Š” ์ž…์ž ๊ฐ์ฒด์— `InstancedMesh`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋“œ๋กœ์šฐ ์ฝœ์„ ๋‹จ์ผํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4]. ์ด๋Ÿฌํ•œ ์ธ์Šคํ„ด์‹ฑ์— ์ปค์Šคํ…€ ์ •์  ์…ฐ์ด๋”(Vertex shader)๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ ˆ์ฐจ์ ์œผ๋กœ ํ˜•์ƒ์„ ๋ณ€ํ˜•ํ•˜๋ฉด, ๋ฉ”์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€๋กœ ๋ณต์ œํ•˜์ง€ ์•Š๊ณ ๋„ ์ž…์ž ํšจ๊ณผ์˜ ๋‹ค์–‘์„ฑ์„ ํ™•๋ณดํ•˜๋Š” ๋ฐ ๋งค์šฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค [8]. - **Solid Particle System (SPS)์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์‹œ ๋น„๊ต (Babylon.js ์‚ฌ๋ก€):** Babylon.js ํ™˜๊ฒฝ์—์„œ๋Š” Solid Particle System(SPS)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋งŽ์€ ์ž…์ž์˜ ์ƒํƒœ(์žฌ์งˆ ๋“ฑ)๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [9]. SPS๋Š” `setParticles()` ํ˜ธ์ถœ ์‹œ์—๋งŒ ๊ฐ€๋ฒผ์šด ์ „์šฉ ์›”๋“œ ํ–‰๋ ฌ์„ ๊ณ„์‚ฐํ•˜๋ฉฐ ํ”„๋Ÿฌ์Šคํ…€ ํ…Œ์ŠคํŠธ(Frustum test)๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด, 50 ์ •์  ๋ฏธ๋งŒ์˜ ์ˆ˜๋งŽ์€ ์ €ํด๋ฆฌ๊ณค ์ž…์ž ์ฒ˜๋ฆฌ์— ์ธ์Šคํ„ด์Šค ๋ฉ”์‹œ๋ณด๋‹ค ๋” ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค [5, 6]. ํ•˜์ง€๋งŒ SPS๋Š” ์›๋ณธ ๊ธฐํ•˜ํ•™์  ๋ฐ์ดํ„ฐ(Geometry)๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ณต์ œํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ, ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Ÿ‰ ์ธก๋ฉด์—์„œ๋Š” ์ธ์Šคํ„ด์‹ฑ ๋ฐฉ์‹์— ๋น„ํ•ด ํ›จ์”ฌ ๋ฌด๊ฒ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค [10, 11]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[WebGPU|WebGPU]], [[แ„แ…ฅแ†ทแ„‘แ…ฒแ„แ…ณ แ„‰แ…จแ„‹แ…ตแ„ƒแ…ฅ(Compute Shaders)|์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute Shaders)]], [[InstancedMesh|InstancedMesh]], Solid Particle System (SPS) - **Projects/Contexts:** Hokusai installation - ์—‘์Šคํฌ 2025 ์˜ค์‚ฌ์นด(Expo 2025 Osaka)์—์„œ 100๋งŒ ๊ฐœ์˜ ์ž…์ž ๊ธฐ๋ฐ˜ ์œ ์ฒด ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ WebGPU๋กœ ๊ตฌํ˜„ํ•œ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค [12]. - **Contradictions/Notes:** Babylon.js ํ™˜๊ฒฝ์˜ Solid Particle System(SPS)๋Š” ์ €ํด๋ฆฌ๊ณค ์ž…์ž์˜ CPU ์—ฐ์‚ฐ ์„ฑ๋Šฅ ๋ฉด์—์„œ๋Š” ์šฐ์ˆ˜ํ•˜์ง€๋งŒ, ์ž…์ž๋ณ„๋กœ ๊ธฐํ•˜ํ•™์  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ์ ์œ ์œจ ์ธก๋ฉด์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋ฉ”์‹œ(InstancedMesh) ๋ฐฉ์‹์— ๋น„ํ•ด ๋น„ํšจ์œจ์ ์ด๋ผ๋Š” ํŠธ๋ ˆ์ด๋“œ์˜คํ”„(Trade-off)๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [6, 10, 11]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/์ž…์ž ์‹œ์Šคํ…œ(Particle Systems).md ---