KR20180108786A - 3d 환경에서 콘텐츠 렌더링 - Google Patents

3d 환경에서 콘텐츠 렌더링 Download PDF

Info

Publication number
KR20180108786A
KR20180108786A KR1020187025484A KR20187025484A KR20180108786A KR 20180108786 A KR20180108786 A KR 20180108786A KR 1020187025484 A KR1020187025484 A KR 1020187025484A KR 20187025484 A KR20187025484 A KR 20187025484A KR 20180108786 A KR20180108786 A KR 20180108786A
Authority
KR
South Korea
Prior art keywords
virtual object
environment
party content
user
mode
Prior art date
Application number
KR1020187025484A
Other languages
English (en)
Other versions
KR102199807B1 (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 KR1020207038045A priority Critical patent/KR102280719B1/ko
Publication of KR20180108786A publication Critical patent/KR20180108786A/ko
Application granted granted Critical
Publication of KR102199807B1 publication Critical patent/KR102199807B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F17/30
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Optics & Photonics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

3D 환경에서 콘텐츠를 렌더링하는 시스템들, 방법들, 장치들 및 기타 기술들이 개시된다. 일부 구현예들에서, 시스템은 메모리 서브시스템, 통신 인터페이스, 렌더링 엔진, 입력 핸들링 장치 및 가상 객체 관리자를 포함한다. 메모리 서브시스템은 (i) 3차원(3D) 환경을 정의하고 (ii) 상기 3D 환경에서 가상 객체를 식별하는 제1 데이터를 저장한다. 상기 통신 인터페이스는 제3자 콘텐츠가 3D 환경에서 가상 객체로 디스플레이하도록 네트워크를 통해 요청들을 전송하고, 그 요청들에 응답하여 제3자 콘텐츠를 수신한다. 상기 렌더링 엔진은 메모리 서브시스템으로부터의 상기 제1 데이터를 사용하여 디스플레이 장치상에 표현하기 위한 3D 환경을 렌더링하며, 상기 가상 객체가 제1 세트의 제3자 콘텐츠를 디스플레이하는 제1 모드로 상기 3D 객체의 특정 위치에서 상기 가상 객체를 렌더링하는 것을 포함한다.

Description

3D 환경에서 콘텐츠 렌더링
본 명세서는 사용되지 않는 제3자 콘텐츠의 전송을 줄이고 제3자 콘텐츠를 3D 환경에서 효율적으로 렌더링하는 기술을 포함하는 데이터 처리에 관한 것이다.
3차원(3D) 가상 환경을 렌더링할 수 있는 다양한 컴퓨팅 시스템들이 개발되었다. 예로서, 가상 현실(VR) 시스템들은 헤드 장착형 디스플레이(head-mounted display, HMD)를 착용한 사용자에게 제시되는 3D 환경을 렌더링할 수 있다. 상기 헤드 장착형 디스플레이는 전자 디스플레이 스크린 및 사용자가 스크린 및 디스플레이된 3D 환경을 보는 광학 렌즈들을 포함할 수 있다. 상기 시스템은 3D 환경을 스크린에 입체적으로 렌더링할 수 있어, 헤드 장착형 디스플레이의 렌즈들을 통해 볼 때 사용자에게 깊이 착시를 일으킨다. 일부 VR 시스템들은 몰입형 사용자 경험을 제공하므로 사용자는 가상 환경에 실제 존재하는 것처럼 느낀다. 일부 VR 시스템들은 사용자가 3D 환경을 둘러보고, 3D 환경을 이동하고, 3D 환경 내 가상 객체들을 조작할 수 있게 해준다.
이 문서는 네트워크를 통해 사용되지 않는 제3자 콘텐츠의 전송을 줄이고 그리고 3D 환경에서 제3자 콘텐츠를 효율적으로 렌더링하기 위한 시스템들, 방법들, 장치들 및 기타 기술들에 대해 설명한다. 일반적으로, 가상 현실 시스템 또는 증강 현실 시스템과 같은 클라이언트 컴퓨팅 시스템은 하나 이상의 제3자 콘텐츠 적격(third-party content eligible, 3PCE) 가상 객체들을 포함하는 3D 환경을 제시할 수 있다. 3PCE 가상 객체는 3D 환경의 지정된 위치에 제3자 콘텐츠(예를 들어, 3D 환경을 제공하는 엔티티와는 다른 엔티티에 의해 제공되는 콘텐츠)를 제시하도록 구성된 객체(예를 들어, 큐브, 구, 원통 또는 다른 기하학적 형상과 같은 3D 객체)이다. 3PCE 가상 객체는 객체와 연관된 복수의 디스플레이 모드들 중 하나에서 소정 시간에 언제든지 디스플레이될 수 있다. 3PCE 가상 객체와의 사용자 상호 작용과 같은 트리거링 이벤트가 검출될 때, 상기 시스템은 상기 객체를 하나의 디스플레이 모드에서 다른 디스플레이 모드로 전환시킴으로써 상기 가상 객체를 업데이트할 수 있다. 일부 구현예들에서, 3PCE 가상 객체와의 사용자 상호 작용은 상기 객체가 새로운 세트의 제3자 콘텐츠를 디스플레이하게 하고, 상기 객체에 의해 디스플레이되는 제3자 콘텐츠의 유형을 변경하게 하고, 상기 디스플레이된 제3자 콘텐츠(예를 들어, 웹사이트 또는 애플리케이션)와 연관된 외부 자원("포털 자원"이라고도 함)에 대한 포털을 열게 하거나 3D 환경의 외부 환경에서 디스플레이된 제3자 콘텐츠와 관련된 알림을 생성하게 한다.
여기에 기술된 요지의 일부 구현예들은 컴퓨팅 시스템을 포함한다. 상기 컴퓨팅 시스템은 메모리 서브시스템, 통신 인터페이스, 렌더링 엔진, 입력 핸들링 장치 및 가상 객체 관리자를 포함한다. 상기 메모리 서브시스템은 (i) 3차원(3D) 환경을 정의하고 (ii) 3D 환경에서 가상 객체를 식별하는 제1 데이터를 저장하도록 구성된다. 통신 인터페이스는 제3자 콘텐츠가 3D 환경에서 가상 객체로 디스플레이하고 요청들에 응답하여 제3자 콘텐츠를 수신하도록 네트워크를 통해 상기 요청들을 전송하도록 구성된다. 상기 렌더링 엔진은 상기 메모리 서브시스템으로부터의 상기 제1 데이터를 사용하여 상기 컴퓨팅 시스템에 결합된 디스플레이 장치상에 표시하기 위한 3D 환경을 렌더링하고, 상기 가상 객체가 제1 세트의 제3자 콘텐츠를 디스플레이하는 제1 모드에서 상기 3D 환경의 지정된 위치에 상기 가상 객체를 렌더링하는 것을 포함한다. 상기 입력 핸들링 장치는 3D 환경에서 가상 객체와의 사용자 상호 작용을 검출하도록 구성된다. 상기 가상 객체 관리자는 상기 3D 환경에서 가상 객체와의 제1 사용자 상호 작용을 나타내는 입력 핸들링 장치로부터의 인디케이션을 수신하고 그리고 이에 응답하여, 상기 가상 객체를 상기 가상 객체가 제1 세트의 제3자 콘텐츠를 디스플레이하는 제1 모드에서 상기 가상 객체가 제2 세트의 제3자 콘텐츠를 디스플레이하는 제2 모드로 전환시키도록 상기 렌더링 엔진에 지시하도록 구성된다.
이들 및 다른 구현예들은 다음 특징들 중 하나 이상을 선택적으로 포함할 수있다.
상기 디스플레이는 헤드 장착형 디스플레이일 수 있다. 상기 3D 환경은 헤드 장착형 디스플레이를 사용하여 볼 수 있도록 구성된 가상 현실(VR) 환경이 될 수 있다.
상기 렌더링 엔진은 상기 시스템이 상기 제2 세트의 제3자 콘텐츠를 획득하기 전에 상기 제1 모드에서 상기 가상 객체를 렌더링하도록 구성될 수 있다. 상기 통신 인터페이스는 (i) 가상 객체와의 사용자 상호 작용이 일어나는 것을 식별하거나 (ii) 상기 가상 객체와의 제1 사용자 상호 작용이 발생했음을 식별하는 것에 기초하여 제2 세트의 제3자 콘텐츠에 대한 요청을 전송하도록 구성될 수 있다.
상기 제1 세트의 제3자 콘텐츠에는 이미지 컬렉션이 포함될 수 있다. 상기 제1 모드에서, 상기 가상 객체는 3D 기하학적 형태를 형성하는 다각형 면들(polygonal surfaces)의 컬렉션을 포함할 수 있다. 상기 렌더링 엔진은 다각형 면들의 컬렉션의 각각의 다각형 면상에 상기 이미지 컬렉션으로부터의 각각의 이미지를 디스플레이함으로써 제1 모드로 상기 가상 객체를 렌더링하도록 구성될 수 있다.
상기 가상 객체의 다각형 면들의 컬렉션은 상기 가상 객체가 제1 모드에서 렌더링될 때 큐브(cube)를 형성할 수 있다
상기 렌더링 엔진은 가상 객체 관리자로부터 명령을 수신하여 제1 모드에서 제2 모드로 가상 객체를 전환시키는 것에 응답하여 상기 큐브를 애니메이션화(animate)하여 상기 제2세트의 제3자 콘텐츠를 나타낼 수 있게 구성될 수 있다.
상기 이미지들의 컬렉션은 각각 동일한 토픽(주제) 또는 엔티티와 관련된 콘텐츠를 나타낼 수 있다.
상기 입력 핸들링 장치는 3D 환경 내에서 사용자의 현재 시청 위치를 이동시키고, 3D 환경에서 사용자의 현재 시청 위치와 가상 객체의 위치 사이의 관계를 검출하기 위해 사용자 입력을 수신하도록 구성될 수 있다.
상기 가상 객체 관리자는 3D 환경에서 가상 객체의 위치와 사용자의 현재 시청 위치 사이의 관계가 하나 이상의 기준을 만족시킨다는 결정에 기초하여 상기 가상 객체를 제1 모드에서 제2 모드로 전환하도록 구성될 수 있다.
사용자의 현재 시청 위치와 가상 객체의 위치 사이의 관계는 사용자의 현재 시청 위치와 가상 객체의 위치 사이의 거리일 수 있으며, 상기 가상 객체 관리자는 3D 환경에서 가상 객체의 위치와 사용자의 현재 시청 위치 사이의 거리가 임계 거리 미만이라는 결정에 기초하여 상기 가상 객체를 상기 제1 모드에서 상기 제2 모드로 전환하도록 구성될 수 있다.
상기 입력 핸들링 장치는 3D 환경에서 사용자의 시선의 방향을 모니터링하고, 사용자의 시선이 가상 객체의 방향에 있음을 식별하는 것에 기초하여 제1 사용자 상호 작용을 검출하도록 구성될 수 있다.
가상 객체 관리자는 사용자의 시선이 미리 결정된 길이의 시간 동안 가상 객체의 방향으로 유지되었음을 식별하는 것에 기초하여 상기 가상 객체를 제1 모드에서 제2 모드로 전환하도록 구성될 수 있다.
상기입력 핸들링 장치는 핸드-기반 제어기로부터 입력을 수신하고, 사용자의 시선이 3D 환경에서 가상 객체의 방향에 있는 동안 상기 핸드-기반 제어기로부터 수신된 제1 입력에 기초하여 제1 사용자 상호 작용을 검출하도록 구성될 수 있다.
상기 가상 객체 관리자는 가상 객체와의 제1 사용자 상호 작용의 표시를 입력 핸들링 장치로부터 수신하는 것에 응답하여, 3D 환경 외부에서 사용자 알림의 생성을 트리거하도록 구성될 수 있으며, 사용자 알림은 제1 세트의 제3자 콘텐츠와 연관된 주제 또는 엔티티와 관련될 수 있다.
제2모드에서 가상 객체가 디스플레이하는 제2 세트의 제3자 콘텐츠의 유형은 제1 모드에서 가상 객체가 디스플레이하는 제1 세트의 제3자 콘텐츠의 유형과 상이 할수 있다.
상기 제1 모드에서 가상 개체가 디스플레이하는 제1 세트의 제3자 콘텐츠의 유형은 이미지들일 수 있다. 상기 제2 모드에서 가상 객체가 디스플레이하는 제2 세트의 제3자 콘텐츠의 유형은 비디오들 또는 3D 모델들일 수 있다.
본 명세서에 개시된 요지의 일부 구현예들은 컴퓨팅 시스템에 의해 수행되는 방법을 포함한다. 상기 방법은, 컴퓨팅 시스템의 디스플레이상에 3차원(3D) 환경을 디스플레이하는 단계; 상기 컴퓨팅 시스템에 의해, 상기 3D 환경에 위치한 가상 객체가 제3자 콘텐츠를 제시할 자격이 있는지를 식별하는 단계; 상기 컴퓨팅 시스템에 의해, 가상 객체에 대한 제1세트의 제3자 콘텐츠를 획득하는 단계; 상기 컴퓨팅 시스템에 의해, 가상 객체가 제1 세트의 제3자 콘텐츠를 제시하는 제1 모드에서 3D 환경 내의 가상 객체를 렌더링하는 단계; 상기 3D 환경에서 상기 가상 객체와의 사용자 상호 작용이 미리정의된 세트의 기준을 충족시키는지를 식별하는 단계; 그리고 상기 3D 환경에서의 상기 가상 객체와의 사용자 상호 작용이 미리정의된 세트의 기준을 충족시키는지를 식별하는 것에 응답하여, 상기 가상 객체가 상기 제1세트의 제3자 컨텐츠와는 다른 제2세트의 제3자 콘텐츠를 제시하는 제2 모드로 상기 3D 환경에서 상기 가상 객체를 리렌더링하는 단계를 포함할 수 있다.
이들 및 다른 구현예들은 선택적으로 하나 이상의 다음 특징들을 포함할 수 있다. 상기 디스플레이는 헤드 장착형 디스플레이일 수 있다. 상기 3D 환경은 헤드 장착형 디스플레이를 사용하여 볼 수 있도록 구성된 가상 현실(VR) 환경이 될 수 있다. 상기 가상 객체는 상기 시스템이 제2 세트의 제3자 콘텐츠를 획득하기 전에 제1 모드로 렌더링될 수 있다. 상기 방법은,
(i) 상기 가상 객체와의 사용자 상호 작용이 일어나는 것을 식별하거나 또는 (ii) 상기 가상 객체와의 상기 제1 사용자 상호 작용이 발생했음을 식별하는 것에 기초하여 상기 제2 세트의 제3자 콘텐츠에 대한 요청을 전송하는 단계를 더 포함할 수 있다. 상기 제1 모드에서, 상기 가상 객체는 3D 기하학적 형태를 형성하는 다각형 면들의 컬렉션을 포함할 수 있다. 상기 제1 세트의 제3자 콘텐츠는 이미지들의 켈력션을 포함할 수 있다. 상기 제1 모드에서 가상 객체를 렌더링하는 단계는 다각형 면들의 컬렉션의 각각의 다각형 면상에 상기 이미지들의 컬렉션으로부터의 각각의 이미지를 렌더링하는 단계를 포함할 수 있다. 상기 제1모드에서 가상 객체를 렌더링하는 단계는 상기 큐브의 각 면상에 상기 이미지들의 컬렉션으로부터의 각각의 이미지를 나타내는 상기 큐브를 렌더링하는 단계를 포함할 수 있다. 제2세트의 제3자 콘텐츠는 비디오를 포함할 수 있고, 제2 모드에서 가상 객체를 리렌더링하는 단계는 3D 환경에서 비디오를 재생하는 단계를 포함한다. 상기 제2 모드에서 가상 객체를 리렌더링하는 단계는 상기 큐브를 애니메이션화하여 제2 세트의 제3자 콘텐츠를 나타내는 단계를 포함할 수 있다. 상기 이미지들의 컬렉션은 각각 동일한 주제 또는 엔티티와 관련된 콘텐츠를 묘사할 수 있다. 상기 방법은 3D 환경 내에서 사용자의 현재 시청 위치를 이동시키기 위한 사용자 입력을 수신하는 단계 및 3D 환경에서 사용자의 현재 시청 위치와 가상 객체의 위치 사이의 관계를 검출하는 단계를 더 포함할 수 있다. 상기 제2 모드에서 가상 객체를 리렌더링하는 단계는 3D 환경에서 사용자의 현재 시청 위치와 가상 객체의 위치 사이의 관계가 하나 이상의 기준을 만족시킨다는 결정에 기초할 수 있다. 사용자의 현재 시청 위치와 가상 객체의 위치 사이의 관계는 사용자의 현재 시청 위치와 가상 객체의 위치 사이의 거리일 수 있으며, 상기 제2 모드에서 상기 가상 객체를 리렌더링하는 단계는 상기 3D 환경에서 상기 가상 객체의 위치와 상기 사용자의 현재 시청 위치 사이의 거리가 임계 거리 미만이라는 결정에 기초할 수 있다. 상기 방법은 3D 환경에서 사용자의 시선의 방향을 모니터링하는 단계 및 사용자의 시선이 가상 객체의 방향에 있음을 식별하는 것에 기초하여 제1 사용자 상호 작용을 검출하는 단계를 더 포함할 수 있다. 상기 제2 모드에서 가상 객체를 리렌더링하는 단계는 미리 결정된 시간 동안 가상 객체의 방향으로 사용자의 시선이 유지되었음을 식별하는 것에 기초할 수 있다. 상기 방법은, 핸드-기반 제어기로부터 입력을 수신하는 단계 그리고 사용자의 시선이 3D 환경에서 가상 객체의 방향에 있는 동안 상기 핸드-기반 제어기로부터 수신된 제1 입력에 기초하여 제1 사용자 상호 작용을 검출하는 단계를 더 포함할 수 있다. 상기 방법은 가상 객체와의 제1 사용자 상호 작용의 표시를 수신하는 것에 응답하여, 3D 환경 외부에서의 사용자 알림의 생성을 트리거링하는 단계를 더 포함할 수 있으며, 상기 사용자 알림은 상기 제1 세트의 제3자 콘텐츠와 연관된 주제 또는 엔티티와 관련된다. 제2 모드에서 가상 객체가 디스플레이하는 제2 세트의 제3자 콘텐츠의 유형은 제1 모드에서 가상 객체가 디스플레이하는 제1세트의 제3자 콘텐츠의 유형과 상이할 수 있다. 상기 제1 모드에서 가상 개체가 디스플레이하는 제1 세트의 제3자 콘텐츠의 유형은 이미지들일 수 있다. 상기 제2 모드에서 가상 객체가 디스플레이하는 제2 세트의 제2자 콘텐츠의 유형은 비디오들 또는 3D 모델들일 수 있다.
상기 시스템은 3D 환경에서 가상 객체와의 사용자 상호 작용 또는 다른 사용자 상호 작용을 식별하는 것에 응답하여 상기 컴퓨팅 시스템으로부터 분리된 서버로부터 상기 제2 세트의 콘텐츠를 검색할 수 있다.
여기에 개시된 요지의 일부 구현예들은 하나 이상의 프로세서에 의해 실행될 때 그 하나 이상의 프로세서로 하여금 여기에 개시된 방법들 중 어느 것을 수행하게 하는 명령어들이 저장된 하나 이상의 비-일시적 컴퓨터 판독 가능 매체를 포함한다.
여기에 설명된 요지의 일부 구현예들은, 특정 예들에서, 다음 장점들 중 하나 이상을 실현할 수 있다.
첫째, 컴퓨팅 시스템은 객체가 처음 렌더링될 때(예를 들어, 객체를 다른 디스플레이 상태로 전환시키는 트리거링 이벤트가 발생하기 전에) 그 객체 상에 디스플레이하기에 적합한 콘텐츠의 유형 및/또는 포맷을 제한함으로써 3D 환경에서 제3자 콘텐츠를 포함하는 가상 객체를 보다 효율적으로 렌더링할 수 있다. 예를 들어, 일부 구현예들에서, 상기 시스템은 사용자가 상기 디스플레이된 이미지에 관심을 나타내기 위해 객체와 상호 작용하기 전에 최대 크기 제한을 초과하지 않는 객체 상에 이미지들만 디스플레이할 수 있다. 크기가 너무 큰 이미지 또는 다른 유형들의 미디어 형식들(예를 들어, 오디오, 비디오)은 개체의 초기 디스플레이 모드에서 개체 상에 디스플레이되는 기본세트의 콘텐츠에서 금지될 수 있다. 이러한 제한은 객체 렌더링에 필요한 연산 요구를 줄임으로써 객체가 3D 환경에서보다 효과적으로 렌더링되도록 할 수 있다. 또한, 유형 및/또는 포맷 제한으로 인해 적격 제3자 콘텐츠의 파일 크기가 줄어들어 콘텐츠 배포 시스템의 원격 서버에서 제3자 콘텐츠를 빠르게 전달할 수 있다.
둘째, 트리거링 이벤트가 발생할 때까지 제3자 콘텐츠의 특정 포맷 또는 유형의 표시를 지연시킴으로써 3D 환경을 렌더링하는 클라이언트 시스템의 계산 요구를 줄일 수 있다. 예를 들어, 사용자는 3D 환경을 탐색하는 동안 아이템의 복잡한 3D 모델을 보고 싶어할 수 있지만, 3D 모델은 3D 환경에서 렌더링하는 데 계산상 많은 비용이 소요될 수 있다. 복잡한 3D 모델을 즉시 디스플레이할 때 컴퓨팅 자원들이 고갈되지 않도록 하기 위해, 상기 3D 모델은 사용자가 라이터 풋 프린트 모델(lighter footprint model)(예를 들어, 상대적으로 적은 다각형을 갖는 다른 객체 또는 큐브 상에 이미지를 디스플레이함)을 사용하여 사용자에게 3D 모델을 미리 보여주는 제1 모드에서 이미지들을 갖는 가상 객체와 처음 상호 작용한 후에만 디스플레이될 수 있다.
셋째, 사용되지 않는 제3자 콘텐츠의 전송은 트리거링 이벤트(예를 들어, 가상 객체와의 사용자 상호 작용 또는 가상 객체와의 예상된 사용자 상호 작용)가 발생하는 것으로 검출될 때까지 가상 객체의 제2 디스플레이 모드와 연관된 제3자 콘텐츠에 대한 요청들을 연기함으로써 회피되거나 감소될 수 있다. 예를 들어, 사용자가 객체와 상호 작용한 후에 비디오를 제시하도록 가상 객체가 구성된 경우, 상기 비디오는 콘텐츠 배포 시스템의 서버에서 클라이언트 시스템으로 즉시 전송되지 않을 수 있다. 그 대신, 일부 구현예들에서 상기 비디오는 3D 환경에서 사용자가 객체와 상호 작용한 후에만 전송될 수 있다.
넷째, 3D 환경에서의 사용자 경험에 대한 산만감(distractions)은 가상 객체에 디스플레이하기 위해 여러 부분들의 제3자 콘텐츠를 통합하고 3D 환경 외부의 사용자에게 외부 알림을 생성함으로써 감소될 수 있다. 예를 들어, 여기서 설명한 가상 개체를 사용하여 제3자 콘텐츠를 제시하는 기술들은 몰입형 VR 경험의 혼란(disruptions)을 줄일 수 있다.
도 1은 제3자 콘텐츠가 3D 환경에서 가상 객체들로 표시하기 위해 배포되는 예시적인 프레임의 블록도이다.
도 2a-2d는 3D 환경에서 예시적인 제3자 콘텐츠 적격(3PCE) 가상 객체를 도시한다.
도 3은 콘텐츠 배포 시스템에 의해 지정된 제3자 콘텐츠를 보여주는 3D 환경을 렌더링하도록 구성된 예시적인 클라이언트 컴퓨팅 시스템의 블록도를 도시한다.
도 4a 및 도 4b는 3D 환경에서 가상 객체를 렌더링하기 위한 예시적인 프로세스의 흐름도를 도시한다.
도 5는 클라이언트 VR 시스템과 콘텐츠 배포 시스템 사이의 예시적인 프로세스에서의 상호 작용을 보여주는 구획도를 도시한다.
도 6은 3PCE 가상 객체와의 사용자 상호 작용의 결과로서 생성된 외부 알림과 연관된 변환(conversions)에 기초하여 3D 환경에서 제3자 콘텐츠 선택을 평가하기 위한 예시적인 프로세스의 흐름도를 도시한다.
도 7은 본 명세서에 설명된 컴퓨터로 구현되는 방법들, 시스템들, 장치들 및 다른 기술들과 연관하여 설명된 동작들을 수행하는데 사용될 수 있는 컴퓨터 시스템의 개략도이다.
도 1은 제3자 콘텐츠가 가상 현실 환경과 같은 3D 환경에서 가상 객체로 표현하기 위해 배포되는 예시적인 프레임워크(100)의 블록도이다. 예시적인 프레임워크(100)는 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 또는 이들의 조합과 같은 네트워크(102)를 포함한다. 네트워크(102)는 3D 애플리케이션 서버들(104), 사용자 장치들(106), 제3자 콘텐츠 서버들(108) 및 제3자 콘텐츠 배포(distribution) 시스템(110)(또한 콘텐츠 배포 시스템으로도 지칭 됨)을 연결한다. 예시적인 프레임워크(100)는 많은 다른 3D 애플리케이션 서버들(104), 사용자 장치들(106) 및 제3자 콘텐츠 서버들(108)을 포함할 수 있다.
사용자 장치(106)는 네트워크(102)를 통해 자원들(예를 들어, 3D 애플리케이션)을 요청하고 수신할 수 있는 전자 장치이다. 예시적인 사용자 장치(106)는 퍼스널 컴퓨터, 이동 통신 디바이스들, 및 네트워크(102)를 통해 데이터를 송신 및 수신할 수 있는 다른 디바이스들을 포함한다. 사용자 장치(106)는 전형적으로 네트워크(102)를 통해 데이터의 송신 및 수신을 용이하게 하기 위해 웹 브라우저와 같은 사용자 애플리케이션을 포함하지만, 사용자 장치(106)에 의해 실행되는 네이티브 애플리케이션들은 또한 네트워크(102)를 통한 데이터 송수신을 용이하게 할 수 있다.
3D 자원(예를 들어, 3D 환경에 대한 3D 애플리케이션 또는 정의 파일)은 사용자 장치(106)상에 3D 환경을 렌더링하도록 사용되는 자원이다. 3D 자원들의 예들은 가상 현실 애플리케이션들, 비디오 게임들, 혼합 현실 애플리케이션들, 증강 현실 애플리케이션들 및 이러한 유형들의 애플리케이션들에서 디스플레이될 수 있는 3D 환경들에 대한 정의를 포함한다. 3D 자원은 하나 이상의 3D 환경들 및 3D 환경들 내의 가상 객체들을 정의하는 데이터를 포함할 수 있다. 3D 자원들은 3D 애플리케이션 서버들(104)에 의해 사용자 장치들(106)에 제공될 수 있다. 예를 들어, 3D 애플리케이션 서버들(104)은 발행자 웹사이트들을 호스팅하는 서버들을 포함할 수 있다. 이 예에서, 사용자 장치(106)는 소정의 3D 자원에 대한 요청을 개시할 수 있고, 소정의 3D 자원을 호스팅하는 3D 애플리케이션 서버(104)는 3D 자원을 사용자 장치(106)에 전송함으로써 상기 요청에 응답할 수 있다. 일부 구현예들에서, 3D 애플리케이션 서버는 하나 이상의 정의 파일들을 사용자 장치(106)에 제공할 수 있다. 상기 정의 파일은 3D 환경을 렌더링하기 위해 사용자 장치(106)상에 설치된 3D 애플리케이션에 의해 처리될 수 있는 3D 환경을 나타내는 데이터를 포함한다.
일부 상황들에서, 소정의 3D 자원은 제3자 콘텐츠 배포 시스템(110)을 참조하는 제3자 태그 또는 제3자 스크립트를 포함할 수 있다. 이러한 상황들에서, 상기 제3자 태그 또는 제3자 스크립트는 소정의 3D 자원이 사용자 장치(106)에 의해 처리될 때 사용자 장치(106)에 의해 실행된다. 제3자 태그 또는 제3자 스크립트의 실행은 네트워크(102)를 통해 제3자 콘텐츠 배포 시스템(110)으로 전송되는 제3자 콘텐츠(112)에 대한 요청을 사용자 장치(106)가 생성하도록 구성한다. 예를 들어, 제3자 태그 또는 제3자 스크립트는 사용자 장치(106)가 헤더 및 페이로드 데이터를 포함하는 패킷화된 데이터 요청을 생성하게 할 수 있다. 상기 요청(112)은 제3자 콘텐츠가 요청되는 서버의 이름(또는 네트워크 위치), 요청 장치(예를 들어, 사용자 장치(106))의 이름(또는 네트워크 위치), 및/또는 상기 요청에 응답하여 제공된 제3자 콘텐츠를 선택하기 위해 제3자 콘텐츠 배포 시스템(110)이 사용할 수 있는 정보를 포함할 수 있다. 상기 요청(112)은 사용자 장치(106)에 의해 네트워크(102)(예를 들어, 통신 네트워크)를 통해 제3자 콘텐츠 배포 시스템(110)의 서버로 전송된다.
상기 요청(112)은 3D 자원을 특정하는 데이터, 제3자 콘텐츠가 제시될 가상 객체의 특성들을 특정하는 데이터 및 가상 객체가 발생하는 3D 환경의 특성들을 특정하는 데이터를 포함할 수 있다. 예를 들어, 상기 제3자 콘텐츠가 제시될 가상 객체의 형태 또는 기하학적 구조, 가상 객체의 크기(예를 들어, 길이, 폭, 높이 및/또는 체적), 3D 환경에서의 가상 객체의 위치, 제3자 콘텐츠를 수신할 수 있는 가상 객체 상의 다수의 적격 표면들(eligible surfaces), 3D 환경과 연관된 설명 키워드들 및/또는 가상 객체 상에 표현하기에 적격한 미디어 유형들이 상기 콘텐츠 배포 시스템(110)에 제공될 수 있다.
요청들(112)은 또한 사용자가 제공한 정보와 같은 다른 정보와 관련된 데이터, 상기 요청이 제출된 주(state) 또는 지역을 나타내는 지리 정보 또는 제3자 콘텐츠가 디스플레이되는 환경에 대한 컨텍스트를 제공하는 기타 정보를 포함할 수 있다. 사용자 장치(106)의 모델을 식별하는 정보, 장치(106)의 선택 능력(예를 들어, 핸드-기반 제어가 가상 객체를 선택할 수 있는지, 사용자가 3D 환경에서 렌더링된 아이템을 선택하기 위해 탭할 수 있는 헤드셋 자체에서 제어가 이용 가능한지 여부), 사용자 장치(106)의 구성, 전자 디스플레이의 유형(예를 들어, VR 장치(106)에 대한 헤드 장착형 디스플레이 또는 터치스크린)과 같은 사용자 장치(106)의 특성들을 특정하는 데이터가 요청(112)에 제공될 수 있다. 요청들(112)은 예를 들어 패킷화된 네트워크를 통해 전송될 수 있고, 요청들(112) 자체는 헤더 및 페이로드 데이터를 갖는 패킷화된 데이터로서 포맷될 수 있다. 상기 헤더는 상기 패킷의 목적지를 특정할 수 있고, 상기 페이로드 데이터는 상기 설명된 임의의 정보를 포함할 수 있다.
제3자 콘텐츠 배포 시스템(110)은 요청(112)을 수신하거나 및/또는 요청(112)에 포함된 정보를 사용하는 것에 응답하여 3D 환경에서 가상 객체 상에 또는 그 부근에 제시될 제3자 콘텐츠를 선택한다.
일부 구현예들에서, 제3자 콘텐츠 배포 시스템(110)은, 예를 들어, 상호 접속되고 요청들(112)에 응답하여 제3자 콘텐츠를 식별 및 배포하는 서버 및 다수의 컴퓨팅 장치들의 세트를 포함하는 배포 컴퓨팅 시스템에서 구현된다. 다수의 컴퓨팅 장치(114)의 세트는 예를 들어 수백만의 이용 가능한 제3자 콘텐츠(3PC1-x)의 코퍼스 중에서 3PCE 가상 객체로 제시될 수 있는 적격한 제3자 콘텐츠 세트를 식별하기 위해 함께 동작한다. 수백만 개의 사용 가능한 제3자 콘텐츠 아이템들은 예를 들어 제3자 코퍼스 데이터베이스(116)에서 인덱싱될 수 있다. 각 제3자 콘텐츠 인덱스 엔트리는 해당 제3자 콘텐츠를 참조하거나 및/또는 해당 제3자 콘텐츠의 배포를 조건으로 하는 배포 파라미터들(DP1-DPx)(예를 들어, 선택 기준)을 포함할 수 있다.
일부 구현예들에서, 특정 제3자 콘텐츠에 대한 배포 파라미터들(예를 들어, 선택 기준)은 제3자 콘텐츠가 표시하기에 적합(eligible)하도록 (예를 들어, 3D 자원들 또는 요청(112)에 특정된 용어들에 의해) 매칭되어야 하는 배포 키워드들을 포함할 수 있다. 또한, 배포 파라미터들은 요청(112)이 특정 지리적 영역(예를 들어, 국가 또는 주)을 특정하는 정보 및/또는 요청(112)이 제3자 콘텐츠가 표시하기에 적합하도록 특정 유형의 사용자 장치(106)에서 시작되었음을 특정하는 정보를 포함할 것을 요구할 수 있다. 상기 배포 파라미터들은 특정 제3자 콘텐츠를 배포하기 위한 입찰 및/또는 예산을 특정할 수도 있다.
적합한 제3자 콘텐츠의 식별은 다수의 컴퓨팅 장치들(114)의 세트 내의 컴퓨팅 장치들 사이에 할당되는 다수의 태스크들(Tasks)(117a-117c)로 분할될 수 있다. 예를 들어, 세트(114) 내의 상이한 컴퓨팅 장치들은 제3자 코퍼스 데이터베이스(116)의 상이한 부분을 각각 분석하여 상기 요청(112)에 포함된 정보와 매칭하는 배포 파라미터들을 갖는 다양한 제3자 콘텐츠를 식별할 수 있다. 일부 구현예들에서, 세트(114) 내의 각각의 소정의 컴퓨팅 장치는 상이한 데이터 차원(또는 차원들의 세트)을 분석할 수 있고, 그 분석 결과들(Res 1-Res 3)(118a-118c)을 제3자 콘텐츠 배포 시스템(110)으로 다시 전달할 수 있다. 예를 들어, 상기 세트 내의 컴퓨팅 장치들 각각에 의해 제공된 결과들(118a-118c)은 소정의 배포 파라미터들 또는 속성들을 갖는 제3자 콘텐츠의 서브세트 및/또는 요청에 응답하여 배포하기에 적합한 제3자 콘텐츠의 서브세트를 식별할 수 있다.
제3자 콘텐츠 배포 시스템(110)은 다수의 컴퓨팅 장치들(114 및 114)의 세트로부터 수신된 결과들(118a 내지 118c)을 집계하고, 그 집계된 결과들과 연관된 정보를 사용하여 요청(112)에 응답하여 제공될 제3자 콘텐츠의 하나 이상의 인스턴스들을 선택한다. 예를 들어, 제3자 콘텐츠 배포 시스템(110)은 이하에서 더 상세히 설명되는 바와 같이, 하나 이상의 콘텐츠 평가 프로세스의 결과에 기초하여 당첨(winning) 제3자 콘텐츠의 세트를 선택할 수 있다. 그 다음, 제3자 콘텐츠 배포 시스템(110)은 사용자 장치(106)가 상기 당첨 제3자 콘텐츠의 세트를 3D 환경, 예를 들어 3D 환경의 적격 한 가상 객체 상에 표시하기 위해 통합할 수 있게 하는 응답 데이터(120)(예를 들어, 응답을 나타내는 디지털 데이터)를 발생하고 네트워크(102)를 통해 전송할 수 있다.
일부 구현예들에서, 사용자 장치(106)는 사용자 장치(106)가 하나 이상의 제3자 콘텐츠 서버들로부터 당첨된 제3자 콘텐츠의 세트를 획득하도록 구성 가능하게 하는 응답 데이터(120)에 포함된 명령어들을 실행한다. 예를 들어, 응답 데이터(120) 내의 명령어들은 네트워크 위치(예를 들어, URL(Uniform Resource Locator)) 및 사용자 장치(106)가 제3자 콘텐츠 서버(108)에 제3자 요청(3PR)(121)을 전송하여 제3자 콘텐츠 서버(108)로부터 소정의 당첨된 제3자 콘텐츠를 획득하게 하는 스크립트를 포함할 수 있다. 상기 요청에 응답하여, 제3자 콘텐츠 서버(108)는 소정의 당첨된 제3자 콘텐츠가 3D 환경으로 통합되고 사용자 장치(106)에 제시되게 하는 제3자 데이터(TP 데이터)(122)를 사용자 장치(106)에 전송할 것이다.
도 2a 내지도 2d는 3D 환경에서 제3자 콘텐츠 적격(3PCE) 가상 객체(202)의 예시를 도시한다. 일반적으로, 3PCE 객체는 3D 환경에서 제3자 콘텐츠를 제시하도록 구성된 가상 객체이다. 상기 3PCE 객체에 제시된 콘텐츠는 제3자 콘텐츠가 제시된 3D 환경을 개발한 하나 이상의 엔티티와는 다른 독립적인 하나 이상의 제3자 엔티티(예를 들어, 개인들, 기업들, 조직들)에 의해 생성되어 배포될 수 있다. 예를 들어, 가상 현실 게임은 게임 자체 및 3D 환경과 독립적으로 생성된 제3자 콘텐츠(예를 들어, 광고들)를 제시하도록 3PCE 가상 객체를 포함할 수 있다.
3PCE 가상 객체는 3D 환경에서 렌더링될 때 다수의 디스플레이 모드들을 가질 수 있다. 각 디스플레이 모드에 대해, 가상 객체는 다른 세트의 제3자 콘텐츠를 제시하거나, 가상 객체의 형태를 정의하는 다른 3D 모델을 채택할 수 있으며, 3D 환경 내외부에서 다른 이벤트들을 트리거할 수 있거나(예를 들어, 외부 알림들) 또는 이들의 조합일 수 있다. 일부 구현예들에서, 상이한 디스플레이 모드는 가상 객체(또는 가상 객체와 관련하여) 상에 디스플레이하기 위한 제3자 콘텐츠의 다른 유형들 또는 포맷들을 제공한다. 예를 들어, 제1 디스플레이 모드에서, 제3자 이미지들의 세트는 가상 객체의 형태를 정의하는 3D 모델의 표면들 상에 디스플레이될 수 있다. 대조적으로, 제2 디스플레이 모드는 가상 객체로 제시될 텍스트, 비디오 또는 다른 미디어 포맷의 콘텐츠를 제공할 수 있다. 사용자는 예를 들어, 객체를 선택하거나, 객체를 바라보거나, 객체에 접근하거나, 또는 이들의 조합에 의해 3PCE 가상 객체와 상호 작용할 수 있다. 일부 구현예들에서, 3PCE 객체와의 검출된 사용자 상호 작용은 하나의 활성 디스플레이 모드에서 다른 활성 디스플레이 모드로 전환함으로써 디스플레이 모드들을 변경하도록 상기 객체를 트리거링한다. 따라서, 사용자가 제1 디스플레이 모드에서 가상 객체 상에 제시된 제3자 콘텐츠에 관심을 갖는다면, 사용자는 초기에 제시된 제3자 콘텐츠의 동일한 주제와 관련된 추가 또는 다른 콘텐츠를 보기 위해 상기 객체를 선택할 수 있다. 일부 구현예들에서, 상기 시스템은 사용자가 가상 객체와 상호 작용함으로써 그 콘텐츠에 대한 관심을 나타낼 때까지 부가적인 콘텐츠를 획득하거나 제시하는 것을 연기함으로써, 3D 환경에서 렌더링되지 않을 콘텐츠 배포 시스템으로부터의 제3자 콘텐츠의 전송을 감소시킨다.
도 2a를 참조하면, 3PCE 가상 객체(202)는 제1 디스플레이 모드로 도시된다. 여기서, 객체(202)는 큐브의 형태의 3차원 모델에 기초한 3차원 기하학적 구조를 갖는다. 일부 구현예들에서, 가상 객체(202)의 형태는 제3자 콘텐츠 배포 표준을 준수하여 가상 객체(202)가 배포 표준에 따라 포맷된 제3자 콘텐츠 세트를 적절히 디스플레이할 수 있도록 보장한다. 예를 들어, 제3자 미디어 콘텐츠의 해상도 및 파일 유형들은 배포 표준에 의해 특정될 수 있고, 가상 객체는 그 표면들 상에 제3자 미디어 콘텐츠를 적절하게 디스플레이하도록 형성될 수 있다. 도 2a에 도시된 바와 같이, 제1 디스플레이 모드에서, 가상 객체(202)는 상기 큐브의 각면에 각각의 이미지(예를 들어, 202a-c)를 나타낸다. 제1 디스플레이 모드에서 상기 큐브 상에 제시된 이미지들의 컬렉션은 3D 환경이 처음 렌더링될 때 객체(202) 상에 초기에 디스플레이된 제3자 콘텐츠의 세트인 제3자 콘텐츠의 제1 세트를 구성한다. 일부 구현예들에서, 가상 객체(202)는 3D 환경에서 천천히 회전하여 사용자가 상기 객체의 모든 면과 그 객체의 각면에 제시된 콘텐츠를 볼 수 있게 한다.
사용자가 3D 환경에서 가상 객체(202)와 상호 작용할 때, 가상 객체(202)는 제1 디스플레이 모드에서 객체(202)와 연관된 다른 디스플레이 모드로 전환할 수 있다. 도 2b 내지도 2d는 가상 객체(202)가 객체(202)와의 검출된 사용자 상호 작용에 응답하여 전환할 수 있는 다른 디스플레이 모드들의 예시적인 표현들을 도시한다. 도 2b-2d의 디스플레이 모드들 각각은, 객체(202)가 어떻게 디스플레이 모드에서 제3자 콘텐츠를 디스플레이 하는지를 나타내는 각각의 전환 상태 모델 및 디스플레이 모드와 연관된 임의의 보충 동작들에 의해 정의될 수 있다(예를 틀어, 3D 환경 외부의 알림 생성). 예를 들어, 도 2b에 나타낸 바와 같이, 가상 객체(202)가 제2 디스플레이 모드로 전환할 때, 큐브 모델은 애니메이션화되어 그 큐브를 열고 제2 3D 모델(204)을 나타낸다. 제2 3D 모델(204)은 큐브의 측면들 상에 디스플레이된 제3자 콘텐츠의 제1 세트와 국소적으로 관련될 수 있다. 예를 들어, 상기 큐브의 측면에 있는 이미지들이 스포츠카를 보여준 경우, 그 큐브 내부에 표시되는 제2 3D 모델(204)은 동일한 스포츠카의 3D 모델이 될 수 있다.
또 다른 예로서, 도 2c는 가상 객체(202)의 제3 디스플레이 모드를 도시하는데, 여기서 비디오 플레이어(206)는 객체(202)와의 사용자 상호 작용에 응답하여 큐브가 열릴 때 그 큐브 내부에 표시된다. 비디오 플레이어(206)는 제2의 제3자 콘텐츠를 비디오의 형태로 제시할 수 있다. 상기 비디오는 비디오의 콘텐츠와 제1 디스플레이 모드에서 큐브의 면들 상에 디스플레이된 제1 콘텐츠 사이의 국소(topical) 관계에 기초하여 선택될 수 있다.
다른 예로서, 도 2d는 가상 객체(202)의 제4 디스플레이 모드를 도시한다. 제4 모드에서, 3D 환경이 렌더링되는 클라이언트 시스템, 콘텐츠 배포 시스템 또는 둘 모두는 3D 환경 외부의 제3자 콘텐츠와 관련된 알림들을 생성한다. 사용자가 제1 디스플레이 모드에서 객체(202)와 상호 작용할 때, 알림 메시지가 사용자의 하나 이상의 계정에 자동으로 전송될 수 있다. 상기 알림 메시지는 예를 들어 제3자 콘텐츠의 제1 세트에서 표시된 제품 또는 서비스에 관한 추가 정보 또는 제3자 콘텐츠의 제1 세트를 제공한 제3자 콘텐츠 제공자에 대한 추가 정보를 포함할 수 있다. 상기 알림 메시지는 제3자 콘텐츠의 제1 세트 또는 제3자 콘텐츠 제공자와 연관된 외부 자원(예를 들어, 웹사이트 또는 애플리케이션)에 대한 링크를 포함할 수 있다. 개발자들, 유통 업체들, 콘텐츠 제공자들 및 최종 사용자들은 3D 환경에서 제시되는 네이티브 콘텐츠로부터의 혼란을 최소화하기 위해 3D 환경에서 직접 제시되는 제3자 콘텐츠에 대한 외부 알림들을 선호하는 경우가 있다. 일부 구현예들에서, 팝업 알림 메시지(208)는 또한 가상 객체(202) 상의 또는 가상 객체 부근의 3D 환경 내에 디스플레이될 수 있다. 상기 팝업 알림 메시지(208)는 외부 알림에서 전송된 동일한 메시지를 포함할 수 있거나, 상기 외부 알림이 전송되었다는 확인을 포함할 수 있거나, 또는 둘 모두를 포함할 수 있다.
도 3은 콘텐츠 배포 시스템(350)에 의해 특정된 제3자 콘텐츠를 보여주는 3D 환경을 렌더링하도록 구성된 예시적인 클라이언트 컴퓨팅 시스템(300)의 블록도를 도시한다. 일부 구현예들에서, 클라이언트 컴퓨팅 시스템(300)은 도 1의 사용자 장치(106)와 같은 사용자 장치이다. 콘텐츠 배포 시스템(350)은 도 1의 제3자 콘텐츠 분배 시스템(110), 도 1의 제3자 콘텐츠 서버들(108)로서 구성될 수 있거나, 시스템들(108 및 110)의 양태들을 포함할 수 있다. 콘텐츠 배포 시스템(350)은 일반적으로 하나 이상의 위치에 있는 하나 이상의 컴퓨터의 시스템으로 구현될 수 있다. 클라이언트 컴퓨팅 시스템(300)은 네트워크(예를 들어, 인터넷, 로컬 영역 네트워크, 무선 광대역 네트워크)를 통해 콘텐츠 배포 시스템(350)과 통신한다. 도 3에 도시되지는 않았지만, 클라이언트 컴퓨팅 시스템(300)은 다양한 목적으로 콘텐츠 배포 시스템(350)과 더불어 다른 시스템들과 통신할 수 있다. 예를 들어, 클라이언트 컴퓨팅 시스템(300)은 시스템(300)이 3D 환경을 렌더링할 수 있게 하는 가상 현실, 증강 현실 및/또는 혼합 현실 애플리케이션들을 획득하기 위해 온라인 애플리케이션 저장소용 서버들 또는 개발자 서버들과 통신할 수 있다. 마찬가지로, 클라이언트 컴퓨팅 시스템(300)은 3D 환경, 예를 들어, 몰입형 가상 현실 게임에 대한 정의 파일들을 획득하기 위해 온라인 애플리케이션 저장소를 위한 서버들 또는 개발자 서버들과 통신할 수 있다.
클라이언트 컴퓨팅 시스템(300)은 통합된 제3자 콘텐츠로 3D 환경을 렌더링하도록 구성되고 가능하게 되는 다양한 컴퓨팅 시스템들 중 임의의 것일 수 있다. 일부 예들에서, 상기 클라이언트 컴퓨팅 시스템은 사용자가 헤드 장착형 디스플레이를 통해 보는 가상 현실 유형의 3D 환경을 제시하도록 구성된다. 다른 예들에서, 클라이언트 컴퓨팅 시스템(300)은 종래의 2차원 스크린상에 증강 현실 환경, 복합 현실 환경 또는 게임 환경과 같은 다른 유형의 3D 환경을 제시하도록 구성된다. 시스템(300)은 하나의 장치에 통합될 수 있거나 하나 이상의 위치에 다수의 개별적으로 연결된 컴포넌트들을 포함할 수 있다. 일부 구현예들에서, 클라이언트 컴퓨팅 시스템(300)은 디스플레이(304), 메모리 서브시스템(306), 3D 환경 렌더링 엔진(308), 입력 핸들러(310), 가상 객체 관리자(312) 및 네트워크 인터페이스(314)를 포함한다.
디스플레이(304)는 3D 환경을 사용자에게 시각적으로 디스플레이하도록 구성된 전자 디스플레이이다. 디스플레이(304)는 상이한 유형들의 시스템들에 대해 다양한 형태를 취할 수 있다. 예를 들어, 가상 현실 시스템에서, 디스플레이(304)는 디스플레이(304)의 시청 스크린이 사용자의 눈 앞에 몇 인치의 위치에 고정되는 헤드 장착형 디스플레이일 수 있다. VR 시스템에서, 디스플레이(304)는 3D 환경의 입체적 표현을 제공할 수 있다. 사용자가 렌즈 세트를 통해 3D 환경의 입체 표현을 볼 때, 3D 환경은 마치 3D 환경에 몰입된 듯한 느낌을 주기 위해 깊이(depth)가 있는 것처럼 보일 수 있다. 일부 구현 예에서, 상기 스크린은 헤드 장착형 디스플레이의 필수 컴포넌트이다. 다른 구현예들에서, 스마트폰 또는 다른 모바일 유닛은 헤드 유닛에 제거 가능하게 고정되어, 헤드 장착형 디스플레이의 스크린으로서 모바일 유닛의 스크린을 사용하는 헤드 장착형 디스플레이를 형성한다. 디스플레이(304)는 예를 들어, 액정 디스플레이(LCD), 유기 발광 다이오드 디스플레이(OLED) 또는 액티브 매트릭스 OLED(AMOLED) 디스플레이일 수 있다.
메모리 서브시스템(306)은 3D 환경을 특징짓는 데이터를 저장하는 하나 이상의 저장 장치를 포함한다. 3D 환경은 3차원으로 렌더링할 수 있는 가상 환경이다. 예시적인 3D 환경들은 3D 게임 및 비디오 환경들(예를 들어, 3D 콘서트 또는 운동 경기와 같은 실시간 또는 기록된 이벤트 스트림)을 포함한다. 일부 경우에, 클라이언트 컴퓨팅 시스템(302)의 사용자는 환경(예를 들어, 가상 현실 시스템에서) 주변을 보기 위해 자신의 머리를 움직이거나, 환경 주위를 돌아다니거나, 환경 내의 객체를 조작함으로써, 또는 이들의 조합을 통해 가상 3D 환경을 탐색할 수 있다. 클라이언트 컴퓨팅 시스템(302)의 다른 컴포넌트들은 메모리 서브시스템(306)에 액세스하여 저장 장치들로부터 데이터를 판독, 기록 또는 삭제할 수 있다.
일부 구현예들에서, 3D 환경을 특징짓는 메모리 서브시스템(306)에 의해 저장된 데이터는 하나 이상의 제3자 콘텐츠 적격(3PCE) 가상 객체들에 대한 선언(declarations)을 포함한다. 3PCE 가상 객체는 다양한 적절한 프로그래밍 기술들 중 하나를 사용하여 3D 환경에 대해 선언될 수 있다. 일부 구현예들에서, 개발자들은 실행될 때 지정된 임의의 파라미터들에 따라 3D 환경에서 3PCE 가상 객체를 인스턴스화하는 3D 환경에 대한 정의 파일(들)에 태그, 스크립트 또는 실행 가능 코드를 삽입할 수 있다. 예를 들어, 상기 삽입된 태그, 스크립트 또는 실행 가능 코드는, 클라이언트 컴퓨팅 시스템(302)에 의해 처리될 때, 클라이언트 컴퓨팅 시스템(302)이 특정 3D 모델(예를 들어, 큐브 또는 구)에 액세스하고, 콘텐츠 배포 시스템(350)으로부터 제3자 콘텐츠를 요청하고, 콘텐츠 배포 시스템(350)으로부터 리턴된 제3자 콘텐츠로 3D 모델(또는 콘텐츠 배포 시스템(350)에 의해 식별된 하나 이상의 다른 제3자 콘텐츠 서버로부터 리턴됨)을 렌더링하게 할 수 있다. 개발자들은 수동으로 태그, 스크립트 또는 실행 가능 코드를 3D 환경의 상기 정의 파일(예를 들어, 소스 코드 또는 실행 가능 코드)에 삽입하거나 또는 상기 코드는 3D 환경(위지윅(WYSIWYG; What You See Is What You Get) 개발 환경)을 생성하기 위해 개발자들이 사용하는 프로그래밍 또는 디자인 환경에 의해 자동으로 삽입될 수 있다.
일부 구현예들에서, 3PCE 가상 객체를 선언하는 태그, 스크립트 또는 실행 가능 코드는 객체의 하나 이상의 속성을 특정하는 하나 이상의 파라미터들을 포함할 수 있다. 3PCE 가상 객체의 속성들은 객체가 3D 환경에서 어떻게 디스플레이되는지, 객체가 3D 환경의 어디에 위치되는지, 객체의 적격한 유형들 또는 형상들, 객체에 디스플레이하기 위해 선택될 수 있는 제3자 콘텐츠에 대한 제약조건, 객체와 연관된 상호 작용 모델, 객체와 연관된 전환 상태 모델 또는 이들 중 둘 이상의 조합을 결정할 수 있다. 일부 구현예들에서, 3PCE 가상 객체들은 많은 개발자가 특정할 수 있는 속성들로 고도로 맞춤화(customization)될 수 있다. 다른 구현예들에서, 3PCE 가상 객체들은 비교적 적은 수의 개발자 특정 속성들로 선언될 수 있으며, 선택적으로 개발자들에게 더 적은 수의 맞춤화 옵션들이 제공될 수 있다.
예를 들어, 개발자는 객체가 가상 환경에 배치될 위치를 특정하고, 경우에 따라 객체의 크기(예를 들어, 객체의 길이, 폭, 높이 및/또는 체적)를 더 특정하는 태그, 스크립트 또는 실행 가능 코드로 3PCE 가상 객체를 선언(declare)할 수 있다. 객체의 선언에 특정되지 않은 가상 객체의 특성들은 디폴트 설정들 또는 객체와 연관된 컨텍스트에 기초하여 클라이언트 컴퓨팅 시스템(302), 콘텐츠 배포 시스템(350) 또는 둘 모두에 의해 자동으로 선택될 수 있다. 3PCE 가상 객체와 연관된 컨텍스트는 예를 들어, 객체가 배치되는 3D 환경의 특성, 클라이언트 컴퓨팅 시스템(302)의 특성, 3D 환경을 보는 사용자의 계정 또는 사용자의 특성, 3D 환경의 개발자의 선호도 또는 특성, 이러한 컨텍스트들 중 둘 이상의 조합을 포함할 수 있다.
3D 환경 렌더링 엔진(308)은 선택적으로 하나 이상의 추가적인 주변 출력 장치들(예를 들어, 스피커들, 핸드-컨트롤러들, 촉각 피드백 장치들)을 사용하여, 메모리 서브시스템(306)으로부터 3D 환경의 정의를 판독하고 그리고 디스플레이(304)를 통해 사용자에게 제시하기 위해 3D 환경을 렌더링하도록 구성된 클라이언트 컴퓨팅 시스템(302)의 서브시스템이다. 상기 렌더링 엔진(308)은 본 명세서에서 설명된 동작들을 수행하도록 가능하게 구성되는 하나 이상의 데이터 처리 장치들(예를 들어, 프로세서들)을 포함할 수 있다. 상기 데이터 처리 장치는 렌더링 엔진(308)에 전용될 수 있거나 적어도 부분적으로 클라이언트 컴퓨팅 시스템(302)의 다른 컴포넌트들과 공유될 수 있다. 일부 구현예들에서, 렌더링 엔진(308)은 3D 환경 정의 파일들을 처리하고 환경의 3D 표현을 렌더링하는 하나 이상의 그래픽 처리 유닛(GPU)을 포함한다. 예를 들어, 가상 현실 시스템용 렌더링 엔진(308)은 특수하게 구성된 렌즈를 통해 사용자가 볼 때 사용자에게 몰입형 3D 경험을 제공하는 3D 환경의 입체 디스플레이를 생성하기 위해 3D 환경에 대한 하나 이상의 정의 파일을 처리할 수 있다.
입력 핸들러(310)는 3D 컴퓨팅 환경이 사용자에게 렌더링되는 동안 수신된 사용자 입력들에 대한 하나 이상의 입력 채널들을 모니터링하도록 구성된 클라이언트 컴퓨팅 시스템(302)의 서브시스템이다. 입력 핸들러(310)는 본 명세서에서 설명된 동작들을 수행하도록 가능하게 구성된 하나 이상의 데이터 처리 장치들(예를 들어, 프로세서들)을 포함할 수 있다. 입력 핸들러(310)는 클라이언트 컴퓨팅 시스템(302)의 특정 구성에 따라 다양한 유형들의 사용자 입력들을 검출할 수 있다. 예를 들어, 기본 가상 현실(VR) 시스템은 헤드 장착형 디스플레이 유닛의 하나 이상의 방향 및 움직임 센서들로부터의 신호들에 기초하여 사용자 입력들을 검출할 수 있다. 방향 및 움직임 센서들은 하나 이상의 가속도계들, 나침반들, 자이로스코프들, 자력계들 또는 이러한 센서들의 조합을 포함할 수 있다. 상기 방향 및 움직임 센서들은 3D VR 환경 내에서 사용자의 시선의 방향을 실시간으로 나타내는 신호들을 생성할 수 있으며, 이러한 신호들은 실시간으로 사용자의 시선의 방향을 추적하도록 입력 핸들러(310)에 의해 해석될 수 있다. 또한, 클라이언트 컴퓨팅 시스템(302)은 시스템(302)에 입력을 제공하기 위해 사용자에 의해 작동될 수 있는, 예를 들어, 핸드-기반 컨트롤러 또는 헤드 장착형 디스플레이상에 있는 하나 이상의 버튼들 또는 스위치들을 포함할 수 있다. 보다 진보된 VR 시스템은 헤드 장착형 디스플레이의 기점 움직임을 추적하는 헤드 장착형 디스플레이 외부에 위치한 움직임 추적 센서들과 같은 추가 사용자 입력 채널들을 제공할 수 있다. 입력 핸들러(310)는 예를 들어 회전 및 전환을 포함하는 6 자유도로 사용자의 움직임을 결정하기 위해 외부 움직임 센서들로부터의 신호들을 해석할 수 있다.
일부 구현예들에서, 입력 핸들러(310)는 3D 환경 내에서 미리정의된 사용자 액션들을 검출하기 위한 로직을 포함한다. 상기 미리정의된 사용자 액션들은 3D 환경에서 3PCE 가상 객체와의 상호작용들 또는 사용자가 3PCE 가상 객체와 상호 작용할 가능성을 나타내는 액션들 포함할 수 있다. 예를 들어, 렌더링 엔진(308)은 사용자의 시선의 방향을 식별하는 3D 환경의 디스플레이에 레티클(reticle)을 그릴 수 있다. 상기 레티클은 3D 환경의 디스플레이를 혼란시키거나 VR 시스템의 몰입감을 분산시키지 않도록 작을 수 있지만, 상기 레티클은 사용자의 시선의 방향에 기초하여 3D 환경에서 목표된 객체를 시각적으로 식별하기 위해 사용자에게 유용한 피드백을 제공할 수 있다. 입력 핸들러(310)는 몇몇 실시예들에서 3PCE 가상 객체와의 사용자 상호 작용을 검출하기 위해 상기 레티클을 사용할 수 있다. 예를 들어, 입력 핸들러(310)가 미리 결정된 길이의 시간(예를 들어, 미리 특정된 임계 시간 간격) 동안 상기 레티클이 3D 환경의 가상 객체 위에 위치되었음을 검출하면, 그 다음 입력 핸들러(310)는 가상 객체와 사용자 상호 작용의 발생을 등록하고 그리고 객체와의 사용자 상호 작용의 알림을 가상 객체 관리자(312)에 푸시(push)할 수 있다. 일부 구현예들에서, 입력 핸들러(310)는 입력 버튼 또는 스위치가 활성화될 때 상기 레티클이 가상 객체 위에 위치됨을 식별하는 것에 기초하여 상기 가상 객체와의 사용자 상호 작용을 검출한다. 일부 구현예들에서, 입력 핸들러(310)는 사용자의 시선이 객체를 향함을 식별하는 것에 기초하여, 예를 들어, 3D 환경에서의 사용자의 현재 시청 위치가 3D 환경에서 객체의 위치의 임계 거리 내에 있을 때 상기 레티클이 가상 객체 위에 위치됨을 식별함으로써 가상 객체와의 사용자 상호 작용을 검출한다. 또한, 랜더링 엔진(308)은 3PCE 가상 객체, 객체 근처 또는 3D 환경에서 사용자가 액션을 트리거하기 위해 객체를 주시해야 하는 시간을 나타내는, 예를 들어, 객체가 디스플레이 모드들로 전환할 때까지의 시간을 나타내는 진행률 바(progress bar)를 3PCE 가상 객체, 그 객체 근처 또는 3D 환경에서 그릴 수 있다.
일부 구현예들에서, 시스템(302)은 사용자가 3PCE 가상 객체와 상호 작용할 가능성이 있음을 나타내는 사용자 입력의 패턴들을 모니터링할 수 있다. 입력 핸들러(310)는 사용자가 3PCE 가상 객체와 상호 작용할 가능성이 있음을 나타내는 미리정의된 사용자 액션들(예를 들어, 사용자 입력의 패턴들)을 나타내는 규칙들 또는 다른 로직을 저장할 수 있다. 입력 핸들러(310)가 미리정의된 사용자 입력의 패턴들 중 하나와 매칭하는 사용 입력의 패턴을 검출하면, 입력 핸들러(310)는 플래그를 제공(throw)하고, 사용자가 객체와 상호 작용할 가능성이 있음을 나타내는 알림을 가상 객체 관리자(312)에 푸시할 수 있다. 예를 들어, 가상 객체 관리자(314)와 관련하여 이하에서 더 설명된 바와 같이, 상기 시스템이 가상 객체와의 사용자 상호 작용 가능성을 나타내는 플래그를 제공하면, 상기 플래그는 가상 객체의 제2 모드에서 객체로 디스플레이하도록 제2의 제3자 콘텐츠의 검색을 트리거할 수 있다. 이와 같이, 제2 콘텐츠는 사용자가 객체와 실제로 상호 작용하기 전에 검색될 수 있지만, 상기 제2 콘텐츠는 사용자의 액션이 실제로 객체와 상호 작용하여 제2 콘텐츠를 표시할 의도를 나타낼 때까지 연기된다. 입력 핸들러(310)가 사용자가 가상 객체와 상호 작용했거나 가상 객체와 상호 작용할 가능성이 있음을 검출할 때까지 제2 콘텐츠의 전송을 연기함으로써 그 제2 콘텐츠에 대한 네트워크 전송 및 로컬 저장 요구량은 감소될 수 있다.
가상 객체 매니저(312)는 3D 환경에 나타나는 3PCE 가상 객체를 관리하는 클라이언트 컴퓨팅 시스템(302)의 서브시스템이다. 가상 객체 관리자(312)는 여기에 설명된 동작들을 수행하도록 프로그램된 하나 이상의 위치에 있는 하나 이상의 데이터 처리 장치들(예를 들어, 프로세서들)로 구현될 수 있다. 상기 데이터 처리 장치는 가상 객체 관리자(312)에 전용될 수 있거나 가상 객체 관리자(312)와 클라이언트 컴퓨팅 시스템(302)의 하나 이상의 다른 컴포넌트들 간에 공유될 수 있다.
일부 구현예들에서, 3D 환경이 초기에 로드되어 시스템(302) 상에 렌더링될 때, 렌더링 엔진(308)은 3D 환경에 대한 정의 파일(들)을 분석하고, 3D 환경에 표시되도록 선언된 모든 3PCE 가상 객체들을 식별하고, 가상 객체 관리자(312)를 호출하여 각각의 3PCE 가상 객체를 인스턴스화한다. 가상 객체 관리자(312)를 호출 할 때, 렌더링 엔진(308)은 객체 선언들에 특정된 임의의 파라미터들의 값들을 관리자(312)에 전달할 수 있다. 각각의 객체에 대해, 가상 객체 관리자(312)는 객체의 외부 표면상에 표시할 제3자 이미지들의 세트와 같이, 객체 상에 초기에 디스플레이하기 위한 제1세트의 제3자 콘텐츠 각각을 적어도 획득한다. 일부 구현예들에서, 가상 객체 관리자(312)는 제3자 콘텐츠를 콘텐츠 배포 시스템(350)에 요청하기 위해 네트워크 인터페이스(314)를 사용하여 객체 상에 제시할 제3자 콘텐츠를 획득한다. 그 다음, 가상 객체 관리자(312)는 3PCE 가상 객체의 기하 구조 및 객체 상에 디스플레이하기 위해 선택된 제3 자 콘텐츠를 나타내는 3D 모델을 3D 환경에서 표현하기 위해 렌더링 엔진(308)으로 리턴한다. 일부 구현예들에서, 제3자 콘텐츠는 텍스트이다. 일부 구현예들에서, 제3자 콘텐츠는 하나 이상의 이미지들, 비디오들 또는 둘 모두이다. 그 다음, 렌더링 엔진(308)은 사용자에게 표시하기 위해 3D 환경에서 가상 3D 객체를 드로잉(drawing)한다.
일부 구현예들에서, 가상 객체 관리자(312)는 3D 가상 환경에서 3PCE 가상 객체들과의 검출된 사용자 상호 작용들에 대한 응답들을 처리하도록 더 구성된다. 예를 들어, 가상 환경에서의 사용자의 액션들이 사용자가 3PCE 가상 객체와 상호 작용했거나 상호 작용할 가능성이 있음을 나타내는 미리정의된 사용자 액션들의 세트와 매칭하는지를 검출하면, 입력 핸들러(310)는 가상 객체 관리자(312)를 호출하여, 객체와의 사용자 상호 작용 또는 예상되는 사용자 상호 작용에 응답하는 방법을 결정할 수 있다. 가상 객체 관리자(312)에 대한 호출에서, 입력 핸들러(310)는 상호 작용 또는 예상되는 상호 작용의 대상인 상기 객체에 대한 식별자를 전달할 수 있고, 상기 객체와의 상호 작용의 유형을 특징짓는 정보(예를 들어, 시선 및 선택, 연장된 시선, 핸드-기반 객체 조작)를 더 전달할 수 있다. 가상 객체 관리자(312)는 입력 핸들러(310)로부터 전달된 정보를 사용하여 객체와의 소정의 사용자 상호 작용에 어떻게 응답할지 또는 상기 객체와의 예상된 사용자 상호 작용에 어떻게 응답할지를 결정할 수 있다. 일부 구현예들에서, 가상 객체 관리자(312)는 가상 환경에서 검출된 3PCE 객체와의 사용자 상호 작용 또는 예측된 사용자 상호 작용의 로그를 유지하며, 이는 3D 가상 환경에서 3PCE 객체와의 사용자 상호 작용들의 패턴들을 분석하는 콘텐츠 배포 시스템(350) 또는 다른 시스템에 자동적으로 그리고 주기적으로 보고된다. 따라서, 가상 객체 관리자(312)가 3PCE 가상 객체와의 사용자 상호 작용 또는 예측된 사용자 상호 작용의 인디케이션(indication)을 입력 핸들러(310)로부터 수신할 때, 가상 객체 관리자(312)는 상호 작용에 대한 타임스탬프, 상호 작용의 목표 된 객체 및 상호 작용과 연관된 컨텍스트와 같은 상호 작용에 관한 중요한 정보를 캡처하는 엔트리를 로그에 추가할 수 있다.
3PCE 가상 객체는 객체와 연관된 여러 모드들 중 하나에서 활성화될 수 있다. 일부 구현예들에서, 3PCE 객체들은 제1(primary) 모드 및 제2(secondary) 모드를 갖는다. 제1 모드에서, 상기 객체는 제1 세트의 제3자 콘텐츠를 디스플레이한다. 제2 모드에서, 상기 객체는 가능한 전환 상태 모델들의 세트로부터 선택된 특정 전환 상태 모델을 사용하여 클라이언트 컴퓨팅 시스템(302)의 사용자에게 정보를 제공한다. 도 4b와 관련하여 이하 더 상세히 설명하는 바와 같이, 각각의 전환 상태 모델은 객체가 제2 모드에서 제1 세트의 제3자 콘텐츠에 관련된 추가 정보를 제시하는 각각의 기술을 나타낸다.
예를 들어, 제1 전환 상태 모델을 사용하여, 3PCE 가상 객체는 제2 세트의 제3자 콘텐츠를 제시하도록 구성된다. 제2 세트의 제3자 콘텐츠는 제1 세트의 제3자 콘텐츠와 다를 수 있지만, 여전히 제1세트의 제3자 콘텐츠와 연관된 동일한 주제 또는 엔티티와 관련된다. 또한, 제2 세트의 제3자 콘텐츠는 제1 세트의 제3자 콘텐츠 세트와 상이한 유형(예를 들어, 미디어 포맷)을 가질 수 있다. 예를 들어, 제1 모드에서, 3PCE 가상 객체는 특정 제품 또는 서비스와 관련된 이미지들의 컬렉션을 제1 세트의 제3자 콘텐츠로 표시할 수 있다. 제2 모드에서, 상기 제1 콘텐츠는 제2 세트의 제3자 콘텐츠로서 특정 제품 또는 서비스에 관한 비디오로 대체될 수 있다. 상기 비디오는 2D 비디오일 수도 있고, 일부 구현예들에서는 몰입형 360도 비디오일 수도 있다.
대안적으로, 제2 전환 상태 모델을 사용하여, 3PCE 가상 객체는 제1 세트의 제3자 콘텐츠와 연관된 주제 또는 엔티티에 관한 외부 알림을 생성하도록 구성된다. 외부 알림은 SMS(Short Message Service) 문자 메시지, 소셜 미디어 메시지, 전자 메일 메시지의 알림 또는 스마트폰 또는 다른 모바일 장치 또는 컴퓨팅 시스템의 알림 목록에 표시되는 알림과 같이 3D 환경 외부(예를 들어, 상이한 애플리케이션 및/또는 다른 장치에서)에서 사용자에게 제공되는 알림이다
대안적으로, 제3 전환 상태 모델을 사용하여, 3PCE 가상 객체는 제1 세트의 제3자 콘텐츠와 관련된 주제 또는 엔티티와 연관된 외부 대상에 포털을 제공하도록 구성된다. 예를 들어, 객체는 제1 세트의 제3자 콘텐츠에 관련된 주제 또는 엔티티와 연관된 특정 웹 사이트를 나타내는 팝업 프레임과, 제1세트의 제3자 콘텐츠에 관련된 주제 또는 엔티티와 연관된 애플리케이션을 나타내는 팝업 프레임을 제시할 수 있으며, 또는 제1 세트의 제3자 콘텐츠와 관련된 주제 또는 엔티티와 연관된 상이한 3D 환경으로 사용자를 안내(direct)할 수 있다. 일부 구현예들에서, 3PCE 가상 객체의 제2 모드는 제2의 제3자 콘텐츠를 제시하고 사용자에게 외부 알림을 보내는 가상 객체와 같은 2개 이상의 전환 상태 모델들의 양태를 제공할 수 있다.
소정의 3PCE 객체에 할당된 전환 상태 모델(들)은 클라이언트 컴퓨팅 시스템(302)의 가상 객체 관리자(312), 콘텐츠 배포 시스템(350)의 전환 상태 모델 선택기(368) 또는 이들 모두에 의해 선택될 수 있다. 일부 구현예들에서, 상기 객체가 제1 모드에서 제1 세트의 제3자 콘텐츠를 디스플레이하는 동안 3PCE 가상 객체와의 사용자 상호 작용의 인디케이션을 입력 핸들러(310)로부터 수신하는 것에 응답하여, 가상 객체 관리자(312)는 객체에 할당된 전환 상태 모델 및 전환 상태 모델과 연관된 파라미터들을 식별한다(예를 들어, 제2 세트의 제3자 콘텐츠, 알림 메시지, 외부 환경에 대한 포인터).
그 다음, 가상 객체 관리자(312)는 상기 식별된 전환 상태 모델 및 상기 전환 상태 모델의 식별된 파라미터들을 사용하여 제1 모드에서 제2 모드로 3PCE 객체를 전환시키도록 렌더링 엔진(308)에 지시한다. 이에 응답하여, 렌더링 엔진(308)은 상기 식별된 전환 상태 모델을 사용하여 전환 상태 모델과 연관된 특정 파라미터들에 따라 제2 모드에서 상기 객체를 리렌더링한다. 예를 들어, 제1 전환 상태 모델을 사용하고 그리고 3D 환경에서 3PCE 객체와의 사용자 상호 작용에 응답하여, 렌더링 엔진(308)은 가상 객체를 애니메이션화하여 제1 모드에서 제2 모드로 변환하거나 전환할 수 있다. 3D 기하학적 모델의 표면에 표시된 제1의 제3자 콘텐츠(예를들어, 이미지들)는 제거될 수 있고 그리고 제3자 콘텐츠(예를 들어, 동영상)로 대체될 수 있다.
클라이언트 컴퓨팅 시스템(302)은 콘텐츠 배포 시스템(350)에 메시지를 전송하고, 콘텐츠 배포 시스템(350)으로부터 메시지를 수신한다. 콘텐츠 배포 시스템(350)은 하나 이상의 위치들에 하나 이상의 컴퓨터들(예컨대, 데이터 처리 장치)로서 구현될 수 있다. 일반적으로, 콘텐츠 배포 시스템(350)은 클라이언트 컴퓨팅 시스템(302)에서 3D 환경의 3PCE 가상 객체로 디스플레이하기 위해 제3자 콘텐츠를 선택하도록 구성된다. 콘텐츠 배포 시스템(350)은 예를 들어 인터넷 또는 로컬 영역 네트워크와 같은 네트워크를 통해 클라이언트 시스템(302)에 콘텐츠를 전송함으로써 선택된 제3자 콘텐츠를 클라이언트 컴퓨팅 시스템(302)에서 이용 가능하게 한다. 콘텐츠 배포 시스템(350)은 하나 이상의 프론트-엔드 서버(352), 제3자 콘텐츠 데이터베이스(354), 콘텐츠 선택기(366), 전환 상태 모델 선택기(368), 선택 기준을 저장하는 제1 데이터 저장소(370), 최종 사용자 계정 및 프로파일 정보를 저장하는 제2 데이터 저장소(372), 및 제3자 콘텐츠 제공자 계정 및 프로파일 정보를 저장하는 제3 데이터 저장소(374)를 포함한다.
프론트-엔드 서버(352)는 콘텐츠 배포 시스템(350)으로부터 정보를 수신하고 전송하도록 구성된다. 프론트-엔드 서버(352)는 콘텐츠 배포 시스템(350)이 통신 네트워크(예를 들어, 인터넷)를 통해 다른 컴퓨터와 상호 작용하기 위한 인터페이스를 제공한다. 예를 들어, 도 3은 클라이언트 컴퓨팅 시스템(352)과 통신하는 프론트-엔드 서버(352)를 도시한다. 프론트-엔드 서버(304)는 제3자 콘텐츠에 대한 요청들을 수신하고, 그 수신된 요청들의 초기 처리를 수행하고, 요청들로부터 유도된 정보를 콘텐츠 배포 시스템(350)의 다른 적절한 컴포넌트들로 전송하고, 시스템(350)이 요청들에 응답하여 생성하는 응답들을 전송한다. 일부 구현예들에서, 프론트-엔드 서버(350)는 콘텐츠 배포 시스템(350)과 공개(예를 들어, 인터넷) 또는 비공개(예를 들어, 로컬 영역 네트워크)일 수 있는 하나 이상의 네트워크 간의 상호 접속을 제공하는 네트워크 인터페이스를 포함한다. 상기 네트워크 인터페이스는 예를 들어 패킷화된 네트워크를 통해 데이터를 송신 및 수신하도록 구성된 하나 이상의 네트워크 인터페이스 카드들을 포함할 수 있다.
콘텐츠 데이터베이스(354)는 제3자 콘텐츠의 인덱스를 유지하는 데이터베이스 또는 다른 유형의 데이터 저장소이다. 또한, 제3자 콘텐츠 자체는 콘텐츠 데이터베이스(354)에 의해 저장되거나, 콘텐츠 배포 시스템(350)에 의해 저장될 수 있지만 콘텐츠 데이터베이스(354)의 외부에 저장되거나, 콘텐츠 배포 시스템(350) 외부의 하나 이상의 다른 시스템에 저장될 수 있다. 일반적으로, 콘텐츠 데이터베이스(354)는 제3자 콘텐츠에 대한 요청들에 응답하여, 예를 들어 3PCE 가상 개체에 대한 프리젠테이션을 위해 클라이언트 시스템들에 리턴하기 위해 콘텐츠 배포 시스템(350)에서 이용 가능한 제3자 콘텐츠 세트를 식별한다. 일부 구현예들에서, 제3자 콘텐츠는 제3자 콘텐츠 제공자들(예를 들어, 광고주들)에 의해 독립적으로 생성된 다음, 최종 사용자들에게 목표된 배포를 위해 콘텐츠 배포 시스템(350)에 제출된다. 일부 구현예들에서, 콘텐츠 제공자들은 콘텐츠 배포 시스템(350)의 서비스 또는 콘텐츠 생성 플랫폼을 사용하여 제3자 콘텐츠를 생성할 수 있다. 제3자 콘텐츠는 텍스트, 이미지들, 비디오들 또는 기타 미디어 형식들로 제공될 수 있다.
일부 구현예들에서, 콘텐츠 데이터베이스(354)는 제1의 제3자 콘텐츠 및 제2의 제3자 콘텐츠에 대한 인덱스들(356, 358)을 각각 포함한다. 제1의 제3자 콘텐츠는 개체가 제1 모드에 있을 때 가상 개체에 대한 표시를 위해 지정된 콘텐츠이다. 제2의 제3자 콘텐츠는 개체가 제2 모드에 있을 때 가상 개체에 대한 표시를 위해 지정된 콘텐츠이다. 일부 구현예들에서, 3PCE 가상 객체의 제1 모드는 객체가 클라이언트 컴퓨팅 시스템(302)에 대해 비교적 낮은 계산 비용으로 3D 환경에서 제시되는 "저전력" 모드이다. 상기 저전력 모드는 객체에 제1의 제3자 콘텐츠만 표시함으로써 적어도 부분적으로 달성될 수 있으며, 이는 제1의 제3자 콘텐츠에 대해 하나 이상의 지정된 제약조건을 준수한다. 상기 제약조건은 예를 들어, 제1의 제3자 콘텐츠의 허용 가능한 포맷들 및 크기를 정의할 수 있다. 예를 들어, 특정된 해상도를 갖는 이미지들은 허용되는 제1의 제3자 콘텐츠로 간주될 수 있지만 비디오들은 허용되지않는 제1의 제3자 콘텐츠로 간주될 수 있다. 오히려, 비디오들은 예를 들어 제2의 제3자 콘텐츠로만 허용될 수 있다. 그러므로, 더 적은 대역폭이 제2의 제3자 콘텐츠보다 클라이언트 컴퓨팅 시스템(302에 제1의 제3자 콘텐츠를 송신하는 데 소비될 수 있다. 또한, 제1의 제3자 콘텐츠를 3D 환경에 제시하는 것은 제2의 제3자 콘텐츠를 제시하는 것보다 클라이언트 컴퓨팅 시스템(302)의 계산 집약도가 낮다.
제1 및 제2의 제3자 콘텐츠 인덱스들(356, 358)은 개별 콘텐츠 아이템들을 관련 콘텐츠 아이템들 세트로 그룹화할 수 있다. 예를 들어, 제1 디스플레이 모드에서, 3PCE 가상 객체는 입체 도형을 가질 수 있고, 큐브의 6면 각각에 제1의 제3자 콘텐츠 아이템을 각각 디스플레이한다. 콘텐츠 배포 시스템(350)은 큐브의 면들 전부 또는 일부에 디스플레이할 관련 또는 중복 콘텐츠 아이템들을 선택할 수 있다. 예를 들어, 특정 제3자 콘텐츠 제공자에 의해 제출된 관련 이미지들의 세트는 큐브 상에서의 디스플레이를 위해 클라이언트 컴퓨팅 시스템(302)으로 리턴될 수 있거나, 공통 주제 또는 엔티티와 관련된 것으로 알고리즘적으로 결정된 관련 이미지들의 세트는 큐브 상에 디스플레이하기 위해 제1의 제3자 콘텐츠 인덱스(356)를 사용하여 선택되고 리턴될 수 있다. 일부 구현예들에서, 콘텐츠 데이터베이스(354)는 제1의 제3자 콘텐츠를 제2의 제3자 콘텐츠에 매핑할 수 있다. 제1 디스플레이 모드에서 3PCE 가상 객체 상에 디스플레이하기 위해 제1의 제3자 콘텐츠의 특정 세트가 선택되면, 콘텐츠 선택기(366)는 객체에 대해 선택된 제1의 제3자 콘텐츠의 특정 세트에 매핑되는 제2 디스플레이 모드에서 동일한 가상 객체에 대한 제2의 제3자 콘텐츠만을 선택할 수 있다. 예를 들어, 제3자 콘텐츠의 제1 세트는 제3자 콘텐츠 제공자에 의해 제공되는 제품 또는 서비스와 관련된 이미지들의 세트를 포함할 수 있고, 매핑된 제2 제3자 콘텐츠 아이템들은 동일한 제품 또는 서비스에 관한 하나 이상의 비디오들일 수 있다. 콘텐츠 선택기(366)는 제2 디스플레이 모드에서 가상 객체와 함께 디스플레이하기 위해 리턴하도록 상기 매핑된 제2의 제3자 콘텐츠 아이템들 중 하나 이상을 선택할 수 있어, 소정의 가상 객체에 의해 제시되는 제1 및 제2의 제3자 콘텐츠 사이의 국소적인 관계를 유지할 수 있다.
일부 구현예들에서, 콘텐츠 데이터베이스(354)는 각각의 제3자 콘텐츠 인덱스들(356 및 358)에 추가하여 데이터를 저장한다. 예를 들어, 콘텐츠 데이터베이스(354)는 제3자 콘텐츠 속성들(360), 외부 알림들(362), 포털 파라미터들(364) 또는 이들 중 다수를 나타내는 데이터 구조들을 저장할 수 있다.
제3자 콘텐츠 속성 데이터 저장소(360)는 인덱스들(356, 358)로 표현된 제3자 콘텐츠 아이템들의 속성들을 나타내는 데이터를 저장한다. 예를 들어, 소정의 제3자 콘텐츠 아이템에 대한 속성들은 제3자 콘텐츠 아이템에 대한 기술 키워드들, 콘텐츠 아이템을 제출한 제3자 콘텐츠 제공자에 대한 고유 식별자, 콘텐츠 아이템(예를 들어, 텍스트, 오디오, 이미지, 비디오)의 포맷 또는 유형, 및 콘텐츠 아이템의 과거 성능 메트릭(예를 들어, 노출 수, 클릭률, 전환율)을 포함할 수 있다. 상시 속성들은 개별 콘텐츠 아이템들 또는 콘텐츠 아이템들의 그룹에 할당될 수 있다. 상기 속성들은 콘텐츠 배포 시스템(350)에 의해 자동으로 결정되거나, (예를 들어, 콘텐츠 배포 시스템(350)의 에이전트 또는 해당 제3자 콘텐츠 제공자의 에이전트에 의해) 수동으로 입력될 수 있다. 일부 구현예들에서, 콘텐츠 선택기(366)는 제3자 콘텐츠 요청들에 응답하여 제3자 콘텐츠 아이템(들)을 선택하기 위해 데이터 저장소(360)로부터의 속성들을 사용한다. 예를 들어, 제3자 콘텐츠용 클라이언트 컴퓨팅 시스템(302)으로부터 전송된 요청은 클라이언트 시스템(302)의 최종 사용자에 관한 정보를 나타내는 컨텍스트 데이터, 제3자 콘텐츠가 가상 객체 상에 렌더링되는 3D 환경, 3D 환경이 실행되는 애플리케이션, 및/또는 클라이언트 시스템(302)의 하드웨어 구성을 포함할 수 있다. 콘텐츠 선택기(366)는 제3자 요청의 컨텍스트를 "당첨된(winning)" 제3자 콘텐츠, 즉, 상기 요청에 응답하여 리턴된 제3자 콘텐츠를 선택하기 위한 절차의 일부로서 데이터 저장소(360)에 의해 표시된 제3자 콘텐츠 속성들과 비교할 수 있다.
외부 알림 데이터 저장소(362)는 제3자 콘텐츠 아이템들과 연관된 외부 알림을 나타내는 데이터를 저장한다. 콘텐츠 배포 시스템(350)은, 클라이언트 시스템(302)이 가상 객체 상에 디스플레이된 제1의 제3자 콘텐츠 아이템들에 표시된 주제들 또는 엔티티에 관한 추가 정보를 사용자에게 제공하도록 외부 알림들을 이용하는 전환 상태 모델을 채택한 경우, 클라이언트 시스템(302) 및/또는 클라이언트 시스템(302)의 사용자와 연관된 하나 이상의 계정들에 외부 알림을 리턴할 수 있다. 데이터 저장소(362)는 하나 이상의 알림 메시지를 정의하는 데이터 및 알림 메시지들을 해당 제3자 콘텐츠 아이템들, 제3자 콘텐츠 아이템들의 그룹들 또는 제3자 콘텐츠 제공자들에 매핑하는 데이터를 포함할 수 있다. 제1 디스플레이 모드에서 3PCE 가상 객체와 사용자 상호 작용의 인디케이션을 수신하면, 콘텐츠 배포 시스템(350)은 데이터 저장소(362)로부터 알림 메시지를 선택하여 사용자에게 제공한다. 상기 선택된 알림 메시지는 가상 객체 상에 디스플레이된 제3자 콘텐츠의 제1 세트 또는 제3자 콘텐츠의 제1 세트에 매핑될 수 있으며, 상기 선택된 알림 메시지는 동일한 제3자 콘텐츠 제공자와의 상호 접속에 기초하여 적어도 간접적으로 관련될 수 있다. 예를 들어, 상기 큐브가 제품 또는 서비스를 나타내는 제3자 이미지들을 나타내는 제1 디스플레이 모드에서 사용자가 3PCE 큐브와 상호 작용했다는 인디케이션에 기초하여, 콘텐츠 배포 시스템(350)의 알림 제어기는 하나 이상의 채널들(예를 들어, 이메일, SMS, 애플리케이션-레벨 알림 서비스, 운영 시스템-레벨 알림 서비스)을 통해 사용자에게 표시하기 위한 알림 메시지를 전송할 수 있다.
일부 구현예들에서, 데이터 저장소(362)는 알림 메시지용 템플릿을 정의하는 데이터를 포함한다. 상기 템플릿은 텍스트 메시지의 필드를 포함할 수 있으며, 이 필드에는 최종 사용자에 특정한 정보 또는 3PCE 가상 객체와의 특정 사용자 상호 작용의 컨텍스트를 기반으로 정보가 채어질 수 있다. 예를 들어, "$name: Don’t miss this exciting opportunity! Visit our website at www.example.com!"라는 알림 템플릿은 객체와의 상호 작용으로 알림을 트리거한 클라이언트 컴퓨팅 시스템(302)의 최종 사용자의 이름(first name)으로 채워질 수 있는(예를 들어, 대체될 수 있는) $ name 필드를 포함한다. 일부 구현예들에서, 알림은 예를 들어 웹 페이지의 타겟 URL, 또는 예를 들어 사용자의 전화 또는 다른 장치에 설치된 특정 애플리케이션의 타겟 URI를 특정하는 하이퍼링크들을 포함할 수 있다. 상기 알림 제어기는 타겟 URL과의 하이퍼링크가 위치하는 외부 알림 메시지의 생성을 초래한 3PCE 가상 객체와의 특정 사용자 상호 작용을 고유하게 식별하는 서명(signature)을 포함하는 타겟 URL을 생성할 수 있다. 사용자가 타겟 URL을 선택할 때, 고유 서명을 포함하는 요청은 콘텐츠 배포 시스템(350)으로 전송될 수 있다. 상기 콘텐츠 배포 시스템(350)은 사용자가 URL을 선택했음을 기록한 다음, 해당 제3자 콘텐츠 제공자에 의해 운영되는 웹 사이트와 같은 목적지 자원으로 장치를 리디렉션(redirect)하는 명령어들(예를들어, 스크립트)을 사용자 장치(예를 들어, 클라이언트 시스템(302))에 리턴한다.
포털 파라미터 데이터 저장소(364)는 제1의 제3자 콘텐츠 또는 제3자 콘텐츠 제공자들과 연관된 포털 자원들을 식별하는 데이터를 포함한다. 배포 시스템(350)은 클라이언트 시스템(302)으로부터 포털 자원에 대한 요청에 응답하여 데이터 저장소(364)에 액세스하여 포털 자원 또는 포털 자원에 대한 포인터를 선택하여 클라이언트 컴퓨팅 시스템(302)에 리턴한다. 클라이언트 시스템(302)은 예를 들어, 제1 디스플레이 모드에서 3PCE 가상 객체와의 사용자 상호 작용을 검출하는 것에 응답하여 포털 자원을 요청할 수 있다. 포털 자원은 일반적으로 자원에 대한 포털을 제공하고 3D 환경 내의 창에서 렌더링되거나 3D 환경과 별도로 렌더링되는 객체의 3D 환경과 별개의 자원이다. 예를 들어, 포털 자원은 사용자가 3D 환경에서 3PCE 가상 객체와 상호 작용할 때 웹 브라우저에서 자동으로 실행되는 웹사이트일 수 있다. 상기 웹사이트는 3D 환경의 웹 브라우저 창에 표시되거나 3D 환경 외부에서 별도로 실행될 수 있다. 일부 구현예들에서, 포털 자원은 클라이언트 시스템(302) 상에 설치된 제3자 애플리케이션이다.
사용자가 3D 환경에서 3PCE 가상 객체와 상호 작용할 때, 상기 애플리케이션은 3D 환경의 윈도우 내에서 실행될 수 있거나 사용자는 3D 환경에서 애플리케이션으로 자동적으로 이동될 수 있다. 일부 구현예들에서, 포털 자원은 또 다른 3D 환경이다. 예를 들어, 사용자가 제1 3D 환경에서 3PCE 가상 객체와 상호 작용할 때, 클라이언트 시스템(302)은 제1 3D 환경을 자동으로 떠날 수 있고, 객체와의 사용자 상호 작용이 발생했을 때 객체에 표시된 제1 콘텐츠에 의해 식별된 주제 또는 엔티티와 관련된 제2 3D 환경을 렌더링할 수 있다. 데이터 저장소(364)는 포털 자원에 관련된 파라미터들 및 인덱스들(356 및 358)에서 참조된 제3자 콘텐츠에 포털 자원들을 링크(예를 들어, 매핑)하는 데이터를 저장한다. 콘텐츠 배포 시스템(352)의 포털 제어기는 데이터 저장소(364)에 액세스하여 예를 들어 사용자가 상호 작용하는 가상 객체 상에 표시된 제3자 콘텐츠에 매핑되는 것에 기초하여 클라이언트 시스템(302)을 지향하도록 특정 자원을 선택하는 적격 포털 자원을 결정할 수 있다.
콘텐츠 선택기(366)는 3PCE 가상 객체로 디스플레이하기 위한 제1 또는 제2 제3자 콘텐츠와 같은 요청을 위한 당첨된 제3자 콘텐츠를 선택하는 콘텐츠 배포 시스템(350)의 컴포넌트이다. 당첨된 제3자 콘텐츠를 결정하기 위해, 콘텐츠 선택기(366)는 요청과 연관된 다양한 선택 기준에 대해 적격한 제3자 콘텐츠 아이템들을 평가한다. 상기 선택 기준은 요청에 특정된 키워드들 또는 기타 컨텍스트 데이터를 포함할 수 있다. 일부 구현예들에서, 상기 선택 기준은 클라이언트 시스템(302)의 최종 사용자의 관심 및 선호도를 나타내는 프로파일 데이터, 제3자 콘텐츠 제공자들의 프로파일 데이터, 및 가상 객체가 제시되는 3D 환경에 관한 정보를 포함한다. 상기 선택 기준(324)은 요청에 응답하여 3PCE 가상 객체에 의해 또는 3PCE 가상 객체상에 디스플레이하기 위해 선택되고 리턴될 제공자의 제3자 콘텐츠에 대해 제3자 콘텐츠 제공자가 지불하고자 하는 가격을 나타내는 제3자 콘텐츠 제공자들에 의해 설정된 입찰가를 포함할 수 있다. 콘텐츠 선택기(366)는 소정의 제3자 콘텐츠 요청에 선택 기준(324)을 적용하고, 당첨된 제3자 콘텐츠를 선택하기 위한 평가 프로세스를 수행한다.
콘텐츠 배포 시스템(350)은 또한 전환 상태 모델 선택기(368)를 포함할 수 있다. 전환 상태 모델 선택기(368)는 3D 환경에서 3PCE 가상 객체에 전환 상태 모델을 할당하도록 구성된다. 전환 상태 모델은 3PCE 가상 객체가 제1 디스플레이 모드에서 제2 디스플레이 모드로 변경될 때 수행되는 오퍼레이션의 유형을 나타낸다. 상기 가상 객체의 제2 디스플레이 모드는 객체와 사용자 상호 작용이 발생할 때까지 일반적으로 비활성(hidden)되고, 그 다음 개체에 할당된 전환 상태 모델에 의해 정의된 오퍼레이션들의 성능을 트리거한다. 예를 들어, 제1 전환 상태 모델은 객체와의 사용자 상호 작용에 응답하여 제2의 제3자 콘텐츠가 가상 객체 상에 디스플레이되도록 제공할 수 있다. 제2 전환 상태 모델은 객체와의 사용자 상호 작용에 응답하여 3D 환경 외부의 사용자에게 외부 알림이 보내지도록 제공할 수 있다. 제3 전환 상태 모델은 객체와의 사용자 상호 작용에 응답하여 포털 자원이 실행되도록 제공할 수 있다. 전환 상태 모델 선택기(368)는 어느 전환 상태 모델 또는 전환 상태 모델들이 3PCE 가상 객체에 적용되는지를 결정한다. 일부 구현예들에서, 전한 상태 모델 선택기(368)는 전환 상태 모델을 무작위로 선택하여 객체에 할당한다. 일부 구현예들에서, 전환 상태 모델 선택기(368)는 객체와 연관된 컨텍스트에 기초하여 객체에 할당할 전한 상태 모델을 선택한다. 적절한 전환 상태 모델은 클라이언트 시스템(302)의 성능, 최종 사용자 선호도, 제3자 콘텐츠 제공자 선호도, 객체가 배치된 3D 환경의 개발자의 선호도 또는 이들 컨텍스트들 중 다수의 특성에 기초하여 선택될 수 있다.
일부 구현예들에서, 전환 상태 모델 선택기(368)는 한 세트의 규칙들을 적용하여 객체에 할당할 전환 상태 모델을 선택한다. 예를 들어, 전환 상태 모델 선택기(368)는 우선 포털 자원을 실행시키는데 요구되는 플러그-인이 클라이언트 시스템 (302)에 설치되었는지를 체크할 수 있다(예를 들어, 설치된 플러그인에 대한 정보를 얻기 위해 클라이언트 시스템을 폴링(polling)하거나, 설치된 플러그인에 대한 클라이언트 시스템의 맵핑을 포함하는 인덱스를 찾거나, 또는 콘텐츠 요청으로부터 설치된 플러그인에 관한 정보를 얻음으로써). 상기 플러그인이 설치된 경우, 전환 상태 모델 선택기(368)는 포털 자원을 사용하는 전환 상태 모델을 객체에 할당할 수 있다. 상기 플러그인이 설치되어 있지 않으면 다른 전환 상태 모델이 선택될 수 있다. 일부 구현예들에서, 제3자 콘텐츠 또는 개발자들은 소정의 개체에 적용해야 하거나 제3자 콘텐츠의 제1 세트와 연관되어야 하는 전환 상태 모델을 특정할 수 있다.
도 4a 및 도 4b는 3D 환경에서 가상 객체를 렌더링하기 위한 예시적인 프로세스(400)의 흐름도를 나타낸다. 클라이언트 프로세스(400)는 클라이언트 시스템(302)(도 3)과 같은 클라이언트 컴퓨팅 시스템에 의해 수행될 수 있다. 일부 구현예들에서, 클라이언트 컴퓨팅 시스템은 헤드 장착형 디스플레이를 통해 제시되는 몰입형 3D 환경을 렌더링하는 가상 현실 시스템이다.
단계(402)에서, 클라이언트 시스템은 3D 환경을 로딩한다. 3D 환경은 3차원으로 렌더링될 수 있는 가상 환경이다. 3D 환경들의 예들은 3D 게임 및 비디오 환경들(예를 들어, 3D 콘서트 또는 운동 경기와 같은 실시간 또는 기록된 이벤트 스트림)을 포함한다. 일부 경우에, 사용자는 자신의 머리를 움직여 환경(예를 들어, 가상 현실 시스템) 주위를 둘러보거나, 환경 주위를 이동하거나, 환경 내의 객체들을 조작하거나, 또는 이들의 조합을 통해 가상 3D 환경을 탐색할 수 있다. 상기 3D 환경은 클라이언트의 메모리 서브시스템에 저장된 하나 이상의 정의 파일로 정의될 수 있다. 일부 구현예들에서, 상기 정의 파일은 렌더링 엔진에 의해 해석되거나 실행되어 특정 유형의 클라이언트 시스템에 적합한 디스플레이상에 제시될 수 있는 3D 환경(단계 404)의 시각적 디스플레이를 생성한다. 예를 들어, 헤드 장착형 디스플레이는 가상 현실 시스템에서 사용될 수 있다.
단계(406)에서, 클라이언트 시스템은 3D 환경에 위치된 제3자 콘텐츠 적격(3PCE) 가상 객체를 식별한다. 3PCE 가상 객체는 3D 환경에 대한 정의 파일에 예를 들어 태그, 스크립트 또는 실행 가능 코드를 제공하여 선언될 수 있다. 클라이언트 시스템이 태그, 스크립트 또는 실행 가능 코드를 해석하거나 실행하는 경우, 상기 렌더링 엔진은 여기에 특정된 임의의 파라미터들에 따라 3D 환경에서 3PCE 가상 객체를 인스턴스화할 수 있다. 예를 들어, 개발자는 3D 환경에서 가상 객체의 모양, 크기 및 위치를 나타내는 파라미터 값들을 특정할 수 있다. 이러한 속성 및 다른 속성은 콘텐츠 배포 시스템의 콘텐츠 선택기, 클라이언트 시스템 또는 콘텐츠 배포 시스템의 전환 상태 모델 선택기 또는 둘 모두에 의해 사용될 수 있고, 상기 객체로 제시할 제3자 콘텐츠를 선택하거나 상기 객체에 대한 전환 상태 모델을 각각 선택할 수 있다.
3PCE 객체는 다수의 디스플레이 모드와 연관될 수 있으며, 여기서 각 디스플레이 모드는 디스플레이 모드가 활성화될 때 상기 객체와 연관된 동작들을 정의하는 방식 또는 상기 객체가 제3자 콘텐츠를 디스플레이하는 방식을 정의하는 각각의 전환 상태 모델에 대응한다. 일부 구현예들에서, 3PCE 객체들은 초기에 디폴트 디스플레이 모드로 활성화된다. 예를 들어, 상기 디폴트 디스플레이 모드에서, 3PCE 가상 객체는 3D 환경에서 비교적 낮은 계산 비용으로 렌더링될 수 있는 상대적으로 기초인 제1의 제3자 콘텐츠(예를 들어, 이미지들)를 나타낼 수 있다. 상기 객체는 사용자와의 지속적인 상호 작용과 같은 미리정의된 이벤트들의 검출시 하나 이상의 다른 디스플레이 모드로 전환할 수 있다.
단계(408)에서, 클라이언트 시스템은 제1 디스플레이 모드에서 가상 객체 상에 디스플레이하기 위해 제1 세트의 제3자 콘텐츠를 획득한다. 제1 세트의 제3자 콘텐츠를 검색하기 위해, 상기 클라이언트 시스템은 요청을 생성하여 콘텐츠 배포 시스템에 전송한다. 상기 요청은 콘텐츠 배포 시스템의 콘텐츠 선택기가 제1 세트의 제3자 콘텐츠의 선택을 용이하게 하는데 사용할 수 있는 컨텍스트 데이터 및 제3자 콘텐츠의 선택에 대한 임의의 명시적 제약조건을 포함할 수 있다. 일부 구현예들에서, 제1 세트의 제3자 콘텐츠는 동일한 제3자 콘텐츠 제공자에 의해 배포될 수 있게 각각 만들어진 콘텐츠 아이템들의 그룹이다. 예로서, 가상 객체는 제1 디스플레이 모드에서 각각의 면들에 각각의 이미지를 제시하는 큐브일 수 있다. 제1 세트의 제3자 콘텐츠는 큐브의 각 면에 디스플레이되도록 할당된 각각의 이미지를 포함할 수 있고, 각 이미지는 공통 주제(예를 들어, 제3자 콘텐츠 제공자가 홍보하는 제품 또는 서비스)와 관련된다.
단계(410)에서, 상기 렌더링 엔진은 3D 환경에서 가상 객체의 디스플레이를 생성한다. 상기 시스템은 콘텐츠 배포 시스템으로부터 검색된 제1 세트의 제3자 콘텐츠를 나타내는 제1 디스플레이 모드로 상기 객체를 초기에 렌더링할 수 있다.
단계(412)에서, 상기 클라이언트 시스템은 사용자가 제1 디스플레이 모드에서 가상 객체와 상호 작용하도록 시스템에 입력을 제공했음을 검출한다. 상기 클라이언트 시스템은 사용자 입력의 하나 이상의 모드를 모니터링하는 입력 핸들러를 포함할 수 있으며, 사용자 입력이 3PCE 가상 객체로 향하는 것으로 결정되면, 상기 시스템은 가상 객체 관리자에게 경고를 보낼 수 있다. 예를 들어, VR 시스템에서, 상기 입력 핸들러는 사용자의 디스플레이의 상기 레티클이 적어도 임계 시간 동안 객체에 포커스를 유지하는지를 검출할 수 있다. 상기 레티클이 적어도 임계 시간(사용자의 시선이 적어도 임계 시간 동안 객체의 방향으로 유지됨을 나타냄) 동안 객체에 포커싱되는 경우, 상기 입력 핸들러는 가상 객체와의 사용자 상호 작용이 검출되었음을 나타내는 메시지를 가상 객체 관리자에 전달할 수 있다.
단계(414)에서, 사용자가 3D 환경에서 가상 객체와 상호 작용했음을 나타내는 메시지를 입력 핸들러로부터 수신하는 것에 응답하여, 상기 가상 객체 관리자는 제1 디스플레이 모드에서 제2 디스플레이 모드로의 가상 객체에 대한 전환을 결정한다. 도 4b는 가상 객체에 대한 몇 가지 가능한 전환을 도시하는 확장 단계(414)를 도시한다. 상기 클라이언트 시스템 또는 콘텐츠 배포 시스템에서의 전환 상태 선택기는 예를 들어, 제1 세트의 제3자 콘텐츠를 제출한 제3자 콘텐츠 제공자, 3D 환경 개발자 및/또는 최종 사용자에 의해 특정한 명시적 제약조건에 기초하여 소정의 가상 객체에 어떤 전환 모델이 적용되는지를 결정할 수 있다. 추가적으로 또는 대안으로, 상기 전환 상태 선택기는 어느 전환 모델이 소정의 가상 객체에 무작위로 적용되는지 또는 클라이언트 시스템의 객체, 3D 환경 및 기술적 능력과 연관된 암시적 컨텍스트에 기초하여 어느 전환 모델이 소정의 가상 객체에 적용되는지를 결정할 수 있다. 예를 들어, 제1 모델(416) 하에서, 상기 가상 객체는 제1 세트의 제3자 콘텐츠를 다른 제2세트의 제3자 콘텐츠로 대체함으로써 제1 디스플레이 모드로부터 전환할 수 있다. 단계(418)에서, 상기 클라이언트 시스템은 제2 세트의 제3자 콘텐츠를 콘텐츠 배포 시스템으로부터 획득한다. 단계(420)에서, 상기 클라이언트 시스템의 렌더링 엔진은 제2 세트의 제3자 콘텐츠를 보여주기 위해 가상 객체를 리렌더링한다. 일부 구현예들에서, 제2 세트의 제3자 콘텐츠의 유형 또는 포맷은 제1 세트의 제3자 콘텐츠의 유형 또는 포맷과 다를 수 있다. 일부 구현예들에서, 상기 가상 객체의 기하학적 구조를 정의하는 3D 모델은 객체에 의해 제시된 제3자 콘텐츠 세트와 함께 변경할 수 있다. 예를 들어, 더 많은 다각형의 면들을 갖는 보다 복잡한 가상 객체는 제1 디스플레이 모드보다는 제2 디스플레이 모드에서 렌더링될 수 있다. 상기 클라이언트 시스템은 콘텐츠 배포 시스템으로부터 새로운 3D 모델을 요청하고 수신할 수 있다. 일부 구현예들에서, 상기 가상 객체의 제1 및 제2 디스플레이 모드 사이의 전환은 상기 가상 객체를 애니메이션화하여 객체의 시각적 외관을 부드럽게 변경하는 것을 포함한다.
제2 전환 모델(422) 하에서, 가상 객체와의 사용자 상호 작용은 하나 이상의 외부 알림을 생성하기 위해 클라이언트 시스템, 콘텐츠 배포 시스템 또는 둘 모두를 트리거한다. 외부 알림은 사용자가 알림을 트리거하기 위해 상호 작용한 가상 개체를 포함하는 3D 환경의 외부 클라이언트 시스템의 사용자에게 제공되는 알림이다. 사용자들은 3D 환경, 특히 몰입형 3D 가상 현실 환경에서의 산만감을 최소화하려는 경향이 있으므로, 외부 알림들은 사용자가 3D 환경에서 자신의 세션을 완료한 후 3D 환경에서 발생한 제3자 콘텐츠를 사용자에게 알리는 효과적인 방법이 될 수 있다. 예를 들어, 알림 메시지는 사용자의 전자 메일 계정, 텍스트 메시징 계정, RSS 피드, OS-레벨 알림 서비스, 애플리케이션-레벨 알림 서비스 또는 이 중 다수에 푸시될 수 있다. 특히, 사용자의 가상 객체와의 상호 작용은 단계(424)에서 하나 이상의 외부 환경에 대한 알림의 발생 및 전송을 트리거한다. 일부 구현예들에서, 단계(426)에서, 확인 메시지가 가상 객체 상에 또는 그 부근에 표시되어 알림 메시지가 사용자의 계정(들)으로 보내지거나 보내지는지를 확인할 수 있다.
제3 전환 모델(428) 하에서, 가상 객체와의 사용자 상호 작용은 클라이언트 시스템을 트리거하여 외부 자원에 포털(portal)한다(단계 430). 객체에 대한 외부 자원은, 예를 들어 객체와의 사용자 상호 작용을 검출하는 것에 응답하여, 가상 객체가 최초로 인스턴스화될 때 또는 다른 시간에 클라이언트 시스템에 대한 자원을 식별할 수 있는 콘텐츠 배포 시스템에서 특정될 수 있다. 예로써, 상기 클라이언트 시스템은 외부 자원이 제시되는 애플리케이션(예를 들어, 웹 브라우저)을 자동으로 실행함으로써 외부 자원에 포털할 수 있다. 일부 구현예들에서, 3D 환경은 닫히고 그리고 주의(attention)가 외부 자원(예를 들어, 웹 브라우저에 디스플레이 된 웹사이트)로 리디렉션(redirect)된다. 외부 자원은 제1 디스플레이 모드에서 가상 객체가 디스플레이하는 제1 세트의 제3자 콘텐츠와 관련될 수 있다. 일부 구현예들에서, 상기 클라이언트 시스템은, 예를 들어 가상 객체 상에 표시된 제1 세트의 제3자 콘텐츠를 제출한 동일한 제3자 콘텐츠 제공자에 의해 배포되도록 제출된 다른 3D 환경을 개시함으로써 외부 자원으로 포털한다.
도 5는 클라이언트 VR 시스템(502)과 콘텐츠 배포 시스템(504) 간의 예시적인 프로세스(500)에서의 상호 작용을 나타내는 구획도를 도시한다.
단계(506)에서, VR 시스템(502)은 3PCE 가상 객체가 3D 환경에 제시되도록 선언됨을 식별한다. 상기 객체는 예를 들어 태그, 스크립트 또는 3D 환경에 대한 하나 이상의 정의 파일에 있는 실행 가능 코드에 의해 선언될 수 있다.
단계(508)에서, VR 시스템(502)은 제3자 콘텐츠에 대한 요청을 생성하여 콘텐츠 배포 시스템(504)에 전송한다. 상기 식별된 가상 객체는 예를 들어 상이한 제3자 콘텐츠가 디스플레이되는 다수의 디스플레이 모드와 연관될 수 있다. 일부 구현예들에서, VR 시스템(502)은 초기에 제3자 객체의 초기 활성화된 디스플레이 모드로 디스플레이되는 제1 세트의 제3자 콘텐츠만을 검색한다. 다른 디스플레이 모드들이 활성화될 때 디스플레이될 수 있는 다른 세트들의 제3자 콘텐츠의 검색은 사용자가 가상 객체와 상호 작용할 때까지 또는 사용자가 가상 객체와 상호 작용할 가능성이 있음을 시스템(502)이 검출할 때까지 연기될 수 있다. 따라서, 상기 가상 객체는 초기에 더 빠르게 로딩될 수 있고, 제2의 제3자 콘텐츠는 실제로 필요할 때(또는 필요할 가능성이 있을 때)까지 검색되지 않을 수도 있어, 제3자 콘텐츠를 콘텐츠 배포 시스템(504)에서 VR 시스템(502)으로 불필요하게 전송하는 것을 회피할 수 있다.
단계(510)에서, 콘텐츠 배포 시스템(504)은 제3자 콘텐츠에 대한 요청을 수신하고 그리고 초기 디스플레이 모드에서 가상 개체에 대한 제1 세트의 제3자 콘텐츠를 선택한다. 단계 512에서, 콘텐츠 배포 시스템(504)은 네트워크를 통해 제3 자 콘텐츠를 VR 시스템(502)에 전송한다. 단계(514)에서, VR 시스템은 상기 선택된 제1의 콘텐츠를 수신하고 그리고 제1의 제3자 콘텐츠로 텍스처된 가상 객체를 렌더링한다.
단계(516)에서, 콘텐츠 배포 시스템(504)은 가상 객체의 제2 디스플레이 모드에 대한 파라미터들을 결정한다. 제2 모드 파라미터들은 상기 가상 객체가 제1 디스플레이 모드로부터 제2 디스플레이 모드로 어떻게 전환할 것인지 및 제2 디스플레이 모드로 전환한 결과를 나타내는 것이다. 일부 구현예들에서, 제2 모드 파라미터들은 상기 가상 객체에 적용되어야하는 하나 이상의 전환 모델을 특정한다. 예를 들어, 상기 콘텐츠 배포 시스템의 전환 모델 선택기는 선택된 전환 모델을 상기 가상 객체에 할당할 수 있는데, 상기 전환 모델은 상기 객체가 상기 제1 디스플레이 모드에서 상기 제2 모드로 전환할 때, 상기 제2의 제3자 콘텐츠가 상기 가상 객체 상의 상기 제1의 제3자 콘텐츠를 대체할 것인지 여부; 상기 객체가 상기 제1 디스플레이 모드에서 상기 제2 디스플레이 모드로 전환될 때 외부 알림이 생성될지 여부; 그리고 상기 객체가 상기 제1 디스플레이 모드에서 상기 제2 디스플레이 모드로 전환할 때, 상기 가상 객체가 상기 초기 3D 환경으로부터 외부 자원으로 포털을 제공하는지 여부를 나타낸다.
단계(518)에서, 콘텐츠 배포 시스템(518)은 제2 모드 파라미터들을 제3자 콘텐츠 서버(504)로 전송한다. 일부 구현예들에서, VR 시스템(502)은 가능한 전환 모델들 각각을 전달하기 위한 로컬 로직을 포함한다. 그 다음, VR 시스템(502)에 전송된 제2 모드 파라미터들은 단순히 상기 선택된 전환 모델의 인디케이션을 포함할 수 있다. 다른 구현예들에서, VR 시스템(502)은 가상 객체와의 사용자 상호 작용을 검출하는 것에 응답하여 상기 코드를 실행하라는 명령어로 VR 시스템(502)에 스크립트 또는 다른 실행 가능 코드를 전송할 수 있다. 일부 구현예들에서, 도 5에 도시된 바와 같이, 콘텐츠 배포 시스템(500)은 사용자가 가상 객체와 상호 작용하기 전에 단계들(516 및 518)를 수행한다. 이에 따라, 상기 VR 시스템은 객체와의 사용자 상호 작용을 검출할 때 상기 제2 모드 파라미터들에 따라 상기 객체를 즉시 전환할 준비가 되어있다. 이러한 방식으로, 상기 시스템은 객체와의 사용자 상호 작용에 응답하고 상기 객체를 제2 디스플레이 모드로 전환시키는 것에 대한 대기시간을 감소시킬 수 있다. 그러나, 다른 구현예들에서, VR 시스템(502)은, 사용자 상호 작용이 가상 객체로 실제로 검출된 후 또는 객체와의 사용자 상호 작용이 발생하려고 하는 것을 VR 시스템(502)이 검출한 후에, 콘텐츠 배포 시스템(504)에 제2 모드 파라미터들을 요청할 수 있다.
단계(520)에서, VR 시스템(520)은 가상 객체와의 사용자 상호 작용을 검출하고, 사용자 상호 작용에 대한 엔트리는 VR 시스템(520)에서 로그에 기록된다(단계 522). 단계(524)에서, VR 시스템(502)은 가상 객체와의 사용자 상호 작용을 식별하는 것에 기초하여 제2 모드 파라미터들에 따라 제1 디스플레이 모드에서 제2 디스플레이 모드로 가상 객체를 전환시킨다. VR 시스템(502)은 분석을 위해 사용자 상호 작용을 상기 콘텐츠 배포 시스템에 주기적으로 보고할 수 있다. 따라서, 단계(526)에서, 사용자 상호 작용의 로그는 경향에 대해 분석되고 제3자 콘텐츠 아이템들의 성능 메트릭을 평가할 수 있는 콘텐츠 배포 시스템(504)으로 전송된다(단계 528).
일부 구현예들에서, 콘텐츠 배포 시스템은 3D 환경에서 가상 객체들과의 사용자 상호 작용들에 응답하여 생성된 외부 알림들의 컨버전(conversions)을 추적함으로써 3PCE 가상 객체와 연관된 제3자 콘텐츠의 성능을 평가할 수 있다. "컨버전"은 3D 환경에서 3PCE 가상 객체와의 상호 작용으로 인해 발생하는 알림과 관련하여 사용자가 취할 수 있는 특정 액션들을 의미한다. 예를 들어, 사용자가 상기 알림을 보는 경우, 사용자가 알림에 제공된 하이퍼링크를 선택하는 경우 또는 사용자가 알림에 기술된 제품 또는 서비스와 관련된 거래(예를 들어, 구매 거래)를 완료한 경우에 컨버전이 등록될 수 있다.
이를 위해, 도 6은 3PCE 가상 객체와의 사용자 상호 작용의 결과로서 생성된 외부 알림과 연관된 컨버전에 기초하여 3D 환경에서 제3자 콘텐츠 선택을 평가하기 위한 예시적인 프로세스(600)의 흐름도를 도시한다. 일부 구현예들에서, 프로세스(600)는 콘텐츠 배포 시스템(350)(도 3)과 같은 콘텐츠 배포 시스템에 의해 수행된다.
단계(602)에서, 상기 시스템은 사용자가 3D 환경에서 3PCE 가상 객체와 상호 작용했음을 식별한다. 상기 시스템은 가상 객체에 적용되는 전환 상태 모델을 결정한다. 전환 상태 모델에 의해 특정된 경우, 상기 시스템은 3D 환경에서 객체상에 디스플레이된 제1 세트의 제3자 콘텐츠에 관한 부가 정보를 제공하도록 외부 알림을 생성할 수 있다(단계 604). 일부 구현예들에서, 상기 시스템은 상기 생성된 외부 알림, 외부 알림의 생성을 초래한 사용자 상호 작용 및 사용자 상호 작용과 연관된 컨텍스트 데이터를 식별하는 엔트리를 로그(예를 들어, 데이터베이스 서브시스템)에 기록한다. 나중에, 상기 시스템은 알림과 연관된 컨버전 액션의 인디케이션을 수신할 수 있다(단계 (606)). 예를 들어, 알림 메시지 내의 하이퍼링크의 사용자 선택은 클라이언트 시스템으로 하여금 사용자가 하이퍼링크를 선택했음을 나타내는 메시지를 상기 콘텐츠 배포 시스템에 전송하게 할 수 있다. 상기 컨버전 액션의 인디케이션을 수신하면, 상기 시스템은 컨버전 액션을 해당 알림 메시지 및 알림 메시지를 트리거한 사용자 상호 작용 이벤트와 상관시킨다(단계 608). 일부 구현예들에서, 상기 인디케이션된 컨버전 액션에 기초하여, 상기 시스템은 3D 환경에서 객체와 사용자 상호 작용이 발생한 시점에 가상 객체에 표시된 제3자 콘텐츠에 할당된 점수를 조정한다. 상기 점수는 향후 제3자 콘텐츠 요청들으로 리턴할 콘텐츠를 결정할 때 콘텐츠 선택기에 의해 사용될 수 있다. 일부 구현예들에서, 상기 점수는 상기 콘텐츠 배포 시스템이 상기 컨버전 액션의 결과로서 점수가 할당된 제3자 콘텐츠를 선택할 확률을 증가시키도록 조정된다(단계 610).
도 7은 컴퓨터 시스템(700)의 개략도이다. 시스템(700)은 몇몇 구현예들에 따라, 앞서 설명된 컴퓨터로 구현되는 방법들, 시스템들, 장치들 및 다른 기술들 중 임의의 것과 연관하여 설명된 동작들을 수행하는데 사용될 수 있다. 시스템(700)은 랩톱, 데스크톱, 워크스테이션, PDA(personal digital assistant)들, 서버들, 블레이드 서버들, 메인프레임들 및 다른 적절한 컴퓨터들과 같은 다양한 형태의 디지털 컴퓨터들을 포함하도록 의도된다. 또한, 시스템(700)은 개인 휴대 정보 단말기, 셀룰러 전화기, 스마트폰 및 다른 유사한 컴퓨팅 장치들과 같은 이동 장치들을 포함할 수 있다. 또한, 상기 시스템은 USB(universal serial bus) 플래시 드라이브들과 같은 휴대용 저장 매체를 포함할 수 있다. 예를 들어, 상기 USB 플래시 드라이브들은 운영 체제들 및 기타 애플리케이션들 저장할 수 있다. 상기 USB 플래시 드라이브들은 다른 컴퓨팅 장치의 USB 포트에 삽입될 수 있는 USB 커넥터 또는 무선 송신기와 같은 입력/출력 컴포넌트들을 포함할 수 있다. 시스템(700)은 프로세서(710), 메모리(720), 저장 장치(730) 및 입/출력 장치(740)를 포함한다. 컴포넌트들(710, 720, 730 및 740) 각각은 시스템 버스(750)를 사용하여 상호 접속된다. 프로세서(710)는 시스템(700) 내에서 실행을 위한 명령어들을 처리할 수 있다. 상기 프로세서는 다수의 아키텍처들 중 하나를 사용하여 설계될 수 있다. 예를 들어, 프로세서(710)는 CISC(Complex Instruction Set Computers) 프로세서, RISC(Reduced Instruction Set Computer) 프로세서 또는 MISC(Minimal Instruction Set Computer) 프로세서 일 수 있다.
일부 구현예들에서, 프로세서(710)는 단일 스레드 프로세서이다. 또 다른 구현예들에서, 프로세서(710)는 멀티 스레드 프로세서이다. 프로세서(710)는 메모리(720) 또는 저장 장치(730)에 저장된 명령어들을 처리하여 입/출력 장치(740)상의 사용자 인터페이스에 대한 그래픽 정보를 디스플레이할 수 있다.
메모리(720)는 시스템(700) 내의 정보를 저장한다. 일 구현예들에서, 메모리(720)는 컴퓨터 판독 가능 매체이다. 일 구현예에서, 메모리(720)는 휘발성 메모리 유닛이다. 다른 구현예들에서, 메모리(720)는 비휘발성 메모리 유닛이다.
저장 장치(730)는 시스템(400)을 위한 대용량 저장 장치를 제공할 수 있다. 일 구현예에서, 저장 장치(730)는 컴퓨터 판독 가능 매체이다. 다양한 다른 구현예들에서, 저장 장치(730)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스일 수 있다.
입/출력 장치(740)는 시스템(400)에 대한 입력/출력 동작들을 제공한다. 일 구현예에서, 입/출력 장치(740)는 키보드 및/또는 포인팅 장치를 포함한다. 다른 구현예에서, 입/출력 장치(740)는 그래픽 사용자 인터페이스를 디스플레이하기 위한 디스플레이 유닛을 포함한다.
설명된 특징들은 디지털 전자 회로 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합들로 구현될 수 있다. 상기 장치는 정보 매체, 예를 들어 프로그램 가능 프로세서에 의한 실행을 위한 기계 판독 가능한 저장 장치에 유형적으로 수록된 컴퓨터 프로그램 제품으로 구현될 수 있으며, 방법 단계들은 입력 데이터를 조작하고 출력을 생성함으로써 설명된 구현예들의 기능들을 수행하도록 명령어 프로그램을 실행하는 프로그램 가능 프로세서에 의해 수행될 수 있다. 상기 설명된 특징들은 적어도 하나의 입력 장치, 적어도 하나의 출력 장치 및 데이터 저장 시스템으로부터 데이터 및 명령어들을 수신하고, 적어도 하나의 입력 장치, 적어도 하나의 출력 장치 및 데이터 저장 시스템에 데이터 및 명령어들을 전송하도록 결합된 적어도 하나의 프로그램 가능한 프로세서를 포함하는 프로그램 가능 시스템상에서 실행 가능한 하나 이상의 컴퓨터 프로그램들에서 유리하게 구현될 수 있다. 컴퓨터 프로그램은 컴퓨터에서 특정 액티비티를 수행하거나 특정 결과를 가져오기 위해 직접 또는 간접적으로 사용될 수 있는 명령어들의 세트이다. 컴퓨터 프로그램은 컴파일된 또는 해석된 언어를 포함하여 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 임의의 형태로 배표될 수 있다.
명령어 프로그램의 실행을 위한 적절한 프로세서들은 예를 들어 범용 및 특수 목적 마이크로프로세서와 임의의 종류의 컴퓨터의 단독 프로세서 또는 다수의 프로세서 중 하나를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 컴포넌트는 명령어들을 실행하기 위한 프로세서와 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리이다. 일반적으로, 또 한컴퓨터는 데이터 파일들을 저장하기 위한 하나 이상의 대용량 저장 장치를 포함하거나 그 하나 이상의 대용량 저장 장치에 동작 가능하도록 연결되며; 이러한 장치들은 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크, 광 자기 디스크, 및 광학 디스크를 포함한다. 컴퓨터 프로그램 명령어들 및 데이터를 유형적으로 수록하기에 적합한 저장 장치들은 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치를 포함하는 모든 형태의 비휘발성 메모리; 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 그리고 CD-ROM 및 DVD-ROM 디스크를 포함한다. 상기 프로세서와 메모리는 ASIC(Application-Specific Integrated Circuits)에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 상기 특징들은 사용자에게 정보를 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 장치, 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 키보드 및 포인팅 장치를 갖는 컴퓨터상에서 구현될 수 있다. 또한, 이러한 액티비티는 터치스크린 평판 디스플레이 및 기타 적절한 메커니즘을 통해 구현될 수 있다.
상기 특징들은 데이터 서버와 같은 백-엔드 컴포넌트를 포함하거나 애플리케이션 서버 또는 인터넷 서버와 같은 미들웨어 컴포넌트를 포함하거나 그래픽 사용자 인터페이스 또는 인터넷 브라우저, 또는 이들의 임의의 조합을 갖는 클라이언트 컴퓨터와 같은 프런트-엔드 컴포넌트를 포함하는 컴퓨터 시스템에서 구현될 수 있다. 상기 시스템의 컴포넌트들은 통신 네트워크와 같은 임의의 형태 또는 매체의 디지털 데이터 통신에 의해 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망(LAN), 광역 통신망(WAN), P2P(peer-to-peer) 네트워크(에드혹(ad-hoc) 또는 정적 멤버를 포함), 컴퓨팅 인프라들 그리고 인터넷을 포함한다.
상기 컴퓨터 시스템은 클라이언트들과 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 설명된 것과 같은 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터들에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램의 덕택으로 발생한다.
본 명세서는 많은 특정 구현예들 세부사항을 포함하고 있지만, 이들은 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 구현예들에 특정한 특징들을 기술한 것으로 해석되어야 한다. 별도의 구현예들의 컨텍스트에서 본 명세서에 기술된 특정 특징들은 또한 단일 구현예로 조합하여 구현될 수 있다. 반대로, 단일 구현예의 컨텍스트에서 기술된 다양한 특징들은 또한 다수의 구현예들에서 개별적으로 또는 임의의 적절한 하위조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합들에서 작용하는 것으로 상기에서 설명될 수 있고, 심지어 처음에는 그러한 것으로서 주장될지라도, 청구된 조합으로부터의 하나 이상의 특징이 어떤 경우에는 조합으로부터 제거될 수 있고, 상기 청구된 조합은 하위조합의 하위조합의 변형을 지향할 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작을 달성하기 위해 상기 동작이 도시된 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 구현예들에서 다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서 그러한 분리를 필요로하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
따라서, 주제의 특정 구현예들이 설명되었다. 다른 구현예들은 다음의 청구항들의 범위 내에 있다. 경우에 따라 청구 범위에 나열된 액션들을 다른 순서로 수행할 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 또한, 첨부된 도면에 도시된 프로세스들은 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예들에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 컴퓨팅 시스템에 있어서,
    (i) 3차원(3D) 환경을 정의하고 (ii) 상기 3D 환경에서 가상 객체를 식별하는 제1 데이터를 저장하도록 구성된 메모리 서브시스템;
    상기 3D 환경에서 상기 가상 객체로 디스플레이하도록 네트워크를 통해 제3자 콘텐츠에 대한 요청들을 전송하고, 상기 요청들에 응답하여 제3자 콘텐츠를 수신하도록 구성된 통신 인터페이스;
    하나 이상의 프로세서들을 포함하고, 상기 메모리 서브시스템으로부터의 상기 제1 데이터를 사용하여 상기 컴퓨팅 시스템에 결합된 디스플레이 장치상에 표현하기 위해 상기 3D 환경을 렌더링하도록 구성된 렌더링 엔진 -상기 렌더링 엔진은 상기 가상 객체가 제1 세트의 제3자 콘텐츠를 디스플레이하는 제1 모드에서 상기 3D 환경의 특정 위치에 상기 가상 객체를 렌더링하는 것을 포함함-;
    하나 이상의 프로세서들을 포함하고, 상기 3D 환경에서 상기 가상 객체와의 사용자 상호 작용을 검출하도록 구성된 입력 핸들링 장치; 그리고
    하나 이상의 프로세서들을 포함하고, 상기 3D 환경에서 상기 가상 객체와의 제1 사용자 상호 작용의 인디케이션을 상기 입력 핸들링 장치로부터 수신하고, 그리고 이에 응답하여, 상기 가상 객체가 상기 제1 세트의 제3자 콘텐츠를 디스플레이하는 상기 제1 모드에서 상기 가상 객체가 제2 세트의 제3자 콘텐츠를 디스플레이하는 제2 모드로 상기 가상 객체를 전환시키도록 상기 렌더링 엔진에 지시하도록 구성된 가상 객체 관리자를 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  2. 제1항에 있어서, 상기 디스플레이는 헤드 장착형 디스플레이이며, 상기 3D 환경은 헤드 장착형 디스플레이를 사용하여 볼 수 있도록 구성된 가상 현실(VR) 환경인 것을 특징으로 하는 컴퓨팅 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 렌더링 엔진은 상기 시스템이 상기 제2 세트의 제3자 콘텐츠를 획득하기 전에 상기 제1 모드로 상기 가상 객체를 렌더링하도록 구성되며; 그리고
    상기 통신 인터페이스는 (i) 상기 가상 객체와의 사용자 상호 작용이 일어나려고 하고 있음을 식별하거나 또는 (ii) 상기 가상 객체와의 제1 사용자 상호 작용이 발생했음을 식별하는 것에 기초하여 상기 제2 세트의 제3자 콘텐츠에 대한 요청을 전송하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  4. 선행하는 어느 항에 있어서,
    상기 제1 세트의 제3자 콘텐츠는 이미지들의 컬렉션을 포함하며;
    상기 제1 모드에서, 상기 가상 객체는 3D 기하학적 형태를 형성하는 다각형 면들의 컬렉션을 포함하며; 그리고
    상기 렌더링 엔진은 상기 다각형 면들의 컬렉션의 각 다각형 면상에 상기 이미지들의 컬렉션으로부터의 각각의 이미지를 디스플레이함으로써 상기 가상 객체를 상기 제1 모드에서 렌더링하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  5. 제4항에 있어서,
    상기 가상 객체가 상기 제1 모드에서 렌더링될 때, 상기 가상 객체의 다각형 면들의 컬렉션은 큐브를 형성하는 것을 특징으로 하는 컴퓨팅 시스템.
  6. 제4항 또는 제5항에 있어서,
    상기 랜더링 엔진은, 상기 가상 객체를 상기 제1 모드에서 상기 제2 모드로 전환시키기 위한 명령어를 상기 가상 객체 관리자로부터 수신하는 것에 응답하여, 상기 제2 세트의 제3자 콘텐츠를 나타내도록 상기 큐브를 애니메이션화(animate)하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  7. 제4항 내지 제6항 중 어느 한 항에 있어서,
    상기 이미지들의 컬렉션은 각각 동일한 주제 또는 엔티티에 관련된 콘텐츠를 묘사하는 것을 특징으로 하는 컴퓨팅 시스템.
  8. 선행하는 어느 항에 있어서,
    상기 입력 핸들링 장치는 상기 3D 환경 내에서 사용자의 현재 시청 위치를 이동시키고 그리고 상기 3D 환경에서 사용자의 현재 시청 위치와 상기 가상 객체의 위치 사이의 관계를 검출하기 위해 사용자 입력을 수신하도록 구성되며; 그리고
    상기 가상 객체 관리자는 상기 3D 환경에서 상기 가상 객체의 위치와 상기 사용자의 현재 시청 위치 사이의 관계가 하나 이상의 기준을 만족시킨다는 결정에 기초하여 상기 가상 객체를 상기 제1 모드에서 상기 제2 모드로 전환시키도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  9. 제8항에 있어서,
    상기 사용자의 현재 시청 위치와 상기 가상 객체의 위치 사이의 관계는 상기 사용자의 현재 시청 위치와 상기 가상 객체의 위치 사이의 거리이며,
    상기 가상 객체 관리자는 상기 3D 환경에서 상기 사용자의 현재 시청 위치와 상기 가상 객체의 위치 사이의 상기 거리가 임계 거리 미만이라는 결정에 기초하여 상기 가상 객체를 상기 제1 모드에서 상기 제2 모드로 전환시키도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  10. 선행하는 어느 항에 있어서,
    상기 입력 핸들링 장치는 상기 3D 환경에서 사용자의 시선의 방향을 모니터링하고 그리고 상기 사용자의 시선이 상기 가상 객체의 방향에 있음을 식별하는 것에 기초하여 제1 사용자 상호 작용을 검출하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  11. 제10항에 있어서,
    상기 가상 객체 관리기는 상기 사용자의 시선이 상기 가상 객체의 방향으로 미리결정된 시간 동안 유지되었음을 식별하는 것에 기초하여 상기 가상 객체를 상기 제1 모드에서 상기 제2 모드로 전환하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  12. 선행하는 어느 항에 있어서,
    상기 입력 핸들링 장치는 상기 사용자의 시선이 상기 3D 환경에서 상기 가상 객체의 방향에 있는 동안 핸드-기반 제어기(hand-based controller)로부터 수신된 제1 입력에 기초하여 상기 핸드-기반 제어기로부터 입력들을 수신하고 상기 제1 사용자 상호 작용을 검출하도록 구성되는 것을 특징으로 하는 컴퓨팅 시스템.
  13. 선행하는 어느 항에 있어서,
    상기 가상 객체 관리자는, 상기 입력 핸들링 장치로부터 상기 가상 객체와의 상기 제1 사용자 상호 작용의 인디케이션을 수신하는 것에 응답하여, 상기 3D 환경 외부의 사용자 알림의 생성을 트리거하도록 더 구성되며, 상기 사용자 알림은 상기 제1 세트의 제3자 콘텐츠와 연관된 주제 또는 엔티티와 관련되는 것을 특징으로 하는 컴퓨팅 시스템.
  14. 선행하는 어느 항에 있어서,
    상기 제2 모드에서 상기 가상 객체가 디스플레이하는 상기 제2 세트의 제3자 콘텐츠의 유형은 상기 제1 모드에서 상기 가상 객체가 디스플레이하는 상기 제1 세트의 제3자 콘텐츠의 유형과 상이한 것을 특징으로 하는 컴퓨팅 시스템.
  15. 제14항에 있어서,
    상기 제1 모드에서 상기 가상 객체가 디스플레이하는 상기 제1 세트의 제3자 콘텐츠의 유형은 이미지들이며,
    상기 제2 모드에서 상기 가상 객체가 디스플레이하는 상기 제2 세트의 제3자 콘텐츠의 유형은 비디오들 또는 3D 모델들인 것을 특징으로 하는 컴퓨팅 시스템.
  16. 컴퓨터로 구현되는 방법에 있어서,
    컴퓨팅 시스템의 디스플레이상에 3차원(3D) 환경을 디스플레이하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 3D 환경에 위치한 가상 객체가 제3자 콘텐츠를 제시할 자격이 있는지를 식별하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 가상 객체에 대한 제1 세트의 제3자 콘텐츠를 획득하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 가상 객체가 상기 제1 세트의 제3자 콘텐츠를 제시하는 제1 모드로 상기 3D 환경에서 상기 가상 객체를 렌더링하는 단계;
    상기 3D 환경에서 상기 가상 객체와의 사용자 상호 작용이 미리정의된 기준 세트를 충족시키는지를 식별하는 단계; 그리고
    상기 3D 환경에서 상기 가상 객체와의 상기 사용자 상호 작용이 상기 미리정의된 기준 세트를 충족시키는지를 식별하는 것에 응답하여, 상기 가상 객체가 상기 제1 세트의 제3자 콘텐츠와는 다른 상기 제2 세트의 제3자 콘텐츠를 제시하는 제2 모드로 상기 3D 환경에서 상기 가상 객체를 리렌더링(re-rendering)하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  17. 제16항에 있어서,
    상기 제1 세트의 제3자 콘텐츠는 이미지들의 컬렉션을 포함하고 그리고
    상기 가상 객체를 상기 제1 모드로 렌더링하는 단계는 큐브의 각 면상의 상기 이미지들의 컬렉션에서 각각의 이미지를 나타내는 큐브를 렌더링하는 단계를 포함하며,
    상기 제2 세트의 제3자 콘텐츠는 비디오를 포함하고 그리고
    상기 제2 모드로 상기 가상 객체를 리렌더링하는 단계는 상기 3D 환경에서 상기 비디오를 재생하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  18. 제16항 또는 제17항에 있어서,
    상기 3D 환경에서 상기 가상 객체와의 사용자 상호 작용 또는 다른 사용자 상호 작용을 식별하는 것에 응답하여, 상기 컴퓨팅 시스템과는 구별되는 서버로부터 상기 제2 세트의 콘텐츠를 검색하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  19. 컴퓨팅 시스템에 있어서,
    하나 이상의 프로세서들; 그리고
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금 동작들을 수행하게 하는 명령어들을 갖는 하나 이상의 컴퓨터 판독 가능 매체를 포함하며, 상기 동작들은,
    디스플레이를 위한 3차원(3D) 환경을 제공하는 동작;
    상기 3D 환경에 위치한 가상 객체가 제3자 콘텐츠를 제시할 자격이 있는지를 식별하는 동작;
    상기 가상 객체에 대한 제1세트의 제3자 콘텐츠를 획득하는 동작;
    상기 가상 객체가 상기 제1 세트의 제3자 콘텐츠를 제시하는 제1 모드로 상기 3D 환경에서 상기 가상 객체를 렌더링하는 동작;
    상기 3D 환경에서 상기 가상 객체와의 사용자 상호 작용이 미리정의된 기준 세트를 충족시키는지를 식별하는 동작; 그리고
    상기 3D 환경에서 상기 가상 객체와의 사용자 상호 작용이 상기 미리정의된 기준 세트를 충족시키는지를 식별하는 것에 응답하여, 상기 가상 객체가
    상기 제1 세트의 제3자 콘텐츠와는 다른 제2 세트의 제3자 콘텐츠를 제시하는 제2 모드로 상기 3D 환경에서 상기 가상 객체를 리렌더링하는 동작을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
  20. 제19항에 있어서,
    상기 제1 세트의 제3자 콘텐츠는 이미지들의 컬렉션을 포함하고 그리고 상기 가상 객체를 상기 제1 모드로 렌더링하는 동작은 큐브의 각면 상의 상기 이미지들의 컬렉션에서 각각의 이미지를 나타내는 상기 큐브를 렌더링하는 동작을 포함하며,
    상기 제2 세트의 제3자 콘텐츠는 비디오를 포함하고 그리고 상기 제2 모드로 상기 가상 객체를 리렌더링하는 동작은 상기 3D 환경에서 상기 비디오를 재생하는 동작을 포함하는 것을 특징으로 하는 컴퓨팅 시스템.
KR1020187025484A 2016-12-30 2017-08-30 3d 환경에서 콘텐츠 렌더링 KR102199807B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207038045A KR102280719B1 (ko) 2016-12-30 2017-08-30 3d 환경에서 콘텐츠 렌더링

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/396,125 US10621773B2 (en) 2016-12-30 2016-12-30 Rendering content in a 3D environment
US15/396,125 2016-12-30
PCT/US2017/049321 WO2018125295A1 (en) 2016-12-30 2017-08-30 Rendering content in a 3d environment

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207038045A Division KR102280719B1 (ko) 2016-12-30 2017-08-30 3d 환경에서 콘텐츠 렌더링

Publications (2)

Publication Number Publication Date
KR20180108786A true KR20180108786A (ko) 2018-10-04
KR102199807B1 KR102199807B1 (ko) 2021-01-07

Family

ID=59895368

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187025484A KR102199807B1 (ko) 2016-12-30 2017-08-30 3d 환경에서 콘텐츠 렌더링
KR1020207038045A KR102280719B1 (ko) 2016-12-30 2017-08-30 3d 환경에서 콘텐츠 렌더링

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207038045A KR102280719B1 (ko) 2016-12-30 2017-08-30 3d 환경에서 콘텐츠 렌더링

Country Status (6)

Country Link
US (2) US10621773B2 (ko)
EP (1) EP3469472A1 (ko)
JP (2) JP6657421B2 (ko)
KR (2) KR102199807B1 (ko)
CN (2) CN108885522B (ko)
WO (1) WO2018125295A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10950020B2 (en) * 2017-05-06 2021-03-16 Integem, Inc. Real-time AR content management and intelligent data analysis system
US10621773B2 (en) 2016-12-30 2020-04-14 Google Llc Rendering content in a 3D environment
CN110366746B (zh) * 2017-02-24 2022-08-16 维拉达公司 基于虚拟现实的影像诊断练习装置和方法
US10419716B1 (en) 2017-06-28 2019-09-17 Vulcan Technologies Llc Ad-hoc dynamic capture of an immersive virtual reality experience
US11249714B2 (en) * 2017-09-13 2022-02-15 Magical Technologies, Llc Systems and methods of shareable virtual objects and virtual objects as message objects to facilitate communications sessions in an augmented reality environment
WO2019079826A1 (en) 2017-10-22 2019-04-25 Magical Technologies, Llc DIGITAL ASSISTANT SYSTEMS, METHODS AND APPARATUSES IN AN INCREASED REALITY ENVIRONMENT AND LOCAL DETERMINATION OF VIRTUAL OBJECT PLACEMENT AND SINGLE OR MULTIDIRECTIONAL OBJECTIVES AS GATEWAYS BETWEEN A PHYSICAL WORLD AND A DIGITAL WORLD COMPONENT OF THE SAME ENVIRONMENT OF INCREASED REALITY
CN107977586B (zh) * 2017-12-22 2021-04-13 联想(北京)有限公司 显示内容处理方法、第一电子设备以及第二电子设备
US10904374B2 (en) 2018-01-24 2021-01-26 Magical Technologies, Llc Systems, methods and apparatuses to facilitate gradual or instantaneous adjustment in levels of perceptibility of virtual objects or reality object in a digital scene
US11398088B2 (en) 2018-01-30 2022-07-26 Magical Technologies, Llc Systems, methods and apparatuses to generate a fingerprint of a physical location for placement of virtual objects
EP3599538B1 (en) * 2018-07-24 2023-07-19 Nokia Technologies Oy Method and apparatus for adding interactive objects to a virtual reality environment
US10331462B1 (en) * 2018-11-06 2019-06-25 Cloudflare, Inc. Cloud computing platform that executes third-party code in a distributed cloud computing network
US11288733B2 (en) * 2018-11-14 2022-03-29 Mastercard International Incorporated Interactive 3D image projection systems and methods
US11854148B2 (en) * 2018-11-16 2023-12-26 Microsoft Technology Licensing, Llc Virtual content display opportunity in mixed reality
CN111225233A (zh) * 2018-11-27 2020-06-02 深圳桑菲消费通信有限公司 一种多维环境渲染系统及渲染方法
US11467656B2 (en) 2019-03-04 2022-10-11 Magical Technologies, Llc Virtual object control of a physical device and/or physical device control of a virtual object
US11170579B2 (en) * 2019-04-09 2021-11-09 Microsoft Technology Licensing, Llc Hybrid rendering
US11164395B2 (en) 2019-05-15 2021-11-02 Microsoft Technology Licensing, Llc Structure switching in a three-dimensional environment
US11287947B2 (en) * 2019-05-15 2022-03-29 Microsoft Technology Licensing, Llc Contextual input in a three-dimensional environment
US11087560B2 (en) 2019-05-15 2021-08-10 Microsoft Technology Licensing, Llc Normalization of objects for a 3D environment within an authoring application
WO2021096931A1 (en) * 2019-11-12 2021-05-20 Magic Leap, Inc. Cross reality system with localization service and shared location-based content
US11798118B2 (en) 2019-12-20 2023-10-24 Intel Corporation Asset caching in cloud rendering computing architectures
US11455769B2 (en) * 2020-01-22 2022-09-27 Vntana, Inc. Container for physically based rendering
EP4111696A1 (en) * 2020-02-28 2023-01-04 Google LLC System and method for playback of augmented reality content triggered by image recognition
CN112911356B (zh) * 2020-05-29 2022-04-05 腾讯科技(深圳)有限公司 一种虚拟现实vr视频的播放方法及相关设备
US11227445B1 (en) 2020-08-31 2022-01-18 Facebook Technologies, Llc Artificial reality augments and surfaces
US11176755B1 (en) 2020-08-31 2021-11-16 Facebook Technologies, Llc Artificial reality augments and surfaces
CN112230766A (zh) * 2020-09-30 2021-01-15 北京图灵智慧科技有限公司 一种基于ar与ai结合的购物方法及系统
US11409405B1 (en) 2020-12-22 2022-08-09 Facebook Technologies, Llc Augment orchestration in an artificial reality environment
US11210844B1 (en) 2021-04-13 2021-12-28 Dapper Labs Inc. System and method for creating, managing, and displaying 3D digital collectibles
US11099709B1 (en) 2021-04-13 2021-08-24 Dapper Labs Inc. System and method for creating, managing, and displaying an interactive display for 3D digital collectibles
USD991271S1 (en) 2021-04-30 2023-07-04 Dapper Labs, Inc. Display screen with an animated graphical user interface
US11227010B1 (en) 2021-05-03 2022-01-18 Dapper Labs Inc. System and method for creating, managing, and displaying user owned collections of 3D digital collectibles
US11533467B2 (en) * 2021-05-04 2022-12-20 Dapper Labs, Inc. System and method for creating, managing, and displaying 3D digital collectibles with overlay display elements and surrounding structure display elements
US11170582B1 (en) 2021-05-04 2021-11-09 Dapper Labs Inc. System and method for creating, managing, and displaying limited edition, serialized 3D digital collectibles with visual indicators of rarity classifications
KR102565481B1 (ko) 2021-06-23 2023-08-09 (주) 올림플래닛 웹 기반 가상 공간 3d 컨텐츠 패키징 및 스트리밍 서비스 제공 방법, 이를 위한 장치 및 시스템
US11762952B2 (en) 2021-06-28 2023-09-19 Meta Platforms Technologies, Llc Artificial reality application lifecycle
US11748944B2 (en) 2021-10-27 2023-09-05 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US11798247B2 (en) 2021-10-27 2023-10-24 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US20230196766A1 (en) * 2021-12-22 2023-06-22 Meta Platforms Technologies, Llc Artificial Reality Applications Through Virtual Object Definitions and Invocation
KR102605698B1 (ko) * 2022-02-11 2023-11-24 주식회사 유룸 이벤트 생성 기능을 갖는 3d 웹사이트 제작 플랫폼 제공 시스템, 방법 및 프로그램
US11928078B2 (en) * 2022-03-04 2024-03-12 Lemon Inc. Creating effect assets while avoiding size inflation
US12026527B2 (en) 2022-05-10 2024-07-02 Meta Platforms Technologies, Llc World-controlled and application-controlled augments in an artificial-reality environment
US11995787B2 (en) 2022-07-06 2024-05-28 Journee Technologies Gmbh Systems and methods for the interactive rendering of a virtual environment on a user device with limited computational capacity
GB2622668A (en) * 2022-07-06 2024-03-27 Journee Tech Gmbh Systems and methods for the interactive rendering of a virtual environment on a user device with limited computational capacity
WO2024043611A1 (ko) * 2022-08-26 2024-02-29 삼성전자주식회사 디스플레이 모듈 제어 방법 및 상기 방법을 수행하는 전자 장치
US11869136B1 (en) 2022-12-16 2024-01-09 Google Llc User-context aware rendering dataset selection
CN116679830A (zh) * 2023-06-05 2023-09-01 苏州萤火空间科技有限公司 一种用于混合现实的人机交互系统、方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140100547A (ko) * 2011-12-27 2014-08-14 인텔 코포레이션 모바일 장치상의 풀 3d 상호작용
KR20160000873A (ko) * 2014-06-25 2016-01-05 한국과학기술원 머리 착용형 컬러 깊이 카메라를 활용한 손 위치 추정 장치 및 방법, 이를 이용한 맨 손 상호작용 시스템

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140722A1 (en) * 2006-11-20 2008-06-12 Vivalog Llc Interactive viewing, asynchronous retrieval, and annotation of medical images
WO2009000028A1 (en) 2007-06-22 2008-12-31 Global Coordinate Software Limited Virtual 3d environments
US20100128112A1 (en) * 2008-11-26 2010-05-27 Samsung Electronics Co., Ltd Immersive display system for interacting with three-dimensional content
US9064023B2 (en) 2008-12-29 2015-06-23 Avaya Inc. Providing web content in the context of a virtual environment
CN101465957B (zh) * 2008-12-30 2011-01-26 应旭峰 一种虚拟三维场景中实现遥控互动的系统
KR20130050369A (ko) 2010-08-27 2013-05-15 인텔 코포레이션 터치 감지 장치 및 방법
US9606992B2 (en) 2011-09-30 2017-03-28 Microsoft Technology Licensing, Llc Personal audio/visual apparatus providing resource management
JP5966834B2 (ja) 2012-02-29 2016-08-10 株式会社Jvcケンウッド 画像処理装置、画像処理方法及び画像処理プログラム
US20130263059A1 (en) * 2012-03-28 2013-10-03 Innovative Icroms, S.L. Method and system for managing and displaying mutlimedia contents
IL298018B2 (en) * 2013-03-11 2024-04-01 Magic Leap Inc System and method for augmentation and virtual reality
KR101537651B1 (ko) * 2013-05-09 2015-07-17 주식회사 라임페이퍼 가상 메뉴 제공시스템 및 방법
US10388052B2 (en) * 2014-05-07 2019-08-20 Google Llc Methods and systems for adjusting animation duration
US20160180798A1 (en) * 2014-12-22 2016-06-23 Elwha Llc Systems, methods, and devices for controlling content update rates
US9478109B2 (en) 2014-12-29 2016-10-25 Immersion Corporation Virtual sensor in a virtual environment
CN104699247B (zh) * 2015-03-18 2017-12-12 北京七鑫易维信息技术有限公司 一种基于机器视觉的虚拟现实交互系统及方法
JP6250592B2 (ja) 2015-06-02 2017-12-20 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウントディスプレイ、情報処理装置、表示制御方法及びプログラム
CN105511618A (zh) * 2015-12-08 2016-04-20 北京小鸟看看科技有限公司 三维输入装置、头戴式装置及三维输入方法
US20170316387A1 (en) * 2016-04-29 2017-11-02 Microsoft Technology Licensing, Llc Automation of workflow events
EP4350647A3 (en) * 2016-06-03 2024-04-24 Magic Leap, Inc. Augmented reality identity verification
US10621773B2 (en) 2016-12-30 2020-04-14 Google Llc Rendering content in a 3D environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140100547A (ko) * 2011-12-27 2014-08-14 인텔 코포레이션 모바일 장치상의 풀 3d 상호작용
KR20160000873A (ko) * 2014-06-25 2016-01-05 한국과학기술원 머리 착용형 컬러 깊이 카메라를 활용한 손 위치 추정 장치 및 방법, 이를 이용한 맨 손 상호작용 시스템

Also Published As

Publication number Publication date
US10621773B2 (en) 2020-04-14
US20180190003A1 (en) 2018-07-05
KR102199807B1 (ko) 2021-01-07
CN108885522B (zh) 2021-07-06
CN113419635B (zh) 2024-07-12
JP6657421B2 (ja) 2020-03-04
JP2019520618A (ja) 2019-07-18
WO2018125295A1 (en) 2018-07-05
US20200279429A1 (en) 2020-09-03
JP2020098618A (ja) 2020-06-25
KR20210002768A (ko) 2021-01-08
CN113419635A (zh) 2021-09-21
KR102280719B1 (ko) 2021-07-22
CN108885522A (zh) 2018-11-23
US11113863B2 (en) 2021-09-07
JP6978528B2 (ja) 2021-12-08
EP3469472A1 (en) 2019-04-17

Similar Documents

Publication Publication Date Title
KR102280719B1 (ko) 3d 환경에서 콘텐츠 렌더링
AU2022271460B2 (en) Matching content to a spatial 3D environment
US11645034B2 (en) Matching content to a spatial 3D environment
US20200019295A1 (en) Systems and Methods To Administer a Chat Session In An Augmented Reality Environment
US20110288913A1 (en) Interactive Ads
KR20140086972A (ko) 모바일 광고를 위한 브리지 페이지
KR20230050856A (ko) 3d 환경에서 콘텐츠 렌더링
AU2011255291A1 (en) Interactive ads

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
A107 Divisional application of patent
GRNT Written decision to grant