KR100355990B1 - 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법 - Google Patents

인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법 Download PDF

Info

Publication number
KR100355990B1
KR100355990B1 KR1020000046779A KR20000046779A KR100355990B1 KR 100355990 B1 KR100355990 B1 KR 100355990B1 KR 1020000046779 A KR1020000046779 A KR 1020000046779A KR 20000046779 A KR20000046779 A KR 20000046779A KR 100355990 B1 KR100355990 B1 KR 100355990B1
Authority
KR
South Korea
Prior art keywords
scene
virtual space
list
information
server
Prior art date
Application number
KR1020000046779A
Other languages
English (en)
Other versions
KR20020013224A (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 KR1020000046779A priority Critical patent/KR100355990B1/ko
Publication of KR20020013224A publication Critical patent/KR20020013224A/ko
Application granted granted Critical
Publication of KR100355990B1 publication Critical patent/KR100355990B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 인터넷상의 3차원 가상공간을 "씬(scene)" 단위로 세부 분할하여 씬 단위로 데이터를 전송하는 방법에 관한 것이다. 본 발명은 또한 상기 방법을 구현하기 위하여 VRML 2.0에 씬의 개념을 지원하는 새로운 노드(node)인 씬 노드와 상기 씬 노드를 지원하는 맵 노드(map node)를 확장하는 방법에 관한 것이다. 보다 구체적으로 본 발명은 가상공간을 보다 작은 분할 단위인 씬으로 분할하고, 상기 가상공간을 분할하는 씬에 대한 목록 정보 및 상기 씬(scene)이 가상공간에서 위치하는 좌표를 표현하는 씬 리스트(scene list)를 생성하고, 서버(server)는 상기 씬 리스트 및 씬 정보를 클라이언트(client)에게 전송하고, 이를 전송 받은 클라이언트는 상기 씬 리스트의 정보를 해석하여 상기 씬이 위치하는 가상공간을 표현하는 단계로 이루어지는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하는 방법 및 확장된 VRML을 처리하는 방법에 관한 것이다.

Description

인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한 VRML 노드 확장 및 처리 방법{VRML Node Expansion and Processing Method for Progressive Data Transmission in Internet Virtual Reality Service}
발명의 분야
본 발명은 인터넷상의 3차원 가상공간(cyberspace)을 "씬(scene)" 단위로 세부 분할하여 씬 단위로 데이터를 전송하는 방법에 관한 것이다. 또한 본 발명은 상기 방법을 구현하기 위하여 VRML 2.0에 씬의 개념을 지원하는 새로운 노드(node)인 씬 노드와 상기 씬 노드를 지원하는 맵 노드(map node)를 확장하는 방법에 관한 것이다. 보다 구체적으로 본 발명은 가상공간을 보다 작은 단위인 씬으로 분할하고, 상기 가상공간을 분할하는 씬에 대한 목록 정보 및 상기 씬이 가상공간에서 위치하는 좌표를 표현하는 씬 리스트(scene list)를 생성하고, 서버(server)는 상기 씬 리스트 및 씬 정보를 클라이언트(client)에게 전송하고, 이를 전송받은 클라이언트는 상기 씬 리스트의 정보를 해석하여 상기 씬이 위치하는 가상공간을 표현하는 단계로 이루어지는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하는 방법 및 확장된 VRML을 처리하는 방법에 관한 것이다.
발명의 배경
종래의 인터넷상에서 다자참여형(multi-avatar) 가상공간을 서비스하기 위한 클라이언트-서버(client-server) 시스템의 문제점은 사용자가 서버에 접속할 때 가상 현실 즉, 가상세계(virtual world)를 구성하는 VRML 파일 전체가 클라이언트로 다운로드(down-load)되어야 한다는 점이다. 아울러 전체 파일이 다운로드된 후 파싱(parsing) 및 렌더링(rendering)되는 동안 사용자는 상기 과정을 기다려야 한다. 이 대기 시간이 다자참여형 가상현실 서비스가 사용자에게 널리 활성화되지 못하는 요인으로 작용하여 왔다.
이에 본 발명자는 상기 문제점을 해결하는 수단으로 가상공간을 "씬(scene)" 단위로 세부 분할하여 상기 씬 단위로 전송하는 방법을 제안하고자 하며, 상기 방법을 실현하기 위하여 씬 개념을 지원하는 새로운 노드(node)인 씬 노드(Scene node)와 이를 지원하는 맵 노드(Map node)를 VRML에 추가하고자 한다. 상기 VRML은 1997년 국제표준으로 선언된 ISO/IEC 14772-1:1997 Virtual Reality Modeling Language(VRML97)를 의미하며, 객체(object)의 표현 단위인 54개 노드를 정의하고 있다.
본 발명의 목적은 상기에 제시된 문제점들을 해소하기 위하여 가상공간을 "씬(scene)" 단위로 세부 분할하여 씬 단위로 전송하는 방법을 제공하고자 한다.
본 발명의 다른 목적은 상기 방법을 실현하기 위하여 씬 개념을 지원하는 새로운 노드(node)인 씬 노드(Scene node)와 이를 지원하는 맵 노드(Map node)를 VRML에 추가하여 확장하는 방법을 제공하고자 한다.
본 발명의 또 다른 목적은 사용자가 서버에 초기 접속시 VRML 파일의 모든 정보가 다운될 때까지 대기하는 시간 지연을 방지하기 위한 방법을 제공하고자 한다.
본 발명의 또 다른 목적은 전체 가상공간 파일을 파싱하여 메모리에 상주시킬 필요 없이 사용자의 현 위치에서 보이는 씬 만의 정보를 파싱해서 메모리에 상주시켜 메모리 요구를 최소화할 수 있는 방법을 제공하고자 한다.
본 발명의 또 다른 목적은 눈에 보이지 않는 씬의 객체에 대해서는 사용자가 네비게이션(navigation)시 콜리젼 디텍선(collision detection)을 할 필요가 없게 되므로, 신속한 사용자 네비게이션을 제공하는 방법을 제공하고자 한다.
본 발명의 상기 및 기타의 목적들은 하기 상세히 설명되는 본 발명에 의하여 모두 달성될 수 있다.
도1은 본 발명에 따라 이루어지는 VRML 파일을 씬 단위로 설계하는 방법을 흐름도로 도시한 것이다.
도2는 가상공간을 구현하는 씬 개념을 설명하기 위한 개념도이다.
도3은 가상공간을 세부 분할 단위인 씬으로 표현하는 새로운 노드인 씬 노드를 설계하기 위한 흐름을 나타낸 것이다.
도4는 씬 리스트 정보를 정의하는 새로운 노드인 맵 노드를 설계하기 위한 흐름을 나타낸 것이다.
도5는 본 발명에 따라 구현되는 가상공간에서 서버에 접속한 클라이언트에게 가상공간 정보를 보내는 순서 및 방법을 표현한 것이다.
도6은 종래의 다자참여형 가상현실 서비스의 클라이언트 접속 과정을 설명한 것이다.
도7은 본 발명에서 제안하는 다자참여형 가상현실 서비스의 클라이언트 접속과정을 설명한 것이다.
*도면의 주요부호에 대한 간단한 설명*
10 : 씬 20 : 씬 리스트
30 : 가상공간
본 발명은 가상공간을 세부 분할 단위인 씬(scene)으로 분할하고, 상기 가상공간을 분할하는 씬에 대한 목록 정보 및 상기 씬이 가상공간에서 위치하는 좌표를표현하는 씬 리스트(scene list)를 생성하고, 서버(server)는 상기 씬 리스트 및 씬 정보를 클라이언트(client)에게 전송하고, 이를 전송받은 클라이언트는 상기 씬 리스트의 정보를 해석하여 상기 씬이 위치하는 가상공간을 표현하는 단계로 이루어진다.
본 발명은 가상공간을 "씬(scene)" 단위로 세부 분할하여 씬 단위로 데이터를 전송하는 방법에 관한 것이다. 상기 방법을 구현하기 위하여 씬의 개념을 지원하는 새로운 노드(node)인 씬 노드와 상기 씬 노드를 지원하는 맵 노드(map node)를 설계하는 방법을 제공하고자 한다. 따라서 상기 노드 개념과 필드 개념을 이해할 필요가 있으므로 아래에서 상기 노드와 필드에 대해 보다 상세히 설명하기로 한다.
먼저 일반론으로 객체지향 언어인 VRML에서 다루는 객체인 노드는 거의 어떤 타입의 정보도 가질 수 있고 자식을 가질 수도 있다. 상기 노드는 인스탠싱(instancing)을 통해서 재사용 될 수도 있다. VRML은 전형적인 객체지향 언어들처럼 각각의 독립적인 요소들을 비선형적 혹은 랜덤(random)하게 구성한다. 반면 씬 그래프(scene graph) 내부에 존재하는 VRML 소스 파일은 계층적 파일로서 상기 노드들이 파싱되는 순서를 기술한다.
이하에서는 예제를 들어 상기 노드와 필드에 대해서 상세히 설명한다. 예제 1은 VRML1.0 사양서에 나와있는 예제를 옮겨온 것이다.
(예제 1) node 예제
VRML V1.0 ascii
Separator {
DirectionalLight {
direction 0 0 -1
}
PerspectiveCamera {
position -8.6 2.1 5.6
orientation -0.1352 -0.9831 -0.1233 1.1417
focalDistance 10.84
}
}
상기 (예제 1)을 보면 명령어가 나오면 다음에 반드시 ' { '이 나오고 그 안에 다른 명령어들이 나온 후 ' } '이 나와서 다른 명령어를 감싸고 있다. 모든 명령어가 이런 형식을 취하고 있다. 예제와 같이 ' 명령어 {...} '의 형태를 가진 문장 하나를 VRML에서는 노드(node)라 정의를 한다. 상기 노드가 바로 VRML을 구성하는 기본 단위이다. 3차원 공간상의 물체, 카메라, 빛 등 직접 보이는 물체와 색, 위치, 방향 등 물체의 속성, 그리고 WWW(World Wide Web)의 링크 등 모든 것이 노드로 표현된다. (예제 1)의 경우에 있어 노드는 Separator, DirectionalLight, PerspectiveCamera 임을 쉽게 알 수가 있다. VRML에서 정의된 노드는 그 역할에 따라 아래의 (표 1)처럼 형태 노드, 속성 노드, 그룹 노드의 3종류로 분류된다. 상기 형태 노드는 실제 눈에 보이는 3차원 물체의 모양을 지정하는 노드이다. 상기 속성 노드는 상기 형태 노드가 그릴 물체의 성질을 지정한다. 상기 그룹 노드는 여러 노드를 하나의 개체처럼 다룰 수 있도록 구분 짓는 역할을 한다.
노드의 종류별 분류
노드 종류 부그룹 관련노드
형태 노드 AsciiText, Cone, Cube, Cylinder,IndexedFaceSet, PointSet, Sphere
속성 노드 형태와 모양 그룹 Coordinate3, FontStyle, Info, LOD, Material,MaterialBinding, Normal, NormalBinding,Texture2,Texture2Transform, TextureCoordinate2, ShapeHints
변환 행렬 그룹 MatrixTransform, Rotation, Scale, Transform,Translation
카메라/조명 그룹 OrthographicCamera, PerspectiveCamera,DirectionalLight, PointLight, SpotLight
그룹 노드 Group, Separator, Switch, TransformSeperator,WWWAnchor
그 외의 노드 WWWInline
(예제 2) Field 예제
Cube{ #노드 이름
width 0.1 # 너비 필드
height 0.1 # 높이 필드
depth 4 # 깊이 필드
}
상기 (예제 2)는 필드를 설명하기 위한 것으로 노드 안을 보면 (예제 1)과는 다른 형태로 명령어 다음에 ' {} '이 나오지 않고 곧바로 숫자가 나오고 있다. 이처럼 ' {} '가 없는 명령어는 노드 밖에 단독으로 존재할 수 없고, 노드의 성질을 결정하는 수치를 지정하기 위한 것이다. 이것을 필드라고 한다. (예제 2)를 해석하면 필드는 필드의 이름과 필드값으로 이뤄진다. 대부분의 노드는 고유의 속성을 표현하기 위해 하나 이상의 필드를 지정하게 된다. 하지만 필드를 갖지 않는 노드도 있고, 필드가 존재하여도 때로는 필드가 생략되는 경우가 있는데 이때는 필드의 기본값을 가지게 된다. VRML에서 3차원 그래픽에 필요한 수치체계를 표현하기 위해 몇 가지 미리 정의된 수치 체계를 갖고 있다. 상기 수치 체계를 필드타입이라 하는데 모든 필드는 이 필드 타입 중 어느 하나에 속하게 된다. 필드 타입에는 하나의 값을 갖는 종류와 두 개 이상의 값을 갖는 종류가 있다(표 2).
필드 타입의 종류
단일 개체 필드 다개체 필드
SFBitMask, SFBool, SFmatrixSFColor, SFEnum, SFRotationSFFloat, SFImage, SFLongSFVec2f, SFVec3f, SFString MFColor, MFLong, MFVec2f,MFVec3f,
아래의 (예제 3)에서처럼 전자의 경우 필드 타입 제일 앞에 SF(Single Field)라는 두 문자가, 후자인 경우 MF(Multiple Field)라는 두문자가 붙는다.
(예제 3) 필드의 유형
SFFloat 1.0# 하나의 값을 갖는 단일개체 필드
SFVec3f 1.0 1.2 -0.3# 여러개의 값을 갖는 단일개체 필드
MFVec3f[# 3개의 3차원 벡터 원소를 갖는 다개체 필드
1.0 1.2 -0,3
0.2 1.5 -8.7
-2.1 -2.1 0
]
앞에서 자세히 노드와 필드에 대해 설명하였는데, 다시 한번 VRML의 노드를 정의하면 아래와 같다.
[ DEF node-name ] node-type { [fields..] [children-node..] }
이하에서는 상술한 것을 바탕으로 본 발명에서 구현하고자 하는 가상공간을 "씬(scene)" 단위로 세부 분할하여 상기 씬 단위로 전송하는 방법을 설명한다.
도1은 본 발명에 따라 이루어지는 VRML 파일을 씬 단위로 설계하는 방법을 흐름도로 도시한 것이다.
먼저 가상공간을 세부 분할 단위인 씬으로 세부 분할한다(S100). 상기와 같이 가상공간을 구성하는 세부 분할 단위인 씬 단위로 상기 가상공간을 분할하기 위해서는 종래의 노드로는 표현을 할 수가 없으므로 새롭게 노드를 정의하여 준다. 상기 노드를 설계하는 방법은 아래에서 자세히 설명하기로 한다.
상기와 같이 씬 단위로 세부 분할된 가상공간에서 다수의 씬에서 사용자가 위치하는 해당 씬을 선택하기 위해서는 사용자가 위치하는 지역 정보를 바탕으로 하여 다수의 씬을 구별할 수 있는 목록 정보가 필요하다. 따라서 본 단계에서는 다수의 씬을 구별할 수 있는 씬의 목록 정보와 상기 씬이 가상공간상에서 위치하는 좌표정보를 포함하는 씬 리스트를 생성한다(S200). 본 단계에 있어서도 상기 씬 리스트를 표현하기 위해서는 종래의 노드로는 표현을 할 수가 없으므로 새롭게 노드를 정의하여 준다. 상기 노드를 설계하는 방법은 아래에서 역시 자세히 설명하기로 한다.
상술한 것과 같이 가상공간을 다수의 씬으로 분할하고 상기 씬에 대한 목록 정보 및 좌표공간의 정보를 포함하는 씬 리스트를 생성한 후, 사용자가 위치하는 가상공간을 표현하는데 있어 상기 씬 리스트를 해석하여 사용자가 위치하는 가상공간의 씬 정보를 불러들여 가상공간을 구현하게 된다(S300).
이하 상기 씬을 지원하는 새로운 노드(node)인 씬 노드와 상기 씬 리스트를 지원하는 새로운 노드인 맵 노드(map node)를 설계하는 방법을 설명한다.
도2는 가상공간을 구현하는 씬 개념을 설명하기 위한 개념도이다.
도시한 바와 같이, 본 발명에서는 가상공간을 세부 분할 단위인 씬(10)으로 분할한다. 이후 가상공간을 표현하는데 있어서는 씬리스트(scene list)(20)를 참조하여 가상공간(30)에서 각각의 씬들이 위치하는 지역을 찾아 사용자가 위치하는 가상공간을 표현하게 된다. 종래에 있어서는 사용자가 위치하는 가상공간을 표현하기 위해 가상공간을 표현하는 VRML 파일 전체를 전송 받아 이를 파싱하여 렌더링을 수행한다. 반면에 상기와 같은 씬 개념에 따르면, 사용자가 가상공간에서 위치하는 최소한의 지역만을 선택하여 표현할 수가 있다. 따라서 그 만큼 가상공간을 표현하고자 서버가 클라이언트에게 전송하는 VRML 데이터의 크기를 최소화할 수가 있어 파싱 및 렌더링을 수행하기 위한 시간을 최소화할 수가 있는 것이다.
VRML 언어는 상술한 것과 같이 객체(object)를 표현하는 노드와 객체의 성질을 표현하는 필드로 이루어진다. 상기 노드는 현재 54개가 정의되어 사용되고 있으나 상술한 씬 개념을 지원하기 위해서는 새로운 노드로 가상공간의 분할 단위인 씬을 표현하는 '씬 노드'와 가상세계를 구성하는 씬의 목록정보와 좌표정보를 표현하는 '맵 노드'를 설계하여야 한다.
도3은 가상공간의 보다 작은 분할 단위인 씬을 표현하는 새로운 노드인 씬 노드를 설계하기 위한 흐름을 나타낸 것이다.
씬은 가상공간을 분할하기 위한 보다 작은 단위로써, 가상공간의 일부분에 위치하는 지역 정보들을 표현해 준다. 따라서 가상공간에는 다수의 씬이 존재를 하게 된다. 그러므로 씬 노드에서는 먼저 각각의 씬을 구별하기 위해 씬의 고유 아이디(id)를 부여한다(S110). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현하여 주면은 "field SFInt32 id"가 된다.
다음으로 현재 사용자가 위치하는 씬과 이웃해 있는 씬으로서 현재의 씬에서 보여져야 할 필요가 있는 씬을 표현해 주어야 한다. 따라서 현재의 씬에서 보여져야 할 필요가 있는 이웃한 씬의 고유 식별자를 나타내어 준다(S120). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현해 주면은 "exposedField MFInt32visibleRegions"가 된다.
다음으로 씬이 위치하는 좌표상의 영역 경계를 나타내어 가상공간을 다수의 씬으로 구분하여 준다(S130). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현하면 "exposedField MFNode walls"가 된다.
다음으로 상기와 같이 가상공간을 다수의 씬으로 구분을 하였으면 각각의 씬에 포함되는 객체를 표현한다(S140). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현하면 "exposedField MFNode contents"가 된다.
마지막으로 씬 속의 객체들이 초기에 닫혀 있음을 표현해 준다(S150). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현하면 "exposedField SFBool closed"가 된다.
상기와 같이 이루어지는 씬 노드를 VRML 언어로 정리하면,
Scene {
field SFInt32 id# scene의 고유 id(식별자, identifier)
exposedField MFInt32 visibleRegions# 현재의 scene과 이웃해 있는 scene(neighbor scene)으로서 현 scene에서 보여져야 할 필요가 있 는 scene의 고유 식별자
exposedField MFNode walls# scene의 좌표상의 영역 경계
exposedField MFNode contents# scene에 포함되는 객체
exposedField SFBool closed# scene 속의 객체들이 초기에 closed되어 있음을 표시
}
가 된다.
도4는 씬 리스트 정보를 정의하는 새로운 노드인 맵 노드를 설계하기 위한 흐름을 나타낸 것이다.
맵 노드는 가상공간을 분할한 모든 씬들의 리스트 정보를 정의하고 있다. 상기 리스트 정보는 가상공간을 구성하는 상기에서 정의한 모든 씬들에 대한 목록 및 설명서와 같은 기능을 가진다. 따라서 맵 노드는 가상공간을 분할하고 있는 모든 씬에 대한 정보를 포함하고, 씬이 가상공간 상에서 위치하는 지역을 표현해 주어야 한다.
따라서 처음으로는 상기 씬 노드에서 정의한 씬의 아이디(id)를 목록으로 표현해 준다(S210). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현하여 주면은 "exposedField MFInt32 ids"가 된다.
다음으로 각 씬들의 가상공간상의 좌표정보를 표현하기 위해 해당 씬을 둘러싸는 평면의 방향 벡터를 의미하는 노말(normal)에 관한 정보를 표현하여 준다(S220). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현하여 주면은 "field MFVec3f normals"가 된다.
상기와 같이 각각의 씬에 대한 방향을 설정하고, 마지막으로 씬이 위치하는 지역을 표기하여 위하여 해당 지역을 둘러싸는 평면의 중점에서 원점까지의 위치를나타내는 거리(distance) 목록을 정의한다(S230). 위에서 설명한 노드와 필드를 활용해서 VRML 언어로 표현하면 "field MFFloat distances"가 된다.
상기와 같이 이루어지는 맵 노드를 VRML 언어로 다시 한번 정리하면,
Map {
exposedField MFInt32 ids# scene의 id 목록
field MFVec3f normals# normals 목록. normal은 해당 scene을 둘러싸 는 평면(plane)의 방향 벡터
field MFFloat distances#distance 목록. distance는 해당 지역(region)을 둘러싸는 평면의 중점에서 원점까지의 위치
}
가 된다.
지금까지는 새로운 노드인 맵 노드와 씬 노드에 대해서 자세히 설명하였다. 이하에서는 상기와 같이 추가된 노드를 가지고 가상공간이 구현되어지는 과정을 설명하기로 한다.
도5는 본 발명에 따라 구현되는 가상세계에서 서버에 접속한 클라이언트에게 가상세계(virtual world) 정보를 보내는 순서 및 방법을 표현한 것이다.
클라이언트(client)가 서버(server)에 접속하여 가상세계 정보를 요청하면(S1), 서버에서는 가상공간을 분할하고 있는 씬에 대한 정보 및 씬이 가상공간에서 위치하는 좌표를 표현해 주는 씬 리스트(scene list)와 가상세계의 입구에 해당하는 씬을 상기 클라이언트에게 우선적으로 전송하게 된다(S2). 이를 접수한 클라이언트의 브라우저는 이 정보를 파싱(parsing)하고 렌더링(rendering)을 수행해서 사용자에게 디스플레이를 하면(S3), 사용자는 씬(scene) 공간을 이동하게 되는데(S4) 이때 사용자의 이동 방향에 따라 서버로부터 추가로 가져와야 할 씬이 결정되어야 한다. 이를 위하여 초기에 서버로부터 전송받은 씬 리스트를 참조한다(S5).
도6은 종래의 다자참여형 가상현실 서비스의 클라이언트 접속 과정을 설명한 것이다. 그리고 도7은 본 발명에서 제안하는 다자참여형 가상현실 서비스의 클라이언트 접속 과정을 설명한 것이다. 이하 도6 및 도7을 가지고 본 발명을 설명하기로 한다.
도6 및 도7을 비교하여 보면 클라이언트가 서버에 접속하여 사용자 인증을 확인하게 되고(S10, S'10), 서버로부터 가상세계 리스트(world list)를 입력받아 관심있는 가상세계를 선택하는 단계까지는 동일하다(S20, S'20). 다음 단계로 도6에서 설명하는 종래의 다자참여형 가상현실 서비스에서는 클라이언트가 특정 가상세계를 선택하게 되면 서버에서는 상기 가상세계 전체에 대한 VRML 파일을 전송하여 클라이언트에서는 상기 파일을 파싱 및 렌더링을 수행하여 가상세계를 구현하게 된다(S30, S40).
반면에 도7에서 설명하고 있는 본 발명에서 제안하는 다자참여형 가상현실 서비스에서는 위에서 설명한 것과 같이 사용자가 선택한 가상세계의 전체 VRML 파일을 전송하는 대신에, 사용자가 선택한 가상세계를 구성하는 씬리스트와 가상세계의 입구에 해당하는 씬을 우선적으로 전송을 하게된다(S'30). 이후 클라이언트에서는 상기 씬을 입력받아 이를 파싱 및 렌더링을 거쳐 가상세계를 구현하고 네비게이션(navigation) 하게 된다(S'40). 사용자가 네비게이션 함에 따라 클라이언트에서는 네비게이션 방향에 따라 씬리스트를 참조하여 새로운 씬을 서버에 요구하게 된다(S'50).
따라서 종래의 다자참여형 가상현실 서비스에 있어서는 가상공간을 구성하는 VRML 파일 전체가 클라이언트로 전송되어 상기 파일을 파싱하고 렌더링함에 따라 많은 시간을 소모하게 된다. 하지만 본 발명에서 제안하는 다자참여형 가상현실 서비스에 있어서는 사용자가 선택한 가상세계를 표현하는데 있어 최소한의 VRML 데이터만을 사용함으로 그만큼 시간을 절약할 수가 있는 것이다.
본 발명은 사용자가 서버에 초기 접속 시 VRML 파일의 모든 정보가 다운로딩될 때까지 대기할 필요가 없으며 사용자의 눈에 보이지 않는 씬을 모두 렌더링(rendering)할 때까지 사용자가 기다릴 필요가 없을 뿐 아니라 사용자의 현 위치에서 보이는 씬만을 렌더링 함으로써 렌더링 퍼포먼스(performance)를 높일 수 있다. 또한 전체 가상세계를 파싱하여 메모리에 상주시킬 필요 없이 사용자의 현 위치에서 보이는 씬만의 정보만을 파싱하여 메모리에 둠으로서 메모리 요구를 최소화할 수 있으며 눈에 보이지 않는 씬의 객체에 대해서는 사용자가 네비게이션하는 경우콜리젼 디텍션(collision detection)을 할 필요가 없게 되므로, 신속한 사용자네비게이션이 가능하다.

Claims (4)

  1. 가상공간을 세부 분할 단위인 씬(scene)으로 분할하고;
    상기 가상공간을 분할하는 씬(scene)에 대한 목록 정보 및 상기 씬(scene)이 가상공간에서 위치하는 공간좌표 정보를 나타내는 씬 리스트(scene list)를 생성하고;
    서버(server)는 상기 씬 리스트 및 씬 정보를 클라이언트(client)에게 전송하고; 그리고
    이를 전송받은 클라이언트는 상기 씬 리스트의 정보를 해석하여 상기 씬이 위치하는 가상공간을 표현하는;
    단계로 이루어지는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하고 확장된 VRML을 처리하는 방법.
  2. 제1항에 있어서, 상기 가상공간을 세부 분할 단위인 씬으로 분할하는 단계는,
    가상공간에서 다수의 씬을 구별할 수 있도록 씬마다의 고유 아이디를 부여하고;
    현재의 씬에서 보이는 이웃한 씬의 고유 식별자를 나타내고;
    가상공간을 다수의 씬으로 구분하는 좌표상의 영역 경계를 표현하고;
    상기와 같이 가상공간을 다수의 씬으로 구분하여 각각의 씬에 포함되는 객체를 표현하고; 그리고
    상기 씬 속의 객체들이 초기에 닫혀 있음을 표현하는;
    단계로 이루어지는 것을 특징으로 하는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하고 확장된 VRML을 처리하는 방법.
  3. 제1항에 있어서, 가상공간을 분할하는 씬(scene)에 대한 목록 정보를 포함하며, 상기 씬(scene)이 가상공간에서 위치하는 지역을 표현하는 씬 리스트(scene list)를 생성하는 단계는,
    씬 노드에서 정의한 씬의 아이디(id)를 목록으로 표현하고;
    해당 씬을 둘러싸는 평면의 방향 벡터를 의미하는 노말(normal)에 관한 정보를 표현하고; 그리고
    씬이 위치하는 지역을 나타낼 수 있도록 해당 지역을 둘러싸는 평면의 중점에서 원점까지의 위치를 나타내는 거리(distance) 목록을 표현하는;
    단계로 이루어지는 것을 특징으로 하는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하고 확장된 VRML을 처리하는 방법.
  4. 클라이언트가 서버에 접속하였을 때 상기 서버가 인증을 확인하고;
    사용자가 관심 있는 가상공간를 선택한 후 상기 클라이언트가 상기 서버에 상기 가상공간의 정보를 요청하고;
    상기 서버에서는 상기 가상공간을 분할하고 있는 씬에 대한 정보 및 씬의 가상공간상에서 위치하는 좌표를 표현해 주는 씬 리스트(scene list)와 가상공간의 입구에 해당하는 씬을 상기 클라이언트에게 우선적으로 전송하고;
    상기 클라이언트에서는 상기 클라이언트의 브라우저가 상기 서버로부터 접수한 상기 씬 리스트 및 상기 가상공간의 입구에 해당하는 상기 씬을 파싱(parsing) 및 렌더링(rendering)을 수행해서 사용자에게 디스플레이를 하고;
    상기 사용자가 씬(scene) 공간을 이동할 때 초기에 서버로부터 전송 받은 씬 리스트를 참조하여 사용자의 이동 방향에 따라 서버로부터 추가로 가져와야 할 씬을 결정한 후 상기 씬을 상기 서버에 요구하고; 그리고
    상기 서버가 상기 결정된 씬을 클라이언트에게 전송하는;
    단계로 이루어진 것을 특징으로 하는 서버에 접속한 클라이언트에게 가상공간의 정보를 보내는 방법.
KR1020000046779A 2000-08-12 2000-08-12 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법 KR100355990B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000046779A KR100355990B1 (ko) 2000-08-12 2000-08-12 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000046779A KR100355990B1 (ko) 2000-08-12 2000-08-12 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법

Publications (2)

Publication Number Publication Date
KR20020013224A KR20020013224A (ko) 2002-02-20
KR100355990B1 true KR100355990B1 (ko) 2002-10-18

Family

ID=19682969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000046779A KR100355990B1 (ko) 2000-08-12 2000-08-12 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법

Country Status (1)

Country Link
KR (1) KR100355990B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019078580A3 (ko) * 2017-10-17 2019-06-13 삼성전자 주식회사 실감형 미디어를 전송하는 방법 및 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100527682B1 (ko) * 2001-10-11 2005-11-09 삼성에스디에스 주식회사 3차원 지리정보 처리방법 및 그 장치
KR20040052131A (ko) * 2002-12-13 2004-06-19 한국전자통신연구원 거리기반 분산형 온라인 게임 서버 시스템
KR100469826B1 (ko) * 2004-02-05 2005-02-03 엔에이치엔(주) 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019078580A3 (ko) * 2017-10-17 2019-06-13 삼성전자 주식회사 실감형 미디어를 전송하는 방법 및 장치
US11463673B2 (en) 2017-10-17 2022-10-04 Samsung Electronics Co., Ltd. Method and device for transmitting immersive media

Also Published As

Publication number Publication date
KR20020013224A (ko) 2002-02-20

Similar Documents

Publication Publication Date Title
US5870084A (en) System and method for efficiently storing and quickly retrieving glyphs for large character set languages in a set top box
US7283135B1 (en) Hierarchical tile-based data structure for efficient client-server publishing of data over network connections
US6141002A (en) System and method for downloading and rendering glyphs in a set top box
US5966637A (en) System and method for receiving and rendering multi-lingual text on a set top box
US5999944A (en) Method and apparatus for implementing dynamic VRML
US6734885B1 (en) Information processing apparatus, method and computer program for virtual reality transparent avatars
US7212667B1 (en) Color image processing method for indexing an image using a lattice structure
US5973699A (en) System and method for increasing the performance for real-time rendering of three-dimensional polygonal data
CN106469190A (zh) 三维场景管理方法及三维场景管理系统
US20230418799A1 (en) Volumetric vector node and object based multi-dimensional operating system
WO2009017940A2 (en) Tiled packaging of vector image data
KR100355990B1 (ko) 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법
US11563984B2 (en) Flexible tree partition and representation for point cloud coding
US20050151747A1 (en) 3D object graphics processing apparatus and 3D scene graph processing apparatus
WO2000070557A9 (en) Method and apparatus for registering lots in a shared virtual world
KR100840028B1 (ko) Mpeg-7 및 다른 xml 기반 내용 기술의 2진 표현 기능을 개선하기 위한 방법
US11798199B2 (en) Method and apparatus for configuring spatial information
US6388680B1 (en) Multi-user extension mechanisms for client-server system
JP2002024208A (ja) データ提示システム
WO2000070560A1 (en) Method and apparatus for a multi-owner, three-dimensional virtual world
Chien et al. Distributed quadtree processing
CN116630552B (zh) 面向大规模的三维流程工厂模型的优化渲染方法
US20230169713A1 (en) Multichip ray tracing device and method
KR102187232B1 (ko) 카메라를 통해 인식된 사물의 패턴 생성을 이용하여 사물의 정보를 로딩하는 프로그램
CN118069943A (zh) 页面显示方法、装置、设备、存储介质及产品

Legal Events

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

Payment date: 20060927

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee