KR100355990B1 - 인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법 - Google Patents
인터넷 가상현실 서비스에서 점진적 데이터 전송을 위한vrml 노드 확장 및 처리 방법 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/02—Non-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
발명의 분야
본 발명은 인터넷상의 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)
- 가상공간을 세부 분할 단위인 씬(scene)으로 분할하고;상기 가상공간을 분할하는 씬(scene)에 대한 목록 정보 및 상기 씬(scene)이 가상공간에서 위치하는 공간좌표 정보를 나타내는 씬 리스트(scene list)를 생성하고;서버(server)는 상기 씬 리스트 및 씬 정보를 클라이언트(client)에게 전송하고; 그리고이를 전송받은 클라이언트는 상기 씬 리스트의 정보를 해석하여 상기 씬이 위치하는 가상공간을 표현하는;단계로 이루어지는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하고 확장된 VRML을 처리하는 방법.
- 제1항에 있어서, 상기 가상공간을 세부 분할 단위인 씬으로 분할하는 단계는,가상공간에서 다수의 씬을 구별할 수 있도록 씬마다의 고유 아이디를 부여하고;현재의 씬에서 보이는 이웃한 씬의 고유 식별자를 나타내고;가상공간을 다수의 씬으로 구분하는 좌표상의 영역 경계를 표현하고;상기와 같이 가상공간을 다수의 씬으로 구분하여 각각의 씬에 포함되는 객체를 표현하고; 그리고상기 씬 속의 객체들이 초기에 닫혀 있음을 표현하는;단계로 이루어지는 것을 특징으로 하는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하고 확장된 VRML을 처리하는 방법.
- 제1항에 있어서, 가상공간을 분할하는 씬(scene)에 대한 목록 정보를 포함하며, 상기 씬(scene)이 가상공간에서 위치하는 지역을 표현하는 씬 리스트(scene list)를 생성하는 단계는,씬 노드에서 정의한 씬의 아이디(id)를 목록으로 표현하고;해당 씬을 둘러싸는 평면의 방향 벡터를 의미하는 노말(normal)에 관한 정보를 표현하고; 그리고씬이 위치하는 지역을 나타낼 수 있도록 해당 지역을 둘러싸는 평면의 중점에서 원점까지의 위치를 나타내는 거리(distance) 목록을 표현하는;단계로 이루어지는 것을 특징으로 하는 다자참여형 가상공간을 표현하기 위하여 VRML을 확장하고 확장된 VRML을 처리하는 방법.
- 클라이언트가 서버에 접속하였을 때 상기 서버가 인증을 확인하고;사용자가 관심 있는 가상공간를 선택한 후 상기 클라이언트가 상기 서버에 상기 가상공간의 정보를 요청하고;상기 서버에서는 상기 가상공간을 분할하고 있는 씬에 대한 정보 및 씬의 가상공간상에서 위치하는 좌표를 표현해 주는 씬 리스트(scene list)와 가상공간의 입구에 해당하는 씬을 상기 클라이언트에게 우선적으로 전송하고;상기 클라이언트에서는 상기 클라이언트의 브라우저가 상기 서버로부터 접수한 상기 씬 리스트 및 상기 가상공간의 입구에 해당하는 상기 씬을 파싱(parsing) 및 렌더링(rendering)을 수행해서 사용자에게 디스플레이를 하고;상기 사용자가 씬(scene) 공간을 이동할 때 초기에 서버로부터 전송 받은 씬 리스트를 참조하여 사용자의 이동 방향에 따라 서버로부터 추가로 가져와야 할 씬을 결정한 후 상기 씬을 상기 서버에 요구하고; 그리고상기 서버가 상기 결정된 씬을 클라이언트에게 전송하는;단계로 이루어진 것을 특징으로 하는 서버에 접속한 클라이언트에게 가상공간의 정보를 보내는 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019078580A3 (ko) * | 2017-10-17 | 2019-06-13 | 삼성전자 주식회사 | 실감형 미디어를 전송하는 방법 및 장치 |
Families Citing this family (3)
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 | 엔에이치엔(주) | 온라인 게임 서버의 데이터 분산 처리 방법 및 데이터분산 처리 시스템 |
-
2000
- 2000-08-12 KR KR1020000046779A patent/KR100355990B1/ko not_active IP Right Cessation
Cited By (2)
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 |