# ADR-cad-0002 · STEP 변환 기본 옵션 — v4-face-color

상태: **Accepted (2026-05-07)**
종속: ADR-cad-0001 (STEP 임포트 전략), ADR-0001 (제품 비전 — "비코딩 사용자")

---

## 배경

산업 어셈블리 STP 261MB 변환 결과 페이지에서 시각 검증한 결과, 1차 변환은
부품 일부만 보이고 색이 흰색 단색 또는 부분 누락. 두 결함 모두 step-to-glb.py
로직 결함으로 발견·수정.

비교 대상으로 두 옵션을 만들어 page에서 토글 비교:

| 라벨 | 방식 | Materials | Multi-prim mesh | 부여율 | 사이즈 | 1단계 시간 |
|---|---|---|---|---|---|---|
| **v3-part-only** | face-level skip + part-level + default fallback | 75 | 0 | 100% | 18.2MB | ~5분 |
| **v4-face-color** | face-level + part-level + default fallback | 106 | 283 | 100% | 19.3MB | ~6분 |

---

## 결정

**Default = v4-face-color (face-level color 추출 ON)**

근거:
1. **시각 풍부함**: 한 부품 안 다른 색 면이 정확히 표현 (예: 빨간 본체 + 검은 베이스 동시 보존). 협업자 미팅 시연에서 실제 산업 어셈블리 수준의 표시.
2. **Material 다양성**: 75 → 106 (+43%). face-level 색 정보가 추가됨.
3. **Multi-primitive mesh 283개** — 기존 1 mesh = 1 material 한계 우회.
4. **부여율 100%**: default 메탈릭 회색 fallback도 그대로 작동, 흰색 부품 없음.
5. **변환 시간 +1분**, **사이즈 +1.1MB** — 부담 없음.

---

## 선택 가능성 (옵션 보존)

페이지 "자료 업로드" 탭에 face-level 색 추출 토글 체크박스 노출.
사용자가 변환 속도 우선이면 OFF 가능.
다음 케이스에 OFF 권장:
- 700MB STP 어셈블리 — face 수가 매우 많아 GetColor 호출 비용 ↑
- 색 정보가 거의 없는 STEP — face 추출 효과 미미
- 대량 일괄 변환 (시간 우선)

---

## 검증

| 검증 | 결과 |
|---|---|
| 페이지 시각 비교 (v3 vs v4) | 사용자 결정 "v4ㄱ" (2026-05-07 저녁) |
| Unity 임포트 6/6 PASS | Materials 75 (v3 기준 검증, v4도 동등 동작 예상) |
| 반투명 8종 alphaMode=BLEND | 정상 표시 |

---

## 영향

- server.py `/convert/<>?face_color=1` (default)
- step-to-glb.py `--no-face-color` (OFF 시)
- 페이지 변환 옵션 체크박스 default checked
- 페이지 default `.factory.glb` = v4-face-color 결과로 복원
- 보고서 R2 박스의 materials 수치를 v4 (106) 기준으로 갱신
