KR20110105350A - 가상 세계 씬의 이미지들을 제공하기 위한 방법 및 장치 그리고 이를 처리하기 위한 방법 및 장치 - Google Patents

가상 세계 씬의 이미지들을 제공하기 위한 방법 및 장치 그리고 이를 처리하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20110105350A
KR20110105350A KR1020110023667A KR20110023667A KR20110105350A KR 20110105350 A KR20110105350 A KR 20110105350A KR 1020110023667 A KR1020110023667 A KR 1020110023667A KR 20110023667 A KR20110023667 A KR 20110023667A KR 20110105350 A KR20110105350 A KR 20110105350A
Authority
KR
South Korea
Prior art keywords
rendering
scene
virtual world
image
client
Prior art date
Application number
KR1020110023667A
Other languages
English (en)
Other versions
KR101762956B1 (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110105350A publication Critical patent/KR20110105350A/ko
Application granted granted Critical
Publication of KR101762956B1 publication Critical patent/KR101762956B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/02Non-photorealistic rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 명세서는 가상 세계의 씬의 이미지들을 제공하기 위한 방법을 포함한다. 상기 방법은 복수의 렌더링 결과들을 생성하기 위해 가상 세계의 씬을 생성하는 단계; 상기 렌더링 결과들의 적어도 일부에 기초하여 이미지 스트림을 생성하는 단계; 및 상기 이미지 스트림을 클라이언트로 전송하는 단계;를 포함한다. 본 방법을 가지고, 상기 가상 세계의 씬의 이미지의 실시간 디스플레이가 가벼운 클라이언트에서 제공될 수 있다. 일 실시예에서, 렌더링이 적어도 하나의 고정 관측각에서 수행되고, 그리고 상기 클라이언트로 전송될 이미지 스트림을 생성하기 위해 대응 아바타에 맞춰진 렌더링 결과가 선택된다. 이에 따라, 상기 렌더링을 수행하기 위한 상기 서버에 대한 연산량은 클라이언트들의 수와 무관해진다; 이는 상기 서버의 성능 및 확장성을 더욱 개선한다. 본 명세서는 가상 세계의 씬의 이미지들을 제공하기 위한 장치, 가상 세계의 씬의 이미지들을 처리하기 위한 방법 및 장치, 그리고 가상 세계를 구현하기 위한 시스템을 더 포함한다.

Description

가상 세계 씬의 이미지들을 제공하기 위한 방법 및 장치 그리고 이를 처리하기 위한 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING IMAGES OF A VIRTUAL WORLD SCENE AND METHOD AND APPARATUS FOR PROCESSING THE SAME}
본 발명의 실시예들은 일반적으로 컴퓨터 환경에서의 가상 세계의 구현에 관련된 것으로서, 보다 상세하게는, 가상 세계의 씬(scene)의 이미지들을 제공하기 위한 방법 및 장치, 가상 세계의 씬의 이미지들을 처리하기 위한 방법 및 장치, 및 가상 세계를 구현하기 위한 시스템에 관한 것이다.
가상 세계는 컴퓨터에 의해 시뮬레이트된 가상의 3차원(3D) 환경인데, 여기서 유저는 아바타 형태로서 다른 유저들과 의사소통을 할 수 있다. 일반적인 온라인 게임과는 달리, 상기 가상 세계는 다수의 사람들이 동시에 온라인을 가능케 하는 가상 3D 환경이다. 최근들어, 상기 가상 세계는 정보 기술 분야에서 핫 이슈 중 하나가 되었다. 기존의 가상 세계 구현에서는, 클라이언트가 서버로부터 가상 세계와 연관된 3D 씬 데이터를 수신하고, 그리고나서 상기 클라이언트에서 상기 수신된 3D 씬 데이터를 가지고 로컬로 렌더링(rendering)이 수행되고, 상기 렌더링 결과들을 기초로 가상 세계의 씬의 이미지가 디스플레이를 위해 생성된다. 그러나, 상기 렌더링을 수행하기 위해 필요한 연산량은 종종 감당이 안된다(overwhelming). 예를 들어, 하이파이(high-fidelity) 영화 이미지의 경우, 오직 이미지들의 몇몇 프레임들만이 하루에 렌더링될 수 있다.
따라서, 연산량에 관한 상기 문제들을 해결하기 위해서, 일반적으로 사전-렌더링 방법이 영화 이미지들에 대해 적용된다(즉, 이들을 실제로 플레이하기 전 사전-렌더링 샷 이미지들(shot images)). 그러나, 사전-샷되는 영화 이미지들과는 달리, 가상 세계의 신의 이미지들은 실시간으로 생성되고, 예측 불가능하게 변한다. 이에 따라, 신 이미지에 대해 이러한 사전-렌더링 기술을 사용하는 것이 불가능하고, 실시간으로 렌더링 되어야 하고 훨씬 더 많은 엄청난 양의 연산이 필요하다. 이에 따라, 상기 클라이언트는 매우 높은 연산 능력을 가질 필요가 있다. 상기 클라이언트는 실시간 렌더링을 수행할 수 있도록, 예를 들어 전문 그래픽 프로세서와 같은 보조 장치를 가질 필요가 있다. 이는 의심할 여지도 없이 클라이언트의 비용을 늘인다.
또한, 일반 데스크탑, 휴대용 컴퓨팅 디바이스 및 휴대용 통신 디바이스와 같은 가벼운 디바이스들이 점점 더 인기있어졌다. 그러나 이러한 디바이스들은 떨어지는 연산 능력을 가지며, 약한 전력 공급을 가진다. 이에 따라 원하는만큼 실시간 렌더링을 달성하는 것이 불가능하다. 따라서, 가상 세계 씬의 이미지의 실시간 디스플레이가 이러한 가벼운 일반 클라이언트에서도 구현될 수 있다면, 이는 상당히 매력적일 것이다.
이에 따라 종래 기술에서의 상술한 기술적 문제점들을 적어도 부분적으로 해결하거나 완하시키키 위해서, 가상 세계를 구현하기 위한 개선된 기술 해결책을 제공할 필요가 있다.
본 발명의 일 실시예에서, 가상 세계의 씬의 이미지들을 제공하기 위한 방법이 제공된다. 상기 방법은 복수의 렌더링 결과들을 생성하기 위해, 상기 가상 세계의 씬을 렌더링하는(rendering) 단계; 상기 렌더링 결과들의 적어도 일부분에 기초하여, 이미지 스트림을 생성하는 단계; 및 상기 이미지 스트림을 클라이언트로 전송하는 단계를 포함한다.
본 발명의 다른 실시예에서, 상기 가상 세계의 씬을 렌더링하는 단계는 상기 복수의 렌더링 결과들을 생성하기 위해, 상기 가상 세계에서, 상기 클라이언트의 대응하는 아바타의 위치 및 관측각(observation angle)으로부터 상기 가상 세계의 씬을 렌더링하는 단계;를 포함한다.
본 발명의 다른 실시예에서, 상기 가상 세계의 씬을 렌더링하는 단계는 상기 복수의 렌더링 결과들을 생성하기 위해, 상기 가상 세계에서, 적어도 하나의 고정 관측각으로부터 가상 세계의 씬을 렌더링하는 단계;를 포함할 수 있다.
본 발명의 다른 실시예에서, 상기 적어도 하나의 고정 관측각은 상기 씬의 주변공간에 분포된 복수의 포인트들로부터 상기 씬쪽을 향하도록 기설정된 복수의 고정 관측각들을 포함한다.
본 발명의 다른 실시예에 따라, 상기 방법은 상기 렌더링 결과들의 일부로서 상기 적어도 하나의 고정 관측각으로부터 생성된 렌더링 결과들을 취하기 위해서, 복수의 고정 관측각들로부터, 가능한 한 상기 클라이언트의 대응하는 아바타의 관측각에 가까운 적어도 하나의 고정 관측각을 선택하는 단계;를 더 포함한다.
본 발명의 다른 실시예에 따라, 적어도 하나의 고정 관측각으로부터 상기 가상 세계의 씬을 렌더링하는 단계는, 서로 다른 투영 깊이들(projection depths) 각각에서 상기 씬을 렌더링하는 단계를 더 포함한다. 상기 방법은, 상기 가상 세계내 상기 대응하는 아바타의 위치에 기초하여, 상기 렌더링 결과들의 일부로서, 상기 복수의 렌더링 결과들로부터 상기 위치에 대응하는 투영 깊이를 가지는 렌더링 결과들을 선택하는 단계를 더 포함한다.
본 발명의 다른 실시예에 따라, 서로다른 투영 깊이들 각각에서 상기 씬을 렌더링하는 단계는 상기 서로다른 투영 깊이들에 대응하는 씬 변화들을 렌더링하는 단계를 더 포함한다.
본 발명의 또 다른 실시예에서, 가상 세계의 씬의 이미지들을 처리하기 위한 방법이 제공된다. 상기 방법은 클라이언트에서, 상기 가상 세계 씬의 적어도 두개의 이미지 스트림들을 수신하는 단계 및 플레이를 위해서, 상기 적어도 두개의 이미지 스트림들을 하나의 이미지 스트림으로 결합하는(merging) 단계;를 포함한다.
본 발명의 다른 실시예에서, 가상 세계의 씬의 이미지들을 제공하기 위한 장치가 제공된다. 상기 장치는 복수의 렌더링 결과들을 생성하기 위해, 상기 가상 세계의 씬을 렌더링하기 위한 렌더링 수단; 상기 렌더링 결과들의 적어도 일부에 기초하여 이미지 스트림을 생성하기 위한 이미지 스트림 생성 수단; 및 상기 이미지 스트림을 클라이언트로 전송하기 위한 전송 수단;을 포함한다.
본 발명의 추가 실시예에서, 가상 세계의 씬의 이미지들을 처리하기 위한 장치가 제공된다. 상기 장치는 클라이언트에서, 상기 가상 세계 씬(scene)의 적어도 두개의 이미지 스트림들을 수신하기 위한 수신 수단 및 상기 적어도 두개의 이미지 스트림들을 플레이를 위한 하나의 이미지 스트림으로 결합하기 위한 결합 수단을 포함한다.
본 발명의 또 다른 실시예에서, 가상 세계를 구현하기 위한 시스템이 제공된다. 상기 시스템은 상술한 실시예들 중 어느 하나에 따라 가상 세계의 씬(scene)의 이미지들을 제공하기 위한 장치, 및 상술한 실시예들 중 어느 하나에 따라 가상 세계의 씬의 이미지들을 처리하기 위한 장치를 포함한다.
다른 실시예에서, 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은 컴퓨터 프로그램 코드를 내장하고, 디바이스상에서 구동할 때, 상기 디바이스가 상술한 실시예들의 가상 세계의 씬의 이미지들을 제공하기 위한 방법들의 단계들을 수행하도록 한다.
다른 실시예에서, 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은 컴퓨터 프로그램 코드를 내장하고, 디바이스상에서 구동할 때, 상기 디바이스가 상술한 실시예들의 가상 세계의 씬의 이미지들을 처리하기 위한 방법의 단계들을 수행하도록 한다.
본 발명의 실시예들에서, 실시간 렌더링은 서버에서 수행될 수 있고, 클라이언트는 플레이를 위해서 렌더링 결과들의 적어도 일부분에 의해 생성된 이미지 스트림들을 수신할 필요만 있다. 이에 따라, 본 발명의 다양한 실시예들을 통해, 렌더링을 위한 워크로드는 약한 연산 능력 및/또는 전력 공급 용량을 가진 클라이언트에서 서버로 이동되고, 이에 상기 가상 세계의 클라이언트는 예를 들어 그래픽 프로세서와 같은 전용 장치를 인스톨 할 필요가 없고, 그리고 경량 클라이언트용 가상 세계 서비스를 제공하는 것이 가능해진다.
또한, 본 발명의 몇몇 실시예들에서, 렌더링이 상기 서버에서 복수의 고정 관측각들에 대해 수행될 수 있고, 상기 클라이언트로 전송될 이미지 스트림들을 생성하기 위해, 대응하는 아바타에 맞춰진 렌더링 결과가 상기 렌더링 결과들로부터 선택된다. 이에 따라, 상기 서버에 의해 렌더링을 수행하는데 필요한 연산량은 상기 클라이언트들의 수에 무관해진다; 이는 상기 서버의 성능과 확장성을 증가시키고, 서로다른 터미널들간의 실시간 정보 공유를 가능케하고, 그리고 피어투피어 기술을 활용의 가능성을 제공한다. 이는 특히 상기 서버에 연결된 클라이언트들의 수가 불확실하거나 매우 큰 경우에 이점이 된다.
본 발명의 실시예들의 상술한 특징 및 다른 특징들은 유사한 참조기호들이 유사한 컴포넌트들을 가리키는 첨부된 도면들을 참고도 도시된 바에 따라, 실시예들의 상세한 설명을 통해서 더욱 명확해질 것이다.
도 1은 기술 해결책에 따른 가상 세계를 구현하기 위한 바람직한 시스템의 블럭도를 도시한다;
도 2는 본 발명의 일 실시예에 따라 가상 세계를 구현하기 위한 시스템의 블럭도를 도시한다;
도 3은 본 발명의 일 실시예에 따라 가상 세계의 씬의 이미지를 제공하기 위한 방법의 흐름도를 도시한다;
도 4는 본 발명의 다른 실시예에 따라 가상 세계를 구현하기 위한 시스템의 블럭도를 도시한다;
도 5는 렌더링을 수행하기 위한 렌더링 엔진의 바람직한 구조의 블럭도를 도시한다;
도 6은 본 발명의 다른 실시예에 따른 원리에 대한 도면을 도시한다;
도 7은 본 발명의 다른 실시예에 따라 가상 세계를 구현하기 위한 시스템의 블럭도를 도시한다;
도 8은 본 발명의 다른 실시예에 따라 가상 세계 씬의 이미지를 제공하기 위한 방법의 흐름도를 도시한다;
도 9a 및 9b는 본 발명의 두 개의 서로다른 실시예들 각각에 따른 기설정 고정 관측각을 위한 방법에 대한 도면을 도시한다;
도 10은 본 발명에 사용가능한 물리적 메쉬 모델을 도시한다;
도 11a 및 11b는 본 발명의 두개의 다른 실시예들 각각에 따른 렌더링을 위한 도면을 도시한다;
도 12는 본 발명의 일 실시예에 따른 TGRN(triangle group relation network)의 도면을 도시한다;
도 13a 및 13b는 각각 본 발명의 일 실시예에 따른 아바타에 적합한 렌더링 결과를 선택하기 위한 방법에 관한 도면을 도시한다;
도 14a는 본 발명의 일 실시예에 따른 가상 세계의 씬을 디스플레이하기 위한 방법의 흐름도를 도시한다;
도 14b는 본 발명의 일 실시예에 따른 가상 세계의 씬의 이미지를 처리하기 위한 방법의 흐름도를 도시한다;
도 15는 본 발명의 일 실시예에 따른 이미지 프레임들의 결합에 관한 도면을 도시한다;
도 16은 본 발명의 바람직한 특정 구현에 따른 가상 세계를 구현하기 위한 시스템 아키텍쳐의 블럭도를 도시한다;
도 17a 및 17b는 본 발명의 두 실시예들 각각에 따른 가상 세계 씬의 이미지를 제공하기 위한 장치의 블럭도를 도시한다;
도 18a는 본 발명의 일 실시예에 따른 가상 세계의 씬의 이미지를 디스플레이하기 위한 장치의 블럭도를 도시한다;
도 18b는 본 발명의 일 실시예에 따른 가상 세계의 씬의 이미지를 처리하기 위한 장치의 블럭도를 도시한다; 그리고
도 19는 본 발명에 따른 실시예들이 구현될 수 있는 컴퓨터 디바이스의 블럭도를 도시한다.
본 발명의 다양한 실시예들에서, 렌더링은 서버에서 가상세계의 신에 대해 수행되고, 오직 클라이언트에 대응하는 아바타와 관련된 이미지 스트림만이 상기 클라이언트로 전송된다; 이에 따라, 상기 클라이언트의 연산량 및/또는 전력 공급 용량에 대해서 요구사항이 낮춰진다. 몇몇 실시예들에서, 상기 렌더링은 몇몇 고정 관측각들로부터 가상 세계 씬의 씬에서 수행되고, 대응하는 이미지 스트림들은, 가능한 한 상기 클라이언트의 대응하는 아바타의 관측각에 가까운 하나 또는 그 이상의 고정 관측각들의 렌더링 결과들에 의해서만, 상기 클라이언트로 전송되도록 생성된다. 클라이언트에서, 하나 또는 그 이상의 수신된 이미지 스트림들이 합성되고 플레이를 위한 하나의 스트림으로 구성된다. 그에 따라, 불특정 수의 클라이언트들 및 서로다른 아바타들과 관측각들에 대해서, 본 발명의 실시예들은 서버의 성능과 확장성을 개선하고, 서로 다른 클라이언트들간의 정보 공유를 구현하고 피어투피어(peer to peer) 기술을 이용하기 위한 가능성을 제공한다.
이하에서, 본 발명에 따른 방법, 장치 및 시스템이 도면들을 참조하여 바람직한 실시예를 통해 상세하게 기술될 것이다. 도면들의 흐름도 및 블럭도들은 본 발명의 실시예들에 따라 컴퓨터 프로그램 제품에 의해 구현될 수 있는 시스템, 방법, 이에 더하여 아키텍쳐, 기능들 및 동작들을 도시한다. 이점과 관련하여, 각 흐름도나 블럭도들의 각 블럭은 특정 논리 기능들을 수행하기 위한 하나 또는 그 이상의 실행가능한 명령을 포함하는 모듈, 프로그램 세그먼트, 또는 코드의 일부를 나타낼 수 있다. 또한 몇몇 다른 구현들에서, 블럭들로 표시되는 기능들은 도면들에 도시된 순서와는 다른 순서로 발생할 수 있다는 점에 유념해야 한다. 예를 들어 순차적으로 도시된 두 블럭들이 나란히 동시에 수행될 수 있고 때때로는 반대 순서로 수행될 수도 있으며, 이는 관련된 기능에 달려있다. 또한 블럭도들 및/또는 흐름도들의 각 블럭 그리고 흐름도들 및/또는 흐름도들내 블럭들의 조합은, 특정 기능들이나 동작들을 수행하기 위해서 전용 하드웨어-기반 시스템에 의해서 또는 상기 전용 하드웨어와 컴퓨터 명령의 조합에 의해서 구현될 수 있다는 점에 유념해야 한다.
도 1은 기술 해결책에 따라 가상 세계를 구현하기 위한 바람직한 시스템의 블럭도를 구조적으로 도시한다. 도 1에 도시된 바와 같이, 상기 시스템은 서버(100)와 클라이언트(110.1), 클라이언트(110.2),..., 및 클라이언트(110.n)를 포함하는데, 상기 가상 세계에 대한 상기 서버가 각 클라이언트에 대응하는 아바타의 상태에 반응하여 상호작용을 수행하고 대응하는 3D 씬 데이터를 상기 클라이언트에 전달하기 위해서, 정보가 각각의 클라이언트들 및 상기 서버(110)사이에서 전달된다. 각 클라이언트는 전송 효과, 교합 관계(occlusion relation), 원근 관계(near-far relation), 광원 및 윈도우 클리핑 등과 같은 처리를 포함하여, 상기 클라이언트들에서 수신된 3D 씬 데이터를 렌더링하기 위한 렌더링 엔진을 포함한다. 렌더링에 의해 획득된 상기 렌더링 결과들은 클라이언트 디스플레이상에서 디스플레이를 위해 프레임 버퍼내에 저장된다.
도 2는 본 발명의 일 실시예에 따라 가상 세계를 구현하기 위한 시스템의 블럭도를 구조적으로 도시한다. 도 2에 도시된 바와 같이, 상기 서버(200)는 시뮬레이션 서버(201)와 렌더링 에이전트(202)를 포함한다. 상기 시뮬레이션 서버(201)는 상기 렌더링 에이전트(202)로부터 메시지를 수신하고, 적절한 3D 씬 데이터를 상기 렌더링 에이전트(202)로 전송한다. 상기 렌더링 에이전트(202)는 렌더링 결과를 생성하기 위해 시뮬레이션 서버(201)로부터의 3D 씬 데이터에 기초하여 렌더링을 수행하고, 그리고 상기 렌더링 결과들로부터 클라이언트의 대응하는 아바타에 대한 적절한 스트리밍 미디어를 생성하는데, 여기서 상기 스트리밍 미디어는 상기 클라이언트(210)에 전송될 것이다. 서로 데이터와 명령들을 전달하도록 상기 클라이언트(210)가 상기 서버(200)와 상호작용한다. 또한 상기 클라이언트(210)는 플레이를 위해 상기 렌더링 에이전트(202)로부터 스트리밍 미디어를 수신하는데, 그렇게 함으로써 상기 가상 세계내 클라이언트(201)의 대응하는 아바타에 의해 감지된대로 씬 이미지를 상기 클라이언트(210)에서 디스플레이한다. 실제 구현시, 상기 서버(200)는 단일 서버나 복수의 서버들로서 구현될 수 있거나, 서버 클러스터의 형태일 수 있다는 점에 유념해야 한다. 또한, 상기 렌더링 에이전트(202)는 상기 시뮬레이션 서버(201)와 동일한 서버상에서나 상기 시뮬레이션 서버(201)와 다른 서버상에서, 심지어는 제3자에 의해 운영되는 다른 서버상에서 구현될 수 있다. 또한, 상기 렌더링 에이전트(202)는 예를 들어 서버, 복수의 서버들, 또는 서버 클러스터에 의해 구현된, 상기 서버(200)와 통신가능한 개별 엔티티에 의해 구현될 수 있다.
도 3은 본 발명의 일 실시예에 따라 가상 세계의 씬의 이미지들을 제공하기 위한 방법의 흐름도를 구조적으로 도시한다. 도 3에 도시된 바와 같이, 우선 단계 S301에서, 복수의 렌더링 결과들을 생성하기 위해, 상기 가상 세계의 씬이 렌더링된다. 본 발명의 일 실시예에서, 실시간 렌더링이 상기 서버상에서 각 아바타의 위치 및 관측각에서 이에 대해 수행되고, 이에 따라 각 아바타에 대응하는 렌더링 결과를 획득한다. 본 발명의 다른 실시예에서, 렌더링이 적어도 하나의 고정 관측각으로부터 상기 서버에서 수행될 수 있고, 이에 따라 각 고정 관측각에 대응하는 렌더링 결과를 획득한다. 다른 실시예에서, 렌더링이 각 고정 관측각으로부터 서로다른 투영 깊이(projection depth)에 대해 수행될 수 있다.
다음으로, 흐름도는 단계 S302로 진행한다. 단계 S302에서, 렌더링 결과의 적어도 일부분에 기초하여 이미지 스트림이 생성된다. 본 발명의 일 실시예에서, 각 아바타에 대한 렌더링에 의해 획득된 복수의 렌더링 결과들 중에서 각 클라이언트에 대응하는 아바타에 대응하는 렌더링 결과들이, 스트림 매체로 변환된다. 본 발명의 다른 실시예에서, 고정 관측각들로부터 구성된 복수의 렌더링 결과들 중에서 각 클라이언트에 대응하는 아바타의 관측각들(또는 방향)에 맞추어진 렌더링 결과들의 일부분을, 스트림 매체로 변환하는 것이 가능하다. 다른 실시예에서, 상기 대응하는 아바타의 관측각들 및 위치들로 맞추어진 렌더링 결과들의 일부분들이 스트림 매체로 변환된다.
그리고나서, 단계 S303에서, 스트리밍 매체와 같은 이미지 스트림이 상기 클라이언트로 전송된다. 본 발명의 일 실시예에서, 이러한 이미지 스트림을 플레이하기 적절한 플레이어가 상기 클라이언트에 인스톨 되어 있다면, 예를 들어 스트리밍 매체의 형태인 이미지 스트림이 상기 클라이언트에서 플레이될 수 있다. 본 발명의 다른 실시예에서, 적어도 두 개의 이미지 스트림들이 상기 클라이언트로 전송되고, 그리고 이러한 두 개의 이미지들은 플레이를 위한 단일 이미지 스트림을 구성하기 위해 상기 클라이언트에서 합성될 것이다. 도 3을 참조로 도시된 바와 같이 다양한 실시예들에 관해, 더욱 상세한 설명이 도 4 내지 13 각각을 참조로 이하에서 개시될 것이다.
도 4는 본 발명의 다른 실시예에 따른 가상 세계를 구현하는 시스템의 블럭도를 구조적으로 도시한다. 도 4에 도시된 바와 같이 일 실시예에서, 서버(400)에서, 대응하는 렌더링 에이전트들(402.1, 402.2, ..., 및 402.n)이 상기 가상 세계 서버에 연결된 각각의 클라이언트들(401.1, 401.2, ..., 및 401.n)에 대해 배치된다. 각 렌더링 에이전트들(402.1, 402.2, ..., 및 402.n)은 상기 가상 세계내 대응하는 클라이언트의 대응하는 아바타의 위치들과 관측각들로부터 대응하는 씬에 대해 렌더링을 수행하고, 이에 따라 상기 대응하는 아바타에 대해 적절한 렌더링 결과들을 생성한다. 렌더링 동작들은 도 5를 참조로 도시될 것이다.
도 5는 렌더링을 수행하는데 사용될 수 있는 렌더링 엔진의 바람직한 구조의 블럭도를 구조적으로 도시한다. 일 실시예에서, 도 5에 도시된 바와 같은 렌더링 엔진들은 도 4에 도시된 렌더링 에이전트들(402.1, 402.2, ..., 및 402.n)의 일부이다. 도 5에 도시된 바와 같이, 렌더링 파이프라인 어셈블리는 카메라 데이터(상기 렌더링 엔진내 카메라 모듈의 위치와 관측각을 포함하여)에 기초하여 상기 입력 3D 씬 데이터를 적절한 2차원(2D) 모델 데이터로 변환하고, 그리고나서 상기 렌더링 목표 어셈블리는 상기 대응하는 아바타의 뷰 포트 데이터(윈도우나 클리핑 윈도우)에 따라 생성된 2D 모델 데이터를 잘라내고(clips), 이를 기정해진 뷰 포트(view port)로 투영한다. 상기 렌더링으로부터 획득된 렌더링 결과는 프레임 버퍼로서 프레임 버퍼 메모리에 저장된다.
일 실시예에서, 도 4에 도시된 바와 같은 렌더링 에이전트들(402.1, 402.2, ..., 및 402.n)은, 도 5에 도시된 바와 같이 렌더링 결과들의 일 부분을 상기 대응하는 클라이언트에서 플레이되기 적절한 이미지 스트림으로 변환하기 위한 수단(회로 등)을 더 포함한다. 예를 들어, 상기 이미지 스트림은 현재 인기있는 스티리밍 매체 포맷(예를 들어 MPEG-4(moving picture experts group 4), H.264 등등)일 수 있다. 상기 렌더링 결과들을 스트리밍 매체로 변환하는 기술은 본 기술분야에서 널리 알려져 있고, 이는 여기서 상세히 설명되지는 않을 것이다. 이후에, 상기 렌더링 에이전트들(402.1, 402.2, ..., 또는 402.n)은 플레이를 위해서, 상기 변환된 이미지 스트림을 상기 대응되는 클라이언트들(410.1, 410.2, ..., 또는 410.n)로 전송한다.
상술한 설명에서, 도 4에 도시된 상기 실시예들에 기초하여, 렌더링을 위한 워크로드가 약한 연산 능력 및/또는 전력 공급을 가진 클라이언트로부터 서버로 이동되었음을 볼 수 있고, 그리하여 일반 클라이언트는 그래픽 프로세서와 같은 전용 디바이스를 가질 필요가 없고, 그리하여 모바일 통신 단말기 및 휴대용 컴퓨터와 같은 가벼운 클라이언트에 대해 가상 세계 서비스를 제공하는 것이 가능해진다.
그러나, 발명자는 상기 서버(400)와 연결된 클라이언트들(410)의 수가 매우 많고 불명확할 수 있다는 점에 유념해야 한다. 이러한 경우, 본 발명은 다른 실시예들을 제공한다. 이하에서, 설명이 도 6 내지 13을 각각 참조하여 개시될 것이다.
도 6은 본 발명의 다른 실시예에 대한 개념도를 구조적으로 도시한다. 상기 실시예에 따라, 3D 가상 세계에서, 복수의 렌더링 결과들을 생성하기 위해 렌더링이 적어도 하나의 고정된 관측각으로부터 가상 세계 씬에 대해 수행된다. 도 6에 도시된 바와 같이, 일 실시예에서, 복수의 고정 관측각들에서 렌더링 에이전트들(예를 들어 W(서), NW(북서), N(북), NE(북동), E(동), SE(남동), S(남), 및 SW(남서)로 표시된 8개의 렌더링 에이전트들)이 가상 세계의 주변 공간에 배치된다. 이러한 8 렌더링 에이전트들은 씬의 내부쪽을 향하는 그들의 대응 관측각들을 가진 주변 공간의 원형주위에 고르게 제공된다. 상기 클라이언트의 대응하는 아바타의 관측각들에 기초하여, 예를 들어 두개의 적절한 렌더링 에이전트들에 의한 렌더링을 통해서 획득된 투영 이미지들이 스트리밍 매체의 형태로서 상기 클라이언트에 제공된다. 도 6에 도시된 클라이언트의 대응하는 아바타에 대해서, 상기 적절한 렌더링 에이전트들은 예를 들어 렌더링 에이전트 NW와 렌더링 에이전트 W 일 수 있다. 일 실시예에서, 특정 관측각과 상기 클라이언트의 대응하는 아바타의 관측각 사이의 차이의 절대값이 0°, 0°에서 45°사이의 임의의 각도에서 또는 45°일 때, 상기 고정 관측각(상기 클라이언트의 대응하는 아바타의 관측각이 상기 고정 관측각에 가능한 한 가까운)이 적절한 고정 관측각으로 결정되고, 그리고 상기 고정 관측각에서의 렌더링 에이전트가 상기 선택에 대해 적절한 렌더링 에이전트로 결정된다. 다른 실시예에서는, 적절한 고정 관측각과 대응 렌더링 에이전트를 선택하기 위해 다른 방법들이 채택될 수 있다. 이하에서, 상세한 설명이 도 13을 참조로 최적의 고정 관측각과 대응 렌더링 에이전트를 선택하기 위한 다른 실시예에 대해 개시된다. 도 6에 도시된 바와 같은 일 실시예에서, 두개의 이미지 스트림들이 클라이언트에서 하나의 이미지 스트림으로 합쳐지고, 이는 상기 클라이언트에서 상기 이미지 스트림을 디스플레이하기 위함이다.
도 7은 본 발명의 실시예에 따라 가상 세계를 구현에 관한 시스템의 블럭도를 구조적으로 도시한다. 도 7에 도시된 바와 같이, 상기 서버(700)는 시뮬레이션 서버(701)와 K 개의 렌더링 에이전트들(702.1, 702.2, ..., 702.k)을 포함하는데, 상기 k는 1보다 크거나 같다. 상기 k 렌더링 에이전트들은 k개의 다른 위치들에서의 고정 관측각에 대응하며, 대응 고정 관측각으로부터 렌더링하는데 사용된다. 각 클라이언트에 대해, 대응하는 아바타에 채택된 적어도 두 개의 렌더링 에이전트들은 상기 아바타의 관측각을 기초로 선택되고, 상기 선택된 렌더링 에이전트들에 의한 렌더링을 통해서 획득된 렌더링 결과들 중에서 대응하는 아바타에 채택된 렌더링 결과들의 일부는, 상기 대응 컨텐츠들(710.1이나 710.2)로 전송될 스트림 매체로 변환된다. 도 7에 도시된 바와 같이, 상기 렌더링 에이전트(702.1) 및 렌더링 에이전트(702.2) 각각에 의해 획득된 상기 스트리밍 매체(1)과 스트리밍 매체(2)는 클라이언트(710.1)로 전송되고, 상기 렌더링 에이전트(702.2)와 렌더링 에이전트(702.k)에 의해 획득된 스트리밍 매체(2')와 스트리밍 매체(k)는 클라이언트(710.2)로 전송된다.
일 실시예에 따라, 상기 서버(700)에 설치되는 렌더링 에이전트들의 수는 고정될 수 있으나, 연결되는 클라이언트들의 수와는 무관하고, 이에 따라 상기 서버(700)의 로드는 상기 가상 세계에 입장하는 아바타들의 수와는 무관하다. 따라서 상기 서버의 성능은 개선되고, 상기 서버는 더 좋은 확장성을 가진다. 또한, 각각의 렌더링 에이전트들(702.1, 702.2, ..., 702.k)에 의해 생성된 렌더링 결과는 복수의 클라이언트들에 의해 공유될 수 있고, 이에 따라 리소스들을 절약한다. 또한, 가상 세계 시스템내 피어투피어(peer to peer) 기술을 구현할 수 있는 가능성이 제공된다.
도 8은 본 발명의 다른 실시예에 따라 가상 세계의 씬의 이미지를 제공하기 위한 방법의 흐름도를 구조적으로 도시한다. 도 8에 도시된 바와 같이, 첫번째로, 단계 801에서, 가상 세계에서, 복수의 렌더링 결과들을 생성하기 위해서, 렌더링이 적어도 하나의 고정 관측각으로부터 가상 세계의 씬에 대해 수행된다. 본 실시예에서, 복수의 고정 관측각들이 가상 세계내에 설정된다. 일 실시예에서, 복수의 고정된 관측각들이 배치되고, 그리하여 복수의 고정 관측각들이 각각 상기 씬의 주변공간에 분산된 복수의 포인트들로부터 씬을 향하도록 기설정된다. 복수의 고정 관측각들의 기설정의 예는 상술된 도 6에 도시되어 있다. 도 6에 도시된 바와 같이, 가상 세계의 씬내 서쪽 위치, 북서쪽 위치, 북쪽 위치, 북동쪽 위치, 동쪽 위치, 남동쪽 위치, 남쪽 위치, 남서쪽 위치에서, 각각 상기 씬의 내부를 향하도록, 바람직하게는 상기 씬의 중심을 향하도록 고정 관측각을 설정한다. 본 기술분야에서 통상의 기술을 가진 자는 본 상세한 설명의 컨텐츠를 기초로 하여, 추가 분획구분(subdividing)에 의해 더많은 공간 위치들(평면 또는 입체적)로부터 다수의 고정 관측각들을 설정하는 것이 가능하다는 점을 이해할 것이다. 도 6에 도시된 바와 같이 가상 세계의 주변 공간내 원형 주변부에 고정 관측각을 설정하는 방법은 몇몇 간단한 애플리케이션들에 대해 실현가능하나, 복잡한 애플리케이션에 대해서는 다른 설정 방법이 필요할 것이다. 도 9a 및 9b는 복잡한 애플리케이션에 대해 실현가능한 복수의 고정 관측각들을 기설정하는 두 가지 예들을 도시한다. 도 9a에 도시된 바와 같이, 상기 가상 세계의 주변공간은 상기 씬 공간을 둘러싸는 주변 구체 공간(peripheral spherical space)일 수 있고, 중심들이 상기 주변 구체 공간의 구체 중심과 일치하고 서로다른 평면상에 위치된 6개의 동심원(concentric circles)이 상기 주변 구체 공간상에 발견될 수 있다. 예를 들어 각 원의 원주상에는(circumference) 각각, 상기 씬의 내부를 향하는(바람직하게는 상기 씬의 중앙을 향하는) 4개의 고정 관측각들이 제공되고, 이에 따라 상기 24 관측각들이 상기 주변 공간상에 대체로 고르게 분산된다. 또한 도 9b에 도시된 바와 같이, 상기 가상 세계의 씬이 주변 구체 공간에 의해 둘러쌓일 수 있다. 이러한 주변 구체 공간상에서, 중심이 상기 주변 구체 공간의 구체 중심과 일치하고 상호 수직인 평면에 위치하는 3개의 동심원, 그리고 상기 원들 중 하나의 양 측면에 대칭적으로 위치되고 거기서 평행인 2 개의 원들을 발견하는 것이 가능하다. 상기 5개의 원들의 둘레가 상기 씬의 안을 향하는 고정 관측각들을 각각 배열하고, 이에 따라 모든 고정 관측각들은 상기 주변 공간상에 상당히 균등하게 분산된다.
도 6, 9a 및 9b는 단지 복수의 고정 관측각들을 기설정의 예들을 도시하는 것이고, 본 발명의 한정으로서 고려되서는 안된다는 점에 유념해야 한다. 반대로, 본 기술분야에서 통상의 기술을 가진 자는 본 발명의 이러한 바람직한 설명들을 기초로 고정 관측각을 설정하는 복수의 다른 실시예들을 생각해 낼 수 있다.
또한, 설정으로의 고정 관측각들의 수는 응용(practical application)에 따라 결정될 수 있다는 점에 유념해야 한다. 일반적으로, 설정으로 더 많은 수의 고정 관측각들이 있을수록, 상기 아바타 그 자체의 관측각에 더 가까운 상기 씬 이미지의 관측각이 클라이언트에 제공될 수 있다. 그러므로, 상기 클라이언트에 표시된 비디오 스트림의 이미지는 더욱 완벽하고 현실적으로 될 것이다. 그러나, 더 많은 수의 고정 관측각을 설정하는 것은 상기 서버에 의해 전달될 더 많은 연산량과 더 많은 연산 리소스가 점유되는 것을 의미한다. 따라서, 고정 관측각들의 수는 실제 시스템 필요량에 기초해서 합리적으로 선택될 것이고, 이에 따라 적절한 타협이 상기 실시간 렌더링되는 연산량과 씬 이미지의 품질 사이에서 이루어진다. 게다가, 고정 관측각들을 설정하고, 그리하여 가능한한 균등하게 씬의 외부 공간에 분산하는 것은 이미지 품질의 일관성을 더욱 잘 보장할 수 있어 이점이 있다.
일 실시예에서, 단계 S801에 의해, 렌더링이 각 고정 관측각으로부터 수행될 수 있고, 각 고정 관측각에 대한 렌더링 결과가 획득될 수 있다. 또한, 발명자는 상기 아바타가 씬내 다른 씬 깊이에 대응하는 위치에 있을 수 있고, 따라서 동일한 관측각에서라도, 또한 다른 씬 깊이에서 인지된 동일한 아바타의 씬 이미지가 서로 다를 수 있다는 점을 더 인식한다. 이를 위해, 본 발명의 다른 실시예에서, 각각의 고정 관측각에 대해, 다른 투영 깊이들에서 가상 세계 씬에 대한 렌더링이 추가적으로 수행된다. 이하에서는, 투영 깊이에 기초한 렌더링이 도 10내지 12를 참조로서 상세하게 기술될 것이다.
다시 도 8을 참조하면, 상기 흐름은 단계 S802로 진행한다. 단계 S802에서, 복수의 렌더링 결과들로부터 렌더링 결과들의 일부분이 선택된다. 이하에서, 렌더링 결과들의 일부분의 선택의 일 예가, 도 13을 참조로 보다 상세하게 기술될 것이다.
다음으로, 상기 흐름은 단계 S803으로 진행한다. 단계 S803에서, 이미지 스트림이 상기 렌더링 결과들의 일 부분을 참조하여 생성된다. 일 실시예에서, 두 고정 관측각들에 대응하는 렌더링 결과들의 두 그룹들이 선택된다. 렌더링 결과들의 각 선택된 그룹이 우선 클립될(clipped) 수 있고, 이에 따라 렌더링 결과들의 각 그룹이 상기 아바타에 더욱 적합하게 된다. 클리핑은 뷰포인트, 아바타의 위치, 및 아바타의 관측각 중 하나 또는 그 이상을 기초로 실행될 수 있다. 그리고나서, 클리핑으로부터 획득된 렌더링 결과들의 각 그룹을 기초로, 예를 들어 MPG4, H.264의 포맷으로 2개의 스트리밍 미디어가 생성될 수 있다.
그리고나서, 단계 S804에서, 상기 생성된 스트리밍 매체가 상기 클라이언트로 전송된다. 상기 전송된 매체 스트림이 처리될 것이고(예를 들어, 이하에서 보다 상세하게 기술될 변환 및 합성), 상기 클라이언트에서 디스플레이된다.
상술한 바와 같이 다양한 실시예들에서, 상기 클라이언트에 대한 이미지 스트림을 생성하기 위해, 렌더링 결과들의 일부로서 적어도 하나의 고정 관측각으로부터 생성된 렌더링 결과들을 취하기 위해서, 전송된 복수의 고정 관측각들로부터 상기 클라이언트에 대응하는 아바타에 가능한 한 가까운 적어도 하나의 고정 관측각이 선택될 수 있다.
도 10은 본 발명의 일 실시예들에 사용할 수 있는 물리적 그리드 모델을 구조적으로 도시하는데, 여기서 상기 물리적 그리드 모델은 삼각 그룹(triangle group: TG)으로 이루어져 있다. 상기 삼각 그룹은 객체의 상호 인접한 가시적인 삼각형 면들(triangular facets)의 조합이다. 상기 삼각형 면의 방향은 상기 삼각형 면의 일반 방향으로 정의될 수 있다. 따라서, 만약 상기 삼각형 면의 방향과 상기 아바타나 카메라 모듈(예를 들어 상술한 바와 같은 고정 관측각)의 뷰 방향간의 각도가 ∏/2보다 작으면, 이러한 삼각형 면들이 가시적이라고 여겨진다. 상기 삼각형 그룹은 상기 카메라 모듈과 상관관계(correlation)를 가지는데, 즉 다른 고정 관측각의 카메라 모듈에 대해, 이의 삼각형 그룹은 서로 다르다. 도 10은 각각 서로다른 세분화정도를 가진 구체들을 나타내는 그리드 모델들 MO,
Figure pat00001
및 M1을 등을 도시한다. 일 실시예에서, 삼각형 그룹은 예를 들어 TG의 ID, TG가 속한 객체의 ID, 대응하는 카메라 모듈의 ID, 상기 삼각형 그룹의 최대 깊이와 최소 깊이, 및 다른 여러가지 속성들(attributes)을 가질 수 있다. 삼각형 그룹은 물리적 그리드 모델의 단지 일 예이고, 그리고 실제로는 예를 들어 사각형 그룹과 같은 다각형 그룹이 본 발명의 다양한 실시예들에 사용될 수 있다는 점에 유념해야 한다.
도 11a는 본 발명의 다른 실시예에 따른 렌더링의 도면을 구조적으로 도시한다. 본 실시예에서, 서로다른 투영 깊이들에 대응하는 투영 결과들을 획득하기 위해서, 렌더링은 서로다른 투영 깊이에서 상기 씬에 수행된다. 도 11a에 도시된 바와 같이, 예를 들어 상기 카메라 모듈 N에 대응하는 바람직한 씬은 서로 다른 패턴들을 가진 객체들(1부터 5)을 포함하는데, 상기 객체1, 객체2, 객체4 및 객체5는 차례차례 가상 세계에 위치한 카메라 모듈 N으로부터 점진적으로 더 멀어지고, 객체 2 및 객체 3은 상기 카메라 모듈과 같은 거리를 가진다. 도 11a에 도시된 경우에 관해, 다른 투영 깊이들에 기초한 렌더링을 위해서, 렌더링이 수행되는 투영 깊이가 우선적으로 선택될 수 있다. 일 실시예에서, 렌더링이 가능한한 최소인 수의 투영 깊이들을 가지고 조합된 모든 가능한 객체를 포함하는 씬에 수행될 수 있도록, 상기 투영 깊이가 선택된다. 도 11a에 도시된 바와 같은 씬에 대해서, 도시된 바와 같이 투영 깊이 1에서 투영깊이 4가 선택된다. 이에 따라, 렌더링이 도 11a에 도시된 바와 같이 투영 깊이에서 수행될 수 있고, 이에 따라 도 11에 도시된 바와 같이, 각각 이미지 N1부터 이미지 N4에 대응하는 4개의 다른 렌더링 결과들을 획득한다.
도 11b는 본 발명의 다른 실시예에 따른 렌더링의 도면을 구조적으로 도시한다. 본 실시예에서, 도 11a와 다른 점은, 복수의 객체들이 같은 씬 깊이에 있을 경우, 복수의 객체들을 점진적으로(progressively) 제거함으로써 렌더링이 더 수행된다는 점이다. 다시 말해, 도 11b에 도시된 바와 같이, 상기 씬의 서로다른 객체 조합들을 포함하는 복수의 렌더링 결과들을 얻기 위해서, 각각의 고정 관측각에 대해, 상기 투영 깊이들에 기초하여 상기 씬으로부터 각 객체를 점진적으로 제거함으로써, 렌더링이 수행된다. 도 11b에 도시된 바와 같이, 상기 이미지 N, N-1, N-1-2, N-1-3, N-1-2-3 및 N-1-2-3-4에 각각 대응하는 렌더링 결과들이 획득되고, 여기서 상기 이미지 N(도 11a의 이미지 N1에 대응)은 모든 객체들을 포함하는 이미지이고, 상기 이미지 N-1(도 11a의 이미지 N2에 대응)은 객체 1이 제거된 이미지이고, 그리고 이미지 N-1-2는 객체1과 객체2가 제거된 이미지 등등이다. 도 11a와 도 11b 사이의 차이점은, 도 11a에 대응하는 렌더링 결과 이외에도 도 11b에는 객체들 1 및 2가 삭제된 이미지 N-1-2와 객체들 1 및 3이 삭제된 이미지 N-1-3에 대응하는 렌더링 결과들을 더 포함하는 것을 도시한다. 상기 획득된 렌더링 결과들은 적절한 방법으로 저장될 수 있다 .
도 12는 본 발명의 일 실시예에 따른 삼각형 그룹 관계 네트워크(TGRN)의 도면을 구조적으로 도시한다. 일 실시예에서, 각 렌더링 에이전트에 대해서(또는 각 카메라 모듈에 대해서), 렌더링으로부터 획득된 결과들은 도 12에 도시된 바와 같이 TGRN 구조와 함께 저장될 수 있다. 도 12에 도시된 바와 같이 삼각형 그룹 네트워크는 렌더링 노드들을 포함하는 지향성 네트워크인데, 여기서 상기 렌더링 노드들은 상기 렌더링 결과들에 연관되고, 그리고 상기 렌더링 노드들간의 방향 간선들은 렌더링 결과들간의 관계들을 나타낸다. 본 발명의 일 실시예에서(예를 들어 도 11a), 상기 렌더링 노드들은 다른 투영 깊이들의 렌더링 결과들에 연관되고, 그리고 방향 간선들은 투영 깊이들의 깊이 관계들을 나타낸다. 예를 들어, 부모 노드들과 연관된 렌더링 결과들의 투영 깊이들은 자식 노드들과 연관된 렌더링 결과들의 투영 깊이보다 크다. 본 발명의 다른 실시예에서(예를 들어 도 11b), 상기 렌더링 노드들은 상기 씬내 다른 객체 조합들을 포함하는 렌더링 결과들과 연관되고, 상기 방향 간선들은 상기 렌더링 결과들과 관련된 객체 조합들 사이의 관계들을 나타낸다. 예를 들어, 부모 노드들과 연관된 렌더링 결과들에 포함된 객체들은 상기 자식 노드들과 연관된 렌더링 결과들에 포함된 객체들의 부분집합이거나, 반대이다. 각 렌더링 노드는 예를 들어 노드 코드, 투영 깊이, 관련 렌더링 결과 또는 렌더링 결과의 참조 등과 같은 속성들을 포함할 수 있고, 렌더링 노드들과 연관된 모든 삼각형 면들과 상기 렌더링 결과에 관련된 객체들의 ID들을 더 포함할 수 있다. 각각의 TGRN(삼각형 면 그룹)에 저장된 렌더링 결과들, 그리고 관련 객체들은 씬의 변화 및/또는 상기 아바타의 이동에 따라 실시간으로 업데이트된다. 도 12에 도시된 바와 같은 TGRN 네트워크는 단지 예라는 점에 유념해야 한다. 상당수의 객체들과 복잡한 관계들을 가진 씬의 경우, 이러한 TGRN은 매우 복잡해질 수 있다.
본 발명의 다른 실시예에서, 렌더링 결과가 생성되어있는 경우, 렌더링이 다른 투영 깊이에 기초해 생성될 때, 렌더링이 다른 투영 깊이들에서 씬 변화 부분에 대해 수행될 수 있고, 이에 따라 변경된 렌더링 결과가 획득되고 대응하는 렌더링 노드들로 저장된다. 이러한 실시예는 렌더링을 위한 연산량의 현저한 감소와 저장되어야 하는 렌더링 결과의 감소라는 장점을 가지고, 이에 따라 상기 시스템의 연산 리소스들과 저장 리소스들을 저장한다.
도 13은 본 발명의 일 실시예에 따른 아바타에 적절한 고정 관측각을 결정하는 방법을 도시한다. 도 13a에 도시된 바와 같이, 첫번째로, 아바타의 관측각을 나타내는 벡터 V가 상기 씬에서 결정된다. 그리고나서, 포인트 P가 상기 씬의 주변 공간 표면상에서 발견되고, 이에 따라 상기 포인트 P로부터 상기 씬 중심 0로 가리키는 벡터가 상기 아바타의 관측각을 가리키는 벡터 V와 평행된다. 다음으로, 상기 씬의 상기 주변 공간에 배치된 모든 고정 관측각들로부터, 예를 들어 3개의 고정 관측각들 Ni, Nj 및 Nk이 선택될 수 있고, 이에 따라 상기 포인트 P는 상기 3개의 고정 관측각들이 위치되는 포인트들에 의해 구성된 구형 삼각형상에 위치되고, 상기 구형 삼각형들은 상기 조건들을 만족하는 모든 구체 삼각형 사이에서 최소의 영역을 가진다. 이러한 방법으로, 상기 아바타에 대해 적절한 3개의 고정 관측각들이 선택될 수 있다. 2개의 고정 관측각들을 선택할 필요가 있는 경우, 2개의 관측각들은 상기 3개의 결정된 고정 관측각들로부터 선택될 수 있다. 그렇게 함으로써, 상기 선택된 적어도 2개의 관측각들로부터 생성된 렌더링 결과들이 스트리밍 매체를 구성하기 위한 렌더링 결과들의 일부로서 취해진다.
도 13a 및 도 13b는 단지 일 예를 나타내기 위해 제공되었고, 본 발명의 내용을 참고하여, 본 기술분야에서 통상의 기술을 가진 자는 적절한 고정 관측각들을 선택하기 위해 복수의 다른 실시예들을 생각할 수 있다는 점에 유념해야 한다. 예를 들어, 상기 포인트 P에 인접한 적어도 2개의 고정 관측각들이나, 또는 포인트 P로부터 포인트 0를 가리키는 벡터에 대하여 최소 벡터각을 가진 적어도 2개의 고정 관측각들을 찾는것이 가능하다. 또한, 본 발명의 다른 실시예에서, 4개나 더 많은 고정 관측각들이 상기 씬의 주변 공간에 배치된 모든 고정 관측각들로부터 결정될 수도 있다.
만약 상기 아바타의 관측각에 완벽하게 일치하는 고정 관측각이 있다면, 상기 클라이언트에 전송될 데이터량이 가능한한 작도록 오직 이러한 고정 관측각만을 선택하는 것이 가능하다는 점에 유념해야 한다.
또한, 다른 투영 깊이들에서 각 고정된 관측각에 대해 복수의 렌더링 결과들이 더 생성되는 실시예에서는, 상기 아바타에 적절한 렌더링 결과가 각 선택된 고정 관측각에 대응하는 복수의 렌더링 결과들로부터 선택될 수 있다.
일 실시예에서, 상기 아바타의 위치에 적절한 투영 깊이를 가진 렌더링 결과가 선택된다. 다른 실시예에서, 상기 아바타에 가시적인 객체 조합들을 포함하는 렌더링 결과가 선택된다. 본 실시예에 따라, 상기 아바타에 가시적인 객체들은 상기 아바타의 위치에 따라 결정될 수 있고, 그리고나서 상기 아바타에 가시적인 모든 객체들을 정확하게 포함하는 렌더링 결과가 다른 깊이들에 따른 렌더링 결과들 사이에서 찾아진다. 다른 실시예에서, 상기 아바타에 비가시적인 객체들을 포함하지 않는 렌더링 결과가 선택된다. 이 실시예에 따라, 우선 상기 아바타에 비가시적인 객체들이 상기 아바타의 위치에 기초해서 결정될 수 있고, 그리고나서 상기 비가시적인 객체를 정확히 제거한 렌더링 결과가 상기 렌더링 결과들로부터 선택된다.
일 실시예에서, 노드 코드의 명명은 카메라 모듈 시리얼 번호 및 상기 렌더링 결과들에 포함되지 않은 객체들의 ID에 기초한다. 예를 들어, 도 12에 도시된 바와 같이, 모든 객체들을 포함하는 렌더링 결과들의 노드 코드는 N으로 명명되고, 객체1, 객체1과 2, 객체1과 3, 객체1,2 및 3, 그리고 객체 1,2,3 및 4를 제거한 렌더링 노드들의 노드 코드는 각각 N-1, N-1-2, N-1-3, N-1-2-3 및 N-1-2-3-4으로 명명된다. 본 실시예에 따라, 상기 아바타에 적절한 카메라 모듈의 시리얼 번호가 우선적으로 결정될 수 있고, 그리고나서 상기 아바타에 비가시적인 객체들의 시리얼 번호들이 결정된다. 다음으로 이미지 스트림을 구성하기 위한 렌더링 결과들의 일부를 선택하기 위해서, 코드 번호가 상기 결정된 시리얼 번호를 정확하게 포함하는 렌더링 노드가 렌더링 결과들로부터 발견될 수 있다. 상기 렌더링 노드에 저장되는 것이 변경된 렌더링 경과인 일 실시예에서는, 완벽한 씬의 이미지와 대응하는 완벽한 렌더링 결과를 얻기 위해서 상기 선택된 노드에 대한 이전의 노드들이나 연이은 노드들이 선택될 필요가 더 있다.
도 14a는 본 발명의 일 실시예에 따른 가상 세계에 대한 이미지 스트림을 디스플레이하기 위한 흐름도를 도시한다. 도 14a에 도시된 바와 같이, 우선 단계 S1401에서, 가상 세계 씬에 대한 이미지 스트림이 상기 서버로부터 수신된다. 그리고나서, 이러한 이미지 스트림이 단계 S1402에서 플레이된다. 상술된 바와 같이, 상기 이미지 스트림은 예를 들어 MPEG-4나 H.264 포맷의 스트림 매체이고, 따라서 매체 플레이어(상기 2 포맷들의 하나 또는 두개와 호환되는 이상)가 상기 씬의 이미지 스트림을 플레이하는데 사용될 수 있다.
도 14b는 본 발명의 다른 실시예에 따른 가상 세계의 이미지 스트림을 처리하기 위한 흐름도를 도시한다. 본 실시예에서, 상기 가상 세계 씬의 적어도 2개의 이미지 스트림들은 단계 S1401'에서 상기 클라이언트에서 수신되고, 그리고 단계 S1403'에서, 상기 적어도 두 개의 이미지 스트림들이 플레이를 위해 하나의 이미지 스트림으로 합쳐진다(도 15를 참조로 이하에서 도시되는 바와 같이). 상기 적어도 두 개의 이미지 스트림들은 적어도 하나의 고정 관측각으로부터 가상 세계의 씬의 렌더링에 의해 획득된 복수의 렌더링 결과들을 기초로 가상 세계에서 생성된다. 본 발명의 또 다른 실시예에서, 합쳐진 하나의 이미지 스트림이 더 플레이될 수 있다.
도 15는 본 발명의 일 실시예에 따른 이미지 프레임들의 결합에 관한 도면을 구조적으로 도시한다. 시간적으로 동기화된 2개의 이미지 프레임들(1501과 1502)가 도면에 도시되어 있고, 이들은 각각 상기 수신된 2개의 이미지 스트림들에서 왔다. 상기 서버로부터 수신된 이미지 스트림들은 상기 고정 관측각에 대응하고, 따라서 이들은 일반적으로 아바타 그 자체의 관측각과는 다르다라는 점이 이해되어져야 한다. 따라서, 일 실시예에서, 우선적으로, 상기 적어도 2개의 이미지 스트림들내 시간적으로 동기화된 적어도 2개의 이미지 프레임들은, 상기 클라이언트의 대응하는 아바타의 관측각에 맞추어진 적어도 2개의 변환된 이미지로(예를 들어 도 15의 이미지 프레임들(1503 및 1504)) 각각 변환되어야 한다. 도 15에서, 각각의 변환된 이미지 프레임들(1503 및 1502)은 동일한 관측각들(상기 아바타의 관측각들)에 대응하나, 각각의 변환된 이미지 프레임들에서 픽셀 손실(상기 변환된 이미지 프레임들(1503 및 1504)내 검게 도시된 부분)이 있는 것을 볼수 있다. 상대적으로 완벽한 플레이 이미지 프레임을 얻기 위해서, 합성이 상기 변환된 이미지 프레임들(1503 및 1504)에 이루어지고(동작 1505로 도시된 바와 같이), 이에 따라 플레이를 위한 합성된 이미지 프레임(1506)이 획득된다. 상기 획득된 합성 이미지 프레임(1506)은 상기 변환된 이미지 프레임들(1503 및 1504)에 포함된 이미지 정보를 합성하고, 이에 따라 더욱 완벽해진다. 바람직하게는, 더욱 완벽한 플레이 이미지 프레임을 얻기 위해서, 상기 합성된 이미지 프레임내에 존재하는 몇몇 손실 픽셀들이 다른 이미지 처리 기술들을 통해 보상될 수 있다.
2개의 서로다른 관측각들에 기초하여 제3의 관측각의 이미지를 생성하는 기술은 공지되어 있으며, 이는 일반적으로 가상 뷰의 생성으로 호칭되며 여기서는 상세히 기술되지 않았다는 점에 유념해야 한다.
도 16은 본 발명의 바람직한 실시예에 따라 가상 세계를 구현하기 위한 시스템 아키텍쳐의 블럭도를 구조적으로 도시한다. 본 시스템 아키텍쳐는 클라이언트 및 서버를 포함하고, 이는 인터넷과 같은 네트워크나 통신 네트워크를 통해서 서로 교신한다.
도 16에 도시된 바와 같이, 상기 클라이언트는 윈도우 입력 모듈, 2D 유저 인터페이스(UI), 메시지 프로세서, 매체 플레이어 및 스트림 합성기를 포함한다. 상기 윈도우 입력 모듈은 상기 유저로부터 입력(예를 들어 상기 아바타를 제어하기 위한 명령 및 관련 데이터와 같은)을 수신하기 위한 것이다. 상기 2D UI 모듈은 상기 유저를 위해 매체 플레이어의 의해 플레이되는 가상 세계 씬의 이미지를 디스플레이하기 위한 것이다. 상기 메시지 프로세서는 윈도우 입력 모듈로부터 메시지를 수신하고 상기 네트워크를 통해 상기 서버로 이를 전송하고, 그리고 2D UI상에 디스플레이하기 위해 상기 서버로부터의 메시지를 처리하기 위한 것이다. 상기 스트림 결합기는 상기 서버로부터의 적어도 2개의 스트리밍 매체를 결합하기 위한 것이다. 상기 매체 플레이어는 2D UI상에 가상 세계 씬의 이미지를 플레이하기 위해, 상기 스트리밍 매체를 디코딩하기 위한 것이다.
도 16에 도시된 바와 같이, 상기 서버는 통신 모듈, 메시지 프로세서, 리소스 관리자, 렌더링 에이전트 그룹, 스트리밍 매체 관리자 및 스트리밍 매체 생성자를 포함한다. 상기 렌더링 에이전트 그룹은 k개의 렌더링 에이전트들(RA.1부터 RA.k)을 포함한다. 상기 서버는 예를 들어 3D 씬 기술자 및 상기 3D 씬의 TGRN과 같이(대응하는 렌더링 에이전트에 설정된) 관련 데이터를 저장하기 위한 데이터 구조를 더 포함한다. 통신 모듈은 네트워크 레이어에서 통신을 처리하고, 상기 클라이언트로부터 명령들 및 데이터를 수신하고, 그리고 필수 명령들 및 데이터를 상기 클라이언트로 전송할 책임이 있다. 상기 메시지 프로세서는 상기 클라이언트로부터 전송된 명령들 및 데이터를 처리할 책임이 있고, 다른 명령들은 다른 메시지 프로세서들에 의해 처리될 수 있다. 상기 3D 씬을 변경하는 역활을 수행하는 명령에 대해(예를 들어 객체를 생성, 수정 및 삭제, 그리고 아바타를 생성, 이동 및 작성 등), 상기 메시지 프로세서는 프로그램 로직에 기초하여 상기 3D 씬 데이터를 업데이트할 것이다. 아바타가 이동하는 경우, 대응하는 메시지 프로세서는 상기 클라이언트로 전송될 대부분의 비디오 스트림을 선택하기 위해 상기 스트리밍 매체 관리자를 통지할 것이다. 상기 리소스 관리자는 예를 들어 객체 모델 및 텍스쳐 등과 같은 다큐먼트들을 관리할 것이다. 3D 씬 기술자는 상기 3D 씬 데이터상의 글로벌 기술자인 데이터 구조이고, 이는 상기 씬내 모든 객체들의 메타데이터를 포함한다. 상기 메타데이터는 예를 들어 객체 모델 및 텍스쳐 등과 같은 다큐먼트들에 대한 레퍼런스를 포함한다. 상기 서버는 복수의 렌더링 에이전트들을 포함할 수 있고, 각 렌더링 에이전트는 렌더링 엔진과 TGRN 생성자인 두 개의 주요 기능 모듈들을 포함한다. TGRN 생성자는 독립 쓰레드를 구현될 수 있고, 시스템 초기화 처리 동안에, 이는 상기 3D 씬 기술자내 메타데이터에 기초하여 리소스 관리자로부터 3D 모델 데이터를 얻어내고, 그리고 원본 3D 씬의 TGRN 네트워크를 생성한다. 그러나, 구동 시간동안, 상기 TGRN 생성자는 상기 3D 씬 기술자가 업데이트되었는지 여부를 실시간으로 체크하고, 만약 되었다면, 상기 3D 씬의 TGRN이 대응하여 업데이트된다. 또한 상기 렌더링 엔진이 종속적으로 쓰레드될 수 있다. 이는 3D 씬의 TGRN 네트워크를 기초로 각 노드를 실시간으로 렌더링하고, 상기 렌더링 결과를 상기 3D 씬의 TGRN 네트워크의 대응하는 노드상에 기록할 수 있다. 스트리밍 매체 관리자는 상기 아바타의 위치와 관측각에 기초하여 적절한 렌더링 에이전트와 적절한 TGARN 노드를 동적으로 선택하고, 상기 대응하는 렌더링 결과를 자른다; 그리고나서 상기 클라이언트에 의해 지원되는 스트리밍 매체 포맷이 스트리밍 매체 생성자를 통해서 생성되고, 그리고 마지막으로 상기 비디오 스트림이 상기 클라이언트로 제공된다.
도 16에 도시된 바와 같이 상기 시스템 아키텍쳐는 단지 실시예이고, 본 발명의 다양한 실시예들을 이로 한정하려는 의도는 아니라는 점에 유념해야 한다. 구현시에, 다양한 수정이 필요한 만큼 이루어질 수 있다. 예를 들어, 렌더링 에이전트 그룹은 하나의 서버나 복수의 서버들상에 구현될 수 있고, 그리고 상기 스트리밍 매체 관리자 및 스트리밍 매체 생성자가 분리된 서버상에서 구현될 수 있다. 추가적으로, 렌더링 에이전트 그룹이 복수의 서버들상에서 구현되는 경우, 씬이 변경할 때, 전송하는데 필요한 데이터량을 감소하도록 대량의 씬 데이터를 실시간으로 전송할 필요없이, 대응하는 서버에 상기 씬 데이터를 업데이트하도록 통지하기 위해 간단히 메시지를 보내는 것이 가능하기 때문에, 각 렌더링 에이전트들이 자신의 위치 및 관측각에 대응하는 3D 씬 기술자를 포함하는 것이 장점이다.
도 17a 및 17b는 본 발명의 두가지 실시예들에 따라, 가상 세계 씬이 이미지를 제공하기 위한 장치를 도시한다. 도 17a에 도시된 바와 같이, 일 실시예에서, 장치(1700)는 복수의 렌더링 결과들을 생성하기 위해 가상 세계의 씬을 렌더링하기 위한 렌더링 수단(1701); 상기 렌더링 결과들의 적어도 일부분에 기초하여 이미지 스트림을 생성하기 위한 이미지 스트림 생성 수단(1702); 및 클라이언트로 이미지 스트림을 전송하기 위한 전송 수단(1703)을 포함한다. 일 실시예에서, 상기 렌더링 결과를 생성하기 위해서, 상기 렌더링 수단(1701)은 가상 세계에서, 상기 클라이언트의 대응하는 아바타의 위치 및 관측각으로부터 상기 가상 세계의 씬을 렌더링하기 위해 구성된다. 도 17b에 도시된 바와 같이, 다른 실시예에서, 상기 장치(1700')는 복수의 렌더링 결과들을 생성하기 위해, 가상 세계에서, 적어도 하나의 고정 관측각으로부터 가상 세계의 씬을 렌더링하기 위해 구성된 렌더링 수단(1701'); 상기 렌더링 결과들의 적어도 일부에 기초하여 이미지 스트림을 생성하기 위한 이미지 스트림 생성 수단(1702'); 및 상기 클라이언트로 상기 이미지 스트림을 전송하기 위한 전송 수단(1703');을 포함한다.
본 발명의 일 실시예에서, 상기 적어도 하나의 고정 관측각은 상기 씬의 주변공간에 분산된 복수의 포인트들로부터 상기 씬으로 향하도록 기설정된 복수의 고정 관측각들을 포함한다. 다른 실시예에서, 상기 장치(1700')는, 상기 렌더링 결과들의 일부로서 상기 적어도 하나의 고정 관측각들로부터 생성된 렌더링 결과들을 취하기 위해서, 상기 클라이언트의 대응하는 아바타의 관측각에 가능한한 가까운 적어도 하나의 고정 관측각을 선택하기 위한 관측각 선택 수단(1704')를 더 포함한다. 일 실시예에서, 상기 렌더링 수단(1701')은 다른 투영 깊이에서 상기 씬을 렌더링하도록 더 구성된다; 그리고 상기 장치(1700')는 상기 가상 세계내 상기 대응하는 아바타의 위치에 기초하여, 투영 깊이들이 상기 렌더링 결과들의 일부로서 상기 위치에 대응하는 렌더링 결과들을, 선택하기 위한 렌더링 결과 선택 수단(1704')을 더 포함한다. 일 실시예에서, 상기 렌더링 수단(1701')은 상기 서로다른 투영 깊이들에 대응하는 씬 변화를 렌더링하도록 더 구성된다.
도 18a는 본 발명의 일 실시예에 따른 가상 세계 씬의 이미지를 디스플레이하기 위한 장치의 블럭도를 도시한다. 도 18a에 도시된 바와 같이, 일 실시예에서, 상기 장치(1800)는 상기 클라이언트에서 상기 가상 세계 씬의 이미지 스트림을 수신하기 위한 수신 수단(1801), 및 상기 이미지 스트림을 플레이하기 위한 디스플레이 수단(1802)을 포함한다.
도 18b는 본 발명의 일 실시예에 따른 가상 세계 씬의 이미지를 처리하기 위한 장치의 블럭도를 도시한다. 도 18b에 도시된 바와 같이, 일 실시예에서, 이러한 장치(1801')는 클라이언트에서 상기 가상 세계 씬의 적어도 2개의 이미지 스트림들을 수신하기 위한 수신 수단(1801'); 및 상기 이미지 스트림을 플레이하기 위해 상기 적어도 2개의 이미지 스트림들을 하나의 이미지 스트림으로 결합하기 위한 결합 수단(1803')을 포함한다. 이외에, 이러한 장치들은 상기 이미지 스트림을 플레이하기 위한 플레이 수단을 더 포함한다. 일 실시예에서, 상기 결합 수단(1803')은 상기 적어도 2개의 이미지 스트림들에서 시간적으로 동기화된 적어도 2개의 이미지 프레임들을 각각 상기 가상 세계의 클라이언트의 대응하는 아바타의 관측각들로 맞춰진 적어도 2개의 변환된 이미지 프레임들로 변환하기 위한 변환 수단(1804'); 및 상기 적어도 2개의 전환된 이미지 프레임들을 상기 하나의 이미지 스트림내 플레이 이미지 스트림으로 조합하기 위한 조합 수단(1805')을 포함한다. 상기 적어도 2개의 이미지 스트림들은 적어도 하나의 고정 관측각으로부터 상기 가상 세계의 씬의 렌더링에 의해 획득된 복수의 렌더링 결과들에 기초하여 가상 세계에서 생성된다.
본 발명의 일 실시예에서, 가상 세계를 구현하기 위한 시스템이 더 제공되는데, 상기 시스템은 가상 세계의 씬의 이미지를 제공하기 위한 상술한 장치(1700 및 1700') 중 하나, 그리고 가상 세계 씬의 이미지를 디스플레이하기 위한 상술한 장치(1800)나 가상 세계 씬의 이미지를 처리하기 위한 장치(1800')를 포함한다.
가상 세계 씬의 이미지를 제공하기 위한 상기 장치(1700, 1700'), 가상 세계 씬의 이미지를 디스플레이하기 위한 장치(1800), 가상 세계 씬의 이미지를 처리하기 위한 장치(1800'), 및 가상 세계를 구현하기 위한 시스템내 다양한 컴포넌트들의 상세한 동작에 대해서는, 도 2 내지 18과 함께, 가상 세계의 씬의 이미지를 제공하기 위한 상기 방법, 가상 세계의 씬의 이미지를 디스플레이 하기 위한 상기 방법, 가상 세계의 씬의 이미지를 처리하기위한 상기 방법, 및 가상 세계를 구현하기 위한 상기 시스템 아키텍쳐에 관한 상세한 설명을 참조하길 바란다.
도 19는 본 발명에 따른 실시예들을 구현할 수 있는 컴퓨터 디바이스의 블럭도를 도시한다. 도 19에 도시된 바와 같이, 상기 컴퓨터 시스템은 CPU(중앙 처리 장치, 1901), 램(Random Access Memory, 1902), 롬(Read Only Memory, 1903), 시스템 버스(1904), 하드 디스크 제어기(1905), 키보드 제어기(1906), 시리얼 인터페이스 제어기(1907), 패러럴 인터페이스 제어기(1908), 디스플레이 제어기(1909), 하드 디스크(1910), 키보드(1911), 시리얼 주변 기기(1912), 패러럴 주변 기기(1913) 및 디스플레이 모니터(1914)를 포함한다. 이러한 컴포넌트들 중에서, 상기 시스템 버스(1904)에 연결된 것으로 CPU(1901), 램(1902), 롬(1903), 하드디스크 제어기(1905), 키보드 제어기(1906), 시리얼 인터페이스 제어기(1907), 패러럴 제어기(1908) 및 디스플레이 제어기(1909)가 있다. 상기 하드 디스크(1910)는 상기 하드 디스크 제어기(1905)에 연결되어 있다; 상기 키보드(1911)는 상기 키보드 제어기(1906)에 연결되어 있다; 상기 시리얼 주변 기기(1912)는 상기 시리얼 인터페이스 제어기(1907)에 연결되어 있다; 상기 패러럴 주변 기기(1913)는 상기 패러럴 인터페이스 제어기(1908)에 연결되어 있다; 그리고 상기 모니터(1914)는 상기 모니터 제어기(1909)에 연결되어 있다. 도 19의 구조 블럭도는 단지 도시를 위한 목적으로 도시되어 있으며, 본 발명을 한정하려는 의도는 아니다. 몇몇 경우, 몇몇 디바이스들은 필요에 따라 추가되거나 제거될 수 있다.
본 발명은 완전한 하드웨어 구현, 완전한 소프트웨어 구현 또는 하드웨어 컴포넌트와 소프트웨어 컴포넌트 둘 다를 포함하는 구현의 형태로 맞춰질 수 있다. 바람직한 실시예에서, 본 발명은 펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함하는(한정은 아님) 소프트웨어로서 구현된다. 또한, 본 발명은 컴퓨터나 명령 실행 시스템에 의해서나 이와 연결하여 이용하기 위한 프로그램 코드를 제공하는 컴퓨터 사용가능 또는 컴퓨터 판독가능 매체에 의해 엑세스가능한 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 기술을 위한 목적으로, 컴퓨터-실행가능이나 컴퓨터-판독가능 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해서나 이와 연결하여 이용하기 위해 프로그램을 포함, 저장, 통신, 전파 또는 전송할 수 있는 유형 매체일 수 있다. 상기 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템(장치나 디바이스) 또는 전파 매체일 수 있다. 상기 컴퓨터-판독가능 매체의 예들로는 반도체나 고체 저장 디바이스, 자기 테이프, 휴대가능 컴퓨터 디스켓, 램, 롬, 하드디스크 및 광 디스크를 포함할 수 있다. 현재까지의 광 디스크의 예들로는 CD-ROM(compact disk read-only memory), CR-R/W(compact disk-read/write) 및 DVD를 포함한다.
프로그램 코드를 저장하거나 실행하기 위해 채용된 데이터 처리 시스템은 직접이나 시스템 버스를 통해서 메모리 요소에 연결된 적어도 하나의 프로세서를 포함할 수 있다. 상기 메모리 요소는 상기 프로그램 코드가 실제 실행되는 동안에 사용가능한 로컬 메모리 및 대용량 메모리, 그리고 실행동안에 상기 대용량 메모리로부터 코드를 리트리브하는 회수를 감소시키도록 적어도 프로그램 코드의 일부분에 대해서 임시 저장공간을 제공하는 캐쉬를 포함할 수 있다.
입력/출력 또는 I/O 디바이스(키보드, 디스플레이, 포인팅 디바이스 등을 포함(한정은 아님))은 직접이나 중계 I/O 제어기를 통해서 시스템에 연결될 수 있다.
또한 네트워크 아답터가 상기 시스템에 연결될 수 있고, 이에 따라 상기 데이터 처리 시스템은 중계 사설이나 공용 네트워크를 통해서 다른 데이터 처리 시스템들, 원격 프린터들 또는 저장 디바이스들에 연결될 수 있다. 모뎀, 케이블 모뎀 및 이더넷 카드는 단지 현재 사용가능한 네트워크 아답터의 예들일 뿐이다.
상술한 설명으로부터 본 발명의 원래 사상으로부터 벗어남이 없이 본 발명의 각각의 실시예들에 수정, 변경 및 조합들이 이루어질 수 있다는 점이 이해되어져야 한다. 본 상세한 설명의 내용들은 설명을 위한 것이지 한정을 하려는 의도는 아니다. 본 발명의 권리범위는 첨부된 청구항들에 의해서만 한정된다.

Claims (21)

  1. 가상 세계의 씬(scene)의 이미지들을 제공하는 방법에 있어서,
    복수의 렌더링 결과들을 생성하기 위해, 상기 가상 세계의 씬을 렌더링하는(rendering) 단계;
    상기 렌더링 결과들의 적어도 일부분에 기초하여, 이미지 스트림을 생성하는 단계; 및
    상기 이미지 스트림을 클라이언트로 전송하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 가상 세계의 씬을 렌더링하는 단계는
    상기 복수의 렌더링 결과들을 생성하기 위해, 상기 클라이언트의 대응하는 아바타의 위치 및 관측각(observation angle)으로부터 상기 가상 세계의 씬을, 상기 가상 세계에서, 렌더링하는 단계;를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 가상 세계의 씬을 렌더링하는 단계는
    상기 복수의 렌더링 결과들을 생성하기 위해, 적어도 하나의 고정 관측각으로부터 가상 세계의 씬을, 상기 가상 세계에서, 렌더링하는 단계;를 포함하는
    방법.
  4. 제3항에 있어서,
    적어도 하나의 고정 관측각은 복수의 고정 관측각들을 포함하고, 그리고
    상기 복수의 고정 관측각들은 상기 씬의 주변공간에 분포된 복수의 포인트들로부터 상기 씬쪽을 향하도록 기설정되는(preset)
    방법.
  5. 제3항에 있어서,
    상기 적어도 하나의 고정 관측각으로부터 생성된 렌더링 결과들을 상기 렌더링 결과들의 일부로서 취하기 위해서, 가능한한 상기 클라이언트의 대응하는 아바타의 관측각에 가까운 적어도 하나의 고정 관측각을, 복수의 고정 관측각들로부터, 선택하는 단계;를 더 포함하는
    방법.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서,
    적어도 하나의 고정 관측각으로부터 상기 가상 세계의 씬을 렌더링하는 단계는, 서로다른 투영 깊이들(projection depths) 각각에서 상기 씬을 렌더링하는 단계를 더 포함하고; 그리고
    상기 방법은,
    상기 가상 세계내 상기 대응하는 아바타의 위치에 기초하여, 상기 렌더링 결과들의 일부로서, 상기 복수의 렌더링 결과들로부터 상기 위치에 대응하는 투영 깊이들을 가지는 렌더링 결과들을 선택하는 단계를 더 포함하는
    방법.
  7. 제6항에 있어서,
    서로다른 투영 깊이들에서 상기 씬을 렌더링하는 단계는
    상기 서로다른 투영 깊이들에 대응하는 씬 변화들을 렌더링하는 단계;를 더 포함하는
    방법.
  8. 가상 세계의 씬(scene)의 이미지들을 처리하는 방법에 있어서,
    상기 가상 세계의 상기 씬의 적어도 두개의 이미지 스트림들을 클라이언트에서 수신하는 단계 -상기 이미지 스트림들은 제1항의 방법에 기초하여 생성됨-; 및
    플레이를 위해서, 상기 적어도 두개의 이미지 스트림들을 하나의 이미지 스트림으로 결합하는(merging) 단계;를 포함하는
    방법.
  9. 제8항에 있어서,
    상기 결합 단계는,
    상기 적어도 두개의 이미지 스트림들에서 시간으로 동기화된 적어도 두개의 이미지 프레임들을, 상기 가상세계내 상기 클라이언트의 대응하는 아바타의 관측각에 맞춰진 적어도 두개의 전환된 이미지 프레임들로 전환하는 단계; 및
    상기 적어도 두개의 전환된 이미지 프레임들을 상기 하나의 이미지 스트림내 플레이 이미지 프레임으로 합치는 단계;를 포함하는
    방법.
  10. 제8항에 있어서,
    상기 적어도 두개의 이미지 스트림들은
    상기 가상 세계에서, 적어도 하나의 고정 관측각으로부터 가상 세계의 씬을 렌더링함으로써 획득된 복수의 렌더링 결과들의 일부에 기초하여 생성되는
    방법.
  11. 가상 세계의 씬(scene)의 이미지들을 제공하기 위한 장치에 있어서,
    복수의 렌더링 결과들을 생성하기 위해, 상기 가상 세계의 씬을 렌더링하기 위한 렌더링 수단;
    상기 렌더링 결과들의 적어도 일부에 기초하여 이미지 스트림을 생성하기 위한 이미지 스트림 생성 수단; 및
    상기 이미지 스트림을 클라이언트로 전송하기 위한 전송 수단;을 포함하는
    장치.
  12. 제11항에 있어서,
    상기 렌더링 수단은
    상기 렌더링 결과들을 생성하기 위해, 상기 클라이언트의 대응하는 아바타의 위치 및 관측각(observation angle)으로부터 상기 가상 세계의 씬을, 상기 가상 세계에서, 렌더링하기 위해 구성된,
    장치.
  13. 제11항에 있어서,
    상기 렌더링 수단은
    상기 복수의 렌더링 결과들을 생성하기 위해, 적어도 하나의 고정 관측각으로부터 상기 가상 세계의 씬을, 상기 가상 세계에서, 렌더링하기 위해 구성된
    장치.
  14. 제13항에 있어서,
    상기 적어도 하나의 고정 관측각은 복수의 고정 관측각들을 포함하고,
    상기 복수의 고정 관측각들은 상기 씬의 주변 공간에 분포된 복수의 포인트들로부터 상기 씬쪽을 향하도록 기설정되는(preset)
    장치.
  15. 제13항에 있어서,
    상기 적어도 하나의 고정 관측각을부터 생성된 렌더링 결과들을 렌더링 결과들의 일부로서 취하도록, 상기 클라이언트의 대응하는 아바타의 관측각에 가능한 한 가까운 적어도 하나의 고정 관측각을, 복수의 고정 관측각들로부터 선택하기 위한 관측각 선택 수단을 더 포함하는,
    장치.
  16. 제13항 내지 제15항 중 어느 한항에 있어서,
    상기 렌더링 수단은 서로다른 투영 깊이(projection depths)들에서 상기 씬을 렌더링하도록 더 구성되고,
    상기 장치는
    상기 복수의 렌더링 결과들로부터 상기 위치에 대응하는 투영 깊이들을 가진 렌더링 결과들을 상기 렌더링 결과들의 일부로서, 상기 가상 세계의 대응하는 아바타의 위치에 기초하여, 선택하기 위한 렌더링 결과 선택 수단을 더 포함하는
    장치.
  17. 제16항에 있어서,
    상기 렌더링 수단은
    상기 서로다른 씬 깊이들에 대응하는 씬 변화들을 렌더링하도록 더 구성된
    장치.
  18. 가상 세계의 씬의 이미지들을 처리하기 위한 장치에 있어서,
    클라이언트에서, 상기 가상 세계의 상기 씬(scene)의 적어도 두개의 이미지 스트림들을 수신하기 위한 수신 수단 -상기 이미지 스트림들은 제11항의 장치에 의해서 생성됨-; 및
    상기 적어도 두개의 이미지 스트림들을 플레이를 위한 하나의 이미지 스트림으로 결합하기 위한 결합 수단;을 포함하는
    장치.
  19. 제18항에 있어서,
    상기 결합 수단은
    상기 적어도 두개의 이미지 스트림들에서 시간적으로 동기화된 적어도 두개의 이미지 프레임들을, 상기 가상 세계의 상기 클라이언트의 대응하는 아바타의 관측각에 맞춰진 적어도 두개의 전환된 이미지 프레임들로 전환하기 위한 전환 수단; 및
    적어도 두개의 전환된 이미지 프레임들을 하나의 이미지 스트림내 플레이 이미지 프레임으로 조합하기 위한 조합 수단을 포함하는
    장치.
  20. 제18항에 있어서,
    상기 적어도 두개의 이미지 스트림들은
    적어도 하나의 고정 관측각을부터 상기 가상 세계의 씬을 렌더링 함으로써 획득된 복수의 렌더링 결과들의 일부분에 기초하여 가상 세계에서 생성되는
    장치.
  21. 가상 세계를 구현하기 위한 시스템에 있어서,
    제11항 내지 제17항 중 어느 한 항에 따라 가상 세계의 씬(scene)의 이미지들을 제공하기 위한 장치, 및
    제18항 내지 제20항 중 어느 한 항에 따라 가상 세계의 씬의 이미지들을 처리하기 위한 장치를 포함하는
    시스템.
KR1020110023667A 2010-03-18 2011-03-17 가상 세계 씬의 이미지들을 제공하기 위한 방법 및 장치 그리고 이를 처리하기 위한 방법 및 장치 KR101762956B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2010101292066A CN102196300A (zh) 2010-03-18 2010-03-18 虚拟世界场景的图像的提供方法和设备及处理方法和设备
CN201010129206.6 2010-03-18

Publications (2)

Publication Number Publication Date
KR20110105350A true KR20110105350A (ko) 2011-09-26
KR101762956B1 KR101762956B1 (ko) 2017-08-04

Family

ID=44603574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110023667A KR101762956B1 (ko) 2010-03-18 2011-03-17 가상 세계 씬의 이미지들을 제공하기 위한 방법 및 장치 그리고 이를 처리하기 위한 방법 및 장치

Country Status (3)

Country Link
US (1) US8854391B2 (ko)
KR (1) KR101762956B1 (ko)
CN (1) CN102196300A (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9839844B2 (en) 2011-03-01 2017-12-12 Disney Enterprises, Inc. Sprite strip renderer
CN102780853A (zh) * 2012-05-31 2012-11-14 新奥特(北京)视频技术有限公司 一种实现四角变换特效的方法
CN102780851A (zh) * 2012-05-31 2012-11-14 新奥特(北京)视频技术有限公司 一种转场特技的实现方法
CN103533323B (zh) * 2012-07-04 2015-10-28 广州市朗辰电子科技有限公司 一种多视点立体图像序列的预览方法及系统
DE102013201377A1 (de) 2013-01-29 2014-07-31 Bayerische Motoren Werke Aktiengesellschaft Verfahren und Vorrichtung zum Verarbeiten von 3d-Bilddaten
CN105814903A (zh) * 2013-09-10 2016-07-27 卡尔加里科技股份有限公司 用于分布式服务器侧和客户端侧图像数据渲染的体系结构
US9619857B2 (en) 2013-10-23 2017-04-11 Empire Technology Development Llc Intermediary graphics rendition
CN104147781B (zh) * 2014-07-29 2017-11-07 京东方科技集团股份有限公司 电子装置、电子系统和电子装置控制方法
US10506003B1 (en) 2014-08-08 2019-12-10 Amazon Technologies, Inc. Repository service for managing digital assets
KR102313020B1 (ko) * 2014-11-27 2021-10-15 삼성전자주식회사 그래픽스 프로세싱 유닛과 이를 포함하는 장치
US10115149B1 (en) * 2014-12-18 2018-10-30 Amazon Technologies, Inc. Virtual world electronic commerce platform
US10204444B2 (en) * 2016-04-28 2019-02-12 Verizon Patent And Licensing Inc. Methods and systems for creating and manipulating an individually-manipulable volumetric model of an object
US10218793B2 (en) * 2016-06-13 2019-02-26 Disney Enterprises, Inc. System and method for rendering views of a virtual space
CN106157276A (zh) * 2016-06-15 2016-11-23 南京快脚兽软件科技有限公司 一种适用于多种场景的多目标交互引擎渲染方法
CN107168619B (zh) * 2017-03-29 2023-09-19 腾讯科技(深圳)有限公司 用户生成内容处理方法和装置
CN107343206B (zh) * 2017-08-11 2019-12-24 北京铂石空间科技有限公司 支持多视角观看的视频生成方法、装置、介质和电子设备
CN108171783A (zh) 2018-03-20 2018-06-15 联想(北京)有限公司 图像渲染方法、系统以及电子设备
CN108600509B (zh) * 2018-03-21 2020-08-25 阿里巴巴集团控股有限公司 三维场景模型中信息的分享方法及装置
CN110163977B (zh) * 2018-07-13 2024-04-12 腾讯数码(天津)有限公司 多世界虚拟场景中的虚拟通道渲染方法及装置
CN109302617B (zh) * 2018-10-19 2020-12-15 武汉斗鱼网络科技有限公司 一种指定多元素的视频连麦方法、装置、设备及存储介质
JP2020187706A (ja) * 2019-05-17 2020-11-19 キヤノン株式会社 画像処理装置、画像処理システム、画像処理方法およびプログラム
CN110298906B (zh) * 2019-06-28 2023-08-11 北京百度网讯科技有限公司 用于生成信息的方法和装置
CN111354067B (zh) * 2020-03-02 2023-08-22 成都偶邦智能科技有限公司 一种基于Unity3D引擎的多模型同屏渲染方法
CN114723862A (zh) * 2020-12-21 2022-07-08 华为云计算技术有限公司 渲染方法、设备以及系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPM701394A0 (en) 1994-07-22 1994-08-18 Monash University A graphical display system
US6438576B1 (en) * 1999-03-29 2002-08-20 International Business Machines Corporation Method and apparatus of a collaborative proxy system for distributed deployment of object rendering
GB2379848B (en) 2001-08-17 2005-04-20 Massimo Bergamasco A rendering system
US6853398B2 (en) * 2002-06-21 2005-02-08 Hewlett-Packard Development Company, L.P. Method and system for real-time video communication within a virtual environment
US7386799B1 (en) * 2002-11-21 2008-06-10 Forterra Systems, Inc. Cinematic techniques in avatar-centric communication during a multi-user online simulation
CN101048996A (zh) 2004-10-22 2007-10-03 慧达企业有限公司 用于移动三维图形消息传送的系统和方法
WO2007032819A2 (en) * 2005-07-21 2007-03-22 Regents Of The University Of Minnesota Camera placement and virtual-scene construction
US8305488B2 (en) * 2006-05-10 2012-11-06 Universal City Studios Llc Time-sliced multiplexed image display
EP1890262A1 (en) 2006-08-18 2008-02-20 Valtion Teknillinen Tutkimuskeskus Virtual 3D models for display
JP4884918B2 (ja) 2006-10-23 2012-02-29 株式会社野村総合研究所 仮想空間提供サーバ、仮想空間提供システム及びコンピュータプログラム
US9630104B2 (en) * 2006-10-23 2017-04-25 Konrad V. Sherinian Systems, methods, and apparatus for transmitting virtual world content from a server system to a client
US8259117B2 (en) * 2007-06-18 2012-09-04 Brian Mark Shuster Avatar eye control in a multi-user animation environment
US8154553B2 (en) * 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server

Also Published As

Publication number Publication date
US8854391B2 (en) 2014-10-07
US20110227938A1 (en) 2011-09-22
CN102196300A (zh) 2011-09-21
KR101762956B1 (ko) 2017-08-04

Similar Documents

Publication Publication Date Title
KR101762956B1 (ko) 가상 세계 씬의 이미지들을 제공하기 위한 방법 및 장치 그리고 이를 처리하기 위한 방법 및 장치
US10275926B2 (en) Crowd-sourced video rendering system
US11936733B2 (en) Application sharing
US8363051B2 (en) Non-real-time enhanced image snapshot in a virtual world system
JP2022528432A (ja) ハイブリッドレンダリング
Shi et al. Real-time remote rendering of 3D video for mobile devices
KR102441514B1 (ko) 하이브리드 스트리밍
JP7447266B2 (ja) ボリュメトリック画像データに関するビューの符号化及び復号
RU2810701C2 (ru) Гибридный рендеринг
US20240187488A1 (en) Application sharing
JP2024073652A (ja) アプリケーション共有

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