--- id: [[P-Reinforce|P-Reinforce]]-AUTO-40FA98 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - CAD ๋ Œ๋”๋ง ์ตœ์ ํ™”" --- # [[CAD แ„…แ…ฆแ†ซแ„ƒแ…ฅแ„…แ…ตแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช|CAD ๋ Œ๋”๋ง ์ตœ์ ํ™”]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > CAD ๋ Œ๋”๋ง ์ตœ์ ํ™”๋Š” ๋ธŒ๋ผ์šฐ์ € ๋ฐ ํ†ตํ•ฉ GPU(iGPU) ํ™˜๊ฒฝ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ๊ณผ CPU-GPU ๊ฐ„ ํ†ต์‹  ๋ณ‘๋ชฉ์„ ๊ทน๋ณตํ•˜์—ฌ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ํด๋ฆฌ๊ณค์„ ๊ฐ€์ง„ ๋Œ€๊ทœ๋ชจ ๋‹ค์ค‘ ๋ณธ์ฒด ์–ด์…ˆ๋ธ”๋ฆฌ(Multi-Body Assemblies)๋ฅผ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ Œ๋”๋งํ•˜๋Š” ์ผ๋ จ์˜ ๊ธฐ์ˆ ์  ๊ณผ์ •์ž…๋‹ˆ๋‹ค [1, 2]. ์ด๋ฅผ ์œ„ํ•ด `BatchedMesh`๋‚˜ `[[InstancedMesh|InstancedMesh]]`๋ฅผ ํ†ตํ•œ ๋“œ๋กœ์šฐ ์ฝœ ์ตœ์†Œํ™”, ์ •๋ฐ€๋„ ๋ถ•๊ดด ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ์›์  ์ด๋™(Origin-Shifting), ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ํšจ์œจํ™”๋ฅผ ์œ„ํ•œ Web Worker ๋ฐ `SharedArrayBuffer` ํ™œ์šฉ์ด ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [3-5]. ๋˜ํ•œ, ์˜ค๋ฒ„๋“œ๋กœ์šฐ๋ฅผ ์ค„์ด๋Š” ๊นŠ์ด ์‚ฌ์ „ ํŒจ์Šค([[Depth Pre-Pass|Depth Pre-Pass]])์™€ ์‹œ๊ฐ์  ๋Š๊น€์ด ์—†๋Š” ๋””๋”๋ง LOD ๋“ฑ์˜ ๋ Œ๋”๋ง ๊ธฐ๋ฒ•์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ณ ์„ฑ๋Šฅ์˜ ์‹œ๊ฐํ™” ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [6-8]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **ํ•˜๋“œ์›จ์–ด ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์˜ ๋ณ‘๋ชฉ ๊ทน๋ณต:** ํ†ตํ•ฉ GPU(Intel UHD, AMD Radeon Vega ๋“ฑ)๋Š” UMA(Unified [[memory|memory]] [[Architecture|Architecture]]) ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ RAM์„ CPU์™€ ๊ณต์œ ํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์—ญํญ์ด ์ฃผ๋œ ์„ฑ๋Šฅ ์ œ์•ฝ์ด ๋ฉ๋‹ˆ๋‹ค [1, 9]. 100๋งŒ ๊ฐœ ์ด์ƒ์˜ ์‚ผ๊ฐํ˜•์„ ๊ฐ€์ง„ CAD ๋ชจ๋ธ์„ ํŒŒ์‹ฑํ•˜๊ณ  ๋””์ฝ”๋”ฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ํ”„๋ฆฌ์ง•๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Web Worker์™€ `SharedArrayBuffer`๋ฅผ ์—ฐ๋™ํ•œ ์ œ๋กœ ์นดํ”ผ(Zero-copy) ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5]. - **์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ํ†ตํ•ฉ๊ณผ ๋“œ๋กœ์šฐ ์ฝœ ์ตœ์ ํ™”:** CAD ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ˆ˜๋งŽ์€ ๋ถ€ํ’ˆ์„ ๊ฐœ๋ณ„ ๋ฉ”์‰ฌ๋กœ ๋ Œ๋”๋งํ•˜๋ฉด ์—„์ฒญ๋‚œ ๋“œ๋กœ์šฐ ์ฝœ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [2]. ๋ณผํŠธ๋‚˜ ๋ธŒ๋ž˜ํ‚ท ๊ฐ™์€ ๋ฐ˜๋ณต ๋ถ€ํ’ˆ์€ `InstancedMesh`๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ณ ์œ ํ•œ ๊ธฐํ•˜ํ•™์  ํ˜•ํƒœ๊ฐ€ ์„ž์ธ ๋‹ค์–‘ํ•œ ๋ถ€ํ’ˆ๋“ค์€ `BatchedMesh`๋ฅผ ์‚ฌ์šฉํ•ด ๋‹จ์ผ ๋“œ๋กœ์šฐ ์ฝœ๋กœ ๋ฌถ์–ด ์ฒ˜๋ฆฌํ•ด์•ผ iGPU์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3, 10]. ์ •์ ์ธ ํ•˜์œ„ ์–ด์…ˆ๋ธ”๋ฆฌ๋Š” ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ํƒ€์ผ ๋‹จ์œ„๋กœ ๋ณ‘ํ•ฉ(`mergeBufferGeometries`)ํ•˜๋Š” ์ „๋žต์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [11]. - **์ขŒํ‘œ ์ •๋ฐ€๋„ ๋ถ•๊ดด(Precision Collapse) ๋ฐฉ์ง€:** CAD ๋ฐ์ดํ„ฐ์˜ ๊ฑฐ๋Œ€ํ•œ ์ขŒํ‘œ๊ณ„(์˜ˆ: 10^7 ๋‹จ์œ„ ์ด์ƒ)๋ฅผ [[WebGL|WebGL]]์˜ 32-bit float ํ™˜๊ฒฝ์œผ๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ์†Œ์ˆ˜์  ์ดํ•˜ ์ •๋ฐ€๋„๊ฐ€ ๋ถ€์กฑํ•ด์ ธ ์ •์ ์ด ํ”๋“ค๋ฆฌ๊ฑฐ๋‚˜ ์ง„๋™ํ•˜๋Š” ํ˜„์ƒ(Vertex Snapping/Jitter)์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [4]. ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด 64-bit ๊ณต๊ฐ„์—์„œ ์ „์ฒด ์–ด์…ˆ๋ธ”๋ฆฌ์˜ ์ค‘์‹ฌ(basePoint)์„ ๊ณ„์‚ฐํ•œ ๋’ค, ์ •์  ์ขŒํ‘œ๋ฅผ ์˜คํ”„์…‹ ์ฒ˜๋ฆฌ(Re-centering shift)ํ•˜์—ฌ GPU์— ์—…๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [4]. - **๊ฐ€์‹œ์„ฑ ํŒ๋ณ„(Visibility Determination) ๋ฐ ์˜คํด๋ฃจ์ „ ์ปฌ๋ง:** ๋ณต์žกํ•œ ๋‚ด๋ถ€ ๋ถ€ํ’ˆ์ด ๊ฒน์ณ ์žˆ๋Š” CAD ๋ชจ๋ธ์—์„œ ์˜ค๋ฒ„๋“œ๋กœ์šฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์ƒ‰์ƒ ์“ฐ๊ธฐ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ์ฑ„ Z-๋ฒ„ํผ๋งŒ ๋จผ์ € ์ฑ„์šฐ๋Š” '๊นŠ์ด ์‚ฌ์ „ ํŒจ์Šค(Depth Pre-Pass)'๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ํ”„๋ž˜๊ทธ๋จผํŠธ ์…ฐ์ด๋” ๋ถ€ํ•˜๋ฅผ ์ตœ๋Œ€ 30%๊นŒ์ง€ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6]. ๋˜ํ•œ ์˜ฅํŠธ๋ฆฌ(Octree)๋‚˜ BVH(Bounding Volume Hierarchy)๋ฅผ ํ†ตํ•ด CPU ๊ณต๊ฐ„ ๋ถ„ํ• ์„ ์ ์šฉํ•˜์—ฌ ๋ณด์ด์ง€ ์•Š๋Š” ๋…ธ๋“œ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์„ ๋ Œ๋”๋ง์—์„œ ๋ฐฐ์ œํ•ฉ๋‹ˆ๋‹ค [12]. - **LOD ๋ฐ ์—ฃ์ง€(Edge) ๋ Œ๋”๋ง ์ตœ์ ํ™”:** ๋ถ€ํ’ˆ์„ ์ •๋ฐ€ ๊ฒ€ํ† ํ•  ๋•Œ ์‹œ๊ฐ์ ์œผ๋กœ ํŠ€๋Š” ํŒํ•‘(Popping) ํ˜„์ƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด, ํ™”๋ฉด ๊ณต๊ฐ„ ๋””๋”๋ง ํŒจํ„ด(Dithered LOD Blend)์„ ํ™œ์šฉํ•œ ๋งค๋„๋Ÿฌ์šด ํ˜•ํƒœ์˜ LOD ์ „ํ™˜ ๊ธฐ๋ฒ•์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค [7, 13]. ๋˜ํ•œ CAD ๋„๋ฉด ํŠน์œ ์˜ ๋‚ ์นด๋กœ์šด ๋ชจ์„œ๋ฆฌ(Wireframe/Edge)๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด `EdgesGeometry`๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ •์  ๋ถ€ํ•˜๊ฐ€ 2๋ฐฐ๋กœ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ, ๋ฌด๊ฒŒ ์ค‘์‹ฌ ์ขŒํ‘œ(Barycentric Coordinate)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹จ์ผ ํŒจ์Šค์˜ ํ”„๋ž˜๊ทธ๋จผํŠธ ์…ฐ์ด๋” ์•ˆ์—์„œ ์ ˆ์ฐจ์ ์œผ๋กœ ์—ฃ์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๊ธฐ๋ฒ•์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [14, 15]. - **์ž์› ๋ฐ ์ƒํƒœ ๊ด€๋ฆฌ ([[State|State]] Management):** ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ƒ‰์ƒ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ณ„ ์žฌ์งˆ(Material)์„ ๋ฒˆ๊ฐˆ์•„ ์“ฐ์ง€ ์•Š๊ณ  'ํ…์Šค์ฒ˜ ์•„ํ‹€๋ผ์Šค([[Texture Atlas|Texture Atlas]])'์™€ ํŒŒํŠธ ID๋ฅผ ํ™œ์šฉํ•ด ์…ฐ์ด๋” ์ „ํ™˜์„ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [16]. ์•„์šธ๋Ÿฌ ๋ฐฐํ„ฐ๋ฆฌ ์†Œ๋ชจ์™€ ๋ฐœ์—ด์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ๋งŒ ํ”„๋ ˆ์ž„์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” Render-on-Demand(์š”์ฒญ ์‹œ ๋ Œ๋”๋ง) ๋ฐฉ์‹์„ ์ ์šฉํ•˜๋ฉฐ, ๊ฐ’๋น„์‹ผ ๋ฌผ๋ฆฌ ๊ธฐ๋ฐ˜ ๋ Œ๋”๋ง(MeshStandardMaterial) ๋Œ€์‹  `MeshPhongMaterial` ๋˜๋Š” 'Flat Shaded + Edge' ์ปค์Šคํ…€ ์…ฐ์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ž˜๊ทธ๋จผํŠธ ์—ฐ์‚ฐ ๋น„์šฉ์„ ์•„๋‚๋‹ˆ๋‹ค [8, 17-19]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** BatchedMesh, [[InstancedMesh|InstancedMesh]], Depth Pre-Pass, SharedArrayBuffer, Frustum Culling, [[Level of Detail (LOD)|Level of Detail (LOD]] - **Projects/Contexts:** [[WebGPU แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„€แ…ฅแ†ซแ„‰แ…ฅแ†ฏ แ„‡แ…ฒแ„‹แ…ฅ|WebGPU ๋Œ€๊ทœ๋ชจ ๊ฑด์„ค ๋ทฐ์–ด]], [[BIM แ„†แ…ฉแ„ƒแ…ฆแ†ฏ แ„‰แ…ตแ„†แ…ฒแ†ฏแ„…แ…ฆแ„‹แ…ตแ„‰แ…งแ†ซ|BIM ๋ชจ๋ธ ์‹œ๋ฎฌ๋ ˆ์ด์…˜]] - **Contradictions/Notes:** ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋ณ‘ํ•ฉ(`[[BufferGeometry|BufferGeometry]]Utils.mergeBufferGeometries`) ๊ธฐ๋ฒ•์€ ๋“œ๋กœ์šฐ ์ฝœ์„ ๊ฐ€์žฅ ํšจ๊ณผ์ ์œผ๋กœ ์ค„์—ฌ์ฃผ์ง€๋งŒ, ๋‹จ์ผ ๋ฐ”์šด๋”ฉ ๋ณผ๋ฅจ์œผ๋กœ ๋ฌถ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹œ์•ผ ์ ˆ๋‘์ฒด ์ปฌ๋ง([[Frustum Culling|Frustum Culling]])์˜ ํšจ์œจ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค๋Š” ๋”œ๋ ˆ๋งˆ๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค [11]. ๋˜ํ•œ, `InstancedMesh`๋Š” ๋‹จ์ผ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ์˜ ๋ฐ˜๋ณต ๋ Œ๋”๋ง์—๋Š” ๋งค์šฐ ์œ ๋ฆฌํ•˜์ง€๋งŒ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐํ•˜ํ•™์  ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„ ๋ถ€ํ’ˆ์ด ์ˆ˜์ฒœ ๊ฐœ ๋ชจ์ธ CAD ๋ชจ๋ธ์—๋Š” ๋ถ€์ ํ•ฉํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ ๋‹ค์ค‘ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๋Š” `BatchedMesh`๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์˜ฌ๋ฐ”๋ฅธ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค [3, 10, 20]. --- *Last updated: 2026-04-19* ---