9. 9
2. 배경 – 왜 mago3D를 개발하게 되었을까요?
system
실무자의
이슈 제기
담당자의
이슈 해결
이슈 통계 처리를
통한 미래 예측
및 전략 수립
의사결정을 위한
이슈 조회
협업 기반 관리 시스템을
웹 환경에서 운영하는 이유는?
▶인터넷과 웹 브라우저만 있으면 누구나 동일한
서비스를 제공 받는다.
▶따라서 시스템 개발 난이도와 비용이 저렴하다.
→관리 시스템은 웹 기반으로 개발하는 것이
기술적 트렌드
BIM/AEC를 다루는 분야에서는 이러한
협업 시스템을 만들기가 어렵다. 왜?
10. 10
2. 배경 – 왜 mago3D를 개발하게 되었을까요? – AEC 분야의 상황
관리대상이 대용량/고정밀인 경우가 많다.
→대상을 웹에서 가시화 하기에는 무겁다.
11. 11
모 제조사의 한국,중국,동남아 공장
xx중공업의 국내 부지
2. 배경 – 왜 mago3D를 개발하게 되었을까요? – AEC 분야의 상황
관리 대상들이 공간적/지리적으로 매우 넓다.
(자동차, 항공기, 조선 분야 등)
→관리 대상의 개별 가시화에 더해
공간적/지리적 맥락에서 대량의 객체에 대한
시각화와 관리가 필요
12. 2. 배경 – 왜 mago3D를 개발하게 되었을까요? – AEC 분야의 상황
3D graphics/CAD 분야에서
사용되는 3D 모델 포맷들
http://artist-3d.com/free_3d_models/graphics- file-formats.php
출처
AEC분야에서 다루는 데이터는 전문적인 설계 SW를 통해 만들어진 경우가 대부분이라,
특정 SW에 종속적이거나 상호 호환이 지원되지 않는다.
→웹 브라우저에서 직접적으로 렌더링(rendering) 하는 것이 불가능하다.
13. 13
3. 목표 – 이런 기능이 필요 했습니다.
원본 포맷에 상관없이 가볍고 통일된 서비스 포맷으로 변환 기능 제공
3D GIS 환경 위에서 실내외 공간의 끊김 없는 통합
(Seamless integration of indoor & outdoor space on 3D GIS environment)
웹 브라우저 상에서 구동, 별도의 add-on이나 ActiveX 설치 필요 없음
오픈소스(Cesium, World Wind) 기반 개발, 개방성과 확장성 확보
초대용량 3차원 파일의 효율적 관리 및 초고속 렌더링
14. 14
4. 소개 – mago3D 아키텍처
mago3D.JS
Cesium/WWW
Client
internet
Web Server WAS
F4DStorage
mago
Content
Management
DataBase
F4D Converter
mago3D의 핵심
15. 15
4. 소개 – mago3D의 핵심
F4D Converter mago3D.js
mago3D.js
3D GIS Engines
Cesium.js
WorldWindWeb.js
API
API
service html
F4D Converter
F4D
.ifc
.3ds
.obj
.dae
.ifc 파일이나(BIM 표준 교환 포맷) .3ds/.obj/.dae 파일을(전통
적인 3차원 포맷) mago3D 서비스 전용 포맷인 F4D로 변환.
변환 과정에서 경량화와 성능 향상을 위한 전처리 작업 수행
3D GIS engine이 AEC 데이터를 다룰 수 있게 확장해 주는
JavaScript로 구성된 plug-in
16. 5. 핵심 기술 – F4D : Model Reference Concept – 경량화
Model is 3D geometry info, while Reference is real instance of this model
17. 5. 주요 기술 – F4D : Model Reference Concept 예시
With 4 geometric meshes - 4
models
23 objects are created. - 23 instances
Image source : www.vecteezy.com
18. 5. 핵심 기술 – F4D : Lego Style Service for LOD – 경량화
Detailed Resolution
Coarse Resolution
19. 5. 핵심 기술 – F4D: Lego 구조물을 만드는 방법
Third, merge
collected cubes
as much as possible
Second, collect
cubes which
intersects with
original data
First, divide the
Bounding Box into
enough small
cubes for each
LOD
20. 5. 핵심 기술 – F4D: Visibility Index – 가시성 색인
가시성 색인
AEC 데이터 내부의 특정 위치에서 카메라에 촬영
될 수 있는 객체들을 미리 색인으로 만드는 것.
mago3D에서 실시간 가시화 작업을 수행할 때
occlusion culling을(앞의 객체에 가려져서 보이지
않는 객체를 그리지 않는 방식) 적용할 때 사용
21. 5. 핵심 기술 – F4D: Spatial Index –공간 색인
공간 색인
AEC 데이터 내부의 객체들을 공간적으로 구분하여
grouping해둔 것.
mago3D에서 실시간 가시화 작업을 수행할 때
frustum culling을(카메라 시야에 없는 객체들은
그리지 않는 방식) 적용할 때 사용
22. 5. 핵심 기술 – mago3D.js: Frustum Culling과 Occlusion Culling을 순차적으로 수행
1. 카메라의 위치와
2. 촬영방향에 따라
3. 공간 group들을 대상으로 frustum culling을 수행
4. frustum culling 결과에 occlusion culling을 수행
5. 최종적으로 그릴 대상 선별 완료
(공간 색인과 가시성 색인의 교집합)
→ run-time에 복잡한 기하학적 연산을 수행할
필요없이 그릴 대상 객체들을 빠르게 선별
23. 5. 핵심 기술 – mago3D.js: Frustum Culling과 Occlusion Culling의 예시
대상을 중심으로 카메라를 돌리면
건물의 뒷부분과 멀리 있는 건물을
그리지 않는 것을 확인 가능
카메라 조작을 끝내면 대상 건물과
멀리 있는 건물들을 그린다.
24. 6. 구현 모습 – 대용량/고정밀 AEC 3차원 모델 가시화
Visualization of large size AEC
on a web browser
25. 6. 구현 모습 – Indoor/Outdoor integration
Seamless integration of indoor and outdoor space
on the same platform
scene from indoor to outdoor through windows Scene from outdoor to indoor through windows
29. 29
별첨 – mago3D 소프트웨어 구성
DB Postgresql 9.6 + PostGIS
Web Server Nginx 1.12.1 / Apache 2.4
Language Java8
Framework Spring(Springboot) + Mybatis
Build
Gradle
Log
Log4j2/Logback
Security
ESAPI
Report
Jasper/POI
View
JSP/JSTL
UI/UX
Jquery
Chart
Jqplot/Axisj
Template
Thymeleaf
Handlebars
Geo Server Geo Server
OS Centos 7.2
3D Viewer Cesium, WorldWind
Cache EhCache, Redis
Container Docker
WAS Tomcat 8.5
F4DConverter 는 단독 실행 파
일. (.exe)
F4DConverter 는 웹파트
(mago3DJS+CMS) 와 독립적
F4DConverter 는 command
promp나 다른 Process에 의해
실행됨(ex : 배치, 스케줄).
변환된 결과물은 NAS나 FTP 등
을 통해서 공유됨
* F4D Converter, mago3DJS, CMS 아키텍처는 별첨 참조
30. 별첨 - F4D Converter 아키텍처
Writer
Processor
Reader
Assimp.3ds .obj .dae
IfcPlusPlus / Carve.ifc
OpenCascade.jt
ClassicReader
IfcReader
JtReader
fixing triangle vertices order
bounding box calculation
exterior object extraction
model/reference extraction
vbo creation/triangle sorting
spatial octree creation
visibility indexing
lego structure creation
F4DConverter is a single executable file.(.exe)
F4DConverter is isolated from and
independent of other web parts
(mago3DJS+CMS).
F4DConverter can be executed manually
through command prompt OR can be
executed by other process(ex : batch script
for scheduling).
Converted results can be shared on such
things like NAS OR
can be transmitted through network(ex : FTP).
31. A javascript plug-in, used with WebGL
globe engines, to allow web applications to
render and manipulate highly heavy and
detailed 3D model data on 3D GIS
environment.
Composed of
Connector : links mago3D with WebGL-
based globes such like Cesium &
WorldWind
Core : F4D data Handling
Renderer : visualizes 3D data
Accelerator : for performance improvement
Process Manager : manages all processes
Data Container : performs loading/parsing
REST API handler : 3D Data
request/response API
별첨 - mago3DJS 아키텍처
mago3D Renderer
Shader
mago3D Accelerator
Performance Enhancer
mago3D
REST API
request, response
mago3D
Process Manager
mago3D Data
Container
Cesium NASA World Wind Etc.
mago3D Core
WebGL Globe Core
mago3D Connector
32. DashBoard
Offers functionalities for management &
statistics of issue, users, schedule, and data
Configuration
All configuration about users, passwords, GIS,
GeoServer, callback, and security.
Data Manager
Management of ‘Add, Modify, and Remove’
on Data group
Issue Manager
Management on issues users registered.
Issue by issue, You can check process status,
priority, due date, and the person in charge
Role Based Access Control
Newly added user is assigned in any user
group, and each user group is granted its
own role.
User authority comes along with the role of
user group which the user belongs to.
별첨 - Content Management System 아키텍처
Data Manager
F4D Data
Hosting
API
User Issue
Schedule
RBAC
Role Based
Access Control
Public Private
spring framework