KR101762629B1 - User view visualization method and system for BIM design and monitoring in 3D BIM virtual space - Google Patents

User view visualization method and system for BIM design and monitoring in 3D BIM virtual space Download PDF

Info

Publication number
KR101762629B1
KR101762629B1 KR1020170041415A KR20170041415A KR101762629B1 KR 101762629 B1 KR101762629 B1 KR 101762629B1 KR 1020170041415 A KR1020170041415 A KR 1020170041415A KR 20170041415 A KR20170041415 A KR 20170041415A KR 101762629 B1 KR101762629 B1 KR 101762629B1
Authority
KR
South Korea
Prior art keywords
camera
coordinates
view
map
user input
Prior art date
Application number
KR1020170041415A
Other languages
Korean (ko)
Inventor
이상봉
이태훈
Original Assignee
주식회사 탑코어시스템
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 탑코어시스템 filed Critical 주식회사 탑코어시스템
Application granted granted Critical
Publication of KR101762629B1 publication Critical patent/KR101762629B1/en

Links

Images

Classifications

    • G06F17/50
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/44Browsing; Visualisation therefor
    • G06F16/444Spatial browsing, e.g. 2D maps, 3D or virtual spaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • G06F17/30061
    • G06F17/30873

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Software Systems (AREA)
  • Architecture (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Disclosed are a user view visualization method and a user view visualization system to design and monitor building information modeling (BIM) in a three-dimensional (3D) BIM virtual space. According to one embodiment of the present invention, a method to visualize a user view in a client including a display unit wherein a main map and a navigator map for a project space are displayed at the same time comprises the following steps of: (a) receiving user input on the navigator map; (b) extracting 2D coordinates corresponding to the user input; (c) inferring 3D coordinates of a camera from the 2D coordinates; (d) moving the camera to the 3D coordinates, and then extracting and storing the position and viewing direction of the camera; (e) determining whether an object corresponding to the user input exists in the viewing direction; and (f) displaying a screen in accordance with a view of the camera on the main map when the object exists, and switching the viewing direction to make the object placed in the viewing direction and then displaying a screen in accordance with the view of the camera on the main map when the object does not exist.

Description

3D BIM 가상공간에서 BIM 설계 및 모니터링을 위한 사용자 뷰의 시각화 방법 및 시각화 시스템{User view visualization method and system for BIM design and monitoring in 3D BIM virtual space}Technical Field [0001] The present invention relates to a visualization method and a visualization system of a user view for designing and monitoring BIM in a virtual 3D space,

본 발명은 3D BIM(Building Information Modeling) 가상공간에서 BIM 설계 및 모니터링을 위한 사용자 뷰의 시각화 방법 및 시각화 시스템에 관한 것이다.The present invention relates to a visualization method and visualization system for a user view for BIM design and monitoring in a 3D BIM (Building Information Modeling) virtual space.

현재 설계사무소의 설계사, 건설현장의 건축가, 제조산업공장의 시설, 설비관리자 등이 업무에 활용하기 위한 3D가상현실이 활발하게 요구되고 있다. 이런 산업현장의 업무종사자 다수가 동시에 3D가상현장 또는 공장에 접속하여 설계, 시공, 유지보수 등 다양한 업무를 진행할 때 협업할 수 있는 서비스모델과 3D그래픽 저작도구가 필요하다. 클라우드 기반 5D BIM 저작도구를 개발 완료하고 서비스하고 있으며, 무한한 3D공간에서 이용자들이 빠른 검색과 위치이동을 통한 3D뷰잉을 위해서 항상 연구하며 개발하고 있다.3D virtual reality is actively required for the designer of the design office, the architect of the construction site, the facility of the manufacturing industrial factory, and the facility manager to utilize the work. Many of the workers in the industrial field need a service model and a 3D graphic authoring tool that can collaborate in various tasks such as design, construction, and maintenance by accessing 3D virtual sites or factories at the same time. We have developed and serviced cloud-based 5D BIM authoring tools and are constantly researching and developing for 3D viewing through fast searching and location movement in infinite 3D space.

일반적으로 3D그래픽 모델 제작 프로그램의 네비게이터뷰는 메인맵에서 먼거리 이동시 힘들게 마우스를 조작하여 이동하지 않고 이동을 원하는 위치에 대해서 네이게이터뷰 상에서 해당 위치를 클릭하면 3D그래픽 모델 제작 프로그램은 그 위치정보를 입력받아 메인맵의 카메라위치를 이동시켜서 사용자에게 편하게 이동해주는 동작방법이 적용되어 있다. 하지만 카메라의 위치만 이동시키다 보니 카메라렌즈가 바라보는 방향은 변경되지 않는 문제로 원하는 3D모델이 메인맵에 나타나지 않는 문제가 발생되고 있다. Generally, the navigator view of the 3D graphic model production program displays the position information of the 3D graphic model production program when the user clicks the corresponding position on the navigator view for the position where the user desires to move without operating the mouse by moving the mouse An operation method of moving the camera position of the main map and allowing the user to move easily is applied. However, moving the position of the camera does not change the direction in which the camera lens is viewed, so the desired 3D model does not appear in the main map.

한국공개특허 10-2001-0064680호 (2001년7월11일 공개) - 3차원 가상공간 웹 네비게이션 서비스 방법Korean Patent Publication No. 10-2001-0064680 (published on July 11, 2001) - 3D virtual space web navigation service method

본 발명은 실시간 사용자가 네비게이터맵을 통해서 카메라의 고속이동 요청시 이에 대해 메인맵에서 보여줄 카메라 뷰를 결정하는 카메라에 대해 위치파악, 공간이동, 방향전환 등을 제어하고 조작하여 사용자에게 최적의 뷰를 제공하는 사용자 뷰의 시각화 방법 및 시각화 시스템을 제공하기 위한 것이다. The present invention relates to a method and system for controlling a camera that determines a camera view to be displayed on a main map when a real-time user requests a high-speed movement of the camera through a navigator map, And provides a visualization method and a visualization system for providing a user view.

본 발명은 3D BIM(Building Information Modeling)의 가상공간에서 사용자가 네비게이션맵을 클릭하여 사용자가 원하는 공간과 위치로 사용자 뷰를 빠르게 이동하여 사용자가 설계나 모니터링하고 있는 BIM 모델링 객체를 사용자 뷰의 중심에 효율적으로 시각화하는 사용자 뷰의 시각화 방법 및 시각화 시스템을 제공하기 위한 것이다. In the present invention, a user clicks a navigation map in a virtual space of a 3D BIM (Building Information Modeling) to rapidly move a user view to a desired space and position, and a BIM modeling object that the user designs or monitors is centered on a user view And to provide a visualization method and a visualization system of a user view for efficiently visualizing the user view.

본 발명의 다른 목적들은 이하에 서술되는 바람직한 실시예를 통하여 보다 명확해질 것이다.Other objects of the present invention will become more apparent through the following preferred embodiments.

본 발명의 일 측면에 따르면, 프로젝트 공간에 대한 메인맵과 네비게이터맵이 함께 표시되는 디스플레이부를 포함하는 클라이언트에서 사용자 뷰를 시각화하는 방법으로서, (a) 상기 네비게이터맵 상에서 사용자 입력을 수신하는 단계; (b) 상기 사용자 입력에 상응하는 2차원 좌표를 추출하는 단계; (c) 상기 2차원 좌표로부터 카메라 3차원 좌표를 추론하는 단계; (d) 상기 3차원 좌표로 카메라를 이동시킨 후 상기 카메라의 위치 및 뷰 방향을 추출하고 저장하는 단계; (e) 상기 뷰 방향 내에 상기 사용자 입력에 상응하는 객체가 존재하는지 판단하는 단계; 및 (f) 상기 객체가 존재하는 경우에는 상기 메인맵에 상기 카메라의 뷰에 따른 화면을 표시하고, 상기 객체가 존재하지 않는 경우에는 상기 객체가 상기 뷰 방향 내에 위치하도록 상기 뷰 방향을 전환시킨 후 상기 메인맵에 상기 카메라의 뷰에 따른 화면을 표시하는 단계를 포함하는 사용자 뷰의 시각화 방법이 제공된다. According to an aspect of the present invention, there is provided a method of visualizing a user view in a client including a display unit in which a main map and a navigator map for a project space are displayed together, the method comprising: (a) receiving user input on the navigator map; (b) extracting two-dimensional coordinates corresponding to the user input; (c) deducing camera three-dimensional coordinates from the two-dimensional coordinates; (d) extracting and storing the position and the view direction of the camera after moving the camera in the three-dimensional coordinates; (e) determining whether an object corresponding to the user input exists in the view direction; And (f) if the object exists, displaying a screen according to the view of the camera in the main map, and if the object does not exist, switching the view direction so that the object is positioned within the view direction And displaying a screen according to the view of the camera on the main map.

상기 사용자 입력에 상응하는 임의의 객체가 선택된 경우, 상기 단계 (c)는, 선택된 상기 객체의 기준점 좌표를 방향 벡터로 대입시키는 단계; 상기 기준점 좌표 중 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하는 단계; 상기 임시 3차원 좌표에서 상기 방향 벡터의 반대방향으로 미리 지정된 거리만큼 이동한 좌표를 상기 카메라 3차원 좌표로 계산하여 추출하는 단계를 포함할 수 있다.If an arbitrary object corresponding to the user input is selected, the step (c) includes the steps of: assigning a reference point coordinate of the selected object as a direction vector; Calculating temporary three-dimensional coordinates by combining the Z coordinates of the reference point coordinates and the X, Y coordinates of the two-dimensional coordinates; And calculating and extracting, as the three-dimensional coordinates of the camera, coordinates which are moved by a predetermined distance in the direction opposite to the direction vector in the temporary three-dimensional coordinates.

상기 객체의 기준점 좌표는 3D 정보관리 데이터베이스를 관리하는 서버 엔진에 요청하여 제공받을 수 있다.The reference point coordinates of the object may be provided to the server engine managing the 3D information management database.

상기 사용자 입력에 상응하는 임의의 객체가 존재하지 않고 빈 공간이 선택된 경우, 상기 단계 (c)는 상기 프로젝트 공간의 평균값을 활용하여 추정한 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하는 단계를 포함할 수 있다.If an empty space is selected without any object corresponding to the user input, the step (c) combines the estimated Z coordinate using the average value of the project space and the X and Y coordinates of the two-dimensional coordinate And calculating temporary three-dimensional coordinates.

상기 사용자 입력에 상응하는 임의의 객체가 존재하지 않고 빈 공간이 선택된 경우, 상기 단계 (c)는 상기 프로젝트 공간의 기준점 좌표를 활용하여 추정한 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하는 단계를 포함할 수 있다.If no empty space is selected and no object corresponding to the user input is selected, the step (c) may include combining the Z coordinate estimated using the reference point coordinates of the project space and the X and Y coordinates of the two-dimensional coordinate And calculating temporary three-dimensional coordinates.

상기 단계 (f)는 상기 카메라의 뷰 방향을 상기 프로젝트 공간의 기준점을 향하도록 전환시킬 수 있다.The step (f) may switch the view direction of the camera to the reference point of the project space.

상기 단계 (d)와 (e) 사이에, 상기 위치에서 상기 카메라가 상기 가상공간의 타 객체와 중첩되는지 여부를 판단하고, 중첩이 발생하는 경우 상기 카메라의 위치를 미리 정해진 보정 범위 내에서 변경시키는 단계를 더 포함할 수 있다.Between the steps (d) and (e), it is determined whether or not the camera overlaps with another object in the virtual space at the position, and when the overlap occurs, the position of the camera is changed within a predetermined correction range Step < / RTI >

상기 단계 (f)는, 상기 뷰 방향에 상기 객체가 존재하지 않는 경우 상기 카메라의 뷰를 360도 회전하면서 상기 객체의 기준점이 스캔하고, 상기 객체의 기준점이 스캔되는 경우 스캔을 중지하고 변경된 상기 카메라의 뷰 방향을 상기 카메라의 방향 벡터로 카메라 핸들 모듈에 넘겨줄 수 있다.In the step (f), if the object does not exist in the view direction, the reference point of the object is scanned while the view of the camera is rotated 360 degrees. If the reference point of the object is scanned, To the camera handle module with the direction vector of the camera.

상기 사용자 입력에 상응하는 객체의 존부 판단은 XY 평면에 수직하게 X-RAY를 쏘아 일정 거리 내에서의 충돌 발생 여부를 확인하여 충돌이 감지되면 감지된 객체가 상기 사용자 입력에 의해 선택된 것으로 판단할 수 있다.The presence or absence of an object corresponding to the user input may be determined by determining whether a collision occurs within a predetermined distance by shooting an X-ray perpendicularly to the XY plane and determining that the detected object is selected by the user input have.

상기 프로젝트 공간은 BIM(Building Information Modeling) 기반으로 구현되어 하나 이상의 클라이언트가 설계 및 모니터링이 가능한 프로젝트에 관련된 3차원 가상공간일 수 있다.The project space may be a BIM (Building Information Modeling) -based 3D virtual space related to a project in which one or more clients can be designed and monitored.

한편 본 발명의 다른 측면에 따르면, 3차원 프로젝트 공간에 대한 설계 및 모니터링을 위한 클라이언트 엔진으로서, 메인맵과 네비게이터맵을 함께 표시하는 디스플레이부; 상기 네비게이터맵 상의 임의의 위치에 대한 사용자 입력을 수신하는 사용자 입력부; 상기 사용자 입력에 상응하는 위치의 2차원 좌표를 추출하고, 상기 위치에 상응하는 객체에 대한 객체 정보를 서버 엔진에 요청하여 전송받으며, 상기 2차원 좌표 및 상기 객체 정보에 기초하여 카메라의 3차원 좌표를 추론하는 네비게이터맵 처리 모듈; 및 상기 3차원 좌표에 상응하여 상기 카메라를 이동시킨 후 상기 카메라의 뷰 방향을 상기 객체를 향하도록 전환시킨 후 상기 카메라를 제어하여 상기 메인맵에 상기 카메라 뷰가 표시되게 하는 메인맵 처리 모듈을 포함하는 클라이언트 엔진 시스템이 제공된다.According to another aspect of the present invention, there is provided a client engine for designing and monitoring a three-dimensional project space, comprising: a display unit for displaying a main map and a navigator map together; A user input for receiving user input for any location on the navigator map; Dimensional coordinates of a position corresponding to the user input, requesting the server engine for object information about the object corresponding to the position and receiving the transmitted information, and receiving three-dimensional coordinates of the camera based on the two- A navigator map processing module for inferring the navigation map; And a main map processing module for moving the camera corresponding to the three-dimensional coordinate, switching the view direction of the camera toward the object, and controlling the camera to display the camera view on the main map A client engine system is provided.

상기 네비게이터맵 처리 모듈은 상기 위치에 상응하는 객체가 존재하는 경우 상기 객체의 기준점 정보에 상응하는 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하고, 상기 임시 3차원 좌표에서 상기 기준점 정보에 상응하는 방향 벡터의 반대방향으로 미리 지정된 거리만큼 이동한 위치를 상기 카메라의 3차원 좌표로 계산하여 추출할 수 있다.The navigator map processing module calculates temporary three-dimensional coordinates by combining the Z coordinate corresponding to the reference point information of the object and the X, Y coordinates of the two-dimensional coordinate when the object corresponding to the position exists, Dimensional coordinate of the camera by a predetermined distance in the direction opposite to the direction vector corresponding to the reference point information in the dimensional coordinates.

상기 네비게이터맵 처리 모듈은 상기 위치에 상응하는 객체가 존재하지 않는 경우 상기 프로젝트 공간의 평균값 혹은 기준점에 상응하는 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 상기 카메라의 3차원 좌표를 계산하고 추출할 수 있다.The navigator map processing module calculates the three-dimensional coordinates of the camera by combining the Z coordinate corresponding to the average value or the reference point of the project space and the X and Y coordinates of the two-dimensional coordinate when the object corresponding to the position does not exist And extracted.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages will become apparent from the following drawings, claims, and detailed description of the invention.

본 발명에 따르면, 네비게이터맵에서 사용자가 마우스 클릭으로 쉽고 빠르게 뷰를 이동하는 방식을 활용할 때 오브젝트(객체)들이 카메라렌즈 방향에 따라서 보이지 않은 경우를 없애고 항상 오브젝트가 보이도록 하는 방식을 제공함에 따라 사용자는 어떠한 빈 공간을 클릭하더라도 쉽고 빠르게 3D 가상공간 메인맵 내에서 사물(오브젝트)을 확인할 수 있게 하는 효과가 있다. According to the present invention, when a user utilizes a method of moving a view easily and quickly by a mouse click in a navigator map, a method of eliminating a case in which objects (objects) are not seen along the direction of a camera lens, Has the effect of allowing objects (objects) to be checked easily and quickly in the 3D virtual space main map even if any empty space is clicked.

또한, 실시간 사용자가 네비게이터맵을 통해서 카메라의 고속이동 요청시 이에 대해 메인맵에서 보여줄 카메라 뷰를 결정하는 카메라에 대해 위치파악, 공간이동, 방향전환 등을 제어하고 조작하여 사용자에게 최적의 뷰를 제공하는 효과가 있다. In addition, when the real-time user requests the high-speed movement of the camera through the navigator map, the camera which determines the camera view to be displayed on the main map is controlled and manipulated for the camera to provide an optimal view to the user .

또한, 3D BIM의 가상공간에서 사용자가 네비게이션맵을 클릭하여 사용자가 원하는 공간과 위치로 사용자 뷰를 빠르게 이동하여 사용자가 설계나 모니터링하고 있는 BIM 모델링 객체를 사용자 뷰의 중심에 효율적으로 시각화하는 효과도 있다. In addition, in the virtual space of the 3D BIM, the user can click on the navigation map to quickly move the user view to the desired space and position, thereby effectively visualizing the BIM modeling object that the user designs or monitors at the center of the user view have.

도 1은 본 발명의 일 실시예에 따른 사용자 뷰의 시각화 시스템의 구성을 개략적으로 나타낸 도면,
도 2는 본 발명의 일 실시예에 따른 3D 네비게이터맵 처리 모듈과 3D 가상공간 메인맵 처리 모듈에서 수행되는 사용자 뷰의 시각화 방법의 순서도,
도 3은 3D 카메라 위치 이동과 카메라 방향뷰를 조작하는 시나리오를 나타낸 도면,
도 4는 3D 가상 저작도구 프로그램의 메인맵과 3D 네비게이터맵 화면을 나타낸 도면,
도 5는 3D 네비게이터맵에서 사용자 마우스 클릭해서 3D 가상공간 메인맵에서 카메라 위치와 카메라뷰 방향이 프로그램에 의해서 조작되어 표시되는 화면 예시도,
도 6 및 도 7은 3D 네비게이터맵과 3D 가상공간에서의 카메라 위치의 상관관계를 설명하기 위한 도면.
FIG. 1 schematically illustrates a configuration of a user view visualization system according to an embodiment of the present invention.
2 is a flowchart of a method of visualizing a user view performed in a 3D navigator map processing module and a 3D virtual space main map processing module according to an embodiment of the present invention;
3 is a diagram illustrating a scenario in which a 3D camera position shift and a camera direction view are manipulated,
4 is a view showing a main map and a 3D navigator map screen of a 3D virtual authoring tool program,
FIG. 5 is a diagram illustrating a screen in which a camera position and a camera view direction in a 3D virtual space main map are manipulated by a user by clicking on a user's mouse in the 3D navigator map,
FIGS. 6 and 7 are diagrams for explaining a correlation between a 3D navigator map and a camera position in a 3D virtual space; FIG.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

또한, 각 도면을 참조하여 설명하는 실시예의 구성 요소가 해당 실시예에만 제한적으로 적용되는 것은 아니며, 본 발명의 기술적 사상이 유지되는 범위 내에서 다른 실시예에 포함되도록 구현될 수 있으며, 또한 별도의 설명이 생략될지라도 복수의 실시예가 통합된 하나의 실시예로 다시 구현될 수도 있음은 당연하다.It is to be understood that the components of the embodiments described with reference to the drawings are not limited to the embodiments and may be embodied in other embodiments without departing from the spirit of the invention. It is to be understood that although the description is omitted, multiple embodiments may be implemented again in one integrated embodiment.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일하거나 관련된 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.

앞서 설명한 것과 같이 기존에는 카메라의 위치만 이동시키다 보니 카메라렌즈가 바라보는 방향은 변경되지 않는 문제로 사용자가 확인하고자 하는 3D 모델이 메인맵에 나타나지 않는 문제가 있었다. 이하에서는 이를 해결하기 위한 사용자 뷰의 시각화 방법 및 장치에 대해 설명하기로 한다. As described above, there is a problem that the 3D model to be checked by the user does not appear in the main map because the direction of the camera lens is not changed when moving the position of the camera. Hereinafter, a user view visualization method and apparatus for solving the problem will be described.

도 1은 본 발명의 일 실시예에 따른 사용자 뷰의 시각화 시스템의 구성을 개략적으로 나타낸 도면이고, 도 2는 본 발명의 일 실시예에 따른 3D 네비게이터맵 처리 모듈과 3D 가상공간 메인맵 처리 모듈에서 수행되는 사용자 뷰의 시각화 방법의 순서도이며, 도 3은 3D 카메라 위치 이동과 카메라 방향뷰를 조작하는 시나리오를 나타낸 도면이고, 도 4는 3D 가상 저작도구 프로그램의 메인맵과 3D 네비게이터맵 화면을 나타낸 도면이며, 도 5는 3D 네비게이터맵에서 사용자 마우스 클릭해서 3D 가상공간 메인맵에서 카메라 위치와 카메라뷰 방향이 프로그램에 의해서 조작되어 표시되는 화면 예시도이고, 도 6 및 도 7은 3D 네비게이터맵과 3D 가상공간에서의 카메라 위치의 상관관계를 설명하기 위한 도면이다. 2 is a block diagram illustrating a 3D navigator map processing module and a 3D virtual space main map processing module according to an exemplary embodiment of the present invention. Referring to FIG. 1, there is shown a user view visualization system according to an exemplary embodiment of the present invention. FIG. 3 is a view showing a scenario for operating a 3D camera position movement and a camera direction view, FIG. 4 is a diagram showing a main map of the 3D virtual authoring tool program and a 3D navigator map screen And FIG. 5 is an exemplary screen view in which a camera position and a camera view direction in a 3D virtual space main map are displayed by being manipulated by a user by clicking a user's mouse in the 3D navigator map, and FIGS. 6 and 7 are views showing a 3D navigator map, And the camera position in the space.

본 발명의 일 실시예에 따른 사용자 뷰의 시각화 시스템은 다수의 사용자에 의해 동시 접속 가능한 3D 가상공간에 대해 3D 가상공간 내의 카메라 위치 및 방향에 상응하는 카메라 뷰를 보여주는 메인맵과 3D 가상공간에서의 뷰 위치를 안내하기 위한 네비게이터맵을 포함하고 있다. 네비게이터맵에서의 사용자 입력(예컨대, 마우스 클릭)에 상응하여 메인맵에서의 카메라 뷰를 전환시키되 3D 가상공간 내에 위치하는 객체들이 보이지 않게 되는 경우를 방지함으로써 사용자에게 최적의 뷰를 제공하는 것을 특징으로 한다. The visualization system of the user view according to an exemplary embodiment of the present invention includes a main map showing a camera view corresponding to a camera position and direction in a 3D virtual space, And a navigator map for guiding the view position. The camera view in the main map is switched according to a user input (e.g., a mouse click) in the navigator map, thereby preventing the objects located in the 3D virtual space from being invisible, thereby providing an optimal view to the user do.

본 명세서에서 3D 가상공간은 3차원 정보 모델을 기반으로 시설물의 생애주기에 걸쳐 발생하는 모든 정보를 통합하여 활용이 가능하도록 시설물의 형상, 속성 등을 정보로 표현한 디지털 모형인 BIM(Building Information Modeling)에 기반한 가상공간일 수 있다. 이하에서는 가상공간, BIM 가상공간이라 지칭될 수도 있다. In this specification, the 3D virtual space includes a building information modeling (BIM), which is a digital model that expresses the shape and properties of the facility by information so that all the information generated throughout the lifecycle of the facility can be utilized based on the 3D information model, Based virtual space. Hereinafter, it may be referred to as a virtual space or a BIM virtual space.

프로젝트 공간은 BIM으로 구현된 시설물에 대해 다수의 설계자가 참여하여 설계 및 모니터링을 수행하는 임의의 프로젝트에 관련된 가상공간을 의미한다. The project space refers to a virtual space related to any project in which a plurality of designers participate in the design and monitoring of facilities implemented by BIM.

3D 객체는 가상공간 내에 설계된 시설물 자체 혹은 시설물을 구성하는 건축물 혹은 설비를 나타내며, 이하에서는 3D 모델, 오브젝트, 객체, 모델, 사물 등으로 지칭될 수도 있다. The 3D object represents a facility or a facility that constitutes a facility itself or a facility designed in a virtual space. Hereinafter, the 3D object may also be referred to as a 3D model, an object, an object, a model, an object, and the like.

본 실시예에 따른 사용자 뷰의 시각화 시스템은 시각화 서비스 제공자가 운영하는 서버와 하나 이상의 시각화 서비스 사용자(BIM 설계자)가 사용하는 클라이언트를 포함한다. 서버는 서버 엔진(100)으로 구현되며, 클라이언트는 클라이언트 엔진(200)으로 구현될 수 있다. The user view visualization system according to the present embodiment includes a server operated by a visualization service provider and a client used by at least one visualization service user (BIM designer). The server may be implemented in the server engine 100, and the client may be implemented in the client engine 200.

서버 엔진(100)은 하나 이상의 클라이언트가 접속하여 동작하고 처리하는 데이터를 서비스(데이터의 저장, 조회, 가공 등)한다. The server engine 100 services (data storage, inquiry, processing, and the like) data that is connected to one or more clients and operated and processed.

서버 엔진(100)에는 3D 정보관리 데이터베이스(110), 접속관리 처리 모듈(120), 통신관리 처리 모듈(130)이 포함될 수 있다. The server engine 100 may include a 3D information management database 110, a connection management processing module 120, and a communication management processing module 130.

접속관리 처리 모듈(120)은 클라이언트의 접속 상황에 대해 관리한다. 상세하게는 클라이언트가 접속(Sing On)부터 로그아웃(Log Out)할 때까지 잡(Job)의 진행 로그 등에 대해 3D 정보관리 데이터베이스(110)에 저장하고 관리한다. 또한, 접속관리 처리 모듈(120)은 그룹관리, 사용자관리, 인증, 접근권한, 보안 등의 다양한 업무를 진행할 수도 있다. The connection management processing module 120 manages the connection status of the client. In detail, the progress log of a job is stored and managed in the 3D information management database 110 until the client logs out from the connection (Sing On). In addition, the connection management processing module 120 may perform various tasks such as group management, user management, authentication, access right, and security.

또한, 접속관리 처리 모듈(120)은 클라이언트 간의 상호 데이터 동기화를 지원한다. 제1 사용자가 프로젝트 공간 내에 객체를 추가하거나 위치 변경한 경우 해당 프로젝트 공간에 접속한 다른 사용자들에게 백그라운드 방식으로 변경된 정보를 전송하여 반영되도록 동기화를 지원할 수 있다. In addition, the connection management processing module 120 supports mutual data synchronization between clients. When the first user adds or changes an object in the project space, it can support synchronization so that the changed information is transmitted to the other users connected to the project space by reflecting the changed information in the background manner.

통신관리 처리 모듈(130)은 서버와 클라이언트 간의 통신을 관리한다. 서버와 클라이언트 간의 통신은 멀티 큐(Multi-Queue) 통신 방식의 미들웨어를 통해 이루어질 수 있다. 따라서, 통신관리 처리 모듈(130)은 서버와 클라이언트 간의 통신 연결 및 통신 단절, 큐의 데이터 처리, 통신프로토콜 설정 등의 기능을 제공할 수 있다. The communication management processing module 130 manages communication between the server and the client. Communication between the server and the client can be performed through a middleware of a multi-queue communication method. Accordingly, the communication management processing module 130 can provide functions such as communication connection and disconnection between the server and the client, data processing of the queue, communication protocol setting, and the like.

3D 정보관리 데이터베이스(110)에는 3D 모델 저작도구(300)에 의해 제작되거나 별도의 저작도구에서 제작된 3D 객체에 대한 정보가 저장 및 관리될 수 있다. 3D 객체 정보로는 메쉬(Mesh), 면(Face), 폴리곤(Polygon) 등의 형상에 관련된 기본속성 정보와, 사용자가 임포트(Import)할 때 등록(입력)하는 사용자속성값이 포함될 수 있다. The 3D information management database 110 may store and manage information about 3D objects created by the 3D model authoring tool 300 or produced by a separate authoring tool. The 3D object information may include basic attribute information related to the shape of a mesh, a face, a polygon, and the like, and a user attribute value to be registered (input) when the user imports.

또한, 클라이언트를 통해 사용자가 3D 객체를 프로젝트 공간 내에 배치시킨 경우, 그 위치좌표와 방향값, 기준점 좌표 등을 포함하는 위치속성 정보도 저장 및 관리될 수 있다. 또한, 날짜, 등록사용자명, 3D 객체 이름, 관리자, 특성, 용도, 크기, 유지관리, 가격 등과 같은 3D 객체에 대한 부가속성 정보도 저장 및 관리될 수 있다. Also, when the user places the 3D object in the project space through the client, the location attribute information including the location coordinates, the direction values, and the reference point coordinates can also be stored and managed. In addition, additional attribute information for 3D objects such as date, registered user name, 3D object name, manager, characteristic, usage, size, maintenance, price, and the like can also be stored and managed.

서버 엔진(100)은 클라이언트 엔진(200)으로부터 3D 객체 정보 요청을 수신하면, 데이터베이스(110)를 검색하여 3D 객체의 위치 정보(기준점 정보), 가상공간에서의 현재 카메라 위치 및 카메라 방향을 응답으로 클라이언트 엔진(200)에 답변할 수 있다. When the server engine 100 receives the 3D object information request from the client engine 200, the server engine 100 searches the database 110 to find the location information (reference point information) of the 3D object, the current camera position in the virtual space, The client engine 200 can respond.

클라이언트는 클라이언트 엔진(200)으로 구현될 수 있다. 또한, 3D 모델 저작도구(300)도 클라이언트로 기능할 수 있다. The client may be implemented as a client engine 200. In addition, the 3D model authoring tool 300 can also function as a client.

3D 모델 저작도구(300)는 프로젝트 공간 내에 배치되는 3D 객체를 저작하기 위한 툴(tool)이며, 서버 엔진(100)에서 관리되는 각종 3D 객체(즉, 3D 모델)을 최초 제작하는 도구이다. The 3D model authoring tool 300 is a tool for authoring a 3D object placed in a project space and is a tool for initially creating various 3D objects (i.e., a 3D model) managed by the server engine 100.

3D 모델 저작도구(300)는 3D 모델 관리부(310)와 기준점 관리부(320)를 포함할 수 있다. The 3D model authoring tool 300 may include a 3D model manager 310 and a reference point manager 320.

3D 모델 관리부(310)는 3D 객체를 생성하거나 생성된 3D 객체를 편집하는 부분이다. The 3D model management unit 310 is a part for creating a 3D object or editing a generated 3D object.

기준점 관리부(320)는 3D 모델 관리부(310)에 의해 3D 객체가 제작될 때 3D 객체의 기준점(Pivot)을 생성하고 설정한다. 기준점은 중심점이라 칭해질 수도 있다. The reference point management unit 320 generates and sets a reference point (Pivot) of the 3D object when the 3D object is created by the 3D model management unit 310. [ The reference point may be referred to as a center point.

3D 객체는 3차원 공간에서 제작이 되기에 3차원 공간의 기준점이 3D 객체의 기준점이 된다. 즉, 3D 모델 저작도구(300)의 기준점이 3D 객체의 기준점일 수 있다. Since the 3D object is produced in the three-dimensional space, the reference point of the three-dimensional space becomes the reference point of the 3D object. That is, the reference point of the 3D model authoring tool 300 may be the reference point of the 3D object.

예를 들어 핸드폰을 3D 객체로 제작하는 경우에 핸드폰에서 기준점을 사용자가 정하고자 하면 핸드폰 앞쪽모서리 or 뒤쪽 하단 모서리 or 핸드폰 중앙 등 사용자가 기준점을 잡고자 하는 위치를 3D 모델 저작 공간의 원점에 배치하여 모델을 생성하면 바로 그 위치가 기준점이 된다. For example, if a user wants to set a reference point in a mobile phone when making a mobile phone as a 3D object, the user places the reference point in the front corner of the cell phone, the bottom corner at the back or the center of the cell phone at the origin of the 3D model authoring space When you create a model, that position becomes the reference point.

이렇게 제작된 3D 객체를 완성한 후 익스포트(Export)를 시키면 그 위치가 바로 (0,0,0)이 된다. 3D 객체를 서버 엔진(100) 혹은 클라이언트 엔진(200)에 임포트하면 클라이언트 엔진(200)의 3D 기준점(절대 기준점)에 대해 미리 정해진 상대 좌표의 위치에 배치하게 된다. 이 때 절대 기준점에 대한 객체 기준점까지의 벡터로부터 3D 객체가 위치한 거리와 방향값이 자동 생성될 수 있다. After completing the created 3D object and exporting it, its position becomes (0,0,0). When the 3D object is imported to the server engine 100 or the client engine 200, the 3D object is placed at a predetermined relative coordinate position with respect to the 3D reference point (absolute reference point) of the client engine 200. At this time, the distance and direction values of the 3D object are automatically generated from the vector up to the object reference point with respect to the absolute reference point.

사용자(BIM 설계자)는 3D 모델 저작도구(300)를 이용하여 다양한 3D 객체를 생성하고 3D 객체 및 그 속성정보를 서버 엔진(100)에 등록시킬 수 있다. A user (BIM designer) can create various 3D objects using the 3D model authoring tool 300 and register the 3D objects and their attribute information in the server engine 100.

또한, 클라이언트는 클라이언트 엔진(200)을 포함할 수 있다. 클라이언트 엔진(200)은 각종 3D 객체가 배치된 가상공간(프로젝트 공간)에 대한 다양한 카메라 뷰를 제공하여 사용자에게 가상현실을 보여주며, 가상공간 내에서 고속이동할 수 있도록 네비게이터맵을 제공해준다. In addition, the client may include a client engine 200. The client engine 200 provides a variety of camera views for a virtual space (project space) in which various 3D objects are arranged, thereby displaying a virtual reality to the user and providing a navigator map for moving at a high speed within the virtual space.

도 4를 참조하면, 클라이언트에서 실행되는 클라이언트 엔진(200)이 제공하는 프로그램 화면(500)이 예시되어 있다. 프로그램 화면(500)은 상대적으로 큰 면적을 차지하는 메인 영역(502)과, 메인 영역(502)에 비해 작은 면적을 차지하는 서브 영역(504)으로 구분될 수 있으며, 메인 영역(502)에는 메인맵(510)이 표시되고 서브 영역(504)에는 네비게이터맵(520)이 표시될 수 있다. Referring to FIG. 4, a program screen 500 provided by the client engine 200 executing on the client is illustrated. The program screen 500 can be divided into a main area 502 occupying a relatively large area and a sub area 504 occupying a smaller area than the main area 502. The main area 502 includes a main map 510 and the navigator map 520 may be displayed in the sub-area 504.

클라이언트 엔진(200)은 현재의 카메라 위치와 카메라 뷰 방향을 임시저장하고, 클릭된 객체정보는 서버 엔진(100)에게 정보 요청해서 얻은 다음 이동할 카메라 위치와 카메라 뷰 방향을 계산하여 가상공간에서의 카메라 이동을 조작할 수 있다. The client engine 200 temporarily stores the current camera position and the camera view direction and calculates the camera position and camera view direction obtained by requesting information of the clicked object information from the server engine 100, Movement can be manipulated.

클라이언트 엔진(200)은 메인맵 처리 모듈(210)과 네비게이터맵 처리 모듈(220)을 포함한다. 또한, 사용자 입력부(230)와 디스플레이부(240)를 포함할 수 있다. The client engine 200 includes a main map processing module 210 and a navigator map processing module 220. The user input unit 230 and the display unit 240 may be included.

사용자 입력부(230)는 사용자가 카메라 뷰를 보고자 하는 객체를 선택하거나 카메라 뷰를 보고 싶은 위치를 지정하는 사용자 입력을 받는다. The user input unit 230 receives a user input for selecting a user to view the camera view or a location to view the camera view.

사용자 입력부(230)는 마우스로 이루어져 디스플레이부(240)에 표시되는 커서가 목표 위치에 도달한 경우 마우스 클릭을 통해 사용자 입력을 받을 수 있다. 마우스 대신에 키보드를 통해 사용자 입력을 받을 수도 있다. 또는 사용자 입력부(230)와 디스플레이부(240)를 터치스크린패널로 이루어져, 터치 방식으로 사용자 입력을 받을 수도 있다. The user input unit 230 may be a mouse and receive a user input through a mouse click when the cursor displayed on the display unit 240 reaches a target position. You can also receive user input through the keyboard instead of the mouse. Alternatively, the user input unit 230 and the display unit 240 may be touch screen panels to receive user input in a touch manner.

디스플레이부(240)는 도 4에 도시된 것과 같은 프로그램 화면(500)을 표시한다. 터치스크린패널로 이루어진 경우에는 사용자 입력부(230)와 일체로 형성될 수도 있다. The display unit 240 displays a program screen 500 as shown in FIG. Or may be formed integrally with the user input unit 230 in the case of a touch screen panel.

이하에서는 네비게이터맵 처리 모듈(220)과 메인맵 처리 모듈(210)에서 수행되는 사용자 뷰의 시각화 방법에 대하여 도 2를 참조하여 상세히 설명하기로 한다. Hereinafter, a method of visualizing the user view performed by the navigator map processing module 220 and the main map processing module 210 will be described in detail with reference to FIG.

① 사용자 입력 : 사용자 입력부(230)를 통해 사용자 입력을 수신한다. 본 실시예에서 클라이언트는 3D 모델 저작도구(300)로서 프로젝트 공간 내에서 3D 객체의 설계(예컨대, BIM 설계)가 가능하게 할 수 있다. 또는 클라이언트는 단순히 뷰어로서만 기능하여 프로젝트 공간에 대한 모니터링(예컨대, BIM 모니터링)만이 가능하게 할 수도 있다. 어느 경우이든지 프로그램 화면에 구현된 네비게이터맵(520)에서 사용자가 무한한 3D 가상공간에서 원하는 위치로 고속이동을 원하는 위치에 대해 정해진 방식(예. 마우스 클릭, 터치 입력 등)으로 입력할 수 있다. 이하에서는 발명의 이해와 설명의 편의를 위해 사용자 입력이 마우스 클릭으로 이루어진 경우를 가정하여 설명하기로 한다. (1) User input: User input is received through the user input unit 230. In this embodiment, the client can enable the design of the 3D object (e.g., BIM design) within the project space as the 3D model authoring tool 300. Alternatively, the client may function solely as a viewer, allowing only monitoring of the project space (e.g., BIM monitoring). In any case, the navigator map 520 implemented in the program screen allows the user to input a desired position in the infinite 3D virtual space to a desired position in a predetermined manner (e.g., mouse click, touch input, etc.). Hereinafter, for ease of understanding and explanation, it is assumed that a user input is made by mouse click.

② 2D 좌표 추출 : 사용자 입력에 상응하여 네비게이터맵(520) 상에서 클릭된 위치에 대한 2차원 좌표가 추출될 수 있다. 추출된 2차원 좌표는 네비게이터맵 처리 모듈(220)로 전달될 수 있다. 2D coordinate extraction: Two-dimensional coordinates of the clicked position on the navigator map 520 may be extracted corresponding to the user input. The extracted two-dimensional coordinates may be transmitted to the navigator map processing module 220.

네비게이터맵(520)의 내부는 3차원 가상공간에 관한 것이지만, 디스플레이부(240)에서 표현되는 화면에는 2차원으로 표시되기에 사용자 입력에 대해서 2차원인 X, Y 좌표에 대해서만 추출이 가능하다. 이렇게 추출된 X, Y 좌표는 메모리의 임시 저장공간에 저장된다. Since the inside of the navigator map 520 is related to the three-dimensional virtual space, the screen represented by the display unit 240 is displayed in two dimensions, so that it is possible to extract only the two-dimensional X and Y coordinates with respect to the user input. The extracted X, Y coordinates are stored in the temporary storage space of the memory.

③ 3D 좌표 계산 : 네비게이터맵 처리 모듈(220)은 앞서 추출된 2차원 좌표를 이용하여 3차원 좌표를 추론한다. 3차원 추론 방법은 다음과 같다. (3) 3D coordinate calculation: The navigator map processing module 220 deduces the three-dimensional coordinates using the extracted two-dimensional coordinates. The 3D reasoning method is as follows.

사용자가 네비게이터맵에서 특정 객체를 클릭한 경우에는, 선택된 객체의 기준점의 X, Y, Z 좌표는 방향 벡터로 대입시킨다. 그리고 Z 값만을 넘겨받아 클릭된 2차원 기반의 X, Y 좌표와 선택된 객체의 기준점의 Z 좌표를 조합하여 3차원 좌표를 계산할 수 있다. 이렇게 생성된 3차원 좌표에서 앞서 생성된 방향 벡터의 반대방향으로 지정된 거리(예. 10m)만큼 이동한 좌표를 카메라 3차원 좌표로 계산하여 추출한다. 여기서, 객체의 기준점 정보는 서버 엔진(100)에 요청하여 제공받을 수 있다. When the user clicks a specific object in the navigator map, the X, Y, and Z coordinates of the reference point of the selected object are substituted into the direction vector. Then, the 3D coordinate can be calculated by combining the Z coordinate of the selected object with the X and Y coordinates based on the clicked two-dimensional coordinates. In the three-dimensional coordinates thus generated, the coordinates moved by a distance (eg, 10 m) specified in the direction opposite to the direction vector generated earlier are calculated and extracted as camera three-dimensional coordinates. Here, the reference point information of the object may be provided to the server engine 100 by request.

또는 사용자가 네비게이터맵에서 빈 공간을 클릭한 경우에는, 선택된 객체가 없기 때문에 Z 좌표를 구할 수가 없다. 이 경우에는 프로젝트 공간의 평균값을 활용하여 Z 좌표를 추정할 수 있다. 프로젝트 공간의 평균값이라 함은 프로젝트 공간에 속하는 각종 객체들의 기준점들에 대한 Z 좌표들의 평균을 의미한다. Or, if the user clicks an empty space in the navigator map, the Z coordinate can not be found because there is no selected object. In this case, the Z coordinate can be estimated using the average value of the project space. The average value of the project space means the average of the Z coordinates of the reference points of various objects belonging to the project space.

또는 프로젝트 공간의 평균값 대신에 프로젝트 공간의 기준점의 Z 좌표를 이용하여 3차원 좌표를 계산할 수도 있다. Alternatively, three-dimensional coordinates may be calculated using the Z coordinate of the reference point of the project space instead of the average value of the project space.

④ 카메라 위치 및 카메라 뷰 방향 추출 및 저장 : 3차원 좌표가 계산되면, 가상공간 내에서 카메라를 계산된 좌표에 이동시킨다. 그리고 네비게이터맵 처리 모듈(220)은 현재의 카메라 위치를 위치 임시변수(temp_pre_camera_pos)에 저장하고 카메라뷰 방향벡터로 방향 임시변수(temp_pre_camera_vector)에 저장한다. 현재 카메라 위치 및 카메라뷰 방향벡터는 서버 엔진(100)에 요청하여 제공받을 수 있다. ④ Extraction and storage of camera position and camera view direction: When the 3D coordinates are calculated, the camera is moved to the calculated coordinates within the virtual space. Then, the navigator map processing module 220 stores the current camera position in the position temporary variable (temp_pre_camera_pos) and stores it in the direction temporary variable (temp_pre_camera_vector) as the camera view direction vector. The current camera position and the camera view direction vector can be requested and provided to the server engine 100.

⑤ 이동할 카메라 공간 및 위치 좌표 계산 : 그리고 네비게이터맵 처리 모듈(220)은 앞서 계산한 3차원 좌표에 따라 이동할 위치에 카메라 배치가 가상공간 내의 다른 객체와 겹쳐서 뷰잉에 문제가 발생되지 않는지 판단한다. 이상 없으면 해당 카메라위치 좌표값을 임시변수에 그대로 두며, 만약에 문제가 발생하면 위치 임시변수(temp_pre_camera_pos)에서 미리 정해진 범위의 보정값(예. 1~50m)을 가산하면서 다른 객체와의 중첩이 해소되는지를 유한루틴쓰레드를 통해 확인한다. 그리고 중첩이 해소되는 경우의 위치 좌표값을 임시변수에 업데이트한다. (5) Calculation of camera space and position coordinates to be moved: Then, the navigator map processing module 220 determines whether the camera arrangement at the position to be moved according to the previously calculated three-dimensional coordinates overlaps with other objects in the virtual space, thereby causing no problem in viewing. If there is no abnormality, the camera position coordinate value is kept in the temporary variable. If a problem occurs, it is possible to add a predetermined range of correction value (eg, 1 to 50 m) in the temporary temporary variable (temp_pre_camera_pos) Is confirmed through a finite routine thread. Then, the position coordinate value when the overlap is eliminated is updated to the temporary variable.

⑥ 카메라 이동 : 메인맵 처리 모듈(210)은 네비게이터맵 처리 모듈(220)에서 임시 저장된 위치 임시변수 및 방향 임시변수를 추출하여 실제 가상공간에서 카메라를 해당 위치로 이동시키는 명령을 3D 엔진의 카메라 핸들 모듈에 하달한다. 또한, 카메라 핸들 모듈은 카메라뷰 방향 벡터정보(방향 임시변수)를 통해 카메라뷰 방향을 전환한다. 여기서, 카메라 핸들 모듈은 메인맵 처리 모듈(210)에 포함될 수 있다. (6) Camera Movement: The main map processing module 210 extracts a temporary temporary variable and a temporary temporary variable temporarily stored in the navigator map processing module 220 and transmits a command to move the camera to the corresponding position in the actual virtual space, To the module. In addition, the camera handle module switches the camera view direction through the camera view direction vector information (directional temporary variable). Here, the camera handle module may be included in the main map processing module 210.

⑦ 카메라 뷰 내의 객체 존재 여부 판단 : ⑥에서의 조작에 따라 카메라를 이동시킨 후 실제 카메라 뷰 내에 사용자가 선택한 객체가 존재하는지 판단한다. 객체의 존부 판단은 카메라 뷰 내에 해당 객체의 기준점 좌표가 존재하는지를 판단함으로써 이루어질 수 있다. 만약에 존재한다면 true, 존재하지 않는다면 false를 리턴할 수 있다. ⑦ Determine whether an object exists in the camera view: Move the camera according to the operation in ⑥ and judge whether the object selected by the user exists in the actual camera view. The presence or absence of the object can be determined by determining whether the reference point coordinate of the object exists in the camera view. It can return true if it exists, or false if it does not.

⑧ 존재함 : 객체가 존재하여 true가 리턴되는 경우에는 카메라 핸들 모듈의 API를 호출한다. ⑧ Exist: If the object exists and true is returned, the API of the camera handle module is called.

⑨⑩ 존재않음/카메라 뷰 위치 계산 및 카메라 뷰 방향 전환 : 객체가 존재하지 않아 false가 리턴되는 경우에는 카메라 뷰 방향을 변경할 필요가 있음을 의미한다. 카메라 핸들 모듈에 쓰레드를 통해서 360도 회전하면서 사용자가 선택한 위치의 객체 기준점을 스캔한다. 스캔 중에 사용자가 선택한 위치가 발견되면 스캔을 중지하고, 카메라 핸들 모듈의 API를 호출하면서 검색된 벡터 정보(변경된 카메라 뷰 방향벡터)를 넘겨준다. ⑨ ⑩ ⑩ ⑩ ⑩ /.................................. It rotates 360 degrees through the thread on the camera handle module and scans the object reference point of the position selected by the user. If a user-selected location is found during the scan, the scan is stopped and the retrieved vector information (changed camera view direction vector) is passed while calling the API of the camera handle module.

⑪ 메인맵 적용 : 카메라 핸들 모듈이 호출되어 모듈 처리가 완료되면, 메인맵에는 사용자가 선택한 객체가 보여지고 해당 프로세스는 정상 종료할 수 있다. ⑪ Apply main map: When the camera handle module is called and module processing is completed, the main map shows the object selected by the user and the process can be terminated normally.

⑫ 사용자 확인 : 사용자는 객체를 육안으로 확인하고 필요한 사항에 대해서는 다시 마우스 등을 통해 입력할 수 있다. ⑫ User confirmation: The user can visually check the object and input necessary information again with the mouse or the like.

본 실시예에서 2차원으로 표현된 네비게이터맵에서 사용자가 이동을 원하는 위치에 마우스 클릭시 3차원의 가상공간에서의 카메라 이동과 렌즈 방향을 구하는 공식에 대해 도 6 및 도 7을 참조하여 보다 상세히 설명하기로 한다. 도 6은 네비게이터맵이고 도 7은 가상공간을 나타낸다. In the present embodiment, a formula for obtaining a camera movement and a lens direction in a three-dimensional virtual space when a mouse is clicked at a position where the user wants to move in the navigator map expressed in two dimensions will be described in more detail with reference to FIGS. 6 and 7 . Fig. 6 shows a navigator map, and Fig. 7 shows a virtual space.

(가) 네비게이터맵에서 사용자가 마우스 클릭한 위치(도 6의 포인트 1 참조) (A) the position where the user clicked the mouse in the navigator map (see point 1 in Fig. 6)

X축 : Xm, Y축 : YmX axis: Xm, Y axis: Ym

(나) 가상공간의 카메라 현재 위치(도 6의 포인트 2 및 도 7의 포인트 12 참조) (B) The camera current position of the virtual space (see point 2 in FIG. 6 and point 12 in FIG. 7)

X축 : Xcam, Y축 : Ycam, Z축 : ZcamX axis: Xcam, Y axis: Ycam, Z axis: Zcam

(다) (가)의 마우스 위치에서 3D로 변환한 값(위치) (도 7의 포인트 11 참조)(C) The value (position) converted to 3D from the mouse position (a) (see point 11 in Fig. 7)

X축 : Xm3, Y축 : Ym3, Z축 : Zm3X axis: Xm3, Y axis: Ym3, Z axis: Zm3

(라) 가상공간의 기준(중심)위치(도 6의 포인트 3 및 도 7의 포인트 13 참조) (D) Reference (center) position of the virtual space (see point 3 in Fig. 6 and point 13 in Fig. 7)

X축 위치 = Xcen, Y축 좌표 = Ycen, Z축 좌표 = ZcenX axis position = Xcen, Y axis coordinate = Ycen, Z axis coordinate = Zcen

(마) 네비게이터맵의 크기 및 보정 비율 (E) Size and correction ratio of the navigator map

Wm : 너비값, Hm : 높이값, R : 2D에서 3D로 변환시 보정율Wm: Width value, Hm: Height value, R: Correction factor when converting from 2D to 3D

(바) 가상공간에서 카메라 위치 구하기 공식 (도 7의 포인트 11 위치 구하기)(F) Obtaining the camera position in the virtual space Formula (Finding the position of point 11 in FIG. 7)

X축 좌표 : (Xm - (Wm/2))*R = Xm3 = XcamX axis coordinate: (Xm - (Wm / 2)) * R = Xm3 = Xcam

Y축 좌표 : (Ym - (Hm/2))*R = Ym3 = YcamY axis coordinate: (Ym - (Hm / 2)) * R = Ym3 = Ycam

Z축 좌표 : (고정상수) = Zm3 = ZcamZ coordinate: (fixed constant) = Zm3 = Zcam

(바) 과정 이후에 포인트 11 위치가 객체 내에 존재하는 경우에는 카메라와 중첩되므로, 포인트 14로의 위치 보정이 이루어질 수 있다. 이러한 위치 보정은 카메라렌즈 방향(Angle)을 구하여 가상공간의 기준위치로부터 멀어지는 방향으로 이동함으로써 이루어질 수 있게 된다. If the point 11 position is present in the object after the step (f), the positional correction to the point 14 can be performed because it is overlapped with the camera. This position correction can be made by moving the camera lens direction (Angle) away from the reference position of the virtual space.

(사) 카메라렌즈 Angle 구하기 공식(G) Camera lens Angle calculation formula

dx = Xcen - Xcamdx = Xcen - Xcam

dy = Ycen - Ycamdy = Ycen - Ycam

dz = Zcen - Zcamdz = Zcen - Zcam

렌즈 X Angle : Acamx = tan-1(dz/dy)Lens X Angle: Acamx = tan-1 (dz / dy)

렌즈 Y Angle : Acamy = tan-1(dz/dx)Lens Y Angle: Acamy = tan-1 (dz / dx)

(아) 카메라 이동 공식 구하기(A) Obtaining camera movement formula

이동할 카메라 X위치 : camPOSx = Xm3Moving camera X position: camPOSx = Xm3

이동할 카메라 Y위치 : camPOSy = Ym3Moving camera Y position: camPOSy = Ym3

이동할 카메라 Z위치 : camPOSz = Zm3Moving camera Z position: camPOSz = Zm3

이동할 카메라 Angle : camAngleX = AcamxMoving camera Angle: camAngleX = Acamx

이동할 카메라 Angle : camAngleY = AcamyMoving camera Angle: camAngleY = Acamy

상기 과정들을 통해 카메라의 위치는 포인트 12에서 포인트 14로 이동하게 되며, 포인트 14에서 카메라 렌즈 초점이 회전하여 항상 카메라 초점이 객체(포인트 11)의 기준점을 바라보도록 각도를 설정할 수 있다. Through the above processes, the camera position moves from point 12 to point 14, and at the point 14, the camera lens focus is rotated so that the angle can be set so that the camera focus always looks at the reference point of the object (point 11).

본 실시예에 의하면 네비게이터맵을 이용하여 사용자는 넓은 3차원 가상공간에서 쉽고 빠르게 원하는 위치로 카메라를 이동시켜 1회 조작으로 원하는 객체를 메인맵을 통해 확인할 수 있게 된다. According to the present embodiment, the user can easily and quickly move the camera to a desired position in a wide three-dimensional virtual space using the navigator map, and can confirm the desired object through the main map in one operation.

기존에는 가상공간 내에서 카메라를 위치 이동시킨다 할지라도 카메라 렌즈 방향이 이전의 방향이 그대로 유지되어 변경되지 않음으로써 사용자가 카메라를 이동시켜 찾고자 하는 객체가 카메라 렌즈 방향의 옆이나 뒤쪽에 존재하는 경우 메인맵의 카메라 뷰에서는 보이지 않는 결과가 초래되는 문제점이 있었다. 하지만, 본 실시예에 의하면 카메라의 위치 이동과 함께 카메라 렌즈 방향이 사용자에 의해 선택된 객체(3D 모델)를 향하도록 초점 이동이 이루어져 편의성이 향상된 사용자 뷰 시각화가 이루어질 수 있게 된다. 이 경우 사용자는 네비게이터맵을 통해 어떤 위치에 이동한다 할지라도 항상 카메라 렌즈는 객체를 바라보게 되므로 쉽게 조작이 가능하여 BIM 설계 및 모니터링에 편의성이 향상될 수 있다. In the conventional case, even if the camera is moved within the virtual space, the direction of the camera lens is kept unchanged, and the user moves the camera so that the object to be searched exists on the side or back of the camera lens. There is a problem that the camera view of the map causes an invisible result. However, according to the present exemplary embodiment, the focus movement is performed such that the direction of the camera lens is directed to the object (3D model) selected by the user along with the movement of the camera, so that user view visualization with improved convenience can be performed. In this case, even if the user moves to any position through the navigator map, since the camera lens always looks at the object, the user can easily operate the camera lens and the convenience of BIM design and monitoring can be improved.

도 3을 참조하면, 사용자, 네비게이터맵, 클라이언트 엔진, 서버 엔진, 메인맵을 이용하여 카메라 위치 이동 및 방향 뷰를 조작하는 시나리오가 도시되어 있다. 사용자는 네비게이터맵에서 마우스 클릭, 터치 입력 등의 방식으로 사용자 입력을 수행한다(S400). Referring to FIG. 3, there is shown a scenario in which a camera position and direction view are manipulated using a user, a navigator map, a client engine, a server engine, and a main map. The user performs a user input in a navigator map by a mouse click, a touch input, or the like (S400).

네비게이터맵(520)을 통해 사용자 입력 발생 여부와 사용자 입력 위치 좌표에 대해 확인한다(S405). ismouse_event()는 마우스 클릭과 같은 사용자 입력이 있었는지를 확인하는 함수이며, 이벤트를 식별하기 위한 id와 사용자 입력 위치좌표에 관한 픽셀 정보를 파라미터이다. The user input is confirmed through the navigator map 520 and the user input position coordinate is checked (S405). ismouse_event () is a function that checks whether user input such as a mouse click is present, and is an id for identifying an event and a pixel information about a user input position coordinate.

네비게이터맵(520)을 통해 사용자가 선택한 객체 정보를 검색하고, 특정 객체가 선택된 경우 객체 좌표 정보를 서버 엔진(100)에 요청한다(pos_object_req(id,size,posX,...), S410~S415). 특정 객체가 선택되지 않은 경우에는 객체 좌표 정보 대신에 프로젝트 공간에 대한 기준점 정보를 요청할 수도 있다. 서버 엔진(100)은 요청을 접수하고, 데이터베이스를 검색하여 객체 좌표 정보를 추출하여 응답해 줄 수 있다(pos_object_res(id,size,posX,...), S420~S425). 여기서, 객체 좌표 정보는 객체의 기준점 좌표일 수 있다. (Id, size, posX, ...) from the server engine 100 when the specific object is selected, through the navigator map 520. (S410-S415 ). If a specific object is not selected, it may request base point information on the project space instead of the object coordinate information. The server engine 100 can receive a request, retrieve a database, and extract and respond to object coordinate information (pos_object_res (id, size, posX, ...), S420 to S425). Here, the object coordinate information may be a reference point coordinate of the object.

클라이언트 엔진(200)은 서버 엔진(100)으로부터 응답을 수신하면, 이에 기초하여 카메라 위치와 카메라 뷰 방향을 계산한다. 카메라 뷰 내에 객체가 존재하는지 여부를 판단하고 존재하지 않는 경우에는 카메라 뷰 방향을 전환시킨다. 이후 카메라 뷰 내에 객체가 존재하게 된 경우에 카메라 렌더링을 실시한다(S430). 카메라 위치와 뷰 방향의 계산, 뷰 방향의 전환에 대해서는 앞서 상세히 설명하였는 바 생략하기로 한다. 카메라 렌더링 실시 결과에 대해서는 메인맵(510)을 통해 사용자가 확인 가능하게 표시될 수 있다(rendercam_view(cam_no,posX,...), rendercam_view_vector(cam_no,posX,...), S435~S440). When the client engine 200 receives a response from the server engine 100, the client engine 200 calculates the camera position and the camera view direction based on the response. It is determined whether or not an object exists in the camera view, and if not, the camera view direction is switched. When an object exists in the camera view, the camera is rendered (S430). The calculation of the camera position and the view direction, and the switching of the view direction have been described in detail in the foregoing. (Camera_no, posX, ...), rendercam_view_vector (cam_no, posX, ...), S435 to S440) can be displayed by the user through the main map 510.

도면에서는 네비게이터맵(520)과 메인맵(510)이 클라이언트 엔진(200)가 별도로 구현된 것처럼 도시되어 있지만, 클라이언트 엔진(200)에 네비게이터맵 처리 모듈(220)과 메인맵 처리 모듈(210)이 포함되어 있는 바, S410은 클라이언트 엔진(200)에서 수행되는 과정들일 수 있다. Although the navigator map 520 and the main map 510 are shown separately implemented as the client engine 200 in the drawing, the navigator map processing module 220 and the main map processing module 210 are installed in the client engine 200 And S410 may be processes performed in the client engine 200. [

본 실시예에서 카메라 뷰 방향을 전환하는 다른 방법으로는 사용자 입력에 따라 클릭된 픽셀위치인 X, Y 좌표와 추출된 기준점(객체 기준점 혹은 프로젝트 공간의 기준점)의 Z 좌표를 이용하여 카메라가 이동할 위치로 변환하여 카메라를 그 위치로 이동시킨 후, 이동된 카메라의 벡터를 지정하는데 벡터 방향은 프로젝트 공간의 중앙값으로 입력할 수도 있다. 이런 방법으로 사용자는 네비게이터맵의 어떤 위치를 클릭하여 카메라를 이동시켜도 카메라렌즈 방향은 프로젝트 공간의 중앙을 바라보기 때문에 메인맵에서 사물이 보이지 않는 현상은 발생되지 않게 한다.Another method of switching the camera view direction in this embodiment is to use the Z coordinate of the pixel position that is clicked according to the user input and the Z coordinate of the extracted reference point (the reference point of the object space or the project space) , The camera is moved to that position, the vector of the moved camera is designated, and the vector direction can be input as a median value of the project space. In this way, even if the user moves the camera by clicking on a certain position of the navigator map, the direction of the camera lens looks at the center of the project space, so that no object can be seen in the main map.

본 실시예에서 네비게이터맵에서 사용자가 클릭하는 위치(모니터의 픽셀좌표 Point (X,Y))는 사용자가 보고자하는 객체가 되는 것이다. In this embodiment, the position (the pixel coordinates Point (X, Y) of the monitor) clicked by the user in the navigator map is the object that the user wants to view.

기존의 타프로그램 같은 경우는 카메라를 그 위치에 이동시킨다. 이럴 경우 문제는 카메라위치가 객체속으로 들어가거나 또는 객체와 너무 근접해서 사용자가 객체를 보지못하거나 판단하지 못하는 경우가 발생해서 다시 메인맵에서 방향키를 이용해서 전후좌후로 이동하여 초점을 맞추어야 하지만 본 실시예에서는 사용자가 클릭한 위치를 카메라가 바라볼 수 있도록 카메라를 일정한 거리(설정가능)로 뒤로 이동시켜 가시거리를 확보할 수 있다. 또한 카메라렌즈방향을 클릭한 객체의 기준점을 바라보도록 조작할 수 있다.In the case of other existing programs, the camera is moved to that position. In this case, the problem may be that the camera position is too close to the object or the user can not see or observe the object, so it is necessary to move back and forth and backward by using the direction key in the main map again, In the embodiment, the camera can be moved backward at a predetermined distance (settable) so that the camera can see the position clicked by the user, thereby securing the viewing distance. You can also manipulate the camera lens to look at the object's reference point by clicking on it.

단 사용자가 객체를 클릭하지 않고 빈공간을 클릭하면 객체위치를 인지하지 못할 수 있는데, 이 경우에는 사용자가 가시거리를 고려해서 카메라위치를 클릭한 것으로 판단하여 사용자가 원하는대로 클릭위치에 카메라를 이동시키고 카메라렌즈방향을 전체 프로젝트 공간 중심점(사용자가 모델링하기 전에 미리 정의한 공간(큐브형태의 Zone 설정한 곳)의 기준점)으로 카메라렌즈 방향을 조작한다.However, if the user clicks the blank space without clicking the object, it may not be able to recognize the position of the object. In this case, it is determined that the user has clicked the camera position in consideration of the viewing distance, And manipulate the direction of the camera lens to the entire project space center point (the reference point of the predefined space (the place where the cube type zone is set) before the user models).

또한, 본 실시예에서는 네비게이터맵을 클릭할 때 클릭된 위치의 객체가 존재하는지 판단한다. 판단방법은 모니터상은 2D(X,Y)이므로 Z축은 수직 방향으로(XY평면에 수직하게) X-RAY를 쏘아서 일정거리 내(미리 정의한 공간 내)의 충돌을 확인한다. 충돌이 감지되면 사용자가 감지된 객체를 찍은 것으로 판단할 수 있다.Also, in this embodiment, when the navigator map is clicked, it is determined whether there is an object at the clicked position. Since the monitor image is 2D (X, Y), the X-ray is shot in the vertical direction (perpendicular to the XY plane) to confirm the collision within a certain distance (within the predefined space). If a collision is detected, the user can determine that the object has been captured.

그리고 사용자가 빈공간을 찍었을 때는 객체가 감지되지 않기 때문에 사용자가 객체를 보고자 하는게 아니고 카메라위치를 이동시킬려고 판단함으로 이 경우 카메라렌즈 초점방향을 미리 정의한 공간의 중심점을 바라보도록 한다.When the user takes an empty space, the object is not detected. Therefore, the user does not want to view the object but decides to move the camera position. In this case, the user looks at the center point of the space defined in advance.

또한, 사용자가 원하는 객체를 보고자할 때는 객체를 찍었을 것인데 빈공간을 찍은 것은 그 위치로 일단 카메라만 이동시키고 다시 방향키로 조작해서 객체를 찾아보겠다는 것으로 판단하여 카메라를 클릭한 위치로 이동시키고 초점은 프로젝트 공간의 중앙점을 바라보도록 처리할 수도 있다. In addition, when the user wants to see the desired object, it is assumed that the object is taken. When the empty space is taken, the camera is moved to the position and the camera is operated by the direction key again. Can be manipulated to look at the center point of the project space.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention as defined in the appended claims. It will be understood that the invention may be varied and varied without departing from the scope of the invention.

100: 서버 엔진 110: 3D 정보관리 데이터베이스
120: 접속관리 처리 모듈 130: 통신관리 처리 모듈
200: 클라이언트 엔진 210: 메인맵 처리 모듈
220: 네비게이터맵 처리 모듈 230: 사용자 입력부
240: 디스플레이부 300: 3D 모델 저작도구
310: 3D 모델 관리부 320: 기준점 관리부
100: Server Engine 110: 3D Information Management Database
120: connection management processing module 130: communication management processing module
200: client engine 210: main map processing module
220: navigator map processing module 230: user input
240: Display unit 300: 3D model authoring tool
310: 3D model management unit 320:

Claims (13)

프로젝트 공간에 대한 메인맵과 네비게이터맵이 함께 표시되는 디스플레이부를 포함하는 클라이언트에서 사용자 뷰를 시각화하는 방법으로서,
(a) 상기 네비게이터맵 상에서 사용자 입력을 수신하는 단계;
(b) 상기 사용자 입력에 상응하는 2차원 좌표를 추출하는 단계;
(c) 상기 2차원 좌표로부터 카메라 3차원 좌표를 추론하는 단계;
(d) 상기 3차원 좌표로 카메라를 이동시킨 후 상기 카메라의 위치 및 뷰 방향을 추출하고 저장하는 단계;
(e) 상기 뷰 방향 내에 상기 사용자 입력에 상응하는 객체가 존재하는지 판단하는 단계; 및
(f) 상기 객체가 존재하는 경우에는 상기 메인맵에 상기 카메라의 뷰에 따른 화면을 표시하고, 상기 객체가 존재하지 않는 경우에는 상기 객체가 상기 뷰 방향 내에 위치하도록 상기 뷰 방향을 전환시킨 후 상기 메인맵에 상기 카메라의 뷰에 따른 화면을 표시하는 단계를 포함하되,
상기 단계 (f)는,
상기 뷰 방향에 상기 객체가 존재하지 않는 경우 상기 카메라의 뷰를 360도 회전하면서 상기 객체의 기준점이 스캔하고, 상기 객체의 기준점이 스캔되는 경우 스캔을 중지하고 변경된 상기 카메라의 뷰 방향을 상기 카메라의 방향 벡터로 카메라 핸들 모듈에 넘겨주는 것을 특징으로 하는 사용자 뷰의 시각화 방법.
CLAIMS 1. A method of visualizing a user view in a client including a display portion in which a main map and a navigator map for a project space are displayed,
(a) receiving user input on the navigator map;
(b) extracting two-dimensional coordinates corresponding to the user input;
(c) deducing camera three-dimensional coordinates from the two-dimensional coordinates;
(d) extracting and storing the position and the view direction of the camera after moving the camera in the three-dimensional coordinates;
(e) determining whether an object corresponding to the user input exists in the view direction; And
(f) displaying a screen according to a view of the camera in the main map when the object exists, and switching the view direction so that the object is located within the view direction when the object does not exist, Displaying a screen according to a view of the camera on a main map,
The step (f)
If the object does not exist in the view direction, the reference point of the object is scanned while the view of the camera is rotated by 360 degrees. If the reference point of the object is scanned, the scan is stopped, And passing it to the camera handle module in a direction vector.
제1항에 있어서,
상기 사용자 입력에 상응하는 임의의 객체가 선택된 경우,
상기 단계 (c)는,
선택된 상기 객체의 기준점 좌표를 방향 벡터로 대입시키는 단계;
상기 기준점 좌표 중 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하는 단계;
상기 임시 3차원 좌표에서 상기 방향 벡터의 반대방향으로 미리 지정된 거리만큼 이동한 좌표를 상기 카메라 3차원 좌표로 계산하여 추출하는 단계를 포함하는 사용자 뷰의 시각화 방법.
The method according to claim 1,
If any object corresponding to the user input is selected,
The step (c)
Assigning a reference point coordinate of the selected object as a direction vector;
Calculating temporary three-dimensional coordinates by combining the Z coordinates of the reference point coordinates and the X, Y coordinates of the two-dimensional coordinates;
And calculating and extracting coordinates of the camera moved in a predetermined distance in the direction opposite to the direction vector in the temporary three-dimensional coordinates as the three-dimensional coordinates of the camera.
제2항에 있어서,
상기 객체의 기준점 좌표는 3D 정보관리 데이터베이스를 관리하는 서버 엔진에 요청하여 제공받은 것을 특징으로 하는 사용자 뷰의 시각화 방법.
3. The method of claim 2,
Wherein the reference point coordinates of the object are provided to the server engine managing the 3D information management database by being requested.
제1항에 있어서,
상기 사용자 입력에 상응하는 임의의 객체가 존재하지 않고 빈 공간이 선택된 경우,
상기 단계 (c)는 상기 프로젝트 공간의 평균값을 활용하여 추정한 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하는 단계를 포함하는 사용자 뷰의 시각화 방법.
The method according to claim 1,
If an empty space is selected without any object corresponding to the user input,
Wherein the step (c) includes calculating temporal three-dimensional coordinates by combining the Z coordinate estimated using an average value of the project space and the X and Y coordinates of the two-dimensional coordinate.
제1항에 있어서,
상기 사용자 입력에 상응하는 임의의 객체가 존재하지 않고 빈 공간이 선택된 경우,
상기 단계 (c)는 상기 프로젝트 공간의 기준점 좌표를 활용하여 추정한 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하는 단계를 포함하는 사용자 뷰의 시각화 방법.
The method according to claim 1,
If an empty space is selected without any object corresponding to the user input,
Wherein the step (c) includes calculating temporal three-dimensional coordinates by combining the estimated Z coordinate using the reference point coordinates of the project space and the X and Y coordinates of the two-dimensional coordinate.
제4항 또는 제5항에 있어서,
상기 단계 (f)는 상기 카메라의 뷰 방향을 상기 프로젝트 공간의 기준점을 향하도록 전환시키는 것을 특징으로 하는 사용자 뷰의 시각화 방법.
The method according to claim 4 or 5,
Wherein the step (f) switches the view direction of the camera toward the reference point of the project space.
제1항에 있어서,
상기 단계 (d)와 (e) 사이에,
상기 위치에서 상기 카메라가 상기 프로젝트 공간의 타 객체와 중첩되는지 여부를 판단하고, 중첩이 발생하는 경우 상기 카메라의 위치를 미리 정해진 보정 범위 내에서 변경시키는 단계를 더 포함하는 사용자 뷰의 시각화 방법.
The method according to claim 1,
Between the steps (d) and (e)
Determining whether the camera overlaps with another object in the project space at the position, and changing the position of the camera within a predetermined correction range when overlapping occurs.
삭제delete 제1항에 있어서,
상기 사용자 입력에 상응하는 객체의 존부 판단은 XY 평면에 수직하게 X-RAY를 쏘아 일정 거리 내에서의 충돌 발생 여부를 확인하여 충돌이 감지되면 감지된 객체가 상기 사용자 입력에 의해 선택된 것으로 판단하는 것을 특징으로 하는 사용자 뷰의 시각화 방법.
The method according to claim 1,
The presence or absence of an object corresponding to the user input is determined by determining whether or not a collision occurs within a predetermined distance by shooting an X-ray perpendicularly to the XY plane and determining that the detected object is selected by the user input A method of visualizing a user view.
제1항에 있어서,
상기 프로젝트 공간은 BIM(Building Information Modeling) 기반으로 구현되어 하나 이상의 클라이언트가 설계 및 모니터링이 가능한 프로젝트에 관련된 3차원 가상공간인 것을 특징으로 하는 사용자 뷰의 시각화 방법.
The method according to claim 1,
Wherein the project space is a BIM (Building Information Modeling) -based 3D virtual space related to a project in which one or more clients can be designed and monitored.
3차원 프로젝트 공간에 대한 설계 및 모니터링을 위한 클라이언트 엔진 시스템으로서,
메인맵과 네비게이터맵을 함께 표시하는 디스플레이부;
상기 네비게이터맵 상의 임의의 위치에 대한 사용자 입력을 수신하는 사용자 입력부;
상기 사용자 입력에 상응하는 위치의 2차원 좌표를 추출하고, 상기 위치에 상응하는 객체에 대한 객체 정보를 서버 엔진에 요청하여 전송받으며, 상기 2차원 좌표 및 상기 객체 정보에 기초하여 카메라의 3차원 좌표를 추론하는 네비게이터맵 처리 모듈; 및
상기 3차원 좌표에 상응하여 상기 카메라를 이동시킨 후 상기 카메라의 뷰 방향을 상기 객체를 향하도록 전환시킨 후 상기 카메라를 제어하여 상기 메인맵에 상기 카메라의 뷰가 표시되게 하는 메인맵 처리 모듈을 포함하되,
상기 네비게이터맵 처리 모듈은 상기 위치에 상응하는 객체가 존재하지 않는 경우 상기 프로젝트 공간의 평균값 혹은 기준점에 상응하는 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 상기 카메라의 3차원 좌표를 계산하고 추출하는 것을 특징으로 하는 클라이언트 엔진 시스템.
A client engine system for design and monitoring of a three-dimensional project space,
A display unit for displaying the main map and the navigator map together;
A user input for receiving user input for any location on the navigator map;
Dimensional coordinates of a position corresponding to the user input, requesting the server engine for object information about the object corresponding to the position and receiving the transmitted information, and receiving three-dimensional coordinates of the camera based on the two- A navigator map processing module for inferring the navigation map; And
A main map processing module for moving the camera corresponding to the three-dimensional coordinates, switching the view direction of the camera toward the object, and controlling the camera to display the view of the camera on the main map However,
The navigator map processing module calculates the three-dimensional coordinates of the camera by combining the Z coordinate corresponding to the average value or the reference point of the project space and the X and Y coordinates of the two-dimensional coordinate when the object corresponding to the position does not exist And extracting the client engine system.
제11항에 있어서,
상기 네비게이터맵 처리 모듈은 상기 위치에 상응하는 객체가 존재하는 경우 상기 객체의 기준점 정보에 상응하는 Z 좌표와 상기 2차원 좌표의 X, Y 좌표를 조합하여 임시 3차원 좌표를 계산하고, 상기 임시 3차원 좌표에서 상기 기준점 정보에 상응하는 방향 벡터의 반대방향으로 미리 지정된 거리만큼 이동한 위치를 상기 카메라의 3차원 좌표로 계산하여 추출하는 것을 특징으로 하는 클라이언트 엔진 시스템.
12. The method of claim 11,
The navigator map processing module calculates temporary three-dimensional coordinates by combining the Z coordinate corresponding to the reference point information of the object and the X, Y coordinates of the two-dimensional coordinate when the object corresponding to the position exists, Dimensional coordinates of the camera by a predetermined distance in a direction opposite to a direction vector corresponding to the reference point information in the 3D coordinates.
삭제delete
KR1020170041415A 2016-04-01 2017-03-31 User view visualization method and system for BIM design and monitoring in 3D BIM virtual space KR101762629B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160040309 2016-04-01
KR20160040309 2016-04-01

Publications (1)

Publication Number Publication Date
KR101762629B1 true KR101762629B1 (en) 2017-08-14

Family

ID=60142327

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170041415A KR101762629B1 (en) 2016-04-01 2017-03-31 User view visualization method and system for BIM design and monitoring in 3D BIM virtual space

Country Status (1)

Country Link
KR (1) KR101762629B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729065A (en) * 2017-11-02 2018-02-23 港珠澳大桥管理局 The method and system of a kind of 3 D monitoring
KR101934202B1 (en) 2017-07-27 2018-12-31 한국과학기술원 A method and apparatus for setting virtual camera based on branching region and structures for exploring 3d treelike objects
US20220060541A1 (en) * 2019-03-05 2022-02-24 Operation Technology, Inc. Utlity network project modeling and management
CN116012562A (en) * 2022-12-28 2023-04-25 中建电子信息技术有限公司 Method for rapidly completing BIM three-dimensional visualization platform model manufacture
CN116049962A (en) * 2023-02-16 2023-05-02 苏州华固建筑配套工程有限公司 Automatic design method for support and hanger based on BIM technology

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337947A (en) * 2002-05-21 2003-11-28 Iwane Kenkyusho:Kk Method and device for image display, and storage medium recorded with image display method
KR100866830B1 (en) * 2008-02-12 2008-11-04 (주) 지오씨엔아이 System and method for managing river using 3d based moving picture

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003337947A (en) * 2002-05-21 2003-11-28 Iwane Kenkyusho:Kk Method and device for image display, and storage medium recorded with image display method
KR100866830B1 (en) * 2008-02-12 2008-11-04 (주) 지오씨엔아이 System and method for managing river using 3d based moving picture

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101934202B1 (en) 2017-07-27 2018-12-31 한국과학기술원 A method and apparatus for setting virtual camera based on branching region and structures for exploring 3d treelike objects
CN107729065A (en) * 2017-11-02 2018-02-23 港珠澳大桥管理局 The method and system of a kind of 3 D monitoring
US20220060541A1 (en) * 2019-03-05 2022-02-24 Operation Technology, Inc. Utlity network project modeling and management
CN116012562A (en) * 2022-12-28 2023-04-25 中建电子信息技术有限公司 Method for rapidly completing BIM three-dimensional visualization platform model manufacture
CN116049962A (en) * 2023-02-16 2023-05-02 苏州华固建筑配套工程有限公司 Automatic design method for support and hanger based on BIM technology
CN116049962B (en) * 2023-02-16 2023-10-20 苏州华固建筑配套工程有限公司 Automatic design method for support and hanger based on BIM technology

Similar Documents

Publication Publication Date Title
KR101762629B1 (en) User view visualization method and system for BIM design and monitoring in 3D BIM virtual space
US10854013B2 (en) Systems and methods for presenting building information
KR20180131471A (en) Apparatus for integrated management of construction errors using 3d scanning with bim and method thereof
KR20120069654A (en) Information processing device, information processing method, and program
EP2814000A1 (en) Image processing apparatus, image processing method, and program
JP2017191351A (en) Work support system and method
KR102065702B1 (en) Vitual Construction Simulation Method
JPH10134069A (en) Information retrieval device
JP2022038803A (en) Equipment management program, equipment management method and equipment management system
CN111142669A (en) Interaction method, device and equipment from two-dimensional interface to three-dimensional scene and storage medium
JP2014178794A (en) Carrying-in route planning system
CA3099748C (en) Spatial construction using guided surface detection
KR102470837B1 (en) Spatial analysis method using cctv image range in 3d space
KR20210042273A (en) Method and device for three-dimensional modeling
KR102049235B1 (en) Space sharing service apparatus
CN112632181B (en) Map display method, device, equipment, storage medium and terminal equipment
CN107038176B (en) Method, device and equipment for rendering web graph page
KR20220060472A (en) Computer program taht can update bim information stored in server without bim authoring tool, server executing the program, and method of providing update service
CN112802198A (en) Two-dimensional image three-dimensional interaction design method, terminal and storage device
WO2021063983A1 (en) Computer-aided design methods and systems
CN110751417B (en) Storage model establishing method and device, electronic equipment and storage medium
CN110941389A (en) Method and device for triggering AR information points by focus
JP6264208B2 (en) Display program, display method, and display device
Lodha et al. Consistent visualization and querying of GIS databases by a location-aware mobile agent
KR20190055010A (en) Method and apparatus for displaying information of room space hierarchically in building

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant