3D Tiles

실무에서 3D 공간 데이터를 다룰 때 필요한 지식을 정리한 섹션이다. OGC 3D Tiles 표준의 이론, Cesium Ion 타일링 파이프라인(3D Model / BIM / 3D Capture), 텍스처 최적화, 그리고 tile content의 핵심인 GLB까지 다룬다. 업데이트: 2026-05-14


핵심 요약

구분내용
📖 정의OGC 3D Tiles 표준과 Cesium Ion SaaS 타일링 파이프라인을 설명한 문서 모음
💡 핵심3D Tiles는 “거리·시야각에 따라 필요한 부분만 점진적으로 로드”하는 대용량 3D 스트리밍 규격
🎯 대상3D GIS, 디지털 트윈, BIM 시각화, 드론 매핑을 다루는 개발자
⚠️ 주의1.0 (b3dm/i3dm/pnts)은 레거시. 신규 파이프라인은 1.1 (glTF + EXT_*) 기준으로 설계해야 한다

목차

  1. 1.0 3D Tiles 개요 (Overview)
  2. 2.0 Cesium Ion 파이프라인
  3. 3.0 텍스처 최적화 (Atlas & Bin Packing)
  4. 4.0 GLB / glTF
  5. 빠른 선택 가이드

1.0 3D Tiles 개요 (Overview)

3D Tiles 표준의 이론, 구성 요소, 버전별 차이를 다룬다.

문서내용
1.1 3D Tiles란 무엇인가표준 정의, 2D 타일맵과의 차이, HLOD 원리, Tileset.json 구조, boundingVolume / refine / geometricError / SSE, 콘텐츠 포맷(b3dm·i3dm·pnts·cmpt·glTF), Implicit vs Explicit Tiling
1.2 3D Tiles 1.0 vs 1.11.0의 한계, 1.1에서 도입된 glTF 직접 사용, EXT_mesh_features / EXT_structural_metadata / EXT_instance_features, Implicit Tiling 표준화, multiple contents, 1.0 → 1.1 마이그레이션 주의점, 렌더러 지원 현황

2.0 Cesium Ion 파이프라인

Cesium Ion 클라우드 서비스가 제공하는 6종 Tiler 중, 실무에서 가장 자주 다루는 3가지(3D Model · BIM · 3D Capture)에 집중한다.

문서내용
2.1 Cesium Ion 파이프라인 개요Ion SaaS 전체 구조, 6종 Tiler 분류, 처리 상태 코드(NOT_STARTED → COMPLETE), 처리 실패 사유, Self-Hosted vs Cloud, 가격 정책
2.2 3D Model · BIM · 3D Capture 비교각 Tiler의 입력 포맷·LOD 방식·메타데이터 처리·출력 표준, Reality Tiler V2 성능 벤치마크, Design Tiler의 IFC 속성 보존, 상황별 선택 가이드

3.0 텍스처 최적화 (Atlas & Bin Packing)

3D 타일링에서 세부 glb의 용량을 줄이는 핵심은 UV island를 잘 패킹해 텍스처 아틀라스를 만드는 것이다. 이 섹션은 그 작업의 이론부터 도구까지 다룬다.

문서내용
3.1 Bin Packing 이론과 2D 사각형 패킹 알고리즘Bin Packing 정의·NP-hard성, 1D/2D 차이, 오프라인 vs 온라인, FFD/BFD, Shelf / Guillotine / MaxRects / Skyline / Floor-Ceiling 알고리즘 비교, Power-of-Two와 회전 처리
3.2 UV Island와 Texture AtlasUV mapping / island / seam / texel / texel density / padding / bleed / gutter / UDIM / pack ratio 전 용어 정의, LSCM · ABF · SLIM · BFF unwrapping 알고리즘, atlas packing 5단계 흐름
3.3 Python · Blender 도구와 라이브러리xatlas-python / rectpack / trimesh / bpy / Pillow / libigl, Blender 내장 도구 + TexTools + UVPackmaster, standalone(xatlas C++ / RizomUV / Houdini), gltf-transform CLI, 실전 워크플로우 스크립트

