📌 이번 글에서 다룬 것
가구 복원이랑 방 구성까지 다 잡고 나서 마지막으로 해결해야 했던 게 색상 재현 방식이었다. UV 텍스처 베이킹이랑 버텍스 컬러 중 뭘 쓸지 결정해야 했는데, 막상 실험해 보니까 결과가 생각과 달랐다. 그리고 논문 제출까지 마무리한 내용을 정리한다.
🎨 UV 텍스처 베이킹 vs 버텍스 컬러
뭔 차이일까?
UV 텍스처 베이킹은 3D Gaussian Splatting을 100개 시점에서 렌더링 한 다음 그 결과를 UV 텍스처에 합산하는 방식이다. 메쉬 추출 이후에 별도의 렌더링 파이프라인이 돌아간다.
버텍스 컬러는 SAM3D의 메쉬 디코더(SLatMeshDecoder)가 색상을 직접 회귀하는 방식이다. 추가 렌더링 없이 네트워크 출력이 곧 색상이다.
코드를 파고들어보니 SAM3D 내부에서 SparseFeatures2Mesh의 _calc_layout() 메서드가 color 피처(48채널)를 FlexiCubes 메쉬 추출기에 voxelgrid_colors로 직접 전달해서 버텍스 색상을 결정하는 구조였다. 즉 버텍스 색상은 렌더링 투영이 아니라 end-to-end 학습된 신경망의 직접 출력이다.
처음엔 UV 텍스처 베이킹이 당연히 더 예쁠 거라 생각했다. 근데 막상 해보니까 달랐다.


그리고 심지어 UV 텍스처 베이킹은 버텍스 컬러보다 시간이 엄청 오래 걸린다.
| 객체 | 복셀 수 | UV 텍스처 베이킹 | 버텍스 컬 | 단축 배율 |
| 테이블 | 6,383 | 53초 | 32초 | 1.7배 |
| 문 | 10,322 | 58초 | 32초 | 1.8배 |
| 의자 | 26,910 | 2,550초 | 40초 | 64배 |
| 침대 | 21,826 | 5,243초 | 39초 | 134배 |
의자 2,550초... 약 42분이다. 복셀 수가 더 적은 침대가 의자보다 2배 이상 긴 것도 특이했다. UV 베이킹은 복셀 수뿐만 아니라 메쉬 형상 복잡도(UV 아일랜드 구성 방식)에도 크게 좌우되기 때문이다. 곡면이 많고 구조적 구성 요소가 복잡할수록 UV 아일랜드 수가 폭발적으로 늘어난다.
색상 품질도 버텍스 컬러가 더 안정적이었다. UV 베이킹은 단일 이미지 조건에서 미관측 표면(뒷면, 측면)에 대한 실제 색상 정보가 없어서 인접 표면 색상이 UV 아일랜드 경계를 넘어 번지는 color bleeding 현상이 발생했다. 버텍스 컬러는 그런 문제없이 일관된 색상이 나왔다.
처리 시간 안정성, 색상 품질, SAM3D 아키텍처 설계 의도와의 정합성을 종합해서 버텍스 컬러를 최종 채택했다.
그렇지만 나는 Meta가 SAM3D 사용할 때 UV 텍스처 베이킹으로 잘 만든다는 사실로 알고 있었다.
그럼 왜 우리는 안되지?... 궁금해서 여러 번 시도했지만 결국 이게 최선이었다.
클로드에게는 물어보니..

