--- id: P-REINFORCE-AI-AC09DA category: "[[10_Wiki/๐Ÿ’ก Topics/Graphics & Performance]]" confidence_score: 0.95 tags: [] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Batch 9 - Wikified 3D Gaussian Splatting (3DGS)" --- # [[3D Gaussian Splatting (3DGS)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > 3D Gaussian Splatting (3DGS)์€ 3D ์Šคํ”Œ๋žซ(splat)๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋ช…์‹œ์  ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ ํ’ˆ์งˆ์˜ ์‹ค์‹œ๊ฐ„ ๋ Œ๋”๋ง์„ ๊ตฌํ˜„ํ•˜๋Š” ํ˜์‹ ์ ์ธ ๊ธฐ๋ฒ•์ด๋‹ค [1, 2]. ๊ฐ 3D ๊ฐ€์šฐ์‹œ์•ˆ์€ ์ค‘์‹ฌ ์œ„์น˜, 3D ๊ณต๋ถ„์‚ฐ ํ–‰๋ ฌ, ์ตœ๋Œ€ ๋ถˆํˆฌ๋ช…๋„, ๊ทธ๋ฆฌ๊ณ  ๊ตฌ๋ฉด ์กฐํ™”(Spherical Harmonics) ๊ณ„์ˆ˜๋ฅผ ํ™œ์šฉํ•œ ์‹œ์  ์ข…์†์  ์ƒ‰์ƒ์œผ๋กœ ์ •์˜๋œ๋‹ค [2]. ์˜ฌ๋ฐ”๋ฅธ ๋ Œ๋”๋ง์„ ์œ„ํ•ด ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์šฐ์‹œ์•ˆ๋“ค์„ ๋’ค์—์„œ ์•ž์œผ๋กœ ์ •๋ ฌ(depth sorting)ํ•˜๊ณ  ์•ŒํŒŒ ๋ธ”๋ Œ๋”ฉ(alpha-blending)ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์ˆ˜์ ์ด๋ฉฐ [3, 4], ๋ฏธ๋ถ„ ๊ฐ€๋Šฅํ•œ ํŠน์„ฑ ๋•๋ถ„์— ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ๊ณ ํ’ˆ์งˆ ์žฌ๊ตฌ์„ฑ ๋ฐ ์ƒ์„ฑ์  3D ๋ชจ๋ธ๋ง์— ํ™œ๋ฐœํžˆ ์‘์šฉ๋˜๊ณ  ์žˆ๋‹ค [1]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **๊ธฐ๋ณธ ๋™์ž‘ ์›๋ฆฌ์™€ ๋ Œ๋”๋ง ๊ตฌ์กฐ:** 3DGS๋Š” ์žฅ๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” 3D ๊ฐ€์šฐ์‹œ์•ˆ๋“ค์„ 2D ์ด๋ฏธ์ง€ ํ‰๋ฉด์œผ๋กœ ํˆฌ์˜ํ•˜์—ฌ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค [2, 4]. ํˆฌ์˜๋œ 2D ๊ณต๋ถ„์‚ฐ ํ–‰๋ ฌ๊ณผ ํ•™์Šต๋œ ๋ถˆํˆฌ๋ช…๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ํ”ฝ์…€์— ๋Œ€ํ•œ ์•ŒํŒŒ ๊ธฐ์—ฌ๋„๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉฐ, ์นด๋ฉ”๋ผ ์‹œ์  ๋ฐฉํ–ฅ์— ๋”ฐ๋ฅธ ๊ตฌ๋ฉด ์กฐํ™” ํ•จ์ˆ˜๋ฅผ ํ‰๊ฐ€ํ•˜์—ฌ ๋ฐ˜์‚ฌ ํšจ๊ณผ ๋ฐ ์ตœ์ข… ์ƒ‰์ƒ์„ ๊ฒฐ์ •ํ•œ๋‹ค [2, 4]. ํˆฌ๋ช…๋„๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๊ฐ€์šฐ์‹œ์•ˆ์„ ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ์นด๋ฉ”๋ผ์™€์˜ ๊ฑฐ๋ฆฌ์— ๋”ฐ๋ผ ๋’ค์—์„œ ์•ž์œผ๋กœ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๋ง‰๋Œ€ํ•œ ์—ฐ์‚ฐ์ด ์š”๊ตฌ๋œ๋‹ค [3-5]. - **WebGL ํ™˜๊ฒฝ์—์„œ์˜ ์„ฑ๋Šฅ ํ•œ๊ณ„ ๋ฐ ์˜ค๋ฅ˜:** ๊ธฐ์กด์˜ WebGL API๋Š” ๋ฒ”์šฉ์ ์ธ GPU ์—ฐ์‚ฐ(Compute) ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์•„, 3DGS์˜ ํ•ต์‹ฌ์ธ ๊นŠ์ด ์ •๋ ฌ ์ž‘์—…์„ JavaScript๋‚˜ WebAssembly๋ฅผ ํ†ตํ•ด CPU์— ์˜คํ”„๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค [6-8]. ์ด๋Š” CPU๊ฐ€ ์ •๋ ฌ์„ ๋งˆ์นœ ๋’ค ํฐ ๋ฒ„ํผ๋ฅผ GPU๋กœ ์—…๋กœ๋“œํ•˜๊ณ  ๋“œ๋กœ์šฐ ์ฝœ์„ ๋ฐœ์ƒ์‹œ์ผœ์•ผ ํ•˜๋Š” ์‹ฌ๊ฐํ•œ ๋™๊ธฐํ™” ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์œ ๋ฐœํ•˜๋ฉฐ, ์žฅ๋ฉด์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก 16.67ms์˜ ํ”„๋ ˆ์ž„ ์˜ˆ์‚ฐ์„ ๋งž์ถ”์ง€ ๋ชปํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค [6, 8]. ์‹ค์ œ๋กœ CesiumJS์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹ ์ฒ˜๋ฆฌ ์‹œ 1ํ”„๋ ˆ์ž„ ๋‚ด์— ์ •๋ ฌ์ด ๋๋‚˜์ง€ ์•Š์•„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ Promise ์ฒด์ธ์ด ์„œ๋กœ ๊ฐ„์„ญํ•˜๋Š” ๊ฒฝํ•ฉ ์กฐ๊ฑด(race condition)์ด ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋ชจ๋ธ์ด ๊นœ๋นก์ด๊ฑฐ๋‚˜ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š” WebGL ์˜ค๋ฅ˜ ๋ฐ ๋งˆ์ดํฌ๋กœ ์Šคํ„ฐํ„ฐ๋ง(micro-stuttering)์ด ๋ณด๊ณ ๋˜์—ˆ๋‹ค [9-12]. - **WebGPU ๋ฐ WebSplatter๋ฅผ ํ†ตํ•œ GPU ํŒŒ์ดํ”„๋ผ์ธ ์ตœ์ ํ™”:** WebGL์˜ ๊ตฌ์กฐ์  ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด WebGPU์˜ ์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute Shader)๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ ‘๊ทผ๋ฒ•์ด ๋Œ€๋‘๋˜์—ˆ๋‹ค [6, 7, 13]. ๋Œ€ํ‘œ์ ์œผ๋กœ WebSplatter ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊นŠ์ด ์ •๋ ฌ๊ณผ ์‹œ์  ์ ์‘ํ˜• ํ‰๊ฐ€๋ฅผ ๋ชจ๋‘ GPU ์—ฐ์‚ฐ์œผ๋กœ ์ด์ „ํ•˜์—ฌ CPU-GPU ๊ฐ„์˜ ๋™๊ธฐํ™” ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์˜€๋‹ค [6, 14]. ํŠนํžˆ WebGPU ํ™˜๊ฒฝ์— ๊ธ€๋กœ๋ฒŒ ์•„ํ† ๋ฏน(global atomics) ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•œ ์ ์„ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด, ํ•˜๋“œ์›จ์–ด ์Šค์ผ€์ค„๋ง์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š” '๋Œ€๊ธฐ ์—†๋Š”(wait-free) ๊ณ„์ธต์  ๊ธฐ์ˆ˜ ์ •๋ ฌ(radix sort)' ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋„์ž…ํ•˜์˜€๋‹ค [6, 15, 16]. ๋˜ํ•œ, ๋ž˜์Šคํ„ฐํ™” ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋ถˆํˆฌ๋ช…๋„ ๋ฐ ์‹œ์•ผ ๋ฒ”์œ„(Bounding Box)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ™”๋ฉด ๋ฐ– ์Šคํ”Œ๋žซ์„ ์„ ์ œ์ ์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๋™์  ์ปฌ๋ง(culling)์„ ์ ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ๊ณผ ์˜ค๋ฒ„๋“œ๋กœ์šฐ๋ฅผ ํฌ๊ฒŒ ์ค„์˜€๋‹ค [15, 17-19]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์‹ ๊ทœ ๋ฌธ์„œ๋กœ, ๊ธฐ์กด ์ •๋ณด์™€์˜ ์ถฉ๋Œ ๋ถ„์„ ์˜ˆ์ •. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ง€์‹ ์—ฐ๊ฒฐ๋ง ๊ฐ•ํ™”๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ ์œ„ํ‚คํ™” ์ ์šฉ. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[WebGPU]], [[WebGL]], [[Compute Shader]] - **Projects/Contexts:** [[WebSplatter]], [[CesiumJS]] - **Contradictions/Notes:** WebGL ๊ธฐ๋ฐ˜์˜ ๊ธฐ์กด 3DGS ๊ตฌํ˜„์€ ์ •๋ ฌ ์ž‘์—…์„ CPU์— ์˜์กดํ•˜๋ฏ€๋กœ ๋™๊ธฐํ™” ๋ณ‘๋ชฉ๊ณผ ํ”„๋ ˆ์ž„ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜์ง€๋งŒ, WebGPU ๊ธฐ๋ฐ˜์˜ WebSplatter๋Š” ํŒŒ์ดํ”„๋ผ์ธ ์ „์ฒด๋ฅผ GPU์—์„œ ๋ณ‘๋ ฌ ์—ฐ์‚ฐํ•จ์œผ๋กœ์จ ๊ธฐ์กด ์›น ๋ทฐ์–ด ๋Œ€๋น„ ์ตœ๋Œ€ 4.5๋ฐฐ์˜ ๋ Œ๋”๋ง ์†๋„ ํ–ฅ์ƒ๊ณผ ๋‚ฎ์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ๋ฅผ ๋‹ฌ์„ฑํ•œ๋‹ค [6, 8, 15, 20]. --- *Last updated: 2026-04-19* - Raw Source: [[00_Raw/2026-04-20/3D Gaussian Splatting (3DGS).md]] ---