KR20120131091A - 스프라이트 스트립 렌더러 - Google Patents

스프라이트 스트립 렌더러 Download PDF

Info

Publication number
KR20120131091A
KR20120131091A KR1020120020789A KR20120020789A KR20120131091A KR 20120131091 A KR20120131091 A KR 20120131091A KR 1020120020789 A KR1020120020789 A KR 1020120020789A KR 20120020789 A KR20120020789 A KR 20120020789A KR 20120131091 A KR20120131091 A KR 20120131091A
Authority
KR
South Korea
Prior art keywords
avatar
client
images
computer
sprite
Prior art date
Application number
KR1020120020789A
Other languages
English (en)
Other versions
KR101456328B1 (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 KR20120131091A publication Critical patent/KR20120131091A/ko
Application granted granted Critical
Publication of KR101456328B1 publication Critical patent/KR101456328B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5546Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history
    • A63F2300/5553Details of game data or player data management using player registration data, e.g. identification, account, preferences, game history user representation in the game field, e.g. avatar
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/08Bandwidth reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

가상 세계에서의 3D 아바타의 2D 이미지들을 생성하기 위한 기법들이 개시된다. 일 실시예에서, 3D 아바타를 위한 커스터마이제이션들을 지정하는 요청이 수신된다. 2D 이미지들은 요청에 기초하여 생성되며, 각각의 2D 이미지는 가상 세계에서 상이한 시야각으로부터 3D 아바타를 표현한다. 유리하게도, 클라이언트가 3D 아바타를 렌더링할 것을 요구하지 않고서, 2D 이미지들이 디스플레이를 위해 클라이언트로 송신될 수 있다.

Description

스프라이트 스트립 렌더러{SPRITE STRIP RENDERER}
관련 출원에 대한 상호 참조
본 출원은 2011년 3월 1일자로 출원된 미국 가특허출원 제61/448,155호의 우선권을 주장하며, 이것은 그 전체가 참조에 의해 여기에 포함된다.
기술분야
본 발명의 실시예들은 일반적으로 컴퓨터 게임에 관한 것으로, 더 구체적으로는 가상 세계에서 아바타(avatar)를 위한 이미지들을 생성하는 것에 관한 것이다.
가정용 컴퓨터 게임들 및 컴퓨터 게임 시스템들은 주류 소비자 제품이 되었다. 그러한 시스템들은 사용자가 집에서 통상의 텔레비전 수상기 또는 사용자가 지니고 있을 수 있는 핸드핼드형 디바이스 상에서 컴퓨터 게임을 하는 것을 허용한다. 전형적으로, 가정용 컴퓨터 게임 시스템들은 저장 디바이스(예를 들어, CD-ROM 디스크 또는 카트리지)로부터 컴퓨터 게임 코드를 판독하고, 디스플레이를 위해 텔레비전 스크린에 비디오를 전송하는 콘솔(console)을 포함한다. 컴퓨터 게임 시스템들은 또한 전형적으로 컴퓨터 게임을 하는 사용자가 게임의 캐릭터들 또는 다른 특징들(features)을 조작하기 위해 컴퓨터 게임에 입력을 제공하는 것을 허용하는 컨트롤러 디바이스를 포함한다.
일반적으로, 컴퓨터 게임의 설계자는 컴퓨터로 렌더링된(computer-rendered) 세계를 창조할 것이고, 거기에서 컴퓨터 게임 캐릭터들 또는 다른 특징들이 상호작용할 수 있을 것이다. 예를 들어, 많은 컴퓨터 게임들은 플레이어가 컴퓨터로 렌더링된 세계를 통해 아바타(예를 들어, 스프라이트 또는 캐릭터)를 조종하여 태스크들의 집합을 완수하는 것을 허용한다. 다른 컴퓨터 게임들은 플레이어가 컴퓨터로 렌더링된 세계를 통해 운송수단 또는 비행기를 제어하는 것을 허용한다. 2차원 컴퓨터 게임들에서는 캐릭터들이 2차원(예를 들어, 스크린상의 상하 또는 좌우)으로 이동할 수 있는데 반하여, 3차원 컴퓨터 게임들에서는 전형적으로 캐릭터들이 컴퓨터로 렌더링된 세계에서 3차원으로 이동하는 것이 허용된다.
본 발명의 실시예들은 클라이언트로부터 가상 세계에서의 제1 3D 아바타를 위한 커스터마이제이션(customization)을 지정하는 제1 요청을 수신하는 것을 포함하는 동작을 수행하기 위한 컴퓨터 구현 방법, 컴퓨터 프로그램 제품 및 시스템을 제공한다. 동작은 또한 제1 3D 아바타의 복수의 2D 이미지를 생성하는 것을 포함하며, 제1 3D 아바타는 지정된 커스터마이제이션을 사용하여 렌더링되며, 각각의 2D 이미지는 각각의 상이한 시야각으로부터 제1 3D 아바타를 표현한다. 동작은 또한 디스플레이를 위해 복수의 2D 이미지를 클라이언트에 송신하는 것을 포함한다.
위에서 언급된 본 발명의 특징들, 이점들 및 목적들이 성취되고 상세하게 이해될 수 있도록, 이상에서 간략하게 요약된 본 발명의 보다 더 구체적인 설명이 첨부 도면들에서 도시되는 실시예들을 참조하여 제공될 수 있다.
그러나, 본 발명은 다른 동등하게 효과적인 실시예들을 인정할 수 있으므로, 첨부 도면들은 단지 본 발명의 전형적 실시예들을 도시하며, 따라서 그 범위를 한정하는 것으로 간주되어서는 안 된다는 것에 유의해야 한다.
도 1은 본 발명의 일 실시예에 따라 가상 세계에서 3차원 아바타를 위한 스프라이트 스트립을 생성하기 위한 시스템을 도시한 블록도이다.
도 2a 및 도 2b는 본 발명의 일 실시예에 따라 3차원 아바타가 커스터마이즈될 수 있는 방법들을 도시한다.
도 3은 본 발명의 일 실시예에 따라 가상 세계 서버 애플리케이션으로 송신되는 아바타 커스터마이제이션들을 도시한다.
도 4는 본 발명의 일 실시예에 따라 애플리케이션에 의해 렌더링되는 3차원 아바타를 도시한다.
도 5는 본 발명의 일 실시예에 따라 애플리케이션에 의해 생성되는 스프라이트 스트립을 도시한다.
도 6은 본 발명의 일 실시예에 따라 3차원 아바타를 위한 스프라이트 스트립을 제공하기 위한 방법을 도시한 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 3차원 아바타를 위한 스프라이트 스트립을 생성하기 위한 방법을 도시한 흐름도이다.
도 8은 본 발명의 일 실시예에 따라 아바타를 렌더링할 필요없이 아바타를 디스플레이하기 위한 방법을 도시한 흐름도이다.
도 9는 본 발명의 일 실시예에 따라 아바타를 위한 캐싱된 스프라이트 스트립을 제공하기 위한 방법을 도시한 흐름도이다.
도 10은 본 발명의 일 실시예에 따라 하나 이상의 스프라이트 스트립 옵션으로 애플리케이션을 구성하기 위한 방법을 도시한 흐름도이다.
본 발명의 실시예들은 일반적으로 가상 세계에서 3차원 아바타를 위한 2차원 이미지들을 생성하기 위한 기법을 제공한다. 일 실시예는 가상 세계 서버 애플리케이션(또는 애플리케이션) 및 다수의 가상 세계 클라이언트 애플리케이션(또는 클라이언트들)을 포함하는 컴퓨터 게임을 제공한다. 애플리케이션은 클라이언트로부터 가상 세계에서의 3차원 아바타를 위한 커스터마이제이션들을 지정하는 제1 요청을 수신한다. 애플리케이션은 지정된 커스터마이제이션들에 기초하여 스프라이트 스트립을 생성한다. 스프라이트 스트립을 생성하는 것은, 지정된 커스터마이제이션을 사용하여 아바타를 렌더링하는 것과 복수의 시야각으로부터의 렌더링된 아바타의 복수의 2차원 이미지를 생성하는 것을 포함할 수 있다. 애플리케이션은 디스플레이를 위해 스프라이트 스트립을 클라이언트로 송신한다. 클라이언트는 디스플레이를 위해 스프라이트 스트립으로부터 선택된 하나 이상의 이미지를 사용하여 아바타를 출력할 수 있다. 유리하게는, 클라이언트는 아바타를 렌더링할 필요없이 아바타를 출력할 수 있다. 물론, 다른 클라이언트들은 애플리케이션에게 스프라이트 스트립을 요청하기보다는 직접 아바타를 렌더링할 수도 있다. 그러나, 스프라이트 스트립에 기초하여 아바타를 출력하는 것이 적어도 일부의 경우에는 아바타를 렌더링하는 것보다 더 효율적일 수 있다. 특정한 경우의 필요에 맞도록, 예를 들어 사실성과 높은 프레임 레이트라는 상충하는 목적들 사이의 균형을 이루도록, 컴퓨터 게임의 개발자들 및/또는 사용자들에 의해, 클라이언트가 아바타를 렌더링하여야 하는지 아니면 스프라이트 스트립을 요청해야 하는지에 대한 결정이 이루어질 수 있다.
실시예에 따라, 스프라이트 스트립 내의 각각의 이미지는 픽셀들의 어레이 또는 기하학적 설명(geometric description)으로서 표현될 수 있다. 픽셀들의 어레이로서 저장되는 이미지는 래스터 그래픽 이미지 또는 비트맵이라고 지칭될 수 있다. 기하학적 설명으로서 저장되는 이미지는 벡터 그래픽 이미지라고 지칭될 수 있다. 기하학적 설명은 점, 선, 곡선, 형상 및/또는 다각형과 같은 하나 이상의 기하학적 프리미티브(primitive)들을 수학식의 형태로 지정할 수 있다. 비트맵들의 클라이언트측 출력 및/또는 (2차원) 벡터 그래픽 이미지의 클라이언트측 렌더링은 적어도 일부의 경우에서는 3차원 아바타의 클라이언트측 렌더링보다 더 효율적일 수 있다.
일 실시예에서, 애플리케이션은 또한 생성된 스프라이트 스트립들을 캐싱할 수 있다. 애플리케이션은 후속하여 클라이언트로부터 가상 세계에서의 제2 아바타를 위한 커스터마이제이션들을 지정하는 요청을 수신할 수 있다. 지정된 커스터마이제이션들이 캐싱된 스프라이트 스트립에 대응한다고 결정하면, 애플리케이션은 그 스프라이트 스트립을 클라이언트에 송신한다. 따라서, 서버 또는 클라이언트가 제2 아바타를 렌더링할 필요없이, 클라이언트가 디스플레이를 위해 제2 아바타를 출력할 수 있다. 또한, 일부 실시예들에서, 클라이언트는 하나 이상의 스프라이트 스트립 옵션을 지정할 수 있다. 스프라이트 스트립 옵션들은 이미지들의 희망되는 해상도, 이미지들에 대해 희망되는 압축 품질, 스프라이트 스트립 내에 포함될 이미지들의 희망되는 계수(count), 및 아바타의 이미지들을 생성할 하나 이상의 희망되는 시야각을 포함할 수 있다.
일 실시예에서, 스프라이트 스트립 옵션들은 사용자가 구성할 수 있고/있거나, 클라이언트가 실행되는 컴퓨터의 시스템 사양들 및/또는 시스템 메트릭들에 기초하여 클라이언트에 의해 결정될 수 있다. 클라이언트는 컴퓨터의 시스템 사양들에 관한 정보에 기초하여, 및/또는 컴퓨터 상에서 하나 이상의 벤치마킹 애플리케이션을 실행한 결과에 기초하여 시스템 메트릭들의 인디케이터를 계산할 수 있다. 벤치마킹 애플리케이션은 하나 이상의 사전 정의된 테스트를 사용하여 컴퓨터 시스템의 하나 이상의 능력에 액세스하도록 설정된다. 대안적인 실시예에서, 시스템 메트릭들은 컴퓨터가 클라이언트를 실행하고 있는 프레임 레이트를 포함할 수 있다. 클라이언트는 스프라이트 스트립들의 생성을 커스터마이즈하기 위해 스프라이트 스트립 옵션들을 애플리케이션에 송신할 수 있다. 스프라이트 스트립 옵션들은 또한 클라이언트의 실시간 시스템 메트릭들에 기초하여 클라이언트에 의해 동적으로 변경될 수 있다. 예를 들어, 클라이언트의 프레임 레이트가 지정된 임계값 아래로 떨어지면, 클라이언트는 더 낮은 해상도의 스프라이트 스트립 이미지들 및/또는 감소된 개수의 스프라이트 스트립 이미지들을 송신하라고 서버에 요청할 수 있다. 이렇게 함으로써, 클라이언트가 후속하여 더 높은 프레임 레이트에서 실행하는 것을 허용할 수 있다. 따라서, 디스플레이를 위해 아바타를 출력하는 프로세스가 컴퓨터의 시스템 사양들의 필요에 맞게 조정될 수 있어, 가상 세계에서 더 매끄럽고 더 강렬한 사용자 경험을 제공한다. 예를 들어, 클라이언트 애플리케이션은 여기에서 개시되는 기법들을 사용하여, 보다 넓은 범위의 클라이언트 시스템 사양들을 지원할 수 있다. 클라이언트 애플리케이션은 또한 적어도 일부의 경우에는, 보다 높은 프레임 레이트를 지원할 수 있고/거나 더 높아진 수준의 응답성으로 동작할 수 있다. 유리하게는, 컴퓨터 게임에 관한 사용자 만족이 개선될 수 있다.
여기에서는 본 발명의 실시예들이 참조된다. 그러나, 본 발명이 특정하게 설명된 실시예들에 한정되지 않는다는 것이 이해되어야 한다. 대신에, 상이한 실시예들에 관련된 것이든 아니든 간에, 이하의 특징들 및 구성요소들의 임의의 조합이 본 발명을 구현하고 실시하기 위해 고려될 수 있다. 또한, 본 발명의 실시예들이 다른 가능한 해법들 및/또는 종래 기술 이상의 이점을 성취할 수 있더라도, 주어진 실시예에 의해 특정 이점이 성취되는지 여부가 본 발명을 한정하는 것은 아니다. 따라서, 이하의 양태들, 특징들, 실시예들 및 이점들은 단지 예시적이며 청구항(들) 내에서 명시적으로 인용되는 경우를 제외하고는 첨부되는 청구항들의 구성요소들 또는 한정사항들로 고려되지 않는다. 마찬가지로, "본 발명"이라 함은 여기에 개시된 임의의 발명의 주제의 일반화로 해석되어서는 안 되며, 청구항(들) 내에서 명시적으로 인용되는 경우를 제외하고는 첨부되는 청구항들의 구성요소 또는 한정사항으로 고려되어서는 안 된다.
본 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 본 발명의 양태들은 시스템, 방법 또는 컴퓨터 프로그램 제품으로서 실시될 수 있다. 따라서, 본 발명의 양태들은 전적으로 하드웨어인 실시예, 전적으로 소프트웨어인 실시예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함), 또는 여기에서 모두 "회로", "모듈" 또는 "시스템"이라고 일반적으로 지칭될 수 있는 소프트웨어 및 하드웨어 양태들을 조합한 실시예의 형태를 취할 수 있다. 또한, 본 발명의 양태들은 컴퓨터 판독가능한 프로그램 코드가 구현되어 있는 하나 이상의 컴퓨터 판독가능한 매체(들) 내에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 판독가능한 매체(들)의 임의의 조합이 사용될 수 있다. 컴퓨터 판독가능한 매체는 컴퓨터 판독가능한 신호 매체 또는 컴퓨터 판독가능한 저장 매체일 수 있다. 컴퓨터 판독가능한 저장 매체는, 예를 들어 전자적, 자기적, 광학적, 전자기적, 적외선 또는 반도체 시스템, 장치 또는 디바이스, 또는 상기한 것의 임의의 적절한 조합일 수 있으나, 이에 한정되지 않는다. 컴퓨터 판독가능한 저장 매체의 보다 구체적인 예들(불완전한 목록)은: 하나 이상의 배선을 가지는 전기적 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거가능하고 프로그래밍가능한 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 컴팩트 디스크 판독 전용 메모리(CD-ROM), 광학적 저장 디바이스, 자기적 저장 디바이스 또는 상기한 것의 임의의 적절한 조합을 포함한다. 본 명세서의 맥락에서, 컴퓨터 판독가능한 저장 매체는 명령 실행 시스템, 장치 또는 디바이스에 의해 사용될, 또는 그와 관련하여 사용될 프로그램을 포함하거나 저장할 수 있는 임의의 유형(tangible) 매체일 수 있다.
컴퓨터 판독가능한 신호 매체는 예를 들어 기저대역 내에 또는 반송파의 일부로서 컴퓨터 판독가능한 프로그램 코드가 구현되어 있는, 전파되는 데이터 신호를 포함할 수 있다. 이러한 전파되는 신호는, 전자기적, 광학적 또는 이들의 임의의 적절한 조합을 포함하지만 이에 한정되지 않는 다양한 형태 중 임의의 것을 취할 수 있다. 컴퓨터 판독가능한 신호 매체는 컴퓨터 판독가능한 저장 매체가 아니면서, 명령 실행 시스템, 장치 또는 디바이스에 의해 사용될, 또는 그와 관련하여 사용될 프로그램을 통신, 전파 또는 운반할 수 있는 임의의 컴퓨터 판독가능한 매체일 수 있다.
컴퓨터 판독가능한 매체 상에 구현된 프로그램 코드는 무선, 유선, 광섬유 케이블, RF 등, 또는 상기한 것의 임의의 적절한 조합을 포함하지만 이에 한정되지 않는 임의의 적절한 매체를 사용하여 전송될 수 있다. 본 발명의 양태들을 위한 동작을 실행하기 위한 컴퓨터 프로그램 코드는, 자바, 스몰토크(Smalltalk), C++ 또는 이와 유사한 것과 같은 개체 지향 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 이와 유사한 프로그래밍 언어들 같은 종래의 절차적 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 프로그램 코드는 전적으로 사용자의 컴퓨터 상에서, 부분적으로 사용자의 컴퓨터 상에서, 독립적 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터 상에서 및 부분적으로 원격 컴퓨터 상에서, 또는 전적으로 원격 컴퓨터 또는 서버 상에서 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는 LAN(local area network) 또는 WAN(wide area network)을 포함하는 임의의 유형의 네트워크를 통해 사용자의 컴퓨터에 접속될 수 있고, 또는 (예를 들어, 인터넷 서비스 제공자를 이용하여 인터넷을 통해) 외부의 컴퓨터에 접속이 이루어질 수 있다.
본 발명의 양태들은 이하에서 본 발명의 실시예들에 따른 방법들, 장치들(시스템들) 및 컴퓨터 프로그램 제품들의 흐름도 및/또는 블록도들을 참조하여 설명된다. 흐름도 및/또는 블록도의 각각의 블록, 및 흐름도 및/또는 블록도 내의 블록들의 조합들은 컴퓨터 프로그램 명령어들에 의해 구현될 수 있음이 이해될 것이다. 이러한 컴퓨터 프로그램 명령어들은, 컴퓨터 또는 다른 프로그래밍가능한 데이터 처리 장치들의 프로세서를 통해 실행되는 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들 내에서 지정된 기능들/액트(act)들을 구현하기 위한 수단을 생성하도록 범용 컴퓨터, 특수 목적 컴퓨터, 또는 머신을 만들어내는 다른 프로그래밍가능한 데이터 처리 장치의 프로세서에 제공될 수 있다.
이러한 컴퓨터 프로그램 명령어들은 또한 컴퓨터, 다른 프로그래밍가능한 데이터 처리 장치, 또는 특정 방식으로 기능하는 다른 디바이스들을 지휘할 수 있는 컴퓨터 판독가능한 매체 내에 저장될 수 있으며, 이러한 컴퓨터 판독가능한 매체 내에 저장된 명령어들은 흐름도 및/또는 블록도의 블록 또는 블록들 내에서 지정된 기능/액트를 구현하는 명령어들을 포함하는 제조 물품을 만들어내게 된다.
컴퓨터 프로그램 명령어들은 또한 컴퓨터, 다른 프로그래밍가능한 데이터 처리 장치 또는 다른 디바이스들에 로드되어, 일련의 동작 단계들이 컴퓨터, 다른 프로그래밍가능한 장치들 또는 다른 디바이스들 상에서 수행되어, 컴퓨터 또는 다른 프로그래밍가능한 장치 상에서 실행되는 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들 내에서 지정된 기능들/액트들을 구현하기 위한 프로세스들을 제공하도록 컴퓨터 구현 프로세스를 생성하게 할 수 있다.
도면들 내의 흐름도 및 블록도들은 본 발명의 다양한 실시예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능성 및 동작을 도시한다. 이와 관련하여, 흐름도 또는 블록도들 내의 각각의 블록은 지정된 논리적 기능(들)을 구현하기 위한 하나 이상의 실행가능한 명령어들을 포함하는 모듈, 세그먼트, 또는 코드의 일부를 표현할 수 있다. 일부 대안적인 구현들에서, 블록 내에 명기된 기능들은 도면들에 명기된 순서와 다르게 발생할 수 있음에도 유의하여야 한다. 예를 들어, 관련되는 기능성에 따라, 연속하여 도시된 두개의 블록이 실제로는 실질적으로 동시에 실행되거나, 블록들이 때로는 역순으로 실행될 수 있다. 블록도들 및/또는 흐름도의 각각의 블록, 및 블록도들 및/또는 흐름도 내의 블록들의 조합들이, 지정된 기능들 또는 액트들을 수행하는 특수 목적의 하드웨어 기반 시스템들, 또는 특수 목적 하드웨어와 컴퓨터 명령어들의 조합에 의해 구현될 수 있음에 또한 유의해야 할 것이다.
도 1은 본 발명의 일 실시예에 따라 가상 세계에서 3차원 아바타를 위한 스프라이트 스트립을 생성하기 위한 시스템(100)을 도시한 블록도이다. 시스템(100)은 컴퓨터(102)를 포함한다. 컴퓨터(102)는 네트워크(130)를 통해 다른 컴퓨터들에 접속될 수 있다. 일반적으로, 네트워크(130)는 전기통신 네트워크 및/또는 WAN일 수 있다. 특정 실시예에서, 네트워크(130)는 인터넷이다.
컴퓨터(102)는 일반적으로 버스(112)를 통해 메모리(106), 네트워크 인터페이스 장치(110), 저장소(108), 입력 장치(114), 및 출력 디바이스(116)에 접속된 프로세서(104)를 포함한다. 컴퓨터(102)는 일반적으로 운영 체제(152)의 제어 하에 있다. 운영 체제(152)의 예들은 UNIX, Microsoft Windows® 운영 체제의 버전들, 및 Linux® 운영 체제의 배포판들을 포함한다. 보다 일반적으로, 여기에서 개시된 기능들을 지원하는 어떠한 운영 체제라도 사용될 수 있다. 프로세서(104)는 단일 CPU, 다수 CPU, 다수의 프로세싱 코어를 가지는 단일 CPU 및 이와 유사한 것으로 표현되도록 포함될 수 있다. 마찬가지로, 메모리(106)는 랜덤 액세스 메모리일 수 있다. 메모리(106)가 단일 엔터티로서 도시되었지만, 메모리(106)는 복수의 모듈을 포함할 수 있으며, 메모리(106)는 고속 레지스터 및 캐시로부터 저속이지만 더 큰 DRAM 칩들에 이르기까지 여러 수준에서 존재할 수 있음이 이해되어야 한다. 네트워크 인터페이스 디바이스(110)는 컴퓨터(102)가 네트워크(130)를 통해 다른 컴퓨터들과 통신하는 것을 허용하는 임의의 유형의 네트워크 통신 디바이스일 수 있다.
저장소(108)는 하드 디스크 드라이브 저장 디바이스일 수 있다. 저장소(108)가 단일 유닛으로 도시되었지만, 저장소(108)는 고정식 디스크 드라이브들, 플로피 디스크 드라이브들, 테이프 드라이브들, 이동식 메모리 카드들, 또는 광학적 저장소와 같은 고정식 및/또는 이동식 저장 디바이스들의 조합일 수 있다. 메모리(106) 및 저장소(108)는 다수의 주요 및 부수 저장 디바이스들을 포괄(span)하는 가상 어드레스 공간의 일부일 수 있다.
입력 장치(114)는 컴퓨터(102)에 입력을 제공하기 위한 임의의 디바이스일 수 있다. 예를 들어, 키보드 및/또는 마우스가 사용될 수 있다. 출력 디바이스(116)는 컴퓨터(102)의 사용자에 출력을 제공하기 위한 임의의 디바이스일 수 있다. 예를 들어, 출력 디바이스(116)는 각각의 인터페이스 카드를 가지는 임의의 종래의 디스플레이 스크린 또는 스피커 세트들일 수 있다. 입력 장치(114)와 별개로 도시되었지만, 출력 디바이스(116) 및 입력 장치(114)는 결합될 수 있다. 예를 들어, 통합 터치 스크린을 가지는 디스플레이 스크린이 사용될 수 있다.
특히, 본 발명의 실시예들이 클라우드 컴퓨팅 기반시설을 통해 최종 사용자에 공급될 수 있음이 고려된다. 클라우드 컴퓨팅은, 일반적으로 스케일링가능한 컴퓨팅 자원들을 네트워크를 통한 서비스로서 공급하는 것을 지칭한다. 보다 공식적으로, 클라우드 컴퓨팅은 컴퓨팅 자원과 그것의 기본 기술적 아키텍처(예를 들어, 서버들, 저장소, 네트워크들) 사이에서, 최소한의 관리 노력 또는 서비스 제공자 상호작용으로 신속하게 제공되고 배포될 수 있는 구성가능한 컴퓨팅 자원들의 공유 풀(shared pool)로의 편리한 온-디맨드 네트워크 액세스를 가능하게 하는 추상화(abstraction)를 제공하는 컴퓨팅 능력으로서 정의될 수 있다. 따라서, 클라우드 컴퓨팅은 컴퓨팅 자원들을 제공하기 위해 사용된 기본 물리적 시스템들(또는 그러한 시스템들의 위치들)에 상관없이, 사용자가 "클라우드" 내의 가상의 컴퓨팅 자원들(예를 들어, 저장소, 데이터, 애플리케이션들, 및 심지어는 완전 가상화된 컴퓨팅 시스템)에 액세스하는 것을 허용한다.
클라우드 컴퓨팅 자원들은 사용량에 따른 지불 방식으로 사용자에 제공될 수 있으며, 여기에서 사용자들은 실제 사용된 컴퓨팅 자원들(예를 들어, 사용자에 의해 소비된 저장 공간의 양 또는 사용자에 의해 인스턴스화된 가상화된 시스템의 수)에 대해서만 청구받는다. 사용자는 언제든, 그리고 어느 곳으로부터든 인터넷을 통해 클라우드 내에 상주하는 자원들 중 임의의 것에 액세스할 수 있다. 본 발명의 맥락에서, 사용자는 클라우드 내에서 이용가능한 애플리케이션들(예를 들어, 컴퓨터 게임) 또는 관련 데이터에 액세스할 수 있다. 예를 들어, 여기에서 설명되는 컴퓨터 게임은 클라우드 내의 컴퓨팅 시스템 상에서 실행될 수 있으며, 이에 의해 사용자들이 클라우드에 접속된 네트워크(예를 들어, 인터넷)에 접속된 임의의 컴퓨팅 시스템으로부터 게임에 액세스하는 것을 허용한다. 마찬가지로, 여기에서 설명되는 스프라이트 스트립들은 클라우드 내에 캐싱될 수 있으며, 후속하는 클라이언트 요청들을 서비스하기 위해 사용될 수 있다.
도시된 바와 같이, 컴퓨터(102)의 메모리(106)는 애플리케이션(150), 아바타 커스터마이제이션(152), 및 렌더링된 아바타(154)를 포함한다. 컴퓨터(102)의 저장소(108)는 스프라이트 스트립(156)을 포함한다. 일 실시예에서, 애플리케이션(150)은 컴퓨터 게임의 가상 세계를 제공하기 위해 하나 이상의 가상 세계 클라이언트 애플리케이션(170)(또는 클라이언트)과 통신하도록 구성된 가상 세계 서버 애플리케이션이다. 각각의 가상 세계 클라이언트 애플리케이션(170)은 네트워크(130)를 통해 컴퓨터(102)에 접속된 각각의 컴퓨터 상에서 실행될 수 있다. 일 실시예에서, 컴퓨터 게임은 이하의 장르: 액션, 어드벤쳐, 아케이드, 롤-플레잉, 시뮬레이션, 스포츠, 레이싱, 격투, 슈팅, 슈터, 전략 및 퍼즐 중 하나 이상의 것일 수 있다. 또한, 컴퓨터 게임은 MMORPG(massively multiplayer online role-playing game)일 수도 있다. 일 실시예에서, 레이싱 장르의 컴퓨터 게임들은 주요 게임 목적이 시계, 또는 다른 컴퓨터 또는 플레이어에 의해 제어되는 캐릭터들에 맞서 레이스 코스를 따라 달리는 것인 임의의 게임을 지칭한다. 레이싱은 육지, 바다 및/또는 공중에서 발생할 수 있으며, 적절한 운송수단들을 수반할 수 있다. 또한, 레이싱은 플레이어에 대해 일인칭 또는 삼인칭 시점에서 발생할 수 있다.
일 실시예에서, 각각의 아바타는 플레이어에 의해 제어되거나 컴퓨터에 의해 제어될 수 있다. 아바타는 움직임 및/또는 액션들이 (컴퓨터 게임 내의 다른 시각적 개체의 제어를 통해 간접적으로 하지 않고) 플레이어 또는 컴퓨터에 의해 직접 제어될 수 있는, 컴퓨터 게임 내의 임의의 시각적 개체를 지칭할 수 있다. 예를 들어, 아바타는 플레이어 캐릭터, 플레이어 운송수단, 또는 컴퓨터 게임을 하는 동안 플레이어 또는 컴퓨터가 역할을 맡는 다른 임의의 캐릭터 또는 개체(예를 들어, 괴물 또는 악당)일 수 있다. 아바타는 또한 컴퓨터 내의 논-플레이어 캐릭터(non-player character; NPC)일 수 있다. 또한, 각각의 아바타는 하나 이상의 커스터마이즈 가능한 속성을 포함할 수 있다. 각각의 속성은 아바타의 시각적 외양에 영향을 준다. 예를 들어, 아바타가 사람을 표현한다면, 속성들은 얼굴 모양, 피부색, 머리색, 눈썹 유형, 코 유형, 아바타 신장, 몸통 크기 등을 포함할 수 있다. 속성들은 또한 모자, 코트, 신발, 보석 등과 같이 아바타에 의해 착용되는 임의의 옷 또는 액세서리들을 포함할 수 있다. 아바타가 자동차를 표현하는 경우, 속성들은 외장 색상, 내장 색상, 차체 스타일, 휠 유형 등을 포함할 수 있다. 일부 실시예들에서, 플레이어는 아바타가 생성되는 때에만 아바타를 커스터마이즈하도록 허용된다. 다른 실시예들에서, 플레이어는 아바타를 생성한 이후에도 아바타의 하나 이상의 속성을 커스터마이즈하도록 허용된다.
일 실시예에서, 애플리케이션(150)은 클라이언트(170)로부터 가상 세계에서의 3차원 아바타에 대해 만들어진 커스터마이제이션들을 지정하는 요청을 수신한다. 3차원 아바타는 클라이언트(170)를 사용하는 플레이어의 아바타, 다른 플레이어의 아바타, 또는 컴퓨터에 의해 제어되는 아바타일 수 있다. 지정된 커스터마이제이션들은 여기에서 아바타 커스터마이제이션(152)이라고 지칭된다. 일 실시예에서, 아바타 커스터마이제이션들(152)은 가상 세계에서의 아바타의 시각적 외양을 완전히 정의한다. 요청에 응답하여, 애플리케이션(150)은 아바타 커스터마이제이션들(152)에 기초하여 스프라이트 스트립(156)을 생성한다.
일 실시예에서, 스프라이트 스트립(156)을 생성하기 위해, 애플리케이션(150)은 3차원 아바타를 렌더링하고, 렌더링된 아바타의 다수의 이미지를 생성할 수 있으며, 각각의 이미지는 렌더링된 아바타의 상이한 시야각에 대응한다. 생성된 스프라이트 스트립은 다수의 이미지를 포함한다. 여기서 사용될 때, 이미지는 디지털 이미지들을 저장하기 위한 비트들의 공간적으로 맵핑된 어레이를 지칭한다. 이에 관하여, 각각의 이미지는 가상 세계에서의 장면과 같은 보다 큰 장면 내로 통합되도록 구성된 2차원 디지털 이미지를 지칭하는 스프라이트를 표현하는 것으로 고려될 수 있다. 애플리케이션(150)은 가상 세계의 장면 내에서의 디스플레이를 위해, 그 장면에 의해 요구되는 대로의 아바타의 시야각에 기초하여, 이미지들 중 하나 이상을 출력하는 클라이언트에 스프라이트 스트립을 송신한다. 따라서, 클라이언트는 아바타를 렌더링할 필요없이, 단일 네트워크 왕복(roundtrip)만을 사용하여 아바타를 디스플레이할 수 있으며, 이것은 클라이언트의 성능을 개선할 수 있다. 특히, 클라이언트의 성능은 감소된 레이턴시 및/또는 감소된 처리 오버헤드 면에서 대안적인 실시예들에 비해 개선될 수 있다.
예를 들어, 대안적인 실시예는 클라이언트와 애플리케이션 사이에서 2회 이상의 네트워크 왕복을 필요로 할 수 있는데, 예를 들어 애플리케이션은 먼저 단일 이미지에 연관된 (URL(uniform resource locator)과 같은) 위치 인디케이터로 클라이언트 요청에 응답하고, 이후, 클라이언트가 위치 인디케이터에 기초하여 단일 이미지를 검색한다. 이미지를 검색하기 위한 2회 이상의 네트워크 왕복을 가지는 것은 적어도 일부의 경우에는 바람직하지 않은 시각적 아티팩트를 초래할 수 있다. 바람직하지 않은 시각적 아티팩트의 예는 디스플레이되고 있는 장면에 후속하는 장면에서의 아바타들의 갑작스런 출현에 의해 특징지어지는 "팝 인(popping in)" 효과이다. 바람직하지 않은 시각적 아티팩트들은 애플리케이션(150)과 클라이언트(170) 사이에서 어떠한 위치 인디케이터도 교환되는 것을 요구하지 않음으로써 감소될 수 있다. 유리하게도, 여기에서의 기법들을 사용하여 플레이어 아바타, 다른 플레이어들의 아바타들, 및/또는 컴퓨터에 의해 제어되는 아바타들을 디스플레이함으로써 적어도 일부의 경우에서 클라이언트의 성능이 상당히 개선될 수 있다.
도 2a-2b는 본 발명의 일 실시예에 따라 3차원 아바타가 커스터마이즈될 수 있게 하는 방법을 도시한다. 커스터마이즈되는 아바타는 인간을 표현하는 것으로 가정한다. 도 2a에 도시된 바와 같이, 컴퓨터 게임(150)은 가상 세계에서 아바타에 의해 착용되도록 플레이어에 의해 선택가능한 다수의 모자(202)를 제공할 수 있다. 각각의 모자는 각각의 식별자(204) 및 설명(206)과 연관될 수 있다. 또한 각각의 모자의 미리보기(208)가 예시의 목적으로 도시된다. 모자들은 모자 식별자 "01"을 가지는 머리띠, 모자 식별자 "02"를 가지는 야구 모자, 및 모자 식별자 "03"을 가지는 탑 해트(top hat)를 포함한다.
위의 예에 이어서, 도 2b에 도시되는 바와 같이, 컴퓨터 게임(150)은 가상 세계에서 아바타에 의해 착용되도록 플레이어에 의해 선택가능한 다수 유형의 옷(210)을 또한 제공할 수 있다. 각각의 유형의 옷은 각각의 옷 식별자(212) 및 설명(214)과 연관될 수 있다. 또한, 각각의 유형의 옷의 미리보기(216)가 예시의 목적으로 도시된다. 옷(210)의 유형들은 옷 식별자 "01"을 가지는 한 벌의 작업복(overalls), 옷 식별자 "02"를 가지는 티셔츠, 및 옷 식별자 "03"을 가지는 망토를 포함한다.
가상 세계에서의 각각의 아바타는, 각각의 아바타에 의해 착용되는 모자와 옷에 의해 완전히 정의되는 시각적 외양을 가지는 것으로 가정한다. 바꿔 말하면, 가상 세계의 플레이어들은 단지 그들의 아바타들에 의해 착용되는 모자 및 옷을 커스터마이즈하도록 허용될 뿐이라고 가정한다. 일 실시예에서, 아바타를 렌더링할 필요없이 아바타를 디스플레이하기 위해서, 클라이언트(170)는 애플리케이션(150)에 요청을 송신하며, 요청은 이전에 아바타에 대해 이루어진 커스터마이제이션들을 포함한다. 커스터마이제이션들은 임의의 플레이어에 의해 이루어지거나 가상 세계에 대한(예를 들어, NPC에 대한) 컨텐츠 제작자와 같은 관리 사용자에 의해 정의될 수 있다.
도 3은 본 발명의 일 실시예에 따라 애플리케이션(150)에 송신되는 아바타 커스터마이제이션들(152)을 도시한다. 도시된 바와 같이, 아바타 커스터마이제이션들(152)은 아바타 식별자(302)를 통해 디스플레이될 아바타를 식별한다. 또한, 요청에 포함되도록 요구되는 것은 아니지만, 아바타의 이름(304)이 예시의 목적으로 도시된다. 아바타 커스터마이제이션들(152)은 아바타 식별자(302)를 각각의 모자 식별자(306) 및 옷 식별자(308)와 연관시킨다. 이러한 특정한 예에서, 아바타 커스터마이제이션들(152)은, 클라이언트(170)가 이름이 밥이고 아바타 식별자 "101"을 가지는 아바타를 디스플레이하기를 원한다는 것을 애플리케이션(150)에 나타낸다. 아바타 커스터마이제이션들(152)은 또한, 아바타가 모자 식별자 "03" 및 옷 식별자 "03"에 의해 주어진 대로, 탑 해트 및 망토를 착용하는 것으로서 특징지어질 수 있음을 애플리케이션(150)에 나타낸다. 요청을 수신하는 것에 응답하여, 애플리케이션(150)은 아바타 커스터마이제이션들(152)에 기초하여 3차원 아바타를 렌더링한다.
도 4는 본 발명의 일 실시예에 따라 도 1의 애플리케이션(150)에 의해 렌더링된 3차원 아바타(402)를 도시한다. 도시된 바와 같이, 3차원 아바타(402)는 클라이언트(170)로부터 수신된 아바타 커스터마이제이션들(152)에 의해 지정된 대로, 탑 해트(404)와 망토(406)를 착용하고 있다. 일 실시예에서, 3차원 아바타(402)를 렌더링한 이후, 애플리케이션(150)은 렌더링된 아바타로부터 다수의 2차원 이미지들을 생성하며, 각각의 2차원 이미지는 렌더링된 아바타의 상이한 시야각에 대응한다. 생성된 2차원 이미지들은 스프라이트 스트립(156)을 형성하기 위해 결합될 수 있다. 실시예에 따라, 대응하는 시야각들도 스프라이트 스트립에 저장될 수 있다. 대안적인 실시예에서, 대응하는 시야각들을 스프라이트 스트립 내에 저장하는 대신에, 2차원 이미지들이 미리 정의된 순서로 스프라이트 스트립에 저장될 수 있으며, 순서 내의 각각의 위치는 미리 정의된 시야각과 연관된다.
도 5는 본 발명의 일 실시예에 따라 도 1의 애플리케이션(150)에 의해 생성된 스프라이트 스트립(156)을 도시한다. 도시된 바와 같이, 스프라이트 스트립(156)은 다수의 2차원 이미지(504)를 포함하며, 각각은 시야각(502)과 연관되어 있다. 이러한 특정한 예에서, 스프라이트 스트립(156)은 아바타의 정면 보기, 후면 보기, 및 두 개의 측면 보기를 나타내는 네 개의 이미지를 포함한다. 물론, 임의의 개수의 시야각이 애플리케이션(150)에 의해 지원될 수 있다. 예를 들어, 대안적인 실시예에서, 애플리케이션(150)은 아바타의 총 36개의 시야각을 지원하며, 각각의 시야각은 10도씩 차이가 난다. 다른 실시예에서, 애플리케이션(150)은 아바타의 총 16개의 시야각을 지원하며, 각각의 시야각은 22.5도씩 차이가 난다. 일부 실시예들에서, 애플리케이션(150) 및/또는 클라이언트(170)의 성능을 개선하기 위해 시야각의 개수가 애플리케이션(150)의 개발자에 의해 결정될 수 있다. 또 다른 실시예들에서, 시야각의 개수는 클라이언트(170)를 사용하여 플레이어에 의해 커스터마이즈될 수 있다.
일 실시예에서, 시야각들(502)은 아바타의 미리 정의된 방향의 축을 회전시킨 도(degrees) 또는 라디안의 계수(count)로서 특징지어질 수 있다. 회전의 축 및 회전의 방향도 미리 정의될 수 있다. 예를 들어, 아바타의 미리 정의된 방향이 아바타의 정면 보기라면, 시야각 "90도"는 3차원 데카르트 좌표계에서 위쪽을 가리키는 축을 따라 (정면 보기의) 아바타를 90도 반시계 방향으로 회전시켜 얻어지는 아바타의 방향을 지칭할 수 있다. 실시예에 따라, 위쪽을 가리키는 축은 y축, z축, x축 등으로 고려될 수 있다. 마찬가지로, 아바타의 후면 보기는 (정면 보기의) 아바타를 위쪽을 가리키는 축을 따라 반시계 방향으로 180도 회전시켜 얻어질 수 있다. 물론, 다른 축들을 따른 회전이 광범위하게 고려된다. 예를 들어, 일부 실시예들에서 스프라이트 스트립은 3차원 아바타의 상면 보기 또는 조감도 보기를 나타내는 2차원 이미지를 포함할 수 있다. 일반적으로, 아바타의 임의의 방향이 여기에서 개시되는 기법들에 의해 지원된다. 또한, 스프라이트 스트립은 2차원 이미지들이 그로부터 생성되는 아바타의 표시(예를 들어, 도 3의 아바타 ID(302))도 포함할 수 있다.
일 실시예에서, 스프라이트 스트립(156)을 생성한 이후, 애플리케이션(150)은 클라이언트(170)에 스프라이트 스트립(156)을 송신한다. 클라이언트(170)는 디스플레이를 위해, 렌더링될 장면의 필요에 기초하여 스프라이트 스트립(156) 내의 2차원 이미지들 중 하나 이상을 선택할 수 있다. 예를 들어, 플레이어 앨리스가 가상 세계에서 개별 아바타(역시 앨리스로 이름 붙여짐)를 제어하고 있다고 가정하자. 아바타 앨리스가 가상 세계에서 아바타 밥과 대화하고 있다고 가정하자. 따라서, 클라이언트(170)는 플레이어 앨리스에게의 디스플레이를 위해 아바타 밥의 정면 보기에 대응하는 2차원 이미지(5041)를 선택한다. 다른 예로서, 아바타 앨리스가 가상 세계에서 아바타 밥 뒤에서 걷고 있다고 가정하자. 따라서, 클라이언트(170)는 플레이어 앨리스에게의 디스플레이를 위해 아바타 밥의 후면 보기에 대응하는 2차원 이미지(5043)를 선택한다.
보다 일반적으로, 클라이언트(170)는 아바타 밥의 방향이 시간에 따라 변함에 따라 디스플레이를 위해 스프라이트 스트립(156) 내의 상이한 2차원 이미지들을 선택할 수 있도록 구성될 수 있다. 아바타 밥의 방향은 아바타 앨리스에 대해서 또는 플레이어 앨리스의 임의의 관찰자 시점(예를 들어, 뷰포트)에 대해서 측정될 수 있다. 아바타 밥의 움직임, 아바타 앨리스의 움직임, 아바타 앨리스의 움직임과 별개인 플레이어 앨리스에 의해 제어되는 시점의 움직임, 및/또는 장면 내의 무생물들(예를 들어, 밥이 서 있는 회전 플랫폼)의 움직임의 결과로서 아바타 밥의 방향이 변할 수 있다. 여기에서의 기법들을 사용하여 다수의 아바타를 장면 내에 디스플레이함으로써, 클라이언트의 성능이 적어도 일부의 경우에서 개선될 수 있다.
도 6은 본 발명의 일 실시예에 따라 3차원 아바타를 위한 스프라이트 스트립을 제공하기 위한 방법(600)을 도시한 흐름도이다. 도시된 바와 같이, 방법(600)은 애플리케이션(150)이 클라이언트(170)로부터 가상 세계에서의 3차원 아바타에 대한 커스터마이제이션들을 지정하는 제1 요청을 수신하는 단계(610)에서 시작한다. 단계(620)에서, 애플리케이션(150)은 지정된 커스터마이제이션들에 기초하여 스프라이트 스트립을 생성하며, 여기에서 스프라이트 스트립은 3차원 아바타의 다수의 2차원 이미지를 포함한다. 3차원 아바타는 지정된 커스터마이제이션들을 사용하여 렌더링되며, 각각의 2차원 이미지는 상이한 시야각으로부터 3차원 아바타를 표현한다. 단계(620)는 이하에서 도 7과 함께 더 설명된다. 단계(630)에서, 애플리케이션(150)은 디스플레이를 위해 클라이언트(170)에 스프라이트 스트립을 송신한다. 단계(630) 이후, 방법(600)은 종료된다.
도 7은 본 발명의 일 실시예에 따라 3차원 아바타를 위한 스프라이트 스트립을 생성하기 위한 방법(700)을 도시한 흐름도이다. 방법(700)은 도 6의 단계(620)에 대응한다. 도시된 바와 같이, 방법(700)은 애플리케이션(150)이 요청(즉, 도 6의 단계(610)에서 수신된 요청) 내에서 지정된 커스터마이제이션들에 기초하여 3차원 아바타를 렌더링하는 단계(710)에서 시작한다. 단계(720)에서, 애플리케이션(150)은 스프라이트 스트립 내에 포함될 각각의 시야각을 처리하는 루프에 들어간다. 단계(730)에서, 애플리케이션(150)은 렌더링된 3차원 아바타의 2차원 이미지를 각각의 시야각으로부터 생성한다. 단계(740)에서, 애플리케이션(150)은 생성된 2차원 이미지를 스프라이트 스트립에 추가한다. 단계(750)에서, 애플리케이션(150)은 처리될 추가의 시야각들이 남아있는지를 결정한다. 남아있는 경우, 방법(700)은 다음 시야각을 처리하기 위해 단계(720)로 돌아간다. 그렇지 않으면, 방법(700)은 종료된다.
도 8은 본 발명의 일 실시예에 따라 아바타를 렌더링할 필요없이 아바타를 디스플레이하기 위한 방법(800)을 도시한 흐름도이다. 도시된 바와 같이, 방법(800)은 클라이언트(170)가 요청을 애플리케이션(150)에 송신하는 단계(810)에서 시작하며, 요청은 디스플레이되기를 희망하는 3차원 아바타에 대한 커스터마이제이션들을 지정한다. 단계(820)에서, 클라이언트(170)는 애플리케이션(150)으로부터 스프라이트 스트립을 수신하며, 스프라이트 스트립은 상이한 시야각들로부터의 3차원 아바타를 표현하는 다수의 2차원 이미지를 포함한다. 단계(830)에서, 클라이언트(170)는 3차원 아바타를 렌더링할 필요없이 2차원 이미지들 중 하나 이상을 출력한다. 하나 이상의 2차원 이미지가 장면에 의해 요구되는 대로의 3차원 아바타의 희망되는 시야각에 기초하여 선택될 수 있다. 이렇게 함에 있어서, 애플리케이션(150)은 희망되는 시야각에 가장 가까운 연관 시야각을 가지는 2차원 이미지를 선택할 수 있다. 예를 들어, 도 5와 함께 위에서 설명된 예를 계속하면, 희망되는 시야각이 10도인 경우, 애플리케이션(150)은 2차원 이미지(5041)를 선택할 수 있다. 2차원 이미지(5041)가 아바타의 미리 정의된 방향으로부터 0도의 회전을 나타내며 0도가 스프라이트 스트립(156) 내에 포함된 다른 2차원 이미지들에 비해 희망되는 시야각 10도에 가장 가까우므로, 2차원 이미지(5041)가 선택된다. 단계(830) 이후, 방법(800)은 종료된다.
도 9는 본 발명의 일 실시예에 따라 아바타를 위한 캐싱된 스프라이트 스트립을 제공하기 위한 방법(900)을 도시한 흐름도이다. 도시된 바와 같이, 방법(900)은 애플리케이션(150)이 생성된 스프라이트 스트립(예를 들어, 도 6의 단계(620)에서 생성된 스프라이트 스트립)을 캐싱하는 단계(910)에서 시작한다. 생성된 스프라이트 스트립을 캐싱하는 것은 스프라이트 스트립을 장기 저장소에 저장하는 것을 포함할 수 있다. 단계(920)에서, 애플리케이션(150)은 클라이언트로부터 요청을 수신하며, 요청은 가상 세계에서의 제2 아바타에 대한 커스터마이제이션들을 지정한다. 단계(930)에서, 애플리케이션(150)은 커스터마이제이션들이 캐싱된 스프라이트 스트립에 대응하는지를 결정한다. 예를 들어, 애플리케이션(150)은 커스터마이제이션들이, 캐싱된 스프라이트 스트립이 그로부터 생성되는 커스터마이제이션들과 일치하는지를 결정할 수 있다. 만약 그렇다면, 애플리케이션(150)은 디스플레이를 위해, 캐싱된 스프라이트 스트립과 동일한 제2 스프라이트 스트립을 생성할 필요없이, 캐싱된 스프라이트 스트립을 클라이언트에 송신한다. 그렇지 않다면, 애플리케이션(150)은 (예를 들어, 도 6의 단계(620 및 630)를 수행함으로써) 스프라이트 스트립을 생성하고 그 스프라이트 스트립을 클라이언트에 송신한다. 단계(930) 이후, 방법(900)은 종료된다. 실시예에 따라, 스프라이트 스트립들은 중앙 서버 상에 캐싱되거나 스프라이트 스트립에 대한 클라이언트 요청들을 수신하고 이에 응답하도록 구성된 다수의 서버에 걸쳐 캐싱될 수 있다. 다수의 서버는 상이한 지리적 지역에 걸쳐 분포될 수 있으며, 각각의 클라이언트는 그 클라이언트에 연관된 지리적 지역에 기초하여 다수의 서버 중의 개별 서버에 할당될 수 있다. 따라서, 적어도 일부의 경우에서 가상 세계의 스케일가능성이 개선될 수 있으며, 가상 세계의 레이턴시가 감소될 수 있다.
도 10은 본 발명의 일 실시예에 따라 하나 이상의 스프라이트 스트립 옵션으로 애플리케이션(150)을 구성하기 위한 방법(1000)을 도시한 흐름도이다. 애플리케이션(150)은 스프라이트 스트립들의 생성을 특정 클라이언트(170)에 맞춰서 조정하기 위해 스프라이트 스트립 옵션들로 구성될 수 있다. 도시된 바와 같이, 방법(1000)은 클라이언트(170)가, 그 클라이언트(170)가 실행되고 있는 컴퓨터의 시스템 사양을 검색 및/또는 결정하는 단계(1010)에서 시작한다. 시스템 사양들은 시스템 메모리의 용량 및 유형, 그래픽 카드의 유형, 그래픽 메모리의 용량 및 유형, 및 프로세서의 유형 및 속도 등의 면에서 컴퓨터의 능력을 특징지을 수 있다. 시스템 사양들은 또한 컴퓨터의 처리 능력을 결정하기 위해 컴퓨터에서 실행되는 하나 이상의 테스트의 결과를 포함할 수 있다.
단계(1020)에서, 클라이언트(170)는 시스템 사양들에 기초하여 하나 이상의 스프라이트 스트립 옵션을 결정한다. 스프라이트 스트립 옵션들은 애플리케이션(150)에 의해 생성되는 2차원 이미지들의 희망되는 해상도, 애플리케이션(150)에 의해 생성되는 2차원 이미지들의 희망되는 압축 품질(예를 들어, 손실 이미지 압축 포맷에 대한 것), 애플리케이션(150)에 의해 생성되는 스프라이트 스트립에 포함될 2차원 이미지들의 희망되는 계수(count), 및/또는 그로부터 애플리케이션(150)이 2차원 이미지들을 생성할 아바타를 위한 하나 이상의 희망되는 시야각을 포함할 수 있다. 단계(1030)에서, 클라이언트(170)는 스프라이트 스트립 옵션들로 애플리케이션(150)을 구성하기 위해 스프라이트 스트립 옵션들을 애플리케이션(150)에 송신한다. 클라이언트(170)로부터의 후속 요청들에 응답하여, 애플리케이션(150)은 스프라이트 스트립 옵션들에 기초하여 클라이언트(170)를 위한 스프라이트 스트립들을 생성할 수 있다. 따라서, 스프라이트 스트립들은 특정 클라이언트의 필요에 맞춰 조정될 수 있으며, 적어도 일부의 경우에는 클라이언트의 성능을 더 개선한다. 단계(1030) 이후, 방법(1000)은 종료된다.
유리하게도, 본 발명의 실시예들은 가상 세계에서의 3차원 아바타를 위한 스프라이트 스트립을 생성하기 위한 기법들을 제공한다. 일 실시예는 가상 세계 서버 애플리케이션을 제공한다. 애플리케이션은 클라이언트로부터 가상 세계에서의 3차원 아바타에 대한 커스터마이제이션들을 지정하는 요청을 수신한다. 응답으로, 애플리케이션은 지정된 커스터마이제이션들에 기초하여 3차원 아바타를 위한 스프라이트 스트립을 생성하며, 스프라이트 스트립은 상이한 시야각들로부터의 3차원 아바타의 다수의 2차원 이미지를 포함한다. 그 다음, 애플리케이션은 디스플레이를 위해 클라이언트에 스프라이트 스트립을 송신한다. 그러면, 클라이언트는 3차원 아바타를 렌더링할 필요없이, 디스플레이를 위해 2차원 이미지들 중 하나 이상을 선택할 수 있다. 따라서, 클라이언트의 성능이 적어도 일부의 경우에서 개선될 수 있다. 예를 들어, 클라이언트 애플리케이션은 여기에 개시되는 기법들을 사용하여 더 넓은 범위의 클라이언트 시스템 사양을 지원할 수 있다. 클라이언트 애플리케이션은 또한 더 높은 프레임 레이트를 지원하고/하거나 높아진 수준의 응답성으로 동작할 수 있다.
이상은 본 발명의 실시예들에 관한 것이지만, 본 발명의 기본적인 범위를 벗어나지 않고서 본 발명의 다른 및 추가 실시예들이 창안될 수 있으며, 본 발명의 범위는 이하의 청구항들에 의해 결정된다.

