Skip to content

Commit e5c88db

Browse files
committed
Merge branch 'develop'
# Conflicts: # tiler/build.gradle
2 parents d3a3f25 + f8784a9 commit e5c88db

187 files changed

Lines changed: 14061 additions & 5344 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

manual.md renamed to MANUAL-EN.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,6 @@ This is because Citygml data can have different extensions: ‘.xml’, ‘.gml
134134
java -jar mago-3d-tiler.jar -input "/input_path/citygml" -inputType "citygml" -output "/output_path/citygml" -crs "5186"
135135
```
136136

137-
### Converting Large 3D Mesh Data
138-
[Warning: Experimental]
139-
This option tiles large mesh data by breaking it down into smaller units.
140-
This can be specified via the `-largeMesh` option.
141-
142-
```
143-
java -jar mago-3d-tiler.jar -input "/input_path/ifc_large_mesh" -inputType "ifc" -output "/output_path/ifc_large_mesh" -largeMesh
144-
```
145-
146137
### Converting Large Point-Clouds Data
147138
When converting large point-clouds, you can use the `-pointRatio` option to adjust the percentage of conversion points from the source data as follows.
148139

MANUAL-KO.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
다양한 변환 사례
2+
===
3+
4+
## 3D 메시 데이터 변환 (Batched Model)
5+
6+
### 일반적인 메시 데이터 변환
7+
기본적인 메시 데이터를 변환하는 명령어입니다. 변환 시 기본 좌표계는 EPSG:3857로 설정됩니다.
8+
9+
```
10+
java -jar mago-3d-tiler.jar -input "/input_path" -output "/output_path"
11+
```
12+
13+
동일한 경우:
14+
```
15+
java -jar mago-3d-tiler.jar -input "/input_path" -output "/output_path" -crs 3857
16+
```
17+
18+
### 배치 3D 모델 (b3dm)
19+
일반적인 데이터를 변환할 때 사용할 수 있습니다. 포인트 클라우드 데이터를 제외하고, `-outputType`을 입력하지 않으면 기본적으로 b3dm으로 생성됩니다.
20+
21+
```
22+
java -jar mago-3d-tiler.jar -input "/input_path/kml_with_collada" -output "/output_path/kml_with_collada"
23+
```
24+
25+
동일한 경우:
26+
```
27+
java -jar mago-3d-tiler.jar -input "/input_path/kml_with_collada" -output "/output_path/kml_with_collada"
28+
```
29+
30+
### DEM 고도 적용 사례
31+
GeoTiff와 같은 단일 채널 지형 높이에 3D 데이터를 배치하는 경우입니다.
32+
33+
```
34+
java -jar mago-3d-tiler.jar -input "/input_path/sample" -output "/output_path/sample" -terrain "/input_path/sample/terrain.tif"
35+
```
36+
37+
### 좌표계를 적용한 3D 데이터 변환
38+
다음 예시는 3ds(3D MAX) 데이터를 변환하는 예제입니다. `crs` 옵션을 추가하여 좌표계를 적용하여 변환할 수 있습니다. 아래의 경우 EPSG:5186 좌표계를 적용했습니다.
39+
40+
```
41+
java -jar mago-3d-tiler.jar -input "/input_path/3ds" -inputType "3ds" -output "/output_path/3ds" -crs "5186"
42+
```
43+
44+
---
45+
# 2D 벡터 데이터 변환
46+
47+
### 2D GIS 폴리곤 데이터(SHP, GeoJSON) 변환
48+
다음 예시는 2D GIS 폴리곤 데이터를 돌출하는(Extrude) 방법입니다. 돌출 높이는 `-heightColumn <arg>` 속성을 사용하여 특정 속성을 참조하도록 지정할 수 있습니다. 기본적으로 돌출 시작 높이는 0이며, `-altitudeColumn <arg>` 옵션을 사용하여 기준면의 높이를 설정할 수 있습니다.
49+
50+
```
51+
java -jar mago-3d-tiler.jar -input "/input_path/shp" -inputType "shp" -output "/output_path/shp" -crs "5186"
52+
```
53+
54+
동일한 경우:
55+
```
56+
java -jar mago-3d-tiler.jar -input "/input_path/shp" -inputType "shp" -output "/output_path/shp" -crs "5186" -heightAttribute "height"
57+
```
58+
59+
GeoJSON 변환 사례:
60+
```
61+
java -jar mago-3d-tiler.jar -input "/input_path/geojson" -inputType "geojson" -output "/output_path/geojson" -crs "5186"
62+
```
63+
64+
### 2D GIS 폴리라인 데이터(SHP) 변환
65+
폴리라인 데이터를 파이프 형태로 변환합니다. Z축이 있는 폴리라인 데이터는 `diameter` 속성을 이용해 변환할 수 있습니다. 기본적으로 mago 3DTiler의 파이프 크기는 직경 기준이며 단위는 밀리미터(mm)입니다.
66+
```
67+
java -jar mago-3d-tiler.jar -input "/input_path/shp" -inputType "shp" -output "/output_path/shp" -crs "5186"
68+
```
69+
70+
---
71+
# 인스턴스 모델 변환 (Instanced Model)
72+
73+
### 인스턴스 3D 모델 (i3dm)
74+
인스턴스 모델 데이터를 변환할 때 사용할 수 있는 옵션입니다. (kml with collada) 데이터를 변환할 때 `outputType` 옵션이 필요합니다.
75+
```
76+
java -jar mago-3d-tiler.jar -input "/input_path/i3dm" -output "/output_path/i3dm" -outputType "i3dm"
77+
```
78+
79+
### i3dm 데이터를 Shape 파일로 변환
80+
i3dm 데이터를 Point 형식의 Shape 파일로 변환할 수 있습니다. `inputType`을 shp로 지정하고, `instance` 옵션을 사용해 인스턴스 파일 경로를 입력해야 합니다.
81+
82+
```
83+
java -jar mago-3d-tiler.jar -input "/input_path/i3dm" -output "/output_path/i3dm" -inputType "shp" -outputType "i3dm" -instance "/input_path/instance.gltf"
84+
```
85+
86+
---
87+
# 포인트 클라우드 데이터 변환 (Point Clouds)
88+
89+
### 포인트 클라우드 데이터 변환(Point Clouds)
90+
포인트 클라우드 데이터를 변환할 때 사용할 수 있는 기본 옵션입니다. 입력 데이터가 "las"인 경우, `-outputType`은 자동으로 "pnts"로 설정됩니다.
91+
92+
```
93+
java -jar mago-3d-tiler.jar -input "/input_path/las" -inputType "las" -output "/output_path/las"
94+
```
95+
96+
동일한 경우:
97+
```
98+
java -jar mago-3d-tiler.jar -input "/input_path/las" -inputType "las" -output "/output_path/las" -outputType "pnts"
99+
```
100+
101+
---
102+
# 기타 변환 예제
103+
104+
### Up-Axis 변환
105+
mago3dTiler는 기본적으로 Z-Up 축 데이터를 Y-Up 축으로 변환합니다. 원본 데이터가 Y-Up 축을 사용하는 경우, `-rotateX <degree>` 옵션을 추가하여 변환을 방지할 수 있습니다.
106+
```
107+
java -jar mago-3d-tiler.jar -input "/input_path/y-up-fbx" -inputType "fbx" -output "/output_path/y-up-fbx" -rotateX "90"
108+
```
109+
110+
### 뒤집힌 데이터 변환
111+
변환된 데이터가 뒤집혀 있는 경우, `-rotateX <degree>` 옵션을 추가하여 변환할 수 있습니다.
112+
```
113+
java -jar mago-3d-tiler.jar -input "/input_path/flip-y-up-fbx" -inputType "fbx" -output "/output_path/flip-y-up-fbx" -rotateX "180"
114+
```
115+
116+
### CityGML 변환
117+
CityGML 데이터를 변환할 때 `inputType`을 "citygml"로 지정하는 것이 좋습니다. 이는 CityGML 데이터의 확장자가 `.xml`, `.gml` 등 다양할 수 있기 때문입니다.
118+
```
119+
java -jar mago-3d-tiler.jar -input "/input_path/citygml" -inputType "citygml" -output "/output_path/citygml" -crs "5186"
120+
```

README-KO.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
mago 3DTiler
2+
===
3+
4+
### 최고의 OGC 3D Tiles 솔루션!
5+
6+
---
7+
8+
### 개요
9+
mago 3DTiler는 오픈 소스를 기반으로 한 OGC 3DTiles 생성기입니다.
10+
다양한 공간 정보 데이터를 OGC 3D Tiles로 변환하여 디지털 트윈 서비스를 위한 기반을 제공합니다.
11+
Java 기반으로 개발된 mago 3DTiler는 높은 이식성, 유연성, 그리고 빠른 성능을 자랑합니다.
12+
13+
![Static Badge](https://img.shields.io/badge/Gaia3D%2C%20Inc-blue?style=flat-square)
14+
![Static Badge](https://img.shields.io/badge/3DTiles-green?style=flat-square&logo=Cesium)
15+
![Static Badge](https://img.shields.io/badge/Jdk17-red?style=flat-square&logo=openjdk)
16+
![Static Badge](https://img.shields.io/badge/Gradle-darkorange?style=flat-square&logo=gradle)
17+
![Static Badge](https://img.shields.io/badge/Docker%20Image-blue?style=flat-square&logo=docker)
18+
19+
#### 왜 mago 3DTiler인가?
20+
mago 3DTiler는 단순한 변환기가 아닙니다.
21+
Java로 개발된 이 오픈 소스 프로젝트는 3D 데이터 변환 분야에서 유연성과 성능을 동시에 제공합니다.
22+
23+
---
24+
25+
### 주요 기능
26+
- **다양한 형식 지원**: 3DS, OBJ, FBX, Collada DAE, GlTF, GLB, IFC 등 다양한 3D 형식을 OGC 3D Tiles로 변환 가능
27+
- **포인트 클라우드 변환**: LAS, LAZ 등의 포인트 클라우드 데이터를 정밀하게 변환
28+
- **2D 데이터를 3D 모델로 변환**: ESRI SHP, GeoJSON 등의 2D 공간 데이터를 3D 모델로 변환하여 생동감 있는 표현 가능
29+
- **좌표 변환 지원**: Proj4 라이브러리를 활용한 다중 스레딩 및 실시간 좌표 변환 기능 제공
30+
31+
---
32+
33+
### 사용법
34+
릴리즈된 jar 파일을 다운로드하여 사용하거나, 직접 Gradle 스크립트를 이용해 빌드할 수 있습니다.
35+
빌드된 jar 파일은 ```/dist``` 디렉터리에 생성됩니다.
36+
37+
```
38+
gradlew jar
39+
```
40+
###### 릴리즈에 사용된 Java 버전은 openjdk 17입니다.
41+
42+
#### 도움말 명령어 예시
43+
```
44+
java -jar mago-3d-tiler-x.x.x-natives-windows.jar -help
45+
```
46+
콘솔 출력 예시:
47+
```
48+
┳┳┓┏┓┏┓┏┓ ┏┓┳┓ ┏┳┓┳┓ ┏┓┳┓
49+
┃┃┃┣┫┃┓┃┃ ┫┃┃ ┃ ┃┃ ┣ ┣┫
50+
┛ ┗┛┗┗┛┗┛ ┗┛┻┛ ┻ ┻┗┛┗┛┛┗
51+
3d-tiler(dev) by Gaia3D, Inc.
52+
----------------------------------------
53+
usage: mago 3DTiler help
54+
```
55+
56+
이 명령을 사용하여 KML 또는 Collada 데이터를 3D Tiles로 변환할 수 있습니다.
57+
```
58+
java -jar mago-3d-tiler-x.x.x-natives-windows.jar -input C:\data\kml-input-dir -inputType kml -output C:\data\kml-output-dir
59+
```
60+
또는
61+
```
62+
java -jar mago-3d-tiler-x.x.x-natives-windows.jar -i C:\data\kml-input-dir -o C:\data\kml-output-dir
63+
```
64+
65+
### Docker 버전 사용법
66+
Docker를 이용하여 mago-3d-tiler를 간편하게 사용할 수도 있습니다.
67+
68+
#### 설치 명령어:
69+
```
70+
docker pull gaia3d/mago-3d-tiler
71+
```
72+
73+
#### 실행 명령어:
74+
```
75+
docker run --rm -v "/workspace:/workspace" gaia3d/mago-3d-tiler -inputType 3ds -input /workspace/3ds-samples -output /workspace/sample-3d-tiles -crs 5186
76+
```
77+
78+
### 지원하는 Java 버전
79+
JDK17 및 JDK21 등 장기 지원(LTS) 버전을 지원합니다.
80+
81+
### mago 3DTiler 체험하기
82+
![image](https://github.com/Gaia3D/mago-3d-tiler/assets/87691347/c778f7e1-771c-4df6-8d4c-b46412c80c19)
83+
<https://seoul.gaia3d.com:10903>
84+
85+
### 커뮤니티 및 라이선스
86+
- **오픈소스 커뮤니티**: GitHub에서 활발한 커뮤니티 활동 및 기여 가능
87+
- **자유로운 개발**: MPL2.0 라이선스를 통해 자유롭게 사용, 수정, 배포 가능 (<https://www.mozilla.org/en-US/MPL/2.0/>)
88+
- **상용 라이선스 옵션**: MPL2.0 조건을 원하지 않을 경우 상용 라이선스를 선택할 수 있으며, 관련 문의는 [email protected]으로 연락 바랍니다.
89+
90+
### 라이브러리 의존성
91+
- **LWJGL3** (경량 Java 게임 라이브러리 3 OpenGL, Assimp): <https://github.com/LWJGL/lwjgl3>
92+
- **JOML** (Java OpenGL 수학 라이브러리): <https://github.com/JOML-CI/JOML>
93+
- **jgltf** (glTF를 위한 Java 라이브러리): <https://github.com/javagl/JglTF>
94+
- **laszip4j** (LASzip Java 포트): <https://github.com/mreutegg/laszip4j>
95+
- **geotools** (지리 공간 데이터 처리 라이브러리): <https://github.com/geotools/geotools>
96+
- **proj4j** (좌표 변환 라이브러리): <https://github.com/locationtech/proj4j>
97+
- **citygml4j** (CityGML을 위한 Java API): <https://github.com/citygml4j/citygml4j>
98+

0 commit comments

Comments
 (0)