--- id: P-REINFORCE-AUTO-2EFC4E category: "10_Wiki/๐Ÿ’ก Topics/AI" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Threejs WebGPURenderer" --- # [[Threejs WebGPURenderer|Threejs WebGPURenderer]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > Three.js WebGPURenderer๋Š” 2025๋…„ r171 ๋ฒ„์ „๋ถ€ํ„ฐ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋„์ž…๋œ ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋Ÿฌ๋กœ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ 3D ๊ทธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์— ๊ทผ๋ณธ์ ์ธ ์ „ํ™˜์„ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค [1-3]. ๋ณต์žกํ•œ ์„ค์ • ์—†์ด `three/webgpu`์—์„œ ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ WebGPU๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ WebGL 2๋กœ ๋Œ€์ฒด(fallback)๋˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [2, 4, 5]. ๋“œ๋กœ์šฐ ์ฝœ(Draw call)์ด ๋งŽ์€ ์žฅ๋ฉด์ด๋‚˜ ์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute Shader)๊ฐ€ ํ•„์š”ํ•œ ๋ณต์žกํ•œ ํšจ๊ณผ์—์„œ ๊ธฐ์กด ๋Œ€๋น„ 2~10๋ฐฐ ์ด์ƒ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [5, 6]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์ดˆ๊ธฐํ™” ๋ฐ ํ˜ธํ™˜์„ฑ ์ฒ˜๋ฆฌ:** WebGPURenderer๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” GPU ์–ด๋Œ‘ํ„ฐ ๋ฐ ๋””๋ฐ”์ด์Šค๋ฅผ ์š”์ฒญํ•˜๋Š” ๋น„๋™๊ธฐ ์ดˆ๊ธฐํ™”(`await renderer.init()`)๊ฐ€ ํ•„์ˆ˜์ ์ด๋ฉฐ, ์ด๋ฅผ ๋ˆ„๋ฝํ•˜๋ฉด ๋ Œ๋”๋ง์ด ์†Œ๋ฆฌ ์—†์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค [2, 7]. ๋ชจ๋“  ์ฃผ์š” ๋ธŒ๋ผ์šฐ์ €์—์„œ WebGPU๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์ž๋™์œผ๋กœ WebGL 2๋กœ ์ „ํ™˜ํ•˜์—ฌ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ฏ€๋กœ ๋ณ„๋„์˜ ์ฝ”๋“œ ํŒจ์Šค๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค [4]. ํ•„์š”์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ๋‚˜ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด `forceWebGL: true` ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ•์ œ๋กœ WebGL ๋ชจ๋“œ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค [8]. * **์„ฑ๋Šฅ ๋ฐ ์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute Shader) ํ™œ์šฉ:** ์ด ๋ Œ๋”๋Ÿฌ์˜ ๊ฐ€์žฅ ํฐ ๊ฐ•์  ์ค‘ ํ•˜๋‚˜๋Š” ์ปดํ“จํŠธ ์…ฐ์ด๋”์˜ ์ง€์›์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด 50,000๊ฐœ ์ˆ˜์ค€์—์„œ ๋ณ‘๋ชฉ์ด ์ƒ๊ธฐ๋˜ CPU ๊ธฐ๋ฐ˜ ์ž…์ž ์‹œ์Šคํ…œ์ด๋‚˜ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ GPU๋กœ ์˜คํ”„๋กœ๋“œํ•˜์—ฌ ์ˆ˜๋ฐฑ๋งŒ ๋‹จ์œ„๊นŒ์ง€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [9-12]. ์ปดํ“จํŠธ ์—ฐ์‚ฐ์ด ํฌํ•จ๋œ ์”ฌ์„ ๋ Œ๋”๋งํ•  ๋•Œ๋Š” GPU ์ž‘์—…์˜ ์˜ฌ๋ฐ”๋ฅธ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์ผ๋ฐ˜ `render()` ๋Œ€์‹  `await renderer.renderAsync(scene, camera)` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [13]. * **TSL(Three Shader Language)๊ณผ์˜ ํ†ตํ•ฉ:** ์ปค์Šคํ…€ ์…ฐ์ด๋”๋‚˜ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ ๊ตฌํ˜„ ์‹œ TSL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ‘œ์ค€์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค [4, 14]. TSL๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” WebGPU์šฉ WGSL๊ณผ WebGL์šฉ GLSL ์–‘์ชฝ์œผ๋กœ ์ž๋™ ์ปดํŒŒ์ผ๋˜์–ด ์ฝ”๋“œ๋ฅผ ๋‘ ๋ฒˆ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค [4, 15]. WebGPU ํ™˜๊ฒฝ์˜ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ ์—ญ์‹œ ๊ธฐ์กด `pmndrs/postprocessing` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹  TSL ๋…ธ๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ Three.js์˜ ๋‚ด์žฅ ํฌ์ŠคํŠธ ํ”„๋กœ์„ธ์‹ฑ ํŒŒ์ดํ”„๋ผ์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [14]. * **๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋ Œ๋”๋ง ๊ตฌ์กฐ ์ตœ์ ํ™”:** WebGPURenderer๋Š” ๋ Œ๋” ๋ฃจํ”„ ๊ณผ์ •์—์„œ ๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด ํ• ๋‹น์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ”์ธ๋“œ ๊ทธ๋ฃน(Bind group)์œผ๋กœ ๋ฌถ์–ด ๋ฐฐ์น˜(Batch) ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค [11, 16]. ์‹ค์ œ๋กœ 3D ๋ฐ์ดํ„ฐ ํ”Œ๋žซํผ์ธ Segments.ai๋Š” ์ด ๋ Œ๋”๋Ÿฌ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํฌ์ธํŠธ ํด๋ผ์šฐ๋“œ๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ 100๋ฐฐ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฑฐ๋‘์—ˆ์Šต๋‹ˆ๋‹ค [17, 18]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** AI ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[TSL (Three Shader Language)|TSL (Three Shader Language)]], [[Compute Shaders|Compute Shaders]], WebGL 2 fallback - **Projects/Contexts:** [[Segments.ai|Segments.ai]], [[Expo 2025 Osaka|Expo 2025 Osaka]] - **Contradictions/Notes:** ์†Œ์Šค๋Š” WebGPU๊ฐ€ ๋ถ„๋ช…ํ•œ ์„ฑ๋Šฅ ์šฐ์œ„๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ๊ธฐ์กด์˜ WebGL ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์ด๋ฏธ 60fps๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์‹คํ–‰๋˜๊ณ  ์žˆ์œผ๋ฉฐ ์„ฑ๋Šฅ ํ•œ๊ณ„์— ๋ถ€๋”ชํžˆ์ง€ ์•Š์•˜๋‹ค๋ฉด ๋ฌด๋ฆฌํ•ด์„œ ์‹œ๊ธ‰ํžˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ํ•„์š”๋Š” ์—†๋‹ค๊ณ  ์กฐ์–ธํ•ฉ๋‹ˆ๋‹ค [9, 19, 20]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/Three.js WebGPURenderer.md ---