Claims (15)

  1. 컴퓨터 구현 방법으로서,
    클라이언트로부터, 가상 세계에서의 제1 3D 아바타에 대한 커스터마이제이션들(customizations)을 지정하는 제1 요청을 수신하는 단계;
    지정된 커스터마이제이션들에 기초하여, 그리고 하나 이상의 컴퓨터 프로세서들의 동작에 의해, 상기 제1 3D 아바타의 복수의 2D 이미지들을 생성하는 단계 - 상기 제1 3D 아바타는 상기 지정된 커스터마이제이션들을 사용하여 렌더링되며, 각각의 2D 이미지는 각각의 상이한 시야각으로부터 상기 제1 3D 아바타를 표현함 - ; 및
    디스플레이를 위해 상기 클라이언트에 상기 복수의 2D 이미지들을 송신하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 생성하는 단계는 상기 가상 세계를 제공하도록 구성된 서버에 의해 수행되고, 상기 복수의 2D 이미지들을 생성하는 단계는 상기 제1 요청에 기초하여 상기 제1 3D 아바타를 렌더링하는 단계를 포함하며, 상기 클라이언트가 상기 제1 3D 아바타를 렌더링할 필요없이, 디스플레이를 위해 상기 복수의 2D 이미지들이 상기 클라이언트로 송신되는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 클라이언트는, 상기 제1 3D 아바타를 렌더링할 것인지 혹은 상기 제1 3D 아바타의 상기 복수의 2D 이미지들을 수신할 것인지에 관한 사용자 선택가능한 옵션을 제공하도록 구성되는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 클라이언트는, 상기 클라이언트가 실행되는 컴퓨터가 시스템 메트릭들의 최소한의 미리 정의된 임계값을 만족시키지 않는다고 결정되면, 상기 제1 3D 아바타의 상기 복수의 2D 이미지들을 수신하는 것을 선택하도록 구성되는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 클라이언트는 생성될 2D 이미지들의 미리 결정된 계수(count) 및 생성될 2D 이미지들의 희망되는 해상도 중 적어도 하나를 지정하도록 구성되며, 상기 2D 이미지들의 미리 결정된 계수는 사용자에 의해 구성가능한 것 및 상기 클라이언트가 실행되는 컴퓨터의 시스템 메트릭들에 기초하여 결정되는 것 중 적어도 하나인 컴퓨터 구현 방법.
  6. 프로그램을 포함하는 컴퓨터 판독가능한 저장 매체로서,
    상기 프로그램은 실행 시에,
    클라이언트로부터, 가상 세계에서의 제1 3D 아바타에 대한 커스터마이제이션들을 지정하는 제1 요청을 수신하는 단계;
    지정된 커스터마이제이션들에 기초하여, 상기 제1 3D 아바타의 복수의 2D 이미지들을 생성하는 단계 - 상기 제1 3D 아바타는 상기 지정된 커스터마이제이션들을 사용하여 렌더링되며, 각각의 2D 이미지는 각각의 상이한 시야각으로부터 상기 제1 3D 아바타를 표현함 -; 및
    디스플레이를 위해 상기 클라이언트에 상기 복수의 2D 이미지들을 송신하는 단계
    를 포함하는 동작을 수행하는 컴퓨터 판독가능한 저장 매체.
  7. 제6항에 있어서,
    상기 생성하는 단계는 상기 가상 세계를 제공하도록 구성된 서버에 의해 수행되고, 상기 복수의 2D 이미지들을 생성하는 단계는 상기 제1 요청에 기초하여 상기 제1 3D 아바타를 렌더링하는 단계를 포함하며, 상기 클라이언트가 상기 제1 3D 아바타를 렌더링할 필요없이, 디스플레이를 위해 상기 복수의 2D 이미지들이 상기 클라이언트로 송신되는 컴퓨터 판독가능한 저장 매체.
  8. 제6항에 있어서,
    상기 클라이언트는, 상기 제1 3D 아바타를 렌더링할 것인지 혹은 상기 제1 3D 아바타의 상기 복수의 2D 이미지들을 수신할 것인지에 관한 사용자 선택가능한 옵션을 제공하도록 구성되는 컴퓨터 판독가능한 저장 매체.
  9. 제6항에 있어서,
    상기 클라이언트는, 상기 클라이언트가 실행되는 컴퓨터가 시스템 메트릭들의 최소한의 미리 정의된 임계값을 만족시키지 않는다고 결정되면, 상기 제1 3D 아바타의 상기 복수의 2D 이미지들을 수신하는 것을 선택하도록 구성되는 컴퓨터 판독가능한 저장 매체.
  10. 제6항에 있어서,
    상기 클라이언트는 생성될 2D 이미지들의 미리 결정된 계수 및 생성될 2D 이미지들의 희망되는 해상도 중 적어도 하나를 지정하도록 구성되며, 상기 2D 이미지들의 미리 결정된 계수는 사용자에 의해 구성가능한 것 및 상기 클라이언트가 실행되는 컴퓨터의 시스템 메트릭들에 기초하여 결정되는 것 중 적어도 하나인 컴퓨터 판독가능한 저장 매체.
  11. 시스템으로서,
    하나 이상의 컴퓨터 프로세서들; 및
    프로그램을 포함하는 메모리
    를 포함하며,
    상기 프로그램은 상기 하나 이상의 컴퓨터 프로세서들에 의해 실행될 때,
    클라이언트로부터, 가상 세계에서의 제1 3D 아바타에 대한 커스터마이제이션들을 지정하는 제1 요청을 수신하는 단계;
    지정된 커스터마이제이션들에 기초하여, 상기 제1 3D 아바타의 복수의 2D 이미지들을 생성하는 단계 - 상기 제1 3D 아바타는 상기 지정된 커스터마이제이션들로부터 렌더링되며, 각각의 2D 이미지는 각각의 상이한 시야각으로부터 상기 제1 3D 아바타를 표현함 - ; 및
    디스플레이를 위해 상기 클라이언트에 상기 복수의 2D 이미지들을 송신하는 단계
    를 포함하는 동작을 수행하도록 구성되는 시스템.
  12. 제11항에 있어서,
    상기 생성하는 단계는 상기 가상 세계를 제공하도록 구성된 서버에 의해 수행되고, 상기 복수의 2D 이미지들을 생성하는 단계는 상기 제1 요청에 기초하여 상기 제1 3D 아바타를 렌더링하는 단계를 포함하며, 상기 클라이언트가 상기 제1 3D 아바타를 렌더링할 필요없이, 디스플레이를 위해 상기 복수의 2D 이미지들이 상기 클라이언트로 송신되는 시스템.
  13. 제11항에 있어서,
    상기 클라이언트는 상기 제1 3D 아바타를 렌더링할 것인지 혹은 상기 제1 3D 아바타의 상기 복수의 2D 이미지들을 수신할 것인지에 관한 사용자 선택가능한 옵션을 제공하도록 구성되는 시스템.
  14. 제11항에 있어서,
    상기 클라이언트는, 상기 클라이언트가 실행되는 컴퓨터가 시스템 메트릭들의 최소한의 미리 정의된 임계값을 만족시키지 않는다고 결정되면, 상기 제1 3D 아바타의 상기 복수의 2D 이미지들을 수신하는 것을 선택하도록 구성되는 시스템.
  15. 제11항에 있어서,
    상기 클라이언트는 생성될 2D 이미지들의 미리 결정된 계수 및 생성될 2D 이미지들의 희망되는 해상도 중 적어도 하나를 지정하도록 구성되며, 상기 2D 이미지들의 미리 결정된 계수는 사용자에 의해 구성가능한 것 및 상기 클라이언트가 실행되는 컴퓨터의 시스템 메트릭들에 기초하여 결정되는 것 중 적어도 하나인 시스템.
