KR101775952B1 - Bim 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법 - Google Patents
Bim 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법 Download PDFInfo
- Publication number
- KR101775952B1 KR101775952B1 KR1020160165399A KR20160165399A KR101775952B1 KR 101775952 B1 KR101775952 B1 KR 101775952B1 KR 1020160165399 A KR1020160165399 A KR 1020160165399A KR 20160165399 A KR20160165399 A KR 20160165399A KR 101775952 B1 KR101775952 B1 KR 101775952B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- data
- file
- bim
- shape
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G06F17/30132—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/36—Level of detail
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명에 의한 BIM 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법이 개시된다. 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 방법은 형상 LoD(Level of Detail) 열거자를 이용하여 객체를 얻는 연산자를 실행하는 단계; 상기 연산자를 실행할 경우, 캐쉬 파일로부터 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩하는 단계; 및 상기 캐쉬 메모리에 로딩된 상기 메쉬 LoD 데이터를 화면 상에 렌더링하는 단계를 포함한다.
Description
본 발명은 BIM(Building Information Modeling) 모델 형상 데이터에 관한 것으로서, 특히, BIM 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법에 관한 것이다.
BIM 모델을 구성하는 수많은 객체들은 형상과 속성정보로 구성된다. 속성정보는 텍스트 및 숫자로 구성되어 있어, 형상에 비해 데이터 용량이 그리 크지 않다.
형상은 수많은 솔리드 및 메쉬 데이터로 구성되고, 메쉬 데이터에 포함된 수많은 좌표들은 실수형 데이터로 하나의 좌표 값이 최소 24바이트를 차지한다. 형상은 솔리드 정보 자체뿐 아니라, 시각화를 위한 수많은 메쉬 데이터를 포함하고 있다. 메쉬 데이터는 다시 수많은 삼각형, 정점들과 모서리 정보로 구성된다.
이러한 이유로 보통 대용량의 BIM 모델을 계산하는 경우 메모리 문제가 발생한다면, 대부분 형상 정보를 처리하면서 물리적 메모리가 부족하여 발생한 경우이다.
따라서 이러한 종래 기술의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 특정 계산에 요구되는 메모리 크기가 물리적 여유 메모리를 넘어가더라도 BIM 모델 객체들에 대한 기하학적 계산이 가능하도록 한, BIM 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법을 제공하는데 있다.
그러나 본 발명의 목적은 상기에 언급된 사항으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 목적들을 달성하기 위하여, 본 발명의 한 관점에 따른 BIM 대용량 형상 데이터를 처리하기 위한 방법은 형상 LoD(Level of Detail) 열거자를 이용하여 객체를 얻는 연산자를 실행하는 단계; 상기 연산자를 실행할 경우, 캐쉬 파일로부터 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩하는 단계; 및 상기 캐쉬 메모리에 로딩된 상기 메쉬 LoD 데이터를 화면 상에 렌더링하는 단계를 포함할 수 있다.
또한, 상기 로딩하는 단계는 BIM 대용량 형상 데이터 파일 내 영역 인덱스 섹션을 이용하여 공간 검색하여 그 공간 검색한 결과로 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩할 수 있다.
또한, 상기 로딩하는 단계는 상기 영역 인덱스 섹션 내 인덱스 청크의 객체 섹션 위치 정보를 이용하여 렌더링에 필요한 메쉬 LoD 데이터를 검색할 수 있다.
또한, 상기 인덱스 청크는 인덱스 영역 간 중복되는 데이터를 최소화하도록 인덱스 청크 영역 안에 있는 ‘in region’ 형상들에 대한 데이터 파일 위치와 영역 경계와 겹치는 형상들에 대한 데이터 파일 위치를 저장하고 있는 ‘cross region’에 대한 객체 섹션을 관리할 수 있다.
또한, 상기 캐쉬 파일은 캐쉬 파일 헤더, 공간 인덱싱을 위한 영역 인덱스 섹션, 공간 영역별로 객체를 구분하기 위한 객체 정보 섹션을 포함할 수 있다.
본 발명의 다른 한 관점에 따른 BIM 대용량 형상 데이터를 처리하기 위한 장치는 서버로부터 다운로드 받은 BIM 대용량 형상 데이터를 캐쉬 파일로 저장하는 메모리; 형상 LoD(Level of Detail) 열거자를 이용하여 객체를 얻는 연산자를 실행하고, 상기 캐쉬 파일로부터 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩하는 프로세서; 및 상기 캐쉬 메모리에 로딩된 상기 메쉬 LoD 데이터를 화면 상에 렌더링하는 표시부를 포함할 수 있다.
또한, 상기 프로세서는 BIM 대용량 형상 데이터 파일 내 영역 인덱스 섹션을 이용하여 공간 검색하여 그 공간 검색한 결과로 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩할 수 있다.
또한, 상기 프로세서는 상기 영역 인덱스 섹션 내 인덱스 청크의 객체 섹션 위치 정보를 이용하여 렌더링에 필요한 메쉬 LoD 데이터를 검색할 수 있다.
또한, 상기 인덱스 청크는 인덱스 영역 간 중복되는 데이터를 최소화하도록 인덱스 청크 영역 안에 있는 ‘in region’ 형상들에 대한 데이터 파일 위치와 영역 경계와 겹치는 형상들에 대한 데이터 파일 위치를 저장하고 있는 ‘cross region’에 대한 객체 섹션을 관리할 수 있다.
또한, 상기 캐쉬 파일은 캐쉬 파일 헤더, 공간 인덱싱을 위한 영역 인덱스 섹션, 공간 영역별로 객체를 구분하기 위한 객체 정보 섹션을 포함할 수 있다.
이처럼, 본 발명은 공간 인덱스 파일을 이용하여 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 로딩하도록 함으로써, 특정 계산에 요구되는 메모리 크기가 물리적 여유 메모리를 넘어가더라도 BIM 모델 객체들에 대한 기하학적 계산이 가능할 수 있다.
도 1은 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터 캐쉬 구조를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 방법을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 캐쉬 파일의 구조를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 영역 인덱스 섹션의 구조를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 객체 정보 섹션의 구조를 나타내는 도면이다.
도 6은 인덱스 영역 간 형상 데이터 위치에 대한 중복 처리 원리를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 장치를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 방법을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 캐쉬 파일의 구조를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 영역 인덱스 섹션의 구조를 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 객체 정보 섹션의 구조를 나타내는 도면이다.
도 6은 인덱스 영역 간 형상 데이터 위치에 대한 중복 처리 원리를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 장치를 나타내는 도면이다.
이하에서는, 본 발명의 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법을 첨부한 도면을 참조하여 설명한다. 본 발명에 따른 동작 및 작용을 이해하는 데 필요한 부분을 중심으로 상세히 설명한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 동일한 명칭의 구성 요소에 대하여 도면에 따라 다른 참조부호를 부여할 수도 있으며, 서로 다른 도면임에도 불구하고 동일한 참조부호를 부여할 수도 있다. 그러나, 이와 같은 경우라 하더라도 해당 구성 요소가 실시예에 따라 서로 다른 기능을 갖는다는 것을 의미하거나, 서로 다른 실시예에서 동일한 기능을 갖는다는 것을 의미하는 것은 아니며, 각각의 구성 요소의 기능은 해당 실시예에서의 각각의 구성 요소에 대한 설명에 기초하여 판단하여야 할 것이다.
이때, 본 발명에서는 공간 인덱스 파일을 이용하여 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 로딩하도록 하여, 특정 계산에 요구되는 메모리 크기가 물리적 여유 메모리를 넘어가더라도 BIM 모델 객체들에 대한 기하학적 계산이 가능하도록 한 새로운 방안을 제안한다.
이러한 BIM 모델을 구성하는 BIM 형상 데이터의 처리 방법은 사용 목적에 따라 크게 두 가지 즉, 형상 데이터 렌더링, 형상 데이터 계산으로 구분할 수 있다.
형상 데이터 렌더링은 현재 카메라 뷰(view)에서 렌더링되어야 할 객체들에 대한 캐쉬 처리가 필요하다. 렌더링되는 객체들은 3차원 공간에서 효과적으로 가시화 가능한 메쉬(mesh) 구조이다. 메쉬는 3차원 형상을 삼각형으로 표현한 구조이므로, 수학적으로 표현된 형상 정보를 메쉬로 표현하면, 필요한 메모리 크기는 급격히 늘어난다. 사실, 카메라에서 먼 거리에 있는 메쉬를 정확히 표현할 필요는 없으므로, 거리에 따라 메쉬 상세 수준인 LoD(Level of Detail)을 가변적으로 표현하는 것이 효과적이다. 모든 메쉬 LoD 데이터를 메모리로 로딩해 사용하는 것은 불필요하다. 카메라 뷰 정보를 고려해, 렌더링에 필요한 LoD 데이터를 캐쉬에 로딩하고, 카메라와 렌더링할 형상 거리에 따라 적절한 LoD 데이터를 동적으로 로딩해 가시화하는 전략이 필요하다.
형상 데이터 계산은 BIM 모델의 단면 처리 등에 필요한 교차 계산을 위한 형상 데이터의 캐쉬 처리가 필요하다. 형상 데이터 계산의 대표적인 유스케이스(use case)는 3차원 형상 간 간섭체크, 3차원 형상 다면 추출 등이며, 대부분 교차 계산을 위한 형상의 수학 모델이 필요하다. 수학 모델은 선형, 곡선, 평면, 곡면 등을 표현하기 위한 파라메터로 구성된다. 대용량 형상 계산에 필요한 정보는 캐쉬에 로딩하고, 계산할 순간에 필요한 형상 정보를 메모리에 로딩하는 전략이 필요하다. 참고로, 수학 모델의 곡면 교차 계산은 매우 복잡하고, 많은 계산 시간이 필요하다.
물리적 메모리 할당 범위를 넘어간 대용량 BIM 모델에 대한 기하학적 계산을 위해서 다음과 같은 BIM 모델 객체에 대한 계산 시나리오를 가정한다.
여기서는 엔지니어가 모델 단면 검토 시 많이 활용하는 모델 객체의 단면을 절단하는 섹셔닝(sectioning) 기능 수행 시나리오를 일 예로 이하에서 설명하기로 한다.
1. BIM 모델을 메모리에 로딩
2. 절단할 영역을 섹셔닝 면이나 육면체로 정의
3. 정의된 섹셔닝 영역에 대해, 교차되는 BIM 모델의 객체 형상들을 획득
4. 획득된 교차 가능한 객체 형상들에 대한 면 교차 계산을 수행
5. 교차 계산을 통해 얻은 교차점, 교차선들을 이용해, 위상적으로 연결
6. 연결된 연결선 및 폐합면을 사용자에게 리턴
이때, 시공성 검토를 위해 수행되는 간섭체크의 경우에도 앞에서 기술한 섹셔닝과 유사한 방식으로 선-선, 선-면, 면-면, 솔리드-솔리드 간 교차 계산을 수행하는데, 이러한 교차 계산 과정은 많은 컴퓨팅 자원과 시간을 필요로 한다.
이런 이유로, BIM 대용량 형상 데이터 캐쉬 구조(BIM Big Geometry Cache) 구조가 필요하다.
도 1은 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터 캐쉬 구조를 나타내는 도면이다.
도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터 캐쉬(BIM Big Geometry Cache; BBGC) 구조를 UML(Unified Modeling Language) 클래스 다이어그램으로 표현한 것이다.
BBGC는 대용량 데이터를 관리하는 캐쉬(Cache), 캐쉬된 객체 정보를 관리하는 캐쉬객체(CacheObject)로 크게 구분된다. 캐쉬는 캐쉬 처리 목적에 따라 GeometryRenderingCache, GeometryComputationCache로 구분되어 상세 알고리즘과 관련 데이터가 정의된다.
캐쉬는 렌더링 및 계산에 사용할 객체를 신속하게 검색하기 위해, 공간 인덱싱을 지원하는 공간인덱스파일(SpatialIndexFile)을 사용한다. 공간인덱스파일은 Octree 기반으로 동작하며, 공간노드(SpatialNode)를 구성한다. 공간노드는 공간 상에 객체가 포함되는 영역을 관리하며, 하위 8개의 공간을 분할해, 관리하여, 공간 격자 트리를 구성한다. 각 공간격자의 공간노드는 객체정보를 가리키는 공간객체핸들(SpatialObjectHandle)을 관리한다.
캐쉬객체는 BIM객체 데이터를 접근할 수 있는 핸들(handle)을 유지한다. 캐쉬핸들(CacheHandle)은 캐쉬가 관리하는 캐쉬 객체에 대한 핸들이며, 이 핸들을 통해, BIM객체 데이터를 접근할 수 있다.
이러한 BIM 대용량 형상 데이터 캐쉬 구조의 각 클래스에 대한 역할을 [표 1]과 같다.
Class | Role |
Cache | BIM 대용량 형상 캐쉬 정보 관리 클래스. BIM 대용량 형상 데이터를 처리하는 관점에 따라, 형상 렌더링 캐쉬와 계산 캐쉬로 구분됨. |
GeometryRenderingCache | 형상 렌더링을 위한 캐쉬. 이 캐쉬는 형상에 대한 LoD들을 관리하고 있음. 메쉬 가시화 시 렌더링 시 필요한 형상의 LoD를 파일에서 메모리로 로딩하고, 가시화 함수에 전달해 주는 역할을 함. |
GeometryComputationCache | 형상 단면 절단과 같은 형상 계산을 위한 캐쉬 정보를 관리함. 형상 계산 시 필요한 형상의 정보를 파일을 메모리로 로딩하고, 계산 함수에 전달해 주는 역할을 함. |
CacheObject | 캐쉬 객체는 캐쉬에 필요한 정보와 실제 객체 형상 정보를 로딩하기 위한 참조 정보인 핸들(handle)을 관리함. |
CacheHandle | 캐쉬 핸들은 메모리로 로딩해야 할 객체 형상 파일을 참조함. 핸들을 이용해, 형상 파일을 메모리로 쉽게 로딩할 수 있음. |
SpatialIndexFile | 공간 인덱싱 파일로, 캐쉬가 관리해야 할 객체를 공간적으로 검색할 때 사용함. 각 객체의 공간 인덱스 정보를 옥트리(octree) 구조로 관리하고 있음. |
SpatialNode | 공간 인덱싱의 노드로, 공간 영역과 해당 영역 내 속하는 객체의 핸들인 SpatialObjectHandle을 관리함. |
CacheObjectIterator | 형상 렌더링이나 계산에 필요한 BIM 객체 파일을 캐쉬에서 언제 메모리로 로딩할 지를 결정하고, 로딩된 메모리 상의 객체 참조 포인트를 가시화나 계산 함수에서 접근할 수 있는 참조 포인터를 제공해 주는 역할을 함. |
SpatialObjectHandle | 공간 객체 핸들은 공간 인덱스의 노드(SpatialNode)에 의해 관리되며, 형상 렌더링이나 계산 시 필요한 객체 파일을 참조하는 핸들 정보를 관리함. |
도 2는 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 방법을 나타내는 도면이다.
도 2에 도시한 바와 같이, 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 장치(이하, 데이터 처리장치라고 한다)는 BBGC 구조를 이용하여 데이터를 처리할 수 있는데, 형상 렌더링 및 계산 목적에 따라 캐쉬를 초기화할 수 있다(S201).
다음으로, 데이터 처리장치는 객체를 얻기 위한 형상 LoD 열거자를 획득할 수 있다(S202).
다음으로, 데이터 처리장치는 형상 LoD 열거자를 이용하여 객체를 얻는 연산자를 실행할 수 있다(S203).
다음으로, 데이터 처리장치는 객체를 얻는 연산자를 실행할 경우, 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬에 로딩할 수 있다(S204). 이때, 데이터 처리장치는 카메라와 렌더링할 형상 거리에 따라 적절한 메쉬 LoD 데이터를 동적으로 로딩할 수 있다.
이때, 열거자는 객체를 얻는 연산자를 실행할 때 앞서 설명한 BBGC 구조에서 관리하고 있는 객체 핸들을 이용하여 해당 데이터가 저장된 파일을 로딩할 수 있다.
또한 캐쉬객체는 메모리에 객체가 어느 기간 동안 존재하고 있어야 하는지를 결정하는 life count를 관리하고 있는데, life count가 0일 때 캐쉬는 해당 객체의 메모리를 해제하며, life count가 1 이상일 때 객체 정보를 파일에서 메모리로 로딩한다.
반면, 데이터 처리장치는 객체를 얻는 연산자를 실행하지 않을 경우 형상 렌더링을 종료할 수 있다(S207).
다음으로, 데이터 처리장치는 캐쉬에 로딩된 메쉬 LoD 데이터를 렌더링할 수 있다(S205).
다음으로, 데이터 처리장치는 형상 LoD 열거자를 1만큼 증가시킬 수 있다(S206).
다음으로, 데이터 처리장치는 형상 LoD 열거자가 N이면 형상 렌더링을 종료할 수 있다(S207).
이러한 BBGC 구조를 이용하여 데이터를 처리하는 과정을 표현한 의사코드는 [표 2]과 같다.
BBSF_cache_rendering_iterator listCacheBucketR = beginGeometryRendering(cameraContext); for(objectR in listCacheBucketR) renderObject(objectR); endGeomeryRendering(listCacheBucketR); listCacheBucketA = beginGeometryCalculation(regionAABB1); listCacheBucketB = beginGeometryCalculation(regionAABB2); for(objectA in listCacheBucketA) { for(objectB in listCacheBucketB) { caculateSomething(objectA, objectB); } } endGeometryCalculation(listCacheBucketB); endGeometryCalculation(listCacheBucketA); |
캐쉬에 보관된 BIM 객체 형상 정보의 핸들은 캐쉬 메모리 로딩 정책에 따라 언제 메모리로 해당 형상 파일을 로딩할지 결정한다. 이러한 캐쉬 파일 로딩 정책은 형상 렌더링 및 계산에 대한 유스케이스 시나리오에 따라 다르다. 이런 이유로, 이 정책을 사용자가 결정할 수 있도록 [표 3]와 같은 캐쉬 메모리 로딩 정책 방법을 제공한다.
rendering_policy(cache, handle) { if(cache[handle].accessLastTime() < currentTime() + cacheDurationTime()) cache[handle].increaseLifecount(); cache[handle].setAccessLastTime(); } |
예커대, 캐쉬 메모리 로딩 정책은 렌더링이나 캐쉬 목적에 따라 다른 정책을 사용할 수 있다. 여기서, 정책은 규칙으로 정의될 수 있으며, 규칙에 따라, 메모리에 존재하는 life count를 조정하도록 처리될 수 있다.
다음의 [표 4]은 렌더링 및 형상 계산에 필요한 실제 메모리에 올려 진 객체의 참조를 접근할 수 있는 iterator의 operator++() 연산자 의사코드를 표현한다.
object* iterator::operator++() 연산자 { _index++; handle = handles[_index]; if(_cache[handle] == NULL) lifeCount = _cache.load(handle); // 메모리 로딩 return _cache[handle].getBIMObject(); // 참조 리턴 } |
한편, 대용량 형상 데이터를 캐쉬하기 위해서는 서버에 있는 BIM 형상 데이터들을 클라이언트에 다운로드 받은 후, 렌더링 및 계산해야할 객체만 공간인덱스파일을 이용해, 시간 효율적으로 찾을 수 있도록 해야 한다.
도 3은 본 발명의 일 실시예에 따른 캐쉬 파일의 구조를 나타내는 도면이다.
도 3에 도시한 바와 같이, 캐쉬 파일은 BIM 대용량 데이터 스트리밍 파일(BIM Big data Streaming File; BBSF)로 크게 캐쉬 파일 헤더(header), 공간 인덱싱을 위한 영역 인덱스 섹션(region index section), 객체 정보 섹션(objects section)로 구분될 수 있다.
객체 정보 섹션은 공간 영역 별로 구분된 객체들 섹션(objects section)으로 구분되며, 각 객체 청크(object chuck)는 객체 청크 헤더, 형상 및 LOD들로 구분된다.
이런 구조로 인해, 영역 인덱스 섹션의 인덱스 청크(index chuck)를 이용해, 필요한 객체 형상을 공간 검색하여 쉽게 얻을 수 있고, 인덱스 청크의 objects section position 정보를 통해, 직접적으로 해당 객체의 형상 정보를 파일로부터 바로 읽을 수 있다.
도 4는 본 발명의 일 실시예에 따른 영역 인덱스 섹션의 구조를 나타내는 도면이다.
도 4에 도시한 바와 같이, 영역 인덱스 섹션만 있으면, 필요한 정보를 찾을 수 있으므로, 서버에서 클라이언트로 필요한 정보만 얻기가 용이하며, 이런 이유로 서버에서 클라이언트로 필요한 데이터만 스트리밍 서비스가 가능하다.
이 방식은 클라이언트의 물리적 메모리 용량이 부족할 때 사용하기 좋은 방식이다.
영역 인덱스 섹션으로부터 직접적으로 객체 정보가 있는 파일을 얻을 수 있다.
도 5는 본 발명의 일 실시예에 따른 객체 정보 섹션의 구조를 나타내는 도면이다.
도 5에 도시한 바와 같이, 객체 정보를 보관하고 있는 객체 정보 섹션의 구조를 보여주고 있는데, 객체 정보 섹션은 공간 영역 별로 구분된 객체들 섹션으로 구분된다.
이러한 BIM 대용량 데이터 스트리밍 파일(BBSF)은 다음과 같은 특성을 갖는다.
1. 공간 인덱스 기반 파일 구조
2. 데이터 청크(chuck)기반 스트리밍 가능한 파일 구조
3. 공간 인덱싱 효율성을 위해, 객체 형상 정보의 중복을 허용. 예를 들어, index region 간에 걸쳐지는 형상들은 성능 효율성을 위해, 데이터 중복을 허용한다.
도 6은 인덱스 영역 간 형상 데이터 위치에 대한 중복 처리 원리를 설명하기 위한 도면이다.
도 6에 도시한 바와 같이, 인덱스 청크 내 인덱스 영역 간 데이터 중복과 관련되어, 인덱스 영역(index region) 간에 걸쳐져 있는 형상 정보들을 다른 객체 정보 섹션에 중복되어 저장된다.
인덱스 청크는 중복되는 데이터를 최소화하도록, 인덱스 청크 영역 안에 있는 ‘in region’ 형상들에 대한 데이터 파일 위치와 영역 경계와 겹치는 형상들에 대한 데이터 파일 위치를 저장하고 있는 ‘cross region’에 대한 객체 섹션을 관리한다.
그림에서 1, 2, 5, 6, 7, 8은 영역 경계에 걸쳐지는 객체 형상으로, 객체 정보 섹션 위치(objects section position cross region) ‘cross region’에 저장될 수 있다.
도 7은 본 발명의 일 실시예에 따른 BIM 대용량 형상 데이터를 처리하기 위한 장치를 나타내는 도면이다.
도 7에 도시한 바와 같이, 본 발명의 일 실시예에 따른 IM 대용량 형상 데이터를 처리하기 위한 장치는 통신부(110), 프로세서서(120), 캐쉬(130), 표시부(140)를 포함할 수 있다.
통신부(110)는 서버와 연동하여, BIM 대용량 형상 데이터를 다운로드할 수 있다.
프로세서서(120)는 서버로부터 다운로드 받은 BIM 대용량 형상 데이터 중 렌디링 또는 계산해야할 객체만을 공간 인덱스 파일을 이용하여 검색하여 렌더링할 수 있다.
이때, 프로세서서(120)는 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬에 로딩하여 그 로딩된 메쉬 LoD 데이터를 렌더링할 수 있다.
메모리(130)는 서버로부터 다운로드 받은 BIM 대용량 형상 데이터를 저장할 수 있다. 이러한 메모리(130)는 BIM 대용량 형상 데이터 전체를 저장하는 메인 메모리와 렌더링에 필요한 메쉬 LoD 데이터를 저장하는 캐시 메모리로 구분될 수 있다.
표시부(140)는 프로세서의 제어에 따라 검색된 객체를 화면 상에 렌더링할 수 있다.
한편, 이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 또한, 이와 같은 컴퓨터 프로그램은 USB 메모리, CD 디스크, 플래쉬 메모리 등과 같은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체 등이 포함될 수 있다.
이상에서 설명한 실시예들은 그 일 예로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: 통신부
120: 프로세서
130: 메모리
140: 표시부
120: 프로세서
130: 메모리
140: 표시부
Claims (10)
- 형상 LoD(Level of Detail) 열거자를 이용하여 객체를 얻는 연산자를 실행하는 단계;
상기 연산자를 실행할 경우, 캐쉬 파일로부터 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩하는 단계; 및
상기 캐쉬 메모리에 로딩된 상기 메쉬 LoD 데이터를 화면 상에 렌더링하는 단계;
를 포함하되,
상기 형상 LoD(Level of Detail) 열거자는 객체를 얻는 연산자를 실행할 때 BBGC 구조에서 관리하고 있는 객체 핸들을 이용하여 해당 데이터가 저장된 파일을 로딩하고,
상기 BBGC는 대용량 데이터를 관리하는 캐쉬(Cache), 캐쉬된 객체 정보를 관리하는 캐쉬객체(CacheObject)로 구분되고, 상기 캐쉬는 캐쉬 처리 목적에 따라 GeometryRenderingCache, GeometryComputationCache로 구분되어 알고리즘과 관련 데이터가 정의되고,
상기 캐쉬객체는 BIM객체 데이터를 접근할 수 있는 핸들(handle)을 유지하고 상기 핸들을 통해 BIM객체 데이터를 접근하고,
상기 캐쉬객체는 메모리에 객체가 어느 기간 동안 존재하고 있어야 하는지를 결정하는 life count를 관리하고 있는데, life count가 0일 때 캐쉬는 해당 객체의 메모리를 해제하며, life count가 1 이상일 때 객체 정보를 파일에서 메모리로 로딩하되,
상기 로딩하는 단계는,
BIM 대용량 형상 데이터 파일 내 영역 인덱스 섹션을 이용하여 공간 검색하여 그 공간 검색한 결과로 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩하되,
상기 캐쉬 파일은,
캐쉬 파일 헤더, 공간 인덱싱을 위한 영역 인덱스 섹션, 공간 영역별로 객체를 구분하기 위한 객체 정보 섹션을 포함하되,
객체 정보 섹션은 공간 영역 별로 구분된 객체들 섹션(objects section)으로 구분되며, 각 객체 청크(object chuck)는 객체 청크 헤더, 형상 및 LOD들로 구분되는, BIM 대용량 형상 데이터를 처리하기 위한 방법. - 삭제
- 제1 항에 있어서,
상기 로딩하는 단계는,
상기 영역 인덱스 섹션 내 인덱스 청크의 객체 섹션 위치 정보를 이용하여 렌더링에 필요한 메쉬 LoD 데이터를 검색하는, BIM 대용량 형상 데이터를 처리하기 위한 방법. - 제3 항에 있어서,
상기 인덱스 청크는 인덱스 영역 간 중복되는 데이터를 최소화하도록 인덱스 청크 영역 안에 있는 ‘in region’ 형상들에 대한 데이터 파일 위치와 영역 경계와 겹치는 형상들에 대한 데이터 파일 위치를 저장하고 있는 ‘cross region’에 대한 객체 섹션을 관리하는, BIM 대용량 형상 데이터를 처리하기 위한 방법. - 삭제
- 서버로부터 다운로드 받은 BIM 대용량 형상 데이터를 캐쉬 파일로 저장하는 메모리;
형상 LoD(Level of Detail) 열거자를 이용하여 객체를 얻는 연산자를 실행하고, 상기 캐쉬 파일로부터 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩하는 프로세서; 및
상기 캐쉬 메모리에 로딩된 상기 메쉬 LoD 데이터를 화면 상에 렌더링하는 표시부;
를 포함하되,
상기 형상 LoD(Level of Detail) 열거자는 객체를 얻는 연산자를 실행할 때 BBGC 구조에서 관리하고 있는 객체 핸들을 이용하여 해당 데이터가 저장된 파일을 로딩하고,
상기 BBGC는 대용량 데이터를 관리하는 캐쉬(Cache), 캐쉬된 객체 정보를 관리하는 캐쉬객체(CacheObject)로 구분되고, 상기 캐쉬는 캐쉬 처리 목적에 따라 GeometryRenderingCache, GeometryComputationCache로 구분되어 알고리즘과 관련 데이터가 정의되고,
상기 캐쉬객체는 BIM객체 데이터를 접근할 수 있는 핸들(handle)을 유지하고 상기 핸들을 통해 BIM객체 데이터를 접근하고,
상기 캐쉬객체는 메모리에 객체가 어느 기간 동안 존재하고 있어야 하는지를 결정하는 life count를 관리하고 있는데, life count가 0일 때 캐쉬는 해당 객체의 메모리를 해제하며, life count가 1 이상일 때 객체 정보를 파일에서 메모리로 로딩하되,
상기 프로세서는,
BIM 대용량 형상 데이터 파일 내 영역 인덱스 섹션을 이용하여 공간 검색하여 그 공간 검색한 결과로 카메라와 렌더링할 형상 거리에 따라 렌더링에 필요한 메쉬 LoD 데이터를 캐쉬 메모리에 로딩하되,
상기 캐쉬 파일은,
캐쉬 파일 헤더, 공간 인덱싱을 위한 영역 인덱스 섹션, 공간 영역별로 객체를 구분하기 위한 객체 정보 섹션을 포함하되,
상기 객체 정보 섹션은 공간 영역 별로 구분된 객체들 섹션(objects section)으로 구분되며, 각 객체 청크(object chuck)는 객체 청크 헤더, 형상 및 LOD들로 구분되는, BIM 대용량 형상 데이터를 처리하기 위한 장치. - 삭제
- 제6 항에 있어서,
상기 프로세서는,
상기 영역 인덱스 섹션 내 인덱스 청크의 객체 섹션 위치 정보를 이용하여 렌더링에 필요한 메쉬 LoD 데이터를 검색하는, BIM 대용량 형상 데이터를 처리하기 위한 장치. - 제8 항에 있어서,
상기 인덱스 청크는 인덱스 영역 간 중복되는 데이터를 최소화하도록 인덱스 청크 영역 안에 있는 ‘in region’ 형상들에 대한 데이터 파일 위치와 영역 경계와 겹치는 형상들에 대한 데이터 파일 위치를 저장하고 있는 ‘cross region’에 대한 객체 섹션을 관리하는, BIM 대용량 형상 데이터를 처리하기 위한 장치. - 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160165399A KR101775952B1 (ko) | 2016-12-06 | 2016-12-06 | Bim 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160165399A KR101775952B1 (ko) | 2016-12-06 | 2016-12-06 | Bim 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101775952B1 true KR101775952B1 (ko) | 2017-09-11 |
Family
ID=59926182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160165399A KR101775952B1 (ko) | 2016-12-06 | 2016-12-06 | Bim 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101775952B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309458A (zh) * | 2018-03-30 | 2019-10-08 | 北京东晨工元科技发展有限公司 | 基于WebGL的BIM模型显示及渲染方法 |
KR102050169B1 (ko) * | 2018-09-20 | 2019-12-02 | 공간정보기술 주식회사 | 옥트리 구조 기반 3차원 지도 서비스를 위한 3차원 모델의 공간 인덱싱 방법과 이를 이용하는 3차원 지도 서비스 제공 방법 및 장치 |
CN117493613A (zh) * | 2023-11-06 | 2024-02-02 | 北京构力科技有限公司 | 一种建筑信息模型的存储和显示方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101465479B1 (ko) | 2013-12-23 | 2014-11-26 | 한국건설기술연구원 | 빔(bim) 기반의 건축물 데이터를 표시하는 bim데이터 처리 시스템 |
KR101546703B1 (ko) | 2014-12-04 | 2015-08-24 | 한국건설기술연구원 | 대용량 건물 bim데이터의 시각화 시스템 |
KR101546705B1 (ko) * | 2014-12-04 | 2015-08-25 | 한국건설기술연구원 | Bim데이터 처리단말 장치의 건물내부 bim데이터 가시화 방법 |
-
2016
- 2016-12-06 KR KR1020160165399A patent/KR101775952B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101465479B1 (ko) | 2013-12-23 | 2014-11-26 | 한국건설기술연구원 | 빔(bim) 기반의 건축물 데이터를 표시하는 bim데이터 처리 시스템 |
KR101546703B1 (ko) | 2014-12-04 | 2015-08-24 | 한국건설기술연구원 | 대용량 건물 bim데이터의 시각화 시스템 |
KR101546705B1 (ko) * | 2014-12-04 | 2015-08-25 | 한국건설기술연구원 | Bim데이터 처리단말 장치의 건물내부 bim데이터 가시화 방법 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110309458A (zh) * | 2018-03-30 | 2019-10-08 | 北京东晨工元科技发展有限公司 | 基于WebGL的BIM模型显示及渲染方法 |
CN110309458B (zh) * | 2018-03-30 | 2021-03-30 | 北京东晨工元科技发展有限公司 | 基于WebGL的BIM模型显示及渲染方法 |
KR102050169B1 (ko) * | 2018-09-20 | 2019-12-02 | 공간정보기술 주식회사 | 옥트리 구조 기반 3차원 지도 서비스를 위한 3차원 모델의 공간 인덱싱 방법과 이를 이용하는 3차원 지도 서비스 제공 방법 및 장치 |
CN117493613A (zh) * | 2023-11-06 | 2024-02-02 | 北京构力科技有限公司 | 一种建筑信息模型的存储和显示方法、装置及电子设备 |
CN117493613B (zh) * | 2023-11-06 | 2024-08-09 | 北京构力科技有限公司 | 一种建筑信息模型的存储和显示方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10013317B1 (en) | Restoring a volume in a storage system | |
US10031672B2 (en) | Snapshots and clones in a block-based data deduplication storage system | |
US10346435B2 (en) | System and method for improved performance in a multidimensional database environment | |
US9922060B2 (en) | Disk optimized paging for column oriented databases | |
US9779026B2 (en) | Cache bypass utilizing a binary tree | |
KR101775952B1 (ko) | Bim 대용량 형상 데이터를 처리하기 위한 장치 및 그 방법 | |
US10068033B2 (en) | Graph data query method and apparatus | |
US10976946B2 (en) | Method and computer system for managing blocks | |
CN112686997B (zh) | 基于WebGIS的三维模型数据分析展示平台及方法 | |
CN110399096A (zh) | 分布式文件系统元数据缓存重删的方法、装置以及设备 | |
CN114119939A (zh) | 数据轻量化处理方法、装置、存储介质及电子设备 | |
US11907565B2 (en) | Storing write data in a storage system | |
CN114693505B (zh) | 一种点云数据的存储处理方法和装置 | |
CN109086462A (zh) | 一种分布式文件系统中元数据的管理方法 | |
van Oosterom et al. | Realistic benchmarks for point cloud data management systems | |
US9009204B2 (en) | Storage system | |
Fahmy et al. | CoS-HDFS: Co-locating geo-distributed spatial data in hadoop distributed file system | |
CN110929435B (zh) | 3d打印中的圈闭支撑区域的空间感知检测 | |
KR20210077975A (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN110083314A (zh) | 一种逻辑卷删除方法、系统及相关装置 | |
US20210004424A1 (en) | Methods and Systems for Processing Geospatial Data | |
Nguyen et al. | A demonstration of B-EagleV Visualizing massive point cloud directly from HDFS | |
JP4171884B2 (ja) | データ階層化およびデータ再構成方法/装置/プログラム/記録媒体、データ記録媒体 | |
KR102303116B1 (ko) | 비정렬 격자 데이터에 대한 광선 투사를 위한 병렬 처리에 의한 연결정보 추출 알고리즘 수행 방법 | |
Sajadi et al. | Data management for ssds for large-scale interactive graphics applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |