KR100749123B1 - 유비쿼터스 환경에서 gps 기반의 실시간 환경 정보입력기 - Google Patents

유비쿼터스 환경에서 gps 기반의 실시간 환경 정보입력기 Download PDF

Info

Publication number
KR100749123B1
KR100749123B1 KR1020050070968A KR20050070968A KR100749123B1 KR 100749123 B1 KR100749123 B1 KR 100749123B1 KR 1020050070968 A KR1020050070968 A KR 1020050070968A KR 20050070968 A KR20050070968 A KR 20050070968A KR 100749123 B1 KR100749123 B1 KR 100749123B1
Authority
KR
South Korea
Prior art keywords
gps
information
real
server
environment
Prior art date
Application number
KR1020050070968A
Other languages
English (en)
Other versions
KR20050083053A (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 이명원
Priority to KR1020050070968A priority Critical patent/KR100749123B1/ko
Publication of KR20050083053A publication Critical patent/KR20050083053A/ko
Application granted granted Critical
Publication of KR100749123B1 publication Critical patent/KR100749123B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Remote Sensing (AREA)
  • Tourism & Hospitality (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 유비쿼터스 환경에서 GPS 기반의 실시간 환경 정보 입력기에 관한 것으로, 보다 상세하게는 세계의 모든 장소, 즉 고궁이나 역사적인 장소와 같은 실제 환경을 가상환경으로 구현하여 실제 위치에 관한 GPS 기반 정보를 실시간으로 입력하여 서버 데이터베이스를 구축하여 환경 정보 서비스에 활용하는 GPS기반의 실시간 환경 정보 입력기에 관한 것이다. 이를 위해, 본 발명은 GPS 위성으로부터 현재의 위치를 파악하는 사용자 GPS인터페이스를 구비하고 이 위치와 사용자가 입력하는 정보를 동기화하여 실시간으로 서버에 접속하여 지리적으로 혹은 역사적으로 상기 위치와 관련된 정보를 전송할 수 있도록 한다.

Description

유비쿼터스 환경에서 GPS 기반의 실시간 환경 정보 입력기{GPS-based real-time environmental information input device at ubiquitous circumstances}
도 1은 본 발명의 GPS기반 실시간 환경 정보 입력기가 적용되는 시스템을 도시한 개념도이다.
도 2는 본 발명의 GPS기반 실시간 환경 정보 입력기의 상세 블록도이다.
도 3은 본 발명에 적용되는 3D 애플리케이션 프레임워크의 상세 블록도이다.
도 4는 본 발명의 GPS기반 실시간 환경 정보 입력기의 환경을 설명하기 위한 블록도이다.
<도면의 주요부분에 대한 부호의 설명>
100...서버
200, ..., 210...GPS기반의 실시간 환경 정보 입력기
201, ..., 211...GPS 인터페이스
300...인공위성
400...인터넷
본 발명은 유비쿼터스 환경에서 GPS 기반의 실시간 환경 정보 입력기에 관한 것으로, 보다 상세하게는 세계의 모든 장소, 즉 고궁이나 역사적인 장소와 같은 실제 환경을 가상환경으로 구현하여 실제 위치에 관한 GPS 기반 정보를 실시간으로 입력하여 서버 데이터베이스를 구축하여 환경 정보 서비스에 활용하는 GPS기반의 실시간 환경 정보 입력기에 관한 것이다.
종래에는 실세계와 관련된 정보를 가상환경에서 제공된다 하더라도 실세계와 직접적으로 연관되지는 않은 채 가상환경상에서 독립적으로 존재하는 개념이었다. 예를 들어, 실세계와 가상세계가 자동적으로 서로 연동되어 있지 않기 때문에 가상세계의 어느 위치의 정보가 실세계의 정확한 어느 위치에 해당하는지와는 거의 무관하게 가상세계가 구축되어 왔다. 따라서 실시간의 현재 위치에 대한 정보를 직접 알아낼 수 있는 방법은 없었고, 여러 단계의 간접적인 방법으로 가상세계에서 표현된 위치의 실제 정보를 얻을 수가 있었다.
특히, 서버에 구축된 정보들이 지구상의 특정 장소, 즉 고궁이나 관광지와 같은 지역에 대한 정보인 경우에는 현 위치와는 상관없이 웹주소를 통해 지역 명칭이나 역사적인 사건 명칭 등을 기억하여야 하므로 그 명칭을 잘 모르는 경우에나 언어가 다른 경우에는 서버에 접속하는 것은 거의 불가능하였다. 또한, 이런 사정으로 서버에 바로 접속이 용이하지 않은 경우에는 서버에 구축된 정보를 현장에서 바로 클라이언트를 통하여 서버로 정보를 올리지 못하고 추후에 올려야 하는 문제점이 있었다.
본 발명은 상술한 종래 기술의 문제점을 해결하기 위하여, 본 발명이 이루고자 하는 기술적 과제는 실세계의 모든 장소, 즉 고궁이나 역사적인 장소와 같은 실제 환경을 가상환경으로 구현하여 실제 위치에 관한 정보를 실시간으로 입력하여 서버 데이터베이스를 구축하여 환경 정보 서비스에 활용하는 GPS기반의 실시간 환경 정보 입력기를 제공하는 것을 목적으로 한다.
본 발명은 상술한 기술적 과제를 달성하기 위하여, GPS 위성으로부터 현재의 위치를 파악하는 사용자 GPS인터페이스를 구비하고 이 위치 정보에 대응하여 브라우저를 통하여 실시간으로 서버에 접속하여 지리적으로 혹은 역사적으로 상기 위치와 관련된 환경 정보를 전송할 수 있도록 하는 GPS기반의 실시간 환경 정보 입력기를 제공한다.
바람직하기로는 상기 위치 정보에 대응하는 서버의 웹주소를 포함하는 데이터베이스를 더 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 GPS기반의 실시간 환경 정보 입력기의 바람직한 실시예의 구성 및 동작에 대해서 상세히 설명하기로 한다.
도 1에 도시한 바와 같이, 본 발명의 GPS기반의 실시간 환경 정보 입력기(200, ..., 210)는 인공위성(300)으로부터 GPS정보를 받아, 그 현재 위치를 파악하여, 그 위치에 해당하는 지리적 또는 역사적 관련 정보를 갖는 서버(100)에 브라우저(미도시)를 통해 인터넷(400) 접속한다.
본 발명의 일실시예에 의한 서버(100)의 애플리케이션으로, 지리적 위치와 관계하는 유적지 애플리케이션은 멀티 유저 애플리케이션으로 설계되었다. 각 유저들간의 연결을 위해서 클라이언트/서버(Client/Server)모델을 사용하였다. 서버(100)는 유적지 정보를 제공하는 기능을 갖는다. 정보에는 가상환경 데이터와 실세계 환경 정보가 있는데, 이 정보 모두 데이터베이스화하여 저장한다. 클라이언트인 실시간 환경 정보 입력기(200, ..., 210)는 GPS 인터페이스(201, ..., 211)를 통해 획득한 위치 정보를 이용하여 브라우저를 통해 서버(100)에 접속하여, 사용자가 현 위치에 관련된 유용한 정보의 실시간 입력으로 서버 데이터베이스를 구축할 수 있도록 한다.
여기서, 위치 정보에 대응하는 서버의 웹주소를 저장하는 데이터베이스로부터 서버의 웹주소를 불러내어 브라우저를 통하여 서버에 접속할 수 있다. 그러나, 별도의 위치정보에 대응하는 서버의 웹주소 데이터베이스를 구비하지 않고도 위치정보만 가지고도 서버에 접속하도록 할 수도 있다. 즉, 위도와 경도 몇에서 몇사이에서는 어느 특정 유적지로 접속되도록 브라우저 주소창에 위치정보가 바로 입력되게 할 수 있다.
클라이언트 애플리케이션으로, 본 발명의 실시간 환경 정보 입력기(200, ..., 210)는 사용자가 가상환경을 체험하고 정보를 제공 받을 수 있는 애플리케이션이며 GPS 인터페이스(201, ..., 211)를 통해 현재 위치 정보를 받아 실시간으로 서버(100)로 전송할 수 있는 기능을 가진다. 하드웨어 스펙은 노트북이나 웨어러블 PC 와 같은 유비쿼터스 환경에서의 모바일 PC를 가정하며 여기에서는 WPS (Wearable Personal Station) 를 사용하는 경우를 설명한다. 본 발명에 의하면 모 바일 단말기의 일종인 실시간 환경 정보 입력기(200, ..., 210)에 부착된 GPS 인터페이스(201, ..., 211)를 통해 GPS의 위성통신에 의한 위치정보를 USB 통신이나 시리얼통신으로 받은 후에 서버와는 다시 인터넷통신을 수행하도록 한다. 위치 정보 수신후 모바일 단말기인 실시간 환경 정보 입력기(200, ..., 210)에서의 서버(100)와 인터넷통신 동작에 의하면, 위치 정보는 위성통신으로 현재 위치를 알고, 이 위치 기반의 관련된 모든 정보를 데이터베이스에 넣고 결국 서버(100)가 데이터베이스의 내용을 검색하여 현재 위치와 관련된 정보를 보내주게 된다. 모바일에서 서버에 액세스한 후의 데이터입출력동작은 인터넷통신으로 한다. 하드웨어적 요소는 기존의 모바일 통신과 동일하게 적용된다. 서버와 단말기의 인터넷 통신시 서버의 도메인은 서버를 구축하기에 달려있다. 즉 데이터베이스 정보를 한 서버에 두면 도메인은 하나가 될 것이고 분산 서버로 하더라도 최상위 서버 하나면 되니까 도메인 접속은 역시 하나로 된다. 현재 위치정보는 위성통신을 이용한 위치이고 이 위치에 관련한 모든 정보는 데이터베이스에 저장되어 있다. 따라서 데이터베이스의 내용 검색을 할 때 현재 위치가 키로 작용하는 것이다.
도 4는 웨어러블 PC인 WPS의 시스템 구성도를 보여준다. 도 4에서, CPU(410)에는 주메모리(460), 시스템 설치메모리(470), 보조저장장치(450)가 연결되어 각종 소프트웨어 동작 프로그램 및 입력버튼(480), CMOS 카메라(424), 마이크로폰/스피커(430), 또는 불루투스장치(440)로부터 입력된 데이터를 처리하여 저장한다. 또한 CPU(410)에는 처리 데이터를 출력하는 TFT-LCD(422), 부저(426), 바이브레이터(428), 및 마이크로폰/스피커(430)등이 연결되어 있다. 그밖에 CPU(410)에는 USB호 스트(412), USB OTG (On The Go)(414), JTAG(416), UART콘솔(418), VGA 비디오카드(432), 전원부(490), 및 배터리부(495)가 연결되어 있으나, 이에 대해서는 당업자가 충분히 알 수 있는 관계로 그 상세한 설명은 생략하기로 한다. 표 1은 WPS의 하드웨어 사양을 나타내고 표 2는 소프트웨어 사양을 나타낸다. 여기서는 본 발명이 적용되는 웨어러블 PC의 사양을 언급하는 정도로 표 1과 표 2에서와 같이 각각 WPS의 하드웨어 및 소프트웨어 사양을 나타낸다.
Figure 112005042882340-pat00001
사양
OS linux-2.4.18-rmk4-mx2bsp
Device Drivers Frame Buffer (160x128 Color TFT-LCD 지원) CMOS Camera BlueZ UART(Console) USB Host Sound (Microphone/Speaker)
GUI qt-embedded-2.3.7 QT기반 GUI Framework
Cross Compiler & Tools arm-linux-gcc 3.2.3 binutils-2.13.90.0.20 glibc-2.2.5
Root Filesystem JFFS2 busybox-0.60.5
도 2에 도시한 바와 같이, 본 발명의 실시간 환경 정보 입력기(200)는 GPS 인터페이스(201), 아바타 모델링 기능부(203), 가상환경 모델링 기능부(205), 애플리케이션 프레임워크부(207)를 포함한다.
상기 GPS인터페이스(201)는 GPS위성으로부터 현재의 위치를 파악하고 이 위치와 사용자가 입력하는 정보를 동기화하여 실시간으로 서버에 전송할 수 있는 사용자 인터페이스를 말한다. WPS 와 같은 모바일 PC는 지구상 어디서나 정보를 액세스할 수 있는 장점을 가지므로 이러한 정보 중에서 지리적으로 혹은 역사적으로 위치와 관련된 정보를 실시간으로 제작하여 전송할 수 있도록 하고자 하는 것이다. WPS 에서 GPS 는 USB 포트와 같은 통신 포트를 사용하여 접속한다.
아바타란 사용자를 대신하는 가상환경에서의 존재를 말한다. 따라서 상기 아바타 모델링 기능부(203)를 통하여 유적지 시스템에서 사용자는 아바타를 조종하여 가상환경에서 이동할 수 있다. 아바타는 디스크리트(Discreet)의 3Ds Max 6.0와 같은 3D 그래픽 도구를 사용할 수 있다.
상기 가상 환경 모델링 기능부(205)를 통한 가상환경도 3Ds Max 6.0와 같은 3D 그래픽 도구를 사용할 수 있다. 이러한 가상환경에는 애플리케이션에서 필요한 정보가 저장되어야 할 필요가 있다. 이러한 문제는 3Ds Max같은 범용 도구로는 하기가 불가능하다. 따라서 유적지 애플리케이션에서 요구하는 정보를 가상환경에 입력할 수 있도록 별도의 도구를 개발하여 게임에 특화된 가상환경을 제작할 수 있도록 해야 한다.
상기 애플리케이션 프레임워크부(207)는 게임과 같은 3D 애플리케이션 서비스 제작에 필요한 여러가지 라이브러리를 제공한다. 도 3에 도시한 바와 같이, 상기 애플리케이션 프레임워크부(207)는 핵심 라이브러리(2071), 수학 라이브러리(2073), 윈도우 클래스 라이브러리(2075), 그래픽스 라이브러리(2077), 게임엔진과 같은 가상환경 표현 엔진(2079), 게임로직과 같은 애플리케이션 서비스 로직(2081)을 포함한다.
핵심(Core) 라이브러리(2071)는 애플리케이션 전반적으로 사용될 수 있는 기능을 정의한다. 파일 I/O에 관해서 여러 클래스를 제공하여 파일 삭제, 입력, 출력과 같은 파일에 관한 기능을 제공한다. 애플리케이션에서는 많은 런타임 오류가 발생할 수 있다. 이러한 오류를 처리하는 메커니즘으로 C++에 제공되는 예외처리를 사용한다. 예외처리에 관련한 클래스를 정의하고, 예외가 발생했을 때, 쉬운 디버깅을 위해서 예외 클래스에 디버깅 정보를 저장하는 기능을 구현한다. 문자열은 애플리케이션에서 가장 많이 쓰이는 것 중 하나이다. 이러한 문자열에 관한 클래스를 정의하여 문자열에 관한 작업들을 쉽게 사용할 수 있도록 구현하였다. 또한 문자열을 특정 문자 단위로 끊어서 분리해주는 기능도 구현하여 텍스트 파일 파싱을 쉽게 할 수 있도록 하였다.
수학 라이브러리(2073)는 3차원 애플리케이션에서 사용될 수 있는 수학에 관련한 라이브러리로 제공된다. 행렬(Matrix)은 3차원 그래픽스에 있어서 변환을 표현한다. 하나의 행렬은 하나의 변환을 나타내며 행렬을 서로 곱해줌으로써 한꺼번에 여러 변환을 적용할 수 있다. 수학 라이브러리에서는 이러한 행렬에 행렬 곱을 비롯한 행렬 덧셈, 뺄셈, 가우스 소거법을 사용한 역행렬 연산등의 기본적인 기능을 제공하고, 회전 변환 행렬 생성, 이동 변환 행렬 생성, 크기 변환 행렬 생성 등과 같이 변환에 관련된 확장 기능도 포함된다. 벡터(Vector)는 3차원 그래픽스에서 하나의 점뿐만 아니라 방향, 평면의 법선을 표현하기도 한다. 수학 라이브러리에서는 벡터 합, 차, 내적, 외적 같은 벡터의 기본 연산을 제공하고, 벡터 회전 같은 확장 기능도 제공된다. 쿼터니온(Quaternion)은 행렬을 사용한 회전변환에서 발생하는 문제점을 해결해 주는 개념이다. 행렬을 이용하여 오일러 변환할 때 동시에 여러축에 대하여 회전을 수행하면 하나의 축에 대한 자유도를 잃어버리는 짐볼락(gimbal lock)이 발생하게 된다. 이렇게 되면 임의의 축에 대해 회전을 하는 것은 불가능하다. 이러한 문제를 쿼터니온을 사용하여 해결할 수 있다. 쿼터니온은 4개의 스칼라 성분 [x,y,z,w]를 갖고 있어 [x,y,z]는 회전축을 나타내고, w는 회전 각을 나태내어 임의의 축에 대한 회전을 나타낸다. 수학 라이브러리에서는 쿼터니온에 대한 곱 연산을 제공하고, 벡터에 대한 변환과, 행렬로 변환할 수 있는 기능을 제공한다. 또한 애니메이션에 쿼터니온은 자주 사용되기 때문에 두 쿼터니온 사이에 선형 보간을 할 수 있는 기능도 제공한다. 평면(Plane)은 3차원 공간상에서 무한 평면을 표현한다. 무한 평면이란 3차원 공간상에서 무한히 존재하는 하나의 평면을 뜻한다. 평면은 하나의 3차원 법선 벡터와 원점에서의 수직 거리로 표현된다. 따라서 4개의 스칼라 성분으로 표현된다. 평면에서는 평면과 3차원 공간상의 점과의 거리를 계산할 수 있으며, 점이 평면의 앞쪽에 있는지 뒤쪽에 있는지 판단할 수 있다. 평면의 앞/뒤 구별은 평면을 3개의 점으로 생성할 때 점 3개의 순서(정점이 정의되는 순서, Winding)를 사용하여 구별하게 된다.
일반적으로 윈도우 클래스 라이브러리(2075)를 통하여 가상환경 애플리케이션은 Microsoft Windows 환경에서 Win32 API를 사용하는 경우가 많으나 Embedded Linux 환경으로 이식도 고려하여야 하므로, Win32를 래핑(Wrapping)하는 라이브러리를 제작하여 유적지 애플리케이션과 Win32 API 간의 의존성을 최소화하는 방법도 있다.
게임과 같은 가상환경 애플리케이션은 DirectX 와 같은 그래픽스 라이브러리(2077)를 통하여 제작된다. Linux환경에서는 Direct3D는 사용 가능하지 않고 OpenGL을 이용하는 것이 보통이다. 이와 같이 가상환경 애플리케이션에서 Direct3D를 직접 사용하면 이식에 많은 문제점이 발생한다. 따라서 Direct3D를 래핑(Wrapping)하는 라이브러리를 제작하여 유적지 애플리케이션과 Direct3D와의 의존성을 최소화하는 방법을 생각할 수 있다.
게임 엔진과 같은 가상환경 표현 엔진(2079)은 애플리케이션을 구현하기 위한 라이브러리와 프레임워크를 제공하는 것으로, 이는 메쉬 관리, 장면 관리, 지형, 물리엔진을 포함한다.
메쉬 관리의 경우, 가상환경 표현에서 사용되는 모든 메쉬들은 3Ds Max와 같은 툴에서 저작된 모델들이다. 3Ds Max에서는 ASE(Ascii Scene Export) Exporter를 제공하기 때문에 메쉬 정보를 텍스트 파일로 얻을 수 있다. 텍스트로 표현되는 메쉬 정보는 다루기 쉽고, 수정이 용이하기 때문에 사용하게 되었다. 하지만 이 파일에는 게임에서 사용하지 않는 정보도 다수 포함되어 있고, 파일 크기 또한 매우 크다. 예를 들어 경복궁의 일부를 모델링한 메쉬 정보 파일은 약 12메가 바이트정도 차지하였는데, 이렇게 큰 크기의 메쉬 정보 파일은 게임을 실행할 때 문제가 된다. 게임을 실행할 때마다 이 파일을 로드하여 파싱하는 과정을 거쳐 그래픽스 라이브러리에서 사용할 수 있는 데이터 타입으로 재구성하는데에는 많은 시간이 걸린다. 이러한 단점을 없애기 위하여 MSH 라는 고유의 바이너리 파일 포맷을 정의하여 텍스트 파일보다 작은 크기를 갖도록 하여, 메쉬 변환에서도 성능 향상을 얻도록 한다. 3Ds MAX에서 제공하는 ASE를 이용하는 경우에는 메쉬 정보를 로드하는 과정 중에 파싱하는 작업이 가장 오래 걸리기 때문에 이 과정을 생략하였다. 메쉬 관리 모듈에서는 ASE파일을 MSH파일로 변환해주는 별도의 애플리케이션을 제공하여 ASE파일이 쉽게 MSH로 변환하여 클라이언트 애플리케이션에서 사용할 수 있도록 해준다.
장면 관리의 경우, 게임과 같은 애플리케이션에서는 여러 장면이 존재하게 된다. 예를 들면 로고 화면, 인트로 동영상, 메인 메뉴, 게임화면들과 같이 여러 장면이 존재하게 된다. 이러한 각 장면들은 서로 독립적이기 때문에 장면별로 관리되는 로직이 필요하다. 이러한 장면들은 하나의 장면에서 다른 장면으로 전환되기도 하고, 장면이 시작할 때 처리해 주어야 할 작업과 장면이 끝날 때 처리해 주어야 할 작업이 존재하게 된다. 이러한 장면의 생면주기를 프레임워크에서 관리하게 된다. 장면 관리 프레임워크에는 SceneManager, Scene 2개의 클래스를 제공한다. 구현할 내용은 Scene클래스를 상속받아 5개의 가상 함수 Initialize, Dispose, Begin, End, DoFrame을 재정의(Override)하여 SceneManager에 등록한다. 그렇게 되면 SceneManager는 Scene을 관리하게 되며, 생명 주기에 따라 함수를 호출하게 된다.
SceneManager는 등록된 Scene들을 정수형의 아이디로 구분한다. 따라서 특정 Scene을 활성화 하거나 제거할 때 이 아이디를 사용한다. Scene에는 두 가지 종류의 Scene이 존재한다. 하나는 등록되었지만 활성화되지 않는 Scene이고, 다른 하나는 등록되어 있는 Scene 중 활성화되어 있는 Scene이다. 하나의 SceneManager에는 여러 개의 Scene이 등록될 수 있지만 활성화될 수 있는 Scene은 하나이다. 따라서 현재 활성화되어 있는 Scene이 있는 상태에서 다른 Scene을 활성화 하려고 한다면 현재 활성화되어 있는 Scene은 비활성화된 Scene으로 변하게 된다.
가상 환경을 구성하는 구성요소들은 건물, 지물 그리고 지형이 존재한다. 건물과 지물은 외부 툴에서 저작되어 메쉬 관리 라이브러리에 의해서 관리된다. 지형에 관해서는 따로 저작되지 않고, 특수한 방법을 사용되어 렌더링된다. 지형에 관한 최적화 방법은 여러가지가 있지만 이 모듈에는 ROAM 방식을 사용하여 렌더링 된다. ROAM(Realtime Optimally Adapting Meshes)은 지형을 표현하는데 있어서 LOD(Level Of Detail)을 구현하는 알고리즘 중 하나이다. LOD란 메쉬를 표현할 때, 멀리 떨어진 메쉬는 여러 개의 폴리곤이 하나의 픽셀로 렌더링되기 때문에 폴리곤 수를 줄여서 렌더링을 해도 화질에 차이가 없음을 기본적인 아이디어로 출발한다. 따라서 멀리 떨어진 메쉬는 폴리곤 수를 줄여서 렌더링 하여 그래픽스 파이프라인에 전달되는 폴리곤 수를 줄인다. 이렇게 되면 계산해야 할 폴리곤이 줄기 때문에 렌더링 속도가 빨라진다.
ROAM에서는 동적으로 폴리곤 수를 조절하는 기능을 제공한다. 메쉬를 삼각형으로 나누는 과정을 테셀레이션(Tessellation)이라 부르는데, ROAM에서는 매 프레임마다 렌더링해야 할 폴리곤을 테셀레이션하게 된다. ROAM은 일정 영역으로 구분되는 패치단위로 테셀레이션을 하게 되는데, 각각의 패치에서 테셀레이션 레벨이 다르면 메쉬가 깨져버리는 문제가 발생한다. ROAM에서는 모든 삼각형에 대한 이웃한 삼각형을 가지고 있어서 테셀레이션할 때 이웃한 삼각형도 테셀레이션함으로써 이러한 문제를 해결한다.
게임과 같은 3D 애플리케이션에 있어서 주요한 기능으로 충돌 검사/검출(Collision Detection)이 있다. 이것은 가상 환경에 존재하는 두 개체가 서로 충돌을 했는지 검사하는 것으로서 이 처리를 위한 물리엔진 구성이 필요하다. 현재의 3차원 그래픽스에서는 모든 메쉬를 3각형을 기본 도형으로 하여 렌더링하게 된다. 충돌 검사 역시 3각형 단위의 검사를 수행해야 한다. 일반적인 가상 환경에서 삼각형의 개수는 수만 개가 넘기 때문에 이 모든 삼각형에 대해 검사를 수행한다는 것은 불가능하다. 따라서 가상 환경의 영역을 나누어 충돌할 것 같지 않은 공간의 삼각형들을 충돌 검사에서 제외하는 방법을 사용해야 한다. 이를 위해 사용할 수 있는 방법으로 옥트리(Octree)가 있다.
옥트리(Octree)는 공간을 8개로 재귀적으로 나눈다. 그런 다음 검사할 메쉬가 속한 공간을 찾는다. 메쉬가 속하지 않은 공간의 삼각형들은 메쉬와 충돌할 일이 없기 때문에 충돌 검사에서 제외되고, 같은 공간의 삼각형들만 검사가 된다. 이렇게 해서 충돌 검사의 속도를 향상시킨다. 그리고, 객체의 모든 삼각형에 대해서 검사하는 방법에도 문제가 있다. 물론 모든 삼각형에 대해서 검사를 하게 된다면 더 정밀한 검사가 이루어 지겠지만, 속도를 너무 많이 희생하기 때문에 적절하지 않다. 따라서 메쉬를 전부 포함하는 AABB(Axis Aligned Bounding Box, 축에 정렬된 경계 상자 : 가상 환경의 좌표계의 XYZ축과 평행한 상자)를 정의하여 메쉬의 각 삼각형을 검사하는 대신에 이 경계 상자를 검사함으로써 속도를 향상시킬 수 있다.
상자와 삼각형의 충돌 검사를 하는 알고리즘 중 하나인 분리축(Separated Axis)를 사용하여 박스와 삼각형이 교차하는지 검사할 수 있다. 분리축이란 두 프리미티브를 분리하는 축을 의미한다. 예를 들어 두 프리미티브가 떨어져 있다면 어떠한 축에 투영 시켰을 때 축에 투영된 두 프리미티브가 겹치지 않는다. 이러한 축을 분리축이라 부르며, 분리축 이론을 사용하여 교차 검사함은 이러한 분리축을 찾는 작업이다. 만일 이런 분리축이 존재한다면 두 프리미티브는 교차하지 않는다고 판정이 되며, 어떠한 분리축도 발견되지 않으면 두 프리미티브는 교차한다고 판정이 된다.
물리 엔진에서 다른 하나의 중요한 요소는 충돌 반응이다. 충돌이 발생했다고 판정이 되면 아바타가 더 이상 그 방향으로 이동을 하면 안된다. 이러한 작업을 이 모듈에서 수행하게 된다.
게임 애플리케이션(2081)을 구현함에 있어서 콘솔, 정보제공, 물리시스템 기능 등의 특수한 기능을 제공할 수도 있다. 게임 시스템에 게임 장면 제어와 같은 어떠한 작업을 수행하거나 속성을 변경하기 위해 하나의 클래스가 수행하는 Facade 패턴을 사용할 수 있다. 이를 위해서는 게임의 실행시간에도 이러한 기능을 제공하기 위해 Facade 클래스에 접근할 수 있는 인터페이스를 제공해야 한다. 이러한 인터페이스 중 하나인 콘솔 라이브러리 구성으로 이 콘솔 제공으로 사용자에게 시스템에 접근할 수 있는 CUI(Character User Interface)를 제공할 수 있다.
가상 환경의 특정 영역에 진입을 하게 되면 정보를 제공해 주는 기능을 구현을 위해 정보 저작도구를 제공한다. 이 도구에서는 가상환경에서 각 정보에 해당하는 영역을 설정하여 정보를 입력하게 된다. 입력된 데이터를 클라이언트 애플리케이션에서 읽어들여 아바타가 지정된 영역에 진입하게 되면 해당 정보를 제공하게 한다. 이 정보 제작도구는 GPS 인터페이스를 통해 현재 위치를 파악하며 이 위치와 정보를 동기화 시킨다. 정보 입력은 실제 위치에서 실시간으로 가능하게 구성한다.
게임 애플리케이션 프레임워크에서 제공하는 물리 엔진에서는 검사와 반응에 관한 알고리즘을 제공할 뿐, 어떻게 검사를 수행해야 하는지에 관해서는 정의하지 않는다. 따라서 이를 위한 기능 구현을 위해 프레임워크를 사용하여 충돌 검사를 수행하는 모듈을 구현한다. 물리 시스템을 이용하여 객체들이 상호작용을 하기 위해서는 물리 시스템에 개체들이 등록이 되어야 한다. 물리 시스템은 크게 두 가지 종류의 개체를 정의한다. 하나는 배경 개체로서 경복궁 같은 가상 환경 전체를 표현하는 데이터이다. 이 데이터를 이루는 메쉬의 수는 매우 많고 복잡하기 때문에 특수한 방법으로 물리 시스템이 관리를 해야 한다. 이것은 앞에서 설명한 옥트리(Octree)를 이용한다. 일단 물리 시스템에 배경 개체가 등록이 될 때, 물리 시스템은 배경 개체의 모든 폴리곤을 얻어와 옥트리를 구성한다.
다른 하나는 물리적인 개체이며, 이 개체는 가상 환경 내에 존재하는 각각의 개체로, 아바타나 돌같이 개별적으로 움직일 수 있는 개체를 말한다. 이러한 개체들은 선형 배열에 저장되어 매 프레임마다 서로 충돌 검사를 하게 된다. 이러한 개체를 처리하는데에는 O(n2)이 소요되기 때문에 개체가 많이 등록되면 등록될수록 처리하는데에 많은 시간이 걸리게 된다.
상술한 바와 같이, 본 발명의 GPS기반의 실시간 환경 정보 입력기는 GPS정보에 의하여 바로 서버에 접속할 수 있도록 함으로써 서버 접속에 있어서 실세계 정보를 이용한 접근 방법을 제공하여 유적지의 실제 환경 정보를 각 클라이언트 단말에서 서버로 바로 입력할 수 있어 클라이언트측에서 GPS기반하에 서버에 접속하기 용이하여 지역정보의 구축 및 업데이팅이 편리하다.

Claims (2)

  1. GPS 위성으로부터 현재의 위치를 파악하는 사용자 GPS 인터페이스를 구비하고 이 위치 정보에 대응하여 브라우저를 통하여 실시간으로 서버에 접속하여 지리적으로 혹은 역사적으로 상기 위치와 관련된 환경 정보를 전송할 수 있도록 하는 GPS 기반의 실시간 환경 정보 입력기.
  2. 제 1항에 있어서, 상기 위치 정보에 대응하는 서버의 웹주소를 포함하는 데이터베이스를 더 포함하는 것을 특징으로 하는 GPS 기반의 실시간 환경 정보 입력기.
KR1020050070968A 2005-08-03 2005-08-03 유비쿼터스 환경에서 gps 기반의 실시간 환경 정보입력기 KR100749123B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050070968A KR100749123B1 (ko) 2005-08-03 2005-08-03 유비쿼터스 환경에서 gps 기반의 실시간 환경 정보입력기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050070968A KR100749123B1 (ko) 2005-08-03 2005-08-03 유비쿼터스 환경에서 gps 기반의 실시간 환경 정보입력기

Publications (2)

Publication Number Publication Date
KR20050083053A KR20050083053A (ko) 2005-08-24
KR100749123B1 true KR100749123B1 (ko) 2007-08-13

Family

ID=37269349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050070968A KR100749123B1 (ko) 2005-08-03 2005-08-03 유비쿼터스 환경에서 gps 기반의 실시간 환경 정보입력기

Country Status (1)

Country Link
KR (1) KR100749123B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100826993B1 (ko) * 2006-04-03 2008-05-07 연세대학교 산학협력단 알에프아이디/유에스엔을 적용한 개체 기반 파라미터모니터 시스템
KR102004999B1 (ko) 2017-02-09 2019-07-30 권양호 스마트폰을 이용한 미아찾기를 위한 장치 및 방법
KR102236240B1 (ko) * 2021-02-15 2021-04-05 주식회사 삼인공간정보 지형 형상 파일을 변환하는 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050061856A (ko) * 2003-12-18 2005-06-23 한국전자통신연구원 가상현실을 이용한 관광 안내 서비스 시스템 및 그 서비스방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050061856A (ko) * 2003-12-18 2005-06-23 한국전자통신연구원 가상현실을 이용한 관광 안내 서비스 시스템 및 그 서비스방법

Also Published As

Publication number Publication date
KR20050083053A (ko) 2005-08-24

Similar Documents

Publication Publication Date Title
US20210042991A1 (en) Object loading method and apparatus, storage medium, and electronic device
US8243061B2 (en) Image processing apparatus and method of controlling operation of same
KR101732288B1 (ko) 스프라이트 그래픽 렌더링 시스템
US10176621B2 (en) Using compute shaders as front end for vertex shaders
US6538651B1 (en) Parametric geometric element definition and generation system and method
US10134102B2 (en) Graphics processing hardware for using compute shaders as front end for vertex shaders
US20100289804A1 (en) System, mechanism, and apparatus for a customizable and extensible distributed rendering api
EP1746541B1 (en) Rendering by using object symmetry
KR20040093432A (ko) 화상 렌더링 디바이스 및 화상 렌더링 방법
Nadalutti et al. Rendering of X3D content on mobile devices with OpenGL ES
CN108154553A (zh) 一种三维模型与监控视频的无缝融合方法及装置
US11270494B2 (en) Shadow culling
KR100791411B1 (ko) 그래픽스 처리장치 및 방법
KR100749123B1 (ko) 유비쿼터스 환경에서 gps 기반의 실시간 환경 정보입력기
JP4948273B2 (ja) 情報処理方法及び情報処理装置
Masood et al. High‐performance virtual globe GPU terrain rendering using game engine
Lowe et al. A technique for rendering complex portals
CN116433862A (zh) 一种3d全球地形的模型架构方法及装置
US20110238680A1 (en) Time and space efficient sharing of data structures across different phases of a virtual world application
CN114020390A (zh) Bim模型显示方法、装置、计算机设备和存储介质
KR101028766B1 (ko) 2차원 다각형의 노드와 이미지를 이용한 3차원 건축물 데이터 생성방법
Mosmondor et al. 3D visualization of data on mobile devices
de Lucas et al. Ultra-low power render-based collision detection for CPU/GPU systems
Dong Scalable Real-Time Rendering for Extremely Complex 3D Environments Using Multiple GPUs
KR100691846B1 (ko) 3차원 그래픽 데이터 처리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130603

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140617

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee