---
id: P-REINFORCE-AUTO-9E35B0
category: "10_Wiki/💡 Topics/Graphics & Performance"
confidence_score: 0.90
tags: [auto-reinforced]
last_reinforced: 2026-04-20
github_commit: "[P-Reinforce] Continuous Worker - 대규모 건설 뷰어(Construction Viewers)"
---

# [[대규모 건설 뷰어(Construction Viewers)|대규모 건설 뷰어(Construction Viewers)]]

## 📌 한 줄 통찰 (The Karpathy Summary)
> 대규모 건설 뷰어(Construction Viewers)는 수천에서 수백만 개의 객체로 구성된 거대한 BIM(Building Information Modeling) 및 CAD 데이터를 웹 브라우저 환경 등에서 실시간으로 렌더링하고 시각화하는 플랫폼이다 [1-3]. 복잡한 기하학적 구조, 고유한 형태의 벽체나 배관, 반복되는 가구 등을 효율적으로 처리하고 사용자와의 상호작용을 지원하기 위해 Three.js, WebGPU, 그리고 다양한 렌더링 최적화 기법이 필수적으로 요구된다 [4-6].

## 📖 구조화된 지식 (Synthesized Content)
- **렌더링 방식 및 최적화 전략:** 대규모 건설 뷰어에서는 성능 병목인 드로우 콜(Draw call)을 줄이는 것이 핵심이다 [1]. 콘크리트 벽이나 바닥처럼 폴리곤 수가 적지만 형태가 고유한 객체는 기하학적 구조를 하나로 병합(Geometry Merging)하거나 `BatchedMesh`를 사용하여 렌더링한다 [4, 7]. 반면, 문, 창문, 가구 등 폴리곤 수가 많고 반복되는 객체는 메모리 소비를 최소화하기 위해 `InstancedMesh`를 활용한다 [7, 8]. IFC.js 프로젝트 등에서는 이러한 특성을 혼합하여 저폴리곤 고유 객체는 병합하고 고폴리곤 반복 객체는 인스턴싱하는 하이브리드(Fragment) 시스템을 설계하여 활용하기도 한다 [7, 9].
- **Three.js와 WebGPU의 역할:** 2026년 기준, 500MB 이하의 일반적인 BIM 뷰어나 구성기(Configurator) 모델은 Three.js의 `WebGPURenderer` 등을 통해 빠르고 효율적으로 개발할 수 있다 [10, 11]. 그러나 병원 캠퍼스나 공항 터미널과 같이 500MB를 초과하는 거대한 건설 모델, 수백만 개의 LiDAR 포인트 클라우드, 또는 실시간 구조 시뮬레이션을 다루는 플랫폼의 경우, 메모리를 직접 제어할 수 있는 Native WebGPU의 도입이 필수적이다 [10, 12, 13]. WebGPU의 컴퓨트 셰이더(Compute Shader)는 충돌 감지, 현장 분석, 구조 시뮬레이션 등의 무거운 데이터 처리를 병렬로 수행하여 압도적인 성능 향상을 제공한다 [14, 15].
- **상호작용 및 가시성 관리:** 건설 뷰어는 사용자가 개별 객체(벽, 배관 등)를 클릭하여 선택(Picking)하고 가시성, 색상, 치수 등을 동적으로 수정할 수 있어야 한다 [4, 6, 16]. 이를 위해 모델 로드 시 Vertex 속성(예: `_FEATURE_ID_0`)을 부여해 배치를 구분하거나 [17], 공간 분할(Spatial Indexing), 오클루전 컬링(Occlusion Culling), 룸-포털(Cell-portal) 기반의 가시성 제어 기법을 적용하여 거대한 씬의 상호작용 속도를 유지한다 [18, 19].

## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
- **정책 변화:** Graphics & Performance 분야의 자동 자산화 수행.

## 🔗 지식 연결 (Graph)
- **Related Topics:** BIM(Building Information Modeling), [[WebGPU|WebGPU]], [[BatchedMesh|BatchedMesh]], [[InstancedMesh|InstancedMesh]]
- **Projects/Contexts:** [[IFC.js|IFC.js]], [[Revit 모델 렌더링|Revit]], [[Segments.ai|Segments.ai]]
- **Contradictions/Notes:** 동일한 재질의 객체를 묶어 가시성을 개별 관리하기 위해 `BatchedMesh`가 유용하게 쓰일 수 있지만, 수백만 개의 삼각형과 수십만 개의 고유 형상이 포함된 복잡한 Revit 추출 모델 등에서는 `BatchedMesh`를 사용했을 때 CPU 사용량이 급증하고 프레임률(FPS)이 오히려 크게 하락하는 심각한 성능 병목 현상이 보고되기도 한다 [20-23].

---
*Last updated: 2026-04-19*
- Raw Source: 00_Raw/2026-04-20/대규모 건설 뷰어(Construction Viewers).md
---