KR1020120020789A 2011-03-01 2012-02-29 스프라이트 스트립 렌더러 KR101456328B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161448155P 2011-03-01 2011-03-01
US61/448,155 2011-03-01
US13/156,945 2011-06-09
US13/156,945 US9839844B2 (en) 2011-03-01 2011-06-09 Sprite strip renderer

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020140023699A Division KR101610702B1 (ko) 2011-03-01 2014-02-27 스프라이트 스트립 렌더러

Publications (2)

Publication Number Publication Date
KR20120131091A true KR20120131091A (ko) 2012-12-04
KR101456328B1 KR101456328B1 (ko) 2014-11-04

Family

ID=46753015

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020120020789A KR101456328B1 (ko) 2011-03-01 2012-02-29 스프라이트 스트립 렌더러
KR1020140023699A KR101610702B1 (ko) 2011-03-01 2014-02-27 스프라이트 스트립 렌더러

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020140023699A KR101610702B1 (ko) 2011-03-01 2014-02-27 스프라이트 스트립 렌더러

Country Status (3)

Country Link
US (1) US9839844B2 (ko)
EP (1) EP2527019B1 (ko)
KR (2) KR101456328B1 (ko)

Families Citing this family (188)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9209792B1 (en) 2007-08-15 2015-12-08 Nvidia Corporation Clock selection system and method
US9105014B2 (en) 2009-02-03 2015-08-11 International Business Machines Corporation Interactive avatar in messaging environment
US9930310B2 (en) 2009-09-09 2018-03-27 Apple Inc. Audio alteration techniques
US9839844B2 (en) 2011-03-01 2017-12-12 Disney Enterprises, Inc. Sprite strip renderer
JP6101267B2 (ja) 2011-08-18 2017-03-22 アザーヴァース デジタル インコーポレーテッドUtherverse Digital, Inc. 仮想世界の相互作用のシステムおよび方法
US9773344B2 (en) 2012-01-11 2017-09-26 Nvidia Corporation Graphics processor clock scaling based on idle time
US9358451B2 (en) * 2012-03-06 2016-06-07 Roblox Corporation Personalized server-based system for building virtual environments
US10155168B2 (en) * 2012-05-08 2018-12-18 Snap Inc. System and method for adaptable avatars
US20140022238A1 (en) * 2012-07-20 2014-01-23 Clo Virtual Fashion Inc. System for simulating user clothing on an avatar
US9939883B2 (en) 2012-12-27 2018-04-10 Nvidia Corporation Supply-voltage control for device power management
US9811874B2 (en) * 2012-12-31 2017-11-07 Nvidia Corporation Frame times by dynamically adjusting frame buffer resolution
US9602083B2 (en) 2013-07-03 2017-03-21 Nvidia Corporation Clock generation circuit that tracks critical path across process, voltage and temperature variation
US9766649B2 (en) 2013-07-22 2017-09-19 Nvidia Corporation Closed loop dynamic voltage and frequency scaling
CN103390286A (zh) * 2013-07-11 2013-11-13 梁振杰 一种修改游戏中虚拟角色的形象的方法和系统
US10466763B2 (en) 2013-12-02 2019-11-05 Nvidia Corporation Dynamic voltage-frequency scaling to limit power transients
US10586570B2 (en) 2014-02-05 2020-03-10 Snap Inc. Real time video processing for changing proportions of an object in the video
KR101728588B1 (ko) * 2014-03-27 2017-05-02 한국전자통신연구원 디지털 의류를 이용하여 가상 체험 서비스 방법을 제공하는 스마트 단말 및 가상 체험 제공 서버
US10339365B2 (en) 2016-03-31 2019-07-02 Snap Inc. Automated avatar generation
US10474353B2 (en) 2016-05-31 2019-11-12 Snap Inc. Application control using a gesture based trigger
US10607386B2 (en) 2016-06-12 2020-03-31 Apple Inc. Customized avatars and associated framework
US10360708B2 (en) 2016-06-30 2019-07-23 Snap Inc. Avatar based ideogram generation
US10855632B2 (en) 2016-07-19 2020-12-01 Snap Inc. Displaying customized electronic messaging graphics
US10609036B1 (en) 2016-10-10 2020-03-31 Snap Inc. Social media post subscribe requests for buffer user accounts
US10198626B2 (en) 2016-10-19 2019-02-05 Snap Inc. Neural networks for facial modeling
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
US10593116B2 (en) 2016-10-24 2020-03-17 Snap Inc. Augmented reality object manipulation
WO2018095366A1 (zh) * 2016-11-24 2018-05-31 腾讯科技(深圳)有限公司 视频推荐确定、信息显示、基于帧同步的数据处理方法
US10242503B2 (en) 2017-01-09 2019-03-26 Snap Inc. Surface aware lens
US11616745B2 (en) 2017-01-09 2023-03-28 Snap Inc. Contextual generation and selection of customized media content
US10242477B1 (en) 2017-01-16 2019-03-26 Snap Inc. Coded vision system
US10951562B2 (en) 2017-01-18 2021-03-16 Snap. Inc. Customized contextual media content item generation
US10454857B1 (en) * 2017-01-23 2019-10-22 Snap Inc. Customized digital avatar accessories
CN106970800B (zh) * 2017-04-01 2019-05-07 腾讯科技(深圳)有限公司 换装方法和装置
US11069103B1 (en) 2017-04-20 2021-07-20 Snap Inc. Customized user interface for electronic communications
EP4451197A2 (en) 2017-04-27 2024-10-23 Snap Inc. Map-based graphical user interface indicating geospatial activity metrics
US10212541B1 (en) 2017-04-27 2019-02-19 Snap Inc. Selective location-based identity communication
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US10861210B2 (en) 2017-05-16 2020-12-08 Apple Inc. Techniques for providing audio and video effects
US10679428B1 (en) 2017-05-26 2020-06-09 Snap Inc. Neural network-based image stream modification
US11122094B2 (en) 2017-07-28 2021-09-14 Snap Inc. Software application manager for messaging applications
US10586368B2 (en) 2017-10-26 2020-03-10 Snap Inc. Joint audio-video facial animation system
US10657695B2 (en) 2017-10-30 2020-05-19 Snap Inc. Animated chat presence
US11460974B1 (en) 2017-11-28 2022-10-04 Snap Inc. Content discovery refresh
WO2019108702A1 (en) 2017-11-29 2019-06-06 Snap Inc. Graphic rendering for electronic messaging applications
CN111434078B (zh) 2017-11-29 2022-06-10 斯纳普公司 电子消息传递应用中聚合媒体内容的方法和系统
US10949648B1 (en) 2018-01-23 2021-03-16 Snap Inc. Region-based stabilized face tracking
CN110136050A (zh) * 2018-02-09 2019-08-16 深圳市智财家知识产权咨询有限公司 基于3d模型转换2d图的方法及系统和计算机可读的存储介质
US10979752B1 (en) 2018-02-28 2021-04-13 Snap Inc. Generating media content items based on location information
US10726603B1 (en) 2018-02-28 2020-07-28 Snap Inc. Animated expressive icon
US11310176B2 (en) 2018-04-13 2022-04-19 Snap Inc. Content suggestion system
KR20240027845A (ko) 2018-04-18 2024-03-04 스냅 인코포레이티드 증강 표현 시스템
US11074675B2 (en) 2018-07-31 2021-07-27 Snap Inc. Eye texture inpainting
US11030813B2 (en) 2018-08-30 2021-06-08 Snap Inc. Video clip object tracking
US10896534B1 (en) 2018-09-19 2021-01-19 Snap Inc. Avatar style transformation using neural networks
US10895964B1 (en) 2018-09-25 2021-01-19 Snap Inc. Interface to display shared user groups
US11245658B2 (en) 2018-09-28 2022-02-08 Snap Inc. System and method of generating private notifications between users in a communication session
US10904181B2 (en) 2018-09-28 2021-01-26 Snap Inc. Generating customized graphics having reactions to electronic message content
US11189070B2 (en) 2018-09-28 2021-11-30 Snap Inc. System and method of generating targeted user lists using customizable avatar characteristics
US10698583B2 (en) 2018-09-28 2020-06-30 Snap Inc. Collaborative achievement interface
US11103795B1 (en) 2018-10-31 2021-08-31 Snap Inc. Game drawer
US10872451B2 (en) 2018-10-31 2020-12-22 Snap Inc. 3D avatar rendering
US11176737B2 (en) 2018-11-27 2021-11-16 Snap Inc. Textured mesh building
US10902661B1 (en) 2018-11-28 2021-01-26 Snap Inc. Dynamic composite user identifier
US10861170B1 (en) 2018-11-30 2020-12-08 Snap Inc. Efficient human pose tracking in videos
US11199957B1 (en) 2018-11-30 2021-12-14 Snap Inc. Generating customized avatars based on location information
US11055514B1 (en) 2018-12-14 2021-07-06 Snap Inc. Image face manipulation
US11516173B1 (en) 2018-12-26 2022-11-29 Snap Inc. Message composition interface
US11032670B1 (en) 2019-01-14 2021-06-08 Snap Inc. Destination sharing in location sharing system
US10939246B1 (en) 2019-01-16 2021-03-02 Snap Inc. Location-based context information sharing in a messaging system
US11294936B1 (en) 2019-01-30 2022-04-05 Snap Inc. Adaptive spatial density based clustering
US10656797B1 (en) 2019-02-06 2020-05-19 Snap Inc. Global event-based avatar
US10984575B2 (en) 2019-02-06 2021-04-20 Snap Inc. Body pose estimation
US10936066B1 (en) 2019-02-13 2021-03-02 Snap Inc. Sleep detection in a location sharing system
US10964082B2 (en) 2019-02-26 2021-03-30 Snap Inc. Avatar based on weather
US10852918B1 (en) 2019-03-08 2020-12-01 Snap Inc. Contextual information in chat
US11868414B1 (en) 2019-03-14 2024-01-09 Snap Inc. Graph-based prediction for contact suggestion in a location sharing system
US11852554B1 (en) 2019-03-21 2023-12-26 Snap Inc. Barometer calibration in a location sharing system
US11166123B1 (en) 2019-03-28 2021-11-02 Snap Inc. Grouped transmission of location data in a location sharing system
US10674311B1 (en) 2019-03-28 2020-06-02 Snap Inc. Points of interest in a location sharing system
US12070682B2 (en) 2019-03-29 2024-08-27 Snap Inc. 3D avatar plugin for third-party games
US10992619B2 (en) 2019-04-30 2021-04-27 Snap Inc. Messaging system with avatar generation
USD916871S1 (en) 2019-05-28 2021-04-20 Snap Inc. Display screen or portion thereof with a transitional graphical user interface
USD916809S1 (en) 2019-05-28 2021-04-20 Snap Inc. Display screen or portion thereof with a transitional graphical user interface
USD916810S1 (en) 2019-05-28 2021-04-20 Snap Inc. Display screen or portion thereof with a graphical user interface
USD916811S1 (en) 2019-05-28 2021-04-20 Snap Inc. Display screen or portion thereof with a transitional graphical user interface
USD916872S1 (en) 2019-05-28 2021-04-20 Snap Inc. Display screen or portion thereof with a graphical user interface
US10893385B1 (en) 2019-06-07 2021-01-12 Snap Inc. Detection of a physical collision between two client devices in a location sharing system
US11189098B2 (en) 2019-06-28 2021-11-30 Snap Inc. 3D object camera customization system
US11188190B2 (en) 2019-06-28 2021-11-30 Snap Inc. Generating animation overlays in a communication session
US11676199B2 (en) 2019-06-28 2023-06-13 Snap Inc. Generating customizable avatar outfits
US11307747B2 (en) 2019-07-11 2022-04-19 Snap Inc. Edge gesture interface with smart interactions
US11704853B2 (en) * 2019-07-15 2023-07-18 Disney Enterprises, Inc. Techniques for feature-based neural rendering
US11455081B2 (en) 2019-08-05 2022-09-27 Snap Inc. Message thread prioritization interface
US10911387B1 (en) 2019-08-12 2021-02-02 Snap Inc. Message reminder interface
US11320969B2 (en) 2019-09-16 2022-05-03 Snap Inc. Messaging system with battery level sharing
US11425062B2 (en) 2019-09-27 2022-08-23 Snap Inc. Recommended content viewed by friends
US11080917B2 (en) 2019-09-30 2021-08-03 Snap Inc. Dynamic parameterized user avatar stories
US11218838B2 (en) 2019-10-31 2022-01-04 Snap Inc. Focused map-based context information surfacing
US11544921B1 (en) 2019-11-22 2023-01-03 Snap Inc. Augmented reality items based on scan
US11063891B2 (en) 2019-12-03 2021-07-13 Snap Inc. Personalized avatar notification
US11128586B2 (en) 2019-12-09 2021-09-21 Snap Inc. Context sensitive avatar captions
US11036989B1 (en) 2019-12-11 2021-06-15 Snap Inc. Skeletal tracking using previous frames
US11284141B2 (en) 2019-12-18 2022-03-22 Yerba Buena Vr, Inc. Methods and apparatuses for producing and consuming synchronized, immersive interactive video-centric experiences
US11227442B1 (en) 2019-12-19 2022-01-18 Snap Inc. 3D captions with semantic graphical elements
US11263817B1 (en) 2019-12-19 2022-03-01 Snap Inc. 3D captions with face tracking
US11140515B1 (en) 2019-12-30 2021-10-05 Snap Inc. Interfaces for relative device positioning
US11128715B1 (en) 2019-12-30 2021-09-21 Snap Inc. Physical friend proximity in chat
US11169658B2 (en) 2019-12-31 2021-11-09 Snap Inc. Combined map icon with action indicator
US11036781B1 (en) 2020-01-30 2021-06-15 Snap Inc. Video generation system to render frames on demand using a fleet of servers
EP4096798A1 (en) 2020-01-30 2022-12-07 Snap Inc. System for generating media content items on demand
US11991419B2 (en) 2020-01-30 2024-05-21 Snap Inc. Selecting avatars to be included in the video being generated on demand
US11356720B2 (en) 2020-01-30 2022-06-07 Snap Inc. Video generation system to render frames on demand
US11284144B2 (en) 2020-01-30 2022-03-22 Snap Inc. Video generation system to render frames on demand using a fleet of GPUs
US11619501B2 (en) 2020-03-11 2023-04-04 Snap Inc. Avatar based on trip
US11217020B2 (en) 2020-03-16 2022-01-04 Snap Inc. 3D cutout image modification
US11625873B2 (en) 2020-03-30 2023-04-11 Snap Inc. Personalized media overlay recommendation
US11818286B2 (en) 2020-03-30 2023-11-14 Snap Inc. Avatar recommendation and reply
EP4128194A1 (en) 2020-03-31 2023-02-08 Snap Inc. Augmented reality beauty product tutorials
US11956190B2 (en) 2020-05-08 2024-04-09 Snap Inc. Messaging system with a carousel of related entities
US11543939B2 (en) 2020-06-08 2023-01-03 Snap Inc. Encoded image based messaging system
US11922010B2 (en) 2020-06-08 2024-03-05 Snap Inc. Providing contextual information with keyboard interface for messaging system
US11356392B2 (en) 2020-06-10 2022-06-07 Snap Inc. Messaging system including an external-resource dock and drawer
US11423652B2 (en) 2020-06-10 2022-08-23 Snap Inc. Adding beauty products to augmented reality tutorials
CN115735229A (zh) 2020-06-25 2023-03-03 斯纳普公司 在消息收发系统中更新化身服装
US11580682B1 (en) 2020-06-30 2023-02-14 Snap Inc. Messaging system with augmented reality makeup
US11863513B2 (en) 2020-08-31 2024-01-02 Snap Inc. Media content playback and comments management
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US11470025B2 (en) 2020-09-21 2022-10-11 Snap Inc. Chats with micro sound clips
US11452939B2 (en) 2020-09-21 2022-09-27 Snap Inc. Graphical marker generation system for synchronizing users
US11910269B2 (en) 2020-09-25 2024-02-20 Snap Inc. Augmented reality content items including user avatar to share location
US11615592B2 (en) 2020-10-27 2023-03-28 Snap Inc. Side-by-side character animation from realtime 3D body motion capture
US11660022B2 (en) 2020-10-27 2023-05-30 Snap Inc. Adaptive skeletal joint smoothing
US11450051B2 (en) 2020-11-18 2022-09-20 Snap Inc. Personalized avatar real-time motion capture
US11734894B2 (en) 2020-11-18 2023-08-22 Snap Inc. Real-time motion transfer for prosthetic limbs
US11748931B2 (en) 2020-11-18 2023-09-05 Snap Inc. Body animation sharing and remixing
US12008811B2 (en) 2020-12-30 2024-06-11 Snap Inc. Machine learning-based selection of a representative video frame within a messaging application
EP4272173A1 (en) 2020-12-30 2023-11-08 Snap Inc. Flow-guided motion retargeting
US11790531B2 (en) 2021-02-24 2023-10-17 Snap Inc. Whole body segmentation
US12106486B2 (en) 2021-02-24 2024-10-01 Snap Inc. Whole body visual effects
US11798201B2 (en) 2021-03-16 2023-10-24 Snap Inc. Mirroring device with whole-body outfits
US11734959B2 (en) 2021-03-16 2023-08-22 Snap Inc. Activating hands-free mode on mirroring device
US11978283B2 (en) 2021-03-16 2024-05-07 Snap Inc. Mirroring device with a hands-free mode
US11809633B2 (en) 2021-03-16 2023-11-07 Snap Inc. Mirroring device with pointing based navigation
US11908243B2 (en) 2021-03-16 2024-02-20 Snap Inc. Menu hierarchy navigation on electronic mirroring devices
US11544885B2 (en) 2021-03-19 2023-01-03 Snap Inc. Augmented reality experience based on physical items
US12067804B2 (en) 2021-03-22 2024-08-20 Snap Inc. True size eyewear experience in real time
US11562548B2 (en) 2021-03-22 2023-01-24 Snap Inc. True size eyewear in real time
US12034680B2 (en) 2021-03-31 2024-07-09 Snap Inc. User presence indication data management
US12100156B2 (en) 2021-04-12 2024-09-24 Snap Inc. Garment segmentation
US11636654B2 (en) 2021-05-19 2023-04-25 Snap Inc. AR-based connected portal shopping
US11941227B2 (en) 2021-06-30 2024-03-26 Snap Inc. Hybrid search system for customizable media
US11854069B2 (en) 2021-07-16 2023-12-26 Snap Inc. Personalized try-on ads
US11908083B2 (en) 2021-08-31 2024-02-20 Snap Inc. Deforming custom mesh based on body mesh
US11983462B2 (en) 2021-08-31 2024-05-14 Snap Inc. Conversation guided augmented reality experience
US11670059B2 (en) 2021-09-01 2023-06-06 Snap Inc. Controlling interactive fashion based on body gestures
US11673054B2 (en) 2021-09-07 2023-06-13 Snap Inc. Controlling AR games on fashion items
US11663792B2 (en) 2021-09-08 2023-05-30 Snap Inc. Body fitted accessory with physics simulation
US11900506B2 (en) 2021-09-09 2024-02-13 Snap Inc. Controlling interactive fashion based on facial expressions
US11734866B2 (en) 2021-09-13 2023-08-22 Snap Inc. Controlling interactive fashion based on voice
US11798238B2 (en) 2021-09-14 2023-10-24 Snap Inc. Blending body mesh into external mesh
US11836866B2 (en) 2021-09-20 2023-12-05 Snap Inc. Deforming real-world object using an external mesh
US11636662B2 (en) 2021-09-30 2023-04-25 Snap Inc. Body normal network light and rendering control
US11983826B2 (en) 2021-09-30 2024-05-14 Snap Inc. 3D upper garment tracking
US11836862B2 (en) 2021-10-11 2023-12-05 Snap Inc. External mesh with vertex attributes
US11651572B2 (en) 2021-10-11 2023-05-16 Snap Inc. Light and rendering of garments
US11790614B2 (en) 2021-10-11 2023-10-17 Snap Inc. Inferring intent from pose and speech input
US11763481B2 (en) 2021-10-20 2023-09-19 Snap Inc. Mirror-based augmented reality experience
US12086916B2 (en) 2021-10-22 2024-09-10 Snap Inc. Voice note with face tracking
US11996113B2 (en) 2021-10-29 2024-05-28 Snap Inc. Voice notes with changing effects
US12020358B2 (en) 2021-10-29 2024-06-25 Snap Inc. Animated custom sticker creation
US11995757B2 (en) 2021-10-29 2024-05-28 Snap Inc. Customized animation from video
US11748958B2 (en) 2021-12-07 2023-09-05 Snap Inc. Augmented reality unboxing experience
US11960784B2 (en) 2021-12-07 2024-04-16 Snap Inc. Shared augmented reality unboxing experience
US11880947B2 (en) 2021-12-21 2024-01-23 Snap Inc. Real-time upper-body garment exchange
US12096153B2 (en) 2021-12-21 2024-09-17 Snap Inc. Avatar call platform
US11928783B2 (en) 2021-12-30 2024-03-12 Snap Inc. AR position and orientation along a plane
US11887260B2 (en) 2021-12-30 2024-01-30 Snap Inc. AR position indicator
US11823346B2 (en) 2022-01-17 2023-11-21 Snap Inc. AR body part tracking system
US11954762B2 (en) 2022-01-19 2024-04-09 Snap Inc. Object replacement system
US12002146B2 (en) 2022-03-28 2024-06-04 Snap Inc. 3D modeling based on neural light field
US12062144B2 (en) 2022-05-27 2024-08-13 Snap Inc. Automated augmented reality experience creation based on sample source and target images
US12020384B2 (en) 2022-06-21 2024-06-25 Snap Inc. Integrating augmented reality experiences with other components
US12020386B2 (en) 2022-06-23 2024-06-25 Snap Inc. Applying pregenerated virtual experiences in new location
US11870745B1 (en) 2022-06-28 2024-01-09 Snap Inc. Media gallery sharing and management
US12062146B2 (en) 2022-07-28 2024-08-13 Snap Inc. Virtual wardrobe AR experience
US12051163B2 (en) 2022-08-25 2024-07-30 Snap Inc. External computer vision for an eyewear device
US11893166B1 (en) 2022-11-08 2024-02-06 Snap Inc. User avatar movement control using an augmented reality eyewear device
US12047337B1 (en) 2023-07-03 2024-07-23 Snap Inc. Generating media content items during user interaction

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4387511B2 (ja) 1999-09-09 2009-12-16 株式会社バンダイナムコゲームス ゲーム装置および情報記憶媒体
US7342587B2 (en) * 2004-10-12 2008-03-11 Imvu, Inc. Computer-implemented system and method for home page customization and e-commerce support
JP5196499B2 (ja) * 2006-01-13 2013-05-15 シー デジタル ラブス,リミティド ライアビリティ カンパニー コンピュータネットワークベースの3dレンダリングシステム
US20090079743A1 (en) * 2007-09-20 2009-03-26 Flowplay, Inc. Displaying animation of graphic object in environments lacking 3d redndering capability
TWM349179U (en) 2008-08-05 2009-01-11 yi-ren Xie Heat conduction module
US8745152B2 (en) 2008-11-06 2014-06-03 Disney Enterprises, Inc. System and method for server-side avatar pre-rendering
KR101025111B1 (ko) 2008-12-31 2011-03-25 뷰모션 (주) 웹에서의 3차원 아바타를 이용한 가상 피팅 시스템
US8151199B2 (en) 2009-02-09 2012-04-03 AltEgo, LLC Computational delivery system for avatar and background game content
US8629866B2 (en) * 2009-06-18 2014-01-14 International Business Machines Corporation Computer method and apparatus providing interactive control and remote identity through in-world proxy
CN102196300A (zh) 2010-03-18 2011-09-21 国际商业机器公司 虚拟世界场景的图像的提供方法和设备及处理方法和设备
US9007362B2 (en) * 2011-01-14 2015-04-14 Brian Mark Shuster Adaptable generation of virtual environment frames
US9839844B2 (en) 2011-03-01 2017-12-12 Disney Enterprises, Inc. Sprite strip renderer

