--- id: P-REINFORCE-AUTO-750154 category: "10_Wiki/๐Ÿ’ก Topics/Graphics & Performance" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๋Œ€๊ทœ๋ชจ 3D ๊ฑด์ถ• ๋ชจ๋ธ(BIM) ์‹œ๊ฐํ™”" --- # [[แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ 3D แ„€แ…ฅแ†ซแ„Žแ…ฎแ†จ แ„†แ…ฉแ„ƒแ…ฆแ†ฏ(BIM) แ„‰แ…ตแ„€แ…กแ†จแ„’แ…ช|๋Œ€๊ทœ๋ชจ 3D ๊ฑด์ถ• ๋ชจ๋ธ(BIM) ์‹œ๊ฐํ™”]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๋Œ€๊ทœ๋ชจ 3D ๊ฑด์ถ• ๋ชจ๋ธ(BIM) ์‹œ๊ฐํ™”๋Š” ์ˆ˜์‹ญ๋งŒ์—์„œ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ๊ฐœ๋ณ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋œ ๋ณต์žกํ•œ ๊ฑด์ถ• ๋ฐ ์‚ฐ์—… ํ™˜๊ฒฝ์„ ์›น ๋ธŒ๋ผ์šฐ์ € ๋“ฑ์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ Œ๋”๋งํ•˜๋Š” ๊ธฐ์ˆ ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1-3]. ์ด๋ฅผ ์›ํ™œํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋“œ๋กœ์šฐ ์ฝœ(Draw Call) ๋ณ‘๋ชฉ ํ˜„์ƒ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•ด์•ผ ํ•˜๋ฉฐ, ๊ฐ์ฒด์˜ ๊ณ ์œ ์„ฑ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํ˜•์ƒ ๋ณ‘ํ•ฉ(Batching)๊ณผ ์ธ์Šคํ„ด์‹ฑ(Instancing)์„ ํ˜ผํ•ฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ตœ์ ํ™” ๋ฐ WebGPU์˜ ์ปดํ“จํŠธ ์…ฐ์ด๋”์™€ ๊ฐ™์€ ์ตœ์‹  ๊ทธ๋ž˜ํ”ฝ API ๊ธฐ์ˆ ์ด ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [4-7]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **๋“œ๋กœ์šฐ ์ฝœ ๋ณ‘๋ชฉ๊ณผ ๊ธฐํ•˜ํ•™์  ๋ฐ์ดํ„ฐ์˜ ํ•œ๊ณ„:** BIM ๋ฐ CAD ๋ชจ๋ธ์€ ๋ฒฝ, ๋ฐ”๋‹ฅ, ๋ฐฐ๊ด€, ์ฐฝ๋ฌธ ๋“ฑ ์ˆ˜๋งŽ์€ ๊ฐœ๋ณ„ ๋ถ€ํ’ˆ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์ด๋ฅผ ๊ฐœ๋ณ„ ๋ฉ”์‰ฌ(Mesh)๋กœ ๋ Œ๋”๋งํ•  ๊ฒฝ์šฐ ๋ง‰๋Œ€ํ•œ ๋“œ๋กœ์šฐ ์ฝœ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ CPU๊ฐ€ GPU์˜ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•˜๋Š” ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [2, 8, 9]. ๋˜ํ•œ, CAD ๋ฐ์ดํ„ฐ๋Š” ๋งค์šฐ ํฐ ์ขŒํ‘œ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ 32๋น„ํŠธ ๋ถ€๋™์†Œ์ˆ˜์  ํ™˜๊ฒฝ์—์„œ ๋ Œ๋”๋ง ์‹œ ์ •์  ์Šค๋‚ดํ•‘(Vertex snapping)์ด๋‚˜ ๋–จ๋ฆผ(Jitter) ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, GPU ์—…๋กœ๋“œ ์ „ ๊ธฐํ•˜ํ•™์  ๊ฒฝ๊ณ„ ์ƒ์ž์˜ ์ค‘์‹ฌ์„ ๊ธฐ์ค€์œผ๋กœ ์ขŒํ‘œ๊ณ„๋ฅผ ์žฌ์กฐ์ •(Origin-shifting)ํ•˜๋Š” ์ •๋ฐ€๋„ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค [10, 11]. - **BatchedMesh์™€ InstancedMesh๋ฅผ ํ™œ์šฉํ•œ ์ตœ์ ํ™”:** ๋ฐฉ๋Œ€ํ•œ ํ™˜๊ฒฝ์„ ์‹œ๊ฐํ™”ํ•  ๋•Œ๋Š” ๊ฐ์ฒด์˜ ํŠน์„ฑ์— ๋งž์ถฐ ๋ Œ๋”๋ง์„ ์ตœ์ ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ด๋‚˜ ๊ฐ€๊ตฌ, ํŒจ์Šค๋„ˆ(Fastener)์ฒ˜๋Ÿผ ๋™์ผํ•œ ํ˜•์ƒ๊ณผ ์žฌ์งˆ์ด ๋ฐ˜๋ณต๋˜๋Š” ๊ณ ํด๋ฆฌ๊ณค ๊ฐ์ฒด์—๋Š” `InstancedMesh`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋“œ๋กœ์šฐ ์ฝœ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค [1, 4, 6]. ๋ฐ˜๋ฉด, ์ฝ˜ํฌ๋ฆฌํŠธ ๋ฒฝ์ด๋‚˜ ๋ฐฐ๊ด€์ฒ˜๋Ÿผ ๋™์ผํ•œ ์žฌ์งˆ์„ ๊ณต์œ ํ•˜์ง€๋งŒ ๊ธฐํ•˜ํ•™์  ํ˜•ํƒœ๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅธ ๊ณ ์œ  ๊ฐ์ฒด๋“ค์˜ ๊ฒฝ์šฐ `InstancedMesh` ์ ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ๋“œ๋กœ์šฐ ์ฝœ๋กœ ๋ฌถ์œผ๋ฉด์„œ๋„ ๊ฐœ๋ณ„ ๊ฐ์ฒด์˜ ๊ฐ€์‹œ์„ฑ๊ณผ ๋ณ€ํ™˜์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” `BatchedMesh`๋‚˜ `BufferGeometry` ๋ณ‘ํ•ฉ ๋ฐฉ์‹์ด ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค [4, 6-8]. IFC.js์˜ 'Fragment' ์•„ํ‚คํ…์ฒ˜๋Š” ์ด๋Ÿฌํ•œ ๋‘ ๋ฐฉ์‹์„ ํ˜ผํ•ฉํ•˜์—ฌ ์ €ํด๋ฆฌ๊ณค ๊ณ ์œ  ๊ฐ์ฒด๋Š” ๋ณ‘ํ•ฉํ•˜๊ณ  ๊ณ ํด๋ฆฌ๊ณค ๋ฐ˜๋ณต ๊ฐ์ฒด๋Š” ์ธ์Šคํ„ด์‹ฑํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [4, 12, 13]. - **WebGPU ๋ฐ ์ปดํ“จํŠธ ์…ฐ์ด๋”(Compute Shader)์˜ ๋„์ž…:** ์ฐจ์„ธ๋Œ€ ๊ทธ๋ž˜ํ”ฝ API์ธ WebGPU๋Š” ๋Œ€๊ทœ๋ชจ BIM ๋ฐ์ดํ„ฐ์„ธํŠธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ์žˆ์–ด ํš๊ธฐ์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [5, 14]. ์ปดํ“จํŠธ ์…ฐ์ด๋”๋ฅผ ํ™œ์šฉํ•˜๋ฉด ์ถฉ๋Œ ๊ฐ์ง€, ์‹ค์‹œ๊ฐ„ ํ•„ํ„ฐ๋ง, ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋“ฑ CPU์—์„œ ๋ณ‘๋ชฉ์„ ์ผ์œผํ‚ค๋Š” ๋ฌด๊ฑฐ์šด ์ž‘์—…๋“ค์„ ์ˆ˜์ฒœ ๊ฐœ์˜ GPU ์ฝ”์–ด์—์„œ ๋ณ‘๋ ฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 14, 15]. ๋˜ํ•œ, ๋„ค์ดํ‹ฐ๋ธŒ WebGPU์˜ ๋ Œ๋” ๋ฒˆ๋“ค(`GPURenderBundles`) ๋ฐ ๊ฐ„์ ‘ ๊ทธ๋ฆฌ๊ธฐ(`drawIndexedIndirect`) ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ˆ˜์‹ญ๋งŒ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜์—ฌ CPU-GPU ๋™๊ธฐํ™” ์ง€์—ฐ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [16, 17]. - **๊ฐ€์‹œ์„ฑ ํŒ๋ณ„ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ:** ๋ฐฉ๋Œ€ํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ๋ Œ๋”๋ง์—์„œ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•ด CPU ๋‹จ์—์„œ BVH(Bounding Volume Hierarchy)๋‚˜ ์˜ฅํŠธ๋ฆฌ(Octree)์™€ ๊ฐ™์€ ๊ณต๊ฐ„ ๋ถ„ํ•  ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ ์šฉํ•˜์—ฌ ์ ˆ๋‘์ฒด ์ปฌ๋ง(Frustum Culling)์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [18, 19]. ๋”๋ถˆ์–ด, Z-๋ฒ„ํผ๋งŒ์„ ๋จผ์ € ๊ณ„์‚ฐํ•˜์—ฌ ๊ฐ€๋ ค์ง„ ํŒŒํŽธ(Fragment) ์—ฐ์‚ฐ์„ ์‚ฌ์ „์— ํ๊ธฐํ•˜๋Š” ๋ށ์Šค ํ”„๋ฆฌํŒจ์Šค(Depth Pre-Pass) ๊ธฐ๋ฒ•์€ ์˜ค๋ฒ„๋“œ๋กœ์šฐ๋ฅผ ์ค„์ด๋Š” ๋ฐ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค [11, 20]. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ธก๋ฉด์—์„œ๋Š” ์›น ์›Œ์ปค(Web Worker)์™€ `SharedArrayBuffer`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ฐจ๋‹จ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ค‘๋ณต ๋ณต์‚ฌ ์—†์ด ๊ธฐํ•˜ํ•™์  ๋ฐ์ดํ„ฐ๋ฅผ ๋””์ฝ”๋”ฉํ•ด์•ผ ํ•˜๋ฉฐ, ์”ฌ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ๋งŒ ๋ Œ๋”๋ง์„ ๊ฐฑ์‹ ํ•˜๋Š” 'Render-on-Demand' ๋ฐฉ์‹์„ ํ†ตํ•ด ํ†ตํ•ฉ GPU์˜ ๊ณผ๋ถ€ํ•˜ ๋ฐ ๋ฐœ์—ด์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [11, 21, 22]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Graphics & Performance ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[InstancedMesh|InstancedMesh]], [[BatchedMesh|BatchedMesh]], [[WebGPU|WebGPU]], [[Compute Shader|Compute Shader]], [[Draw Call|Draw Call]], [[Occlusion Culling|Occlusion Culling]], [[Level of Detail (LOD)|Level of Detail (LOD)]] - **Projects/Contexts:** [[IFC.js (Fragment)|IFC.js (Fragment)]], [[Revit glTF Export|Revit glTF Export]] - **Contradictions/Notes:** ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์œผ๋กœ ํ”ํžˆ ๊ถŒ์žฅ๋˜๋Š” `THREE.LOD` (Level of Detail)๋Š” ๋ฐฉ๋Œ€ํ•˜๊ณ  ๋™์ ์œผ๋กœ ์ƒ์„ฑ/๋ณ€๊ฒฝ๋˜๋Š” ์‚ฐ์—…์šฉ ํ”Œ๋žœํŠธ๋‚˜ BIM ์”ฌ์—์„œ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  LOD ๋‹จ๊ณ„์˜ ๋ฉ”์‰ฌ๋ฅผ GPU ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€ํ•ด์•ผ ํ•˜๊ณ , ๋Ÿฐํƒ€์ž„์— ๋™์ ์œผ๋กœ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋‹จ์ˆœํ™” ๋ฒ„์ „์„ ์ƒ์„ฑํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์„œ ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ์—์„œ๋Š” ๋“œ๋กœ์šฐ ์ฝœ์„ ์ค„์ด๋Š” ๋ฐฐ์นญ(Batching)์ด๋‚˜ ์ธ์Šคํ„ด์‹ฑ์ด ์šฐ์„ ์ ์œผ๋กœ ๊ณ ๋ ค๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [3, 23-26]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/๋Œ€๊ทœ๋ชจ 3D ๊ฑด์ถ• ๋ชจ๋ธ(BIM) ์‹œ๊ฐํ™”.md ---