4.0 GLB / glTF

3D Tiles 1.1은 tile content로 GLB를 직접 채택했다. 따라서 GLB/glTF의 구조·도구·확장은 3D Tiles 파이프라인의 핵심 지식이다.

문서내용
4.1 GLB란 무엇인가정의, 배경, glTF 2.0 / ISO 12113, glTF vs GLB, 전체 아키텍처, 좌표계, 포맷 비교, 플랫폼 지원, 강점·한계
4.2 GLB 구조와 용어GLB 바이너리 레이아웃, JSON 최상위 컨테이너, 씬 그래프 / 데이터 3계층(buffer·bufferView·accessor) / 머티리얼 / Sampler / 애니메이션 / 확장 용어 사전, 렌더링 파이프라인 7단계, 디버깅 함정
4.3 GLB 도구와 실전 예제obj2gltf / gltf-transform / Blender / pygltflib 사용법, Three.js·Babylon.js·CesiumJS 로드 코드, CesiumJS Sampler Mipmap aliasing 사례(obj2gltf 보정 워크플로우), 전체 최적화 파이프라인
4.4 GLB와 3D Tiles 1.1 통합b3dm/i3dm/pnts → GLB+EXT 매핑, EXT_mesh_features / EXT_structural_metadata / EXT_mesh_gpu_instancing / EXT_instance_features, CESIUM_RTC, Y-up↔Z-up, tileset.json 연결, 1.0→1.1 마이그레이션, 작성 체크리스트

빠른 선택 가이드

Q1. 3D Tiles 표준이 뭔지부터 알고 싶다
    → [[1.1.whatIs3dTiles|1.1 3D Tiles란 무엇인가]]

Q2. 우리 데이터는 1.0인가 1.1인가? 마이그레이션 해야 하나?
    → [[1.2.3dTilesVersions|1.2 3D Tiles 1.0 vs 1.1]]

Q3. Cesium Ion에 데이터 올리면 내부에서 무슨 일이 일어나나?
    → [[2.1.cesiumIonPipeline|2.1 Cesium Ion 파이프라인 개요]]

Q4. 내가 가진 데이터(OBJ / IFC / 드론 메쉬)는 어떤 Tiler로 보내야 하나?
    → [[2.2.tilerComparison|2.2 3D Model · BIM · 3D Capture 비교]]

Q5. UV island를 atlas로 잘 패킹하려면 어떤 알고리즘이 필요한가?
    → [[3.1.binPacking|3.1 Bin Packing 이론]]

Q6. UV island, texel density, padding 같은 용어 정의가 헷갈린다
    → [[3.2.uvIslandAtlas|3.2 UV Island와 Texture Atlas]]

Q7. Python이나 Blender로 atlas 만드는 도구는 뭐가 있나?
    → [[3.3.toolsAndLibraries|3.3 Python · Blender 도구와 라이브러리]]

Q8. GLB가 뭐고 왜 3D Tiles와 묶여 있나?
    → [[4.glb/4.1.whatIsGlb|4.1 GLB란 무엇인가]]

Q9. GLB 파일 안에는 뭐가 들어있나? accessor/bufferView 같은 게 헷갈린다
    → [[4.glb/4.2.glbStructure|4.2 GLB 구조와 용어]]

Q10. obj2gltf로 만든 GLB가 CesiumJS에서 자글자글하다
    → [[4.glb/4.3.glbTools|4.3 GLB 도구와 실전 예제]] (Sampler Mipmap Aliasing 사례)

Q11. 1.0 b3dm/i3dm을 1.1 GLB로 어떻게 바꾸나?
    → [[4.glb/4.4.glb3dTilesIntegration|4.4 GLB와 3D Tiles 1.1 통합]]

참고 자료

4 items under this folder.