Also Published As

Publication number Publication date
KR101610702B1 (ko) 2016-04-14
EP2527019A3 (en) 2015-04-01
KR20140032472A (ko) 2014-03-14
EP2527019A2 (en) 2012-11-28
US9839844B2 (en) 2017-12-12
US20120223940A1 (en) 2012-09-06
EP2527019B1 (en) 2020-07-01
KR101456328B1 (ko) 2014-11-04

Similar Documents

Publication Publication Date Title
KR101610702B1 (ko) 스프라이트 스트립 렌더러
US10740951B2 (en) Foveal adaptation of particles and simulation models in a foveated rendering system
CN112470483B (zh) 多服务器云虚拟现实(vr)流式传输
EP3265864B1 (en) Tracking system for head mounted display
JP6959365B2 (ja) 中心窩レンダリングシステムにおけるシャドーの最適化及びメッシュスキンの適応
US11724191B2 (en) Network-based video game editing and modification distribution system
JP4668655B2 (ja) プログラム、情報記憶媒体及び画像生成システム
EP3634593B1 (en) Optimized deferred lighting and foveal adaptation of particles and simulation models in a foveated rendering system
US11107183B2 (en) Adaptive mesh skinning in a foveated rendering system
KR20140098773A (ko) 렌더링 시스템, 렌더링 서버, 그 제어 방법, 및 기록 매체
JP2010029398A (ja) プログラム、情報記憶媒体及び画像生成システム
JP7528318B2 (ja) ゲームシステム、プログラム及びゲーム提供方法
JP7216493B2 (ja) ゲームシステム及びプログラム
JP2019526103A (ja) 位置に基づくゲームプレイコンパニオンアプリケーションへユーザの注目を向ける方法及びシステム
JP2023041670A (ja) 動画配信システム、プログラム、及び情報処理方法
JP2024003191A (ja) ゲームシステム、ゲーム装置及びプログラム
JP4223139B2 (ja) 画像生成装置及び情報記憶媒体
US20240108984A1 (en) Game asset optimization over network at optimizer server
KR102719697B1 (ko) 게임 시스템, 처리 방법 및 정보 기억 매체
JP2024030663A (ja) ゲームシステム、プログラム及びゲーム提供方法
JP2024052169A (ja) ゲームシステム、プログラム及びゲーム提供方法

Legal Events

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

Payment date: 20171011

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181012

Year of fee payment: 5