📌 작업 목적
3D 명함은 사용자마다 다른데 에셋은 템플릿 1종이다 — 런타임에 프로필 데이터를 템플릿에 바인딩하는 합성 파이프라인이 필요하다. 설계서 §6 이 정의한 온디바이스 방식이고, 현재 구현은 없다.
설계서 §6 파이프라인 4단계:
- 베이스 씬 로드 —
Entity(named: "BusinessCardTemplate", in: realityKitContentBundle)
- 텍스트 메시 바인딩 — 이름/파트/기수 →
MeshResource.generateText(...) 또는 미리 배치된 텍스트 앵커 교체
- 사진 텍스처 바인딩 — 프로필 이미지 →
TextureResource → 머티리얼 baseColor
- 파트 악센트 컬러 —
UMCPartType → 머티리얼 tint 룩업 테이블
서버 렌더를 쓰지 않기로 한 이유가 교환 페이로드에 직결된다 (§6): 수신 측이 같은 템플릿으로 재합성하므로 페이로드에 에셋 URL 을 싣지 않는다. 즉 ExchangePayload.usdzURL(UMCApp/Core/NearbyExchange/Sources/Models/ExchangePayload.swift:35) 이 비어 있는 것은 설계상 정상이며, 합성이 이 결정을 성립시킨다.
같은 파이프라인이 두 주체를 그린다:
- 내 명함 —
MyCard 로 합성
- 받은 명함 —
ReceivedCard 의 프로필 필드로 합성 (수신 측 재합성)
✅ 완료 조건
🔗 관련 정보
- 설계서 §6 · §8
- 선행: Phase 0 기술 검증, 베이스 USDZ 템플릿 에셋
📌 작업 목적
3D 명함은 사용자마다 다른데 에셋은 템플릿 1종이다 — 런타임에 프로필 데이터를 템플릿에 바인딩하는 합성 파이프라인이 필요하다. 설계서 §6 이 정의한 온디바이스 방식이고, 현재 구현은 없다.
설계서 §6 파이프라인 4단계:
Entity(named: "BusinessCardTemplate", in: realityKitContentBundle)MeshResource.generateText(...)또는 미리 배치된 텍스트 앵커 교체TextureResource→ 머티리얼 baseColorUMCPartType→ 머티리얼 tint 룩업 테이블서버 렌더를 쓰지 않기로 한 이유가 교환 페이로드에 직결된다 (§6): 수신 측이 같은 템플릿으로 재합성하므로 페이로드에 에셋 URL 을 싣지 않는다. 즉
ExchangePayload.usdzURL(UMCApp/Core/NearbyExchange/Sources/Models/ExchangePayload.swift:35) 이 비어 있는 것은 설계상 정상이며, 합성이 이 결정을 성립시킨다.같은 파이프라인이 두 주체를 그린다:
MyCard로 합성ReceivedCard의 프로필 필드로 합성 (수신 측 재합성)✅ 완료 조건
MyCard·ReceivedCard양쪽에서 같은 파이프라인 사용🔗 관련 정보