잘 알려주는 건 지 모르겠지만(?) 향후 연구에 참고해 봐야겠다...
우리가 nvdiffrast 대신 pytoch3d를 사용해서 그런가??... 둘 차이는 이렇다.
pytorch3d:
- 페이스북이 만든 3D 딥러닝 라이브러리
- 소프트 래스터라이저 기반
- gradient가 근사값이라 UV 최적화 정확도가 낮음
- 설치 쉬움
nvdiffrast:
- NVIDIA가 만든 미분 가능 래스터라이저
- 해석적 안티앨리어싱 기반
- gradient가 정확해서 UV 최적화 품질이 높음
- CUDA 직접 컴파일이라 설치 까다로움
여기가 의심되는데,,,, 다음 연구 때 시도 해봐야겠다.
👥 사용자 평가 — 20명, 7점 만점에 6.33점
논문 제출 전에 사용자 평가를 진행했다. 사용자 20명들은 인테리어 비전공자들이며 20대 초중반 사람들이다. 20명한테 실제로 시스템 써보게 하고 7점 리커트 척도 10개 문항에 답하게 했다.
드래그앤드롭(6.60)이 제일 높았고 Occlusion 자동완성(6.45)이 표준편차 0.60으로 가장 낮은 편차를 보였다. 가려진 가구를 3D로 자동 완성해주는 기능에 대해서 평가자 간 이견 없이 일관되게 좋은 평가를 받았다는 거다.
주관식 응답으로는 "상용화를 기원합니다", "잘 만든 것 같아요" 같은 얘기도 나왔고, 처리 속도랑 세그멘테이션 오인식이 개선점으로 지적됐다. 솔직히 처리 속도는 나도 알고 있는 문제긴 하다...
📝 논문 제출 후기
KCGS(한국컴퓨터그래픽스학회) 2026에 제출했다. 교수님이랑 계속 피드백 주고받으면서 v40까지 수정했다.
제일 힘들었던 건 실험이었다. 처리 시간 측정도 실제로 다 돌려보면서 재야 했고. 제대로 결과 값이 안 나올 때도 있었다.
최종 논문 주요 기여
- LaMa + SD ControlNet(Canny) 2단계 빈방 재구성
- SAM3D 실내 적용 탐색 + 한계 분석
- 카테고리별 다중 시드 선택 기준
- UV 텍스처 베이킹 vs 버텍스 컬러 비교
- 사용자 평가 20명 (7점 만점 6.33점)
🗺️ 향후 계획
- 처리 시간 단축 — 가구 1개당 35초가 한계다. 모델 경량화나 파이프라인 최적화가 필요하다.
- SAM3D 방 재구성 — 이번에 한계를 확인했으니까 실내 특화 3D 복원 모델 방향으로 연구할 여지가 있다. MoGe depth 기반 평면 피팅 방식도 시도해 볼 만하다.
- 서비스 배포 — 지금은 로컬 GPU 서버에서만 돌아간다. 클라우드로 올리는 게 목표다.
길고 힘들었던 프로젝트였는데 학부생 신분으로 이 정도 시스템 만들고 논문까지 제출하고 나니까 뿌듯하다.
논문 제출하고 나서 이렇게 개발 과정을 글로 정리하는 시간이 생각보다 좋다. 개발할 때는 마감기한이 다가와서 시간이 없고 문제 해결에만 급급해서 왜 이런 선택을 했는지, 뭘 시도했는지 돌아볼 여유가 없었는데 글로 쓰다 보니 그때 했던 고민들이 다시 정리되는 느낌이다. nvdiffrast 같은 것도 논문 끝나고 나서야 여유롭게 알아볼 수 있게 됐고. 앞으로도 이런 시간을 꾸준히 가져야겠다.
'프로젝트' 카테고리의 다른 글
| Meta SAM3D 인테리어 시스템 개발 기록 (5) — SAM3D로 3D 방 만들기 도전!? (0) | 2026.06.07 |
|---|---|
| Meta SAM3D 인테리어 시스템 개발 기록 (4) — SAM3D 가구 복원 최적화 (0) | 2026.06.07 |
| Meta SAM3D 인테리어 시스템 개발 기록 (3) (0) | 2026.05.06 |
| Meta SAM3D 인테리어 시스템 개발 기록 (2) (0) | 2026.04.26 |
| Meta SAM3D 인테리어 시스템 개발 기록 (1) (0) | 2026.04.22 |