안녕하세요? 이번 글은 QGIS의 Qgis2threejs 플러그인에서 3D 모델 데이터를 추가하는 방법을 간략히 정리해 보겠습니다. "Qgis2threejs"는 WebGL 기술과 three.js JavaScript 라이브러리를 활용하여 3D 시각화를 제공하는 QGIS 플러그인입니다. 이 플러그인을 사용하면 DEM(수치표고모델) 및 벡터 데이터를 웹 브라우저에서 3D로 시각화할 수 있습니다.
이 플러그인은 간단단 절차로 다양한 종류의 3D 객체를 생성하고 웹 퍼블리싱을 위한 파일을 생성할 수 있습니다. 또한, 3D 모델을 3DCG 또는 3D 프린팅을 위한 gITF(Graphics Library Transmission Format) 형식으로 저장할 수도 있습니다. 이 글에서는 Qgis2threejs가 지원하는 3D 객체 포맷을 시각화하는 방법을 위주로 정리해 보겠습니다.
실습을 위해 다음과 같이 데이터를 준비해 보겠습니다. 임의 지역에 대해 수치지형도 건물 데이터, VworldHybrid 및 VworldSatellite 레이어, 12.5m급 ALOS PALSAR DEM, 그리고 3D 객체 위치를 지정하기 위한 3D_OBJECTS.gpkg 파일을 추가했습니다.
Qgis2threejs를 실행해 보겠습니다. Layers 패널에서 ALOS PALSAR DEM 레이어를 체크하는 간단한 조작으로 3D 모델이 생성됩니다.
건물 레이어에 고도값을 적용해 보겠습니다. 속성 창에서 다음과 같이 설정해 봅니다.
- Type: Extruded
- Mode: Relative to "ALOS PALSAR DEM" layer
- Height: "층수" * 3 (실습으로 층수 필드에 임의로 3m를 곱한 값으로 설정합니다.)
- Color: Random
- Edge color: Random
- Opacity: Expression > 70
- Export attributes: Checked
이번에는 3D 객체를 추가해 보겠습니다. 저는 Sketchfab에서 제공하는 오픈 데이터(Disney Infinity 3.0 - AVG Hulkbuster)를 사용해 보겠습니다. 현재 Qgis2threejs 플러그인은 *.dae, *.gltf, *.glb를 지원하기 때문에 해당 포맷을 확인해서 내려받아 주시면 되겠습니다.
이제 3D 객체 위치를 지정하기 위한 3D_OBJECTS.gpkg의 속성 창에 들어가서 다음과 같이 설정을 진행해 보겠습니다. Scale은 3D 객체의 크기를, Rotation은 방향을 지정할 수 있습니다.
- Type: 3D Model
- Mode: Relative to "ALOS PALSAR DEM" layer
- Model file: disney_infinity_3.0_-_avg_hulkbuster.glb
- Scale: 50
- Rotation (z): 30
Qgis2threejs 플러그인은 3D 모델의 웹 퍼플리싱을 위한 웹페이지 저장 기능을 제공합니다. "File > Export to Web"을 클릭하신 후, Output directory를 지정해 주시면 해당 디렉터리에 소스코드가 자동 저장(Enable the viewer to run locally를 반드시 클릭)됩니다. index.html을 클릭하시면 해당 웹페이지가 실행됩니다.