KR20130028084A - 렌더링 제어 장치, 그 제어 방법, 컴퓨터 판독 가능한 저장 매체, 렌더링 서버, 및 렌더링 시스템 - Google Patents

렌더링 제어 장치, 그 제어 방법, 컴퓨터 판독 가능한 저장 매체, 렌더링 서버, 및 렌더링 시스템 Download PDF

Info

Publication number
KR20130028084A
KR20130028084A KR1020127027701A KR20127027701A KR20130028084A KR 20130028084 A KR20130028084 A KR 20130028084A KR 1020127027701 A KR1020127027701 A KR 1020127027701A KR 20127027701 A KR20127027701 A KR 20127027701A KR 20130028084 A KR20130028084 A KR 20130028084A
Authority
KR
South Korea
Prior art keywords
rendering
data
information
objects
detailed information
Prior art date
Application number
KR1020127027701A
Other languages
English (en)
Other versions
KR101342228B1 (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 KR20130028084A publication Critical patent/KR20130028084A/ko
Application granted granted Critical
Publication of KR101342228B1 publication Critical patent/KR101342228B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image 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
    • 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 MPEG-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
    • 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
    • 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
    • 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/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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
    • 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
    • A63F13/525Changing parameters of virtual cameras
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/65Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
    • A63F13/655Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition by importing photos, e.g. of the player
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • 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/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • 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/5593Details of game data or player data management involving scheduling aspects
    • 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/6615Methods for processing data by generating or executing the game program for rendering three dimensional images using models with different levels of detail [LOD]
    • 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/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera

Abstract

클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 복수의 렌더링 객체 각각에 대해, 렌더링하는 데 필요한 데이터를 나타내는 식별 정보 및 상세 정보가 획득된다. 복수의 렌더링 객체 각각의 상세 정보를 참조함으로써, 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체에 연속적인 서수를 할당하도록 모든 렌더링 객체의 렌더링 순서가 결정된다. 렌더링 제어 장치는 렌더링 순서에 따라 렌더링 객체의 상세 정보가 나타내는 데이터를 GPU에 전송한다. 이 프로세스에서, 렌더링 순서가 연속적으로 되어 있는 렌더링 객체의 상세 정보가 나타내는 데이터 중에서, GPU로 이미 전송된 데이터와 동일하지 않은 데이터만이 판독되어 전송된다.

Description

렌더링 제어 장치, 그 제어 방법, 기록 매체, 렌더링 서버, 및 렌더링 시스템{RENDERING CONTROL APPARATUS, CONTROL METHOD THEREOF, RECORDING MEDIUM, RENDERING SERVER, AND RENDERING SYSTEM}
본 발명은 렌더링 제어 장치, 그 제어 방법, 기록 매체, 렌더링 서버, 및 렌더링 시스템에 관한 것으로서, 보다 상세하게는, 네트워크에 연결된 클라이언트 장치에 렌더링된 화면을 제공하는 기법에 관한 것이다.
네트워크에 연결 가능한 개인용 컴퓨터(PC) 등의 클라이언트 장치가 널리 사용되고 있다. 이들 장치의 확산에 따라, 인터넷의 네트워크 인구가 증가하고 있다. 최근에, 네트워크 사용자를 위해 인터넷을 사용한 다양한 서비스가 개발되었고, 게임 등의 오락 서비스도 제공되고 있다.
네트워크 사용자를 위한 이들 서비스 중 하나는 MMORPG(Massively Multiplayer Online Role-Playing Game) 등의 대규모 멀티플레이어 유형 네트워크 게임(massively multiplayer type network game)이다. 이 대규모 멀티플레이어 유형 네트워크 게임에서, 사용자는 자신의 클라이언트 장치를 서버에 연결함으로써 게임을 제공하기 위해 서버에 연결된 클라이언트 장치를 사용하여 다른 사용자와 대전 플레이(match-up play) 또는 팀 플레이(team play)를 수행할 수 있다.
일반적인 대규모 멀티플레이어 유형 네트워크 게임에서, 클라이언트 장치는 게임을 렌더링하는 데 필요한 데이터를 서버와 교환한다. 클라이언트 장치는 렌더링하는 데 필요한 수신된 데이터를 사용하여 렌더링 프로세스를 실행하고, 생성된 게임 화면을 클라이언트 장치에 연결된 디스플레이 장치 상에 디스플레이하며, 그로써 사용자에게 게임 화면을 제공한다. 또한, 입력 인터페이스를 조작하여 사용자에 의해 입력된 정보는 서버로 전송되고, 서버에서의 계산 처리에서 사용되거나, 서버에 연결된 다른 클라이언트 장치로 전송된다.
안타깝게도, 앞서 기술한 바와 같이 클라이언트 장치 상에서 렌더링 프로세스를 수행하는 어떤 네트워크 게임은 각각의 사용자가 충분한 렌더링 성능을 갖는 PC 또는 또는 전용 게임기를 사용할 것을 필요로 한다. 그에 따라, 네트워크 게임(하나의 콘텐츠)의 사용자의 수는 그 콘텐츠가 요구하는 성능을 만족시키는 장치를 소유하는 사용자의 수에 의존한다. 즉, 멋진 그래픽을 제공하는 게임 등의 높은 렌더링 성능을 필요로 하는 게임의 사용자의 수를 증가시키는 것이 어렵다.
이와 달리, 국제 공개 제2009/138878호에 기술된 바와 같이, 클라이언트 장치의 렌더링 성능 등의 처리 능력(processability)에 의존하지 않고 사용자가 플레이할 수 있는 게임이 최근에 제공되고 있다.
국제 공개 제2009/138878호에 기술된 게임에서, 서버는 클라이언트 장치 상에서 행해지는 조작의 정보를 획득하고, 이 정보를 사용하여 렌더링 프로세스를 실행함으로써 획득되는 게임 화면을 클라이언트 장치에 제공한다. 즉, 클라이언트 장치 상에서 행해지는 조작에 응답하여 서버 상에서 렌더링 프로세스를 수행할 때, 사용자가 어떤 스트레스도 없이 게임을 플레이할 수 있게 해주기 위해 응답 속도를 상승시킬 필요가 있다, 즉 조작을 반영하는 게임 화면을 신속하게 제공할 필요가 있다.
특히, 대규모 멀티플레이어 유형 네트워크 게임에서, 서버는 복수의 클라이언트 장치에 제공될 게임 화면을 동시에 생성한다. 따라서, 복수의 게임 화면의 렌더링 프로세스에 필요한 시간을 감소시키는 것이 바람직하다. 그렇지만, 국제 공개 제2009/138878호는 게임 화면 렌더링 프로세스의 효율성을 증가시키는 어떤 실용적인 방법도 언급하고 있지 않다.
본 발명은 전술한 종래 기술의 문제점을 고려하여 이루어진 것이다. 본 발명은 하나 이상의 클라이언트 장치에 게임 화면을 제공하는 렌더링 시스템에서 높은 응답성을 갖는 효율적인 렌더링 프로세스를 수행하는 방법을 제공한다.
본 발명은, 제1 측면에 있어서, 렌더링 제어 장치를 제공하고, 이 렌더링 제어 장치는 클라이언트 장치에 제공될 화면을 생성하는 데 사용될 복수의 렌더링 객체의 정보를 획득하고 이 정보를 저장 수단에 저장하는 획득 수단으로서, 각각의 렌더링 객체의 정보는 렌더링 객체의 식별 정보, 및 렌더링 객체를 렌더링하는 데 필요한 데이터를 나타내는 상세 정보를 포함하는 것인 획득 수단과, 획득 수단에 의해 획득된 복수의 렌더링 객체 각각의 상세 정보를 참조하여 복수의 렌더링 객체의 렌더링 순서를 결정하는 결정 수단; 및 결정 수단에 의해 결정된 렌더링 순서에 따라 렌더링 객체의 식별 정보를 획득하고, 데이터 저장 수단으로부터 그 식별 정보에 대응하는 렌더링 객체의 상세 정보가 나타내는 데이터를 판독하며, 그 데이터를, 복수의 렌더링 객체를 순차적으로 렌더링함으로써 화면을 생성하는 렌더링 수단에 전송하는 전송 수단을 포함하며, 결정 수단은 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체의 렌더링 순서로서 연속적인 서수를 복수의 렌더링 객체에 할당하고, 그 렌더링 순서에 따라 렌더링을 수행할 때, 전송 수단은, 렌더링 순서가 연속적으로 되어 있는 렌더링 객체의 상세 정보가 나타내는 데이터 중에서, 렌더링 수단에 이미 전송된 데이터와 동일하지 않은 데이터를 데이터 저장 수단으로부터 판독하고, 판독된 데이터를 전송한다.
본 발명의 추가의 특징은 (첨부 도면을 참조한) 예시적인 실시예에 대한 이하의 설명으로부터 명백하게 될 것이다.
도 1은 본 발명의 실시예에 따른 렌더링 시스템의 시스템 구성을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 렌더링 서버(100)의 기능 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 중앙 서버(200)의 기능 구성을 나타낸 블록도이다.
도 4는 본 발명의 실시예에 따른 중앙 서버(200)의 게임 처리의 일례를 나타낸 플로우차트이다.
도 5a 및 도 5b는 본 발명의 실시예에 따른, 렌더링 명령어 및 조작 입력 정보의 데이터 구조의 일례를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 렌더링 서버(100)의 렌더링 프로세스의 일례를 나타낸 플로우차트이다.
도 7은 본 발명의 실시예에 따른 렌더링 서버(100)의 렌더링 순서 결정 프로세스의 일례를 나타낸 플로우차트이다.
도 8은 본 발명의 실시예에 따른 렌더링 순서 결정 프로세스를 설명하는 도면이다.
도 9는 본 발명의 실시예에 따른 렌더링 순서 결정 프로세스를 설명하는 다른 도면이다.
도 10은 본 발명의 실시예에 따른 렌더링 순서 결정 프로세스에 의해 결정된 렌더링 순서를 설명하는 도면이다.
도 11은 본 발명의 변형예에 따른 렌더링 서버(100)의 렌더링 순서 결정 프로세스의 일례를 나타낸 플로우차트이다.
[제1 실시예]
본 발명의 예시적인 실시예에 대해 첨부 도면을 참조하여 이하에서 상세히 설명할 것이다. 주목할 점은, 이하에서 설명될 실시예는 하나 이상의 클라이언트 장치의 연결을 수락할 수 있는 중앙 서버 및 하나 이상의 클라이언트 장치에 제공될 화면을 동시에 생성할 수 있는 렌더링 서버에 본 발명이 적용되는 렌더링 시스템의 일례라는 것이다. 그렇지만, 본 발명은 하나 이상의 클라이언트 장치에 제공될 화면을 동시에 형성할 수 있는 임의의 장치 및 임의의 시스템에 적용 가능하다.
본 명세서에서, 중앙 서버에 의해 클라이언트 장치에 제공되는 "서비스"는 앞서 기술한 바와 같은 대규모 멀티플레이어 유형 네트워크 게임이다. 렌더링 시스템에서, 렌더링 서버는 클라이언트 장치에 제공될 게임 화면을 생성하고, 게임 화면이 중앙 서버를 통해 클라이언트 장치로 배포된다. 그렇지만, 렌더링 시스템은 항상 이와 같은 서비스를 제공할 필요는 없고, 화면을 렌더링하여 클라이언트 장치에 배포하는 구성을 가지고 있기만 하면 된다.
<렌더링 시스템의 구성>
도 1은 본 발명의 실시예에 따른 렌더링 시스템의 시스템 구성을 나타낸 도면이다.
도 1에 도시된 바와 같이, 제공된 서비스를 수신하는 클라이언트 장치(300a 내지 300e) 및 서비스를 제공하는 중앙 서버(200)가 인터넷 등의 네트워크(400)를 통해 연결되어 있다. 이와 마찬가지로, 클라이언트 장치(300)에 제공될 화면을 렌더링하는 렌더링 서버(100)는 네트워크(400)를 통해 중앙 서버(200)에 연결되어 있다. 주목할 점은, 이하의 설명에서, "클라이언트 장치(300)"가, 달리 언급하지 않는 한, 모든 클라이언트 장치(300a 내지 300e)를 나타낸다는 것이다.
클라이언트 장치(300)는, 예컨대 PC, 가정용 게임기, 또는 휴대용 게임기로 제한되지 않으며, 휴대폰, PDF, 또는 태블릿 등의 장치일 수 있다. 본 실시예의 렌더링 시스템에서, 렌더링 서버(100)는 클라이언트 장치 상에서 행해지는 조작 입력에 대응하는 게임 화면을 생성하고, 중앙 서버(200)는 그 화면을 클라이언트 장치(300)에 배포한다. 그에 따라, 클라이언트 장치(300)는 게임 화면을 생성하는 어떤 렌더링 기능도 가질 필요가 없다. 즉, 클라이언트 장치(300)는 조작 입력을 검출하는 사용자 인터페이스 및 화면을 디스플레이하는 디스플레이 장치를 포함하는 장치, 또는 사용자 인터페이스 및 디스플레이 장치에 연결가능하고 수신된 게임 화면을 디스플레이 장치 상에 디스플레이할 수 있는 장치이기만 하면 된다. 즉, 게임 화면을 생성하는 렌더링 프로세스가 비디오 스트림을 디코딩하는 프로세스에 의해 사용되는 것보다 더 많은 하드웨어 자원을 사용하기 때문에, 본 발명은 서버에 의해 생성된 게임 화면을 클라이언트 장치로 전송함으로써 클라이언트 장치의 렌더링 성능과 관계없는 게임을 제공한다.
중앙 서버(200)는 게임 처리 프로그램을 실행하고 관리하며, 렌더링 서버(100)에 렌더링 프로세스를 수행하라고 명령하고, 클라이언트 장치(300)와 데이터를 교환한다. 보다 구체적으로는, 중앙 서버(200)는 클라이언트 장치(300)에 제공될 서비스로서 대규모 멀티플레이어 유형 네트워크 게임의 게임 처리를 실행한다.
중앙 서버(200)는 각각의 클라이언트 장치의 사용자에 의해 조작되는 캐릭터의 맵 상에서의 위치 및 방향, 및 각각의 캐릭터에 제공될 이벤트 등의 정보를 관리한다. 중앙 서버(200)는 렌더링 서버(100)로 하여금 관리되고 있는 캐릭터의 상태에 대응하는 게임 화면을 생성하게 한다. 예를 들어, 각각의 연결된 클라이언트 장치 상에서 사용자에 의해 행해지는 조작 입력의 정보가 네트워크(400)를 통해 입력될 때, 중앙 서버(200)는 관리되고 있는 캐릭터의 정보에 이 정보를 반영하는 프로세스를 실행한다. 이어서, 중앙 서버(200)는 조작 입력의 정보를 반영하는 캐릭터 정보에 기초하여 게임 화면 상에 렌더링될 렌더링 객체를 결정하고, 렌더링 명령어를 렌더링 서버(100)로 전송한다.
렌더링 서버(100)는 렌더링 프로세스를 실행하는 서버이고, 본 실시예에서, 4개의 GPU를 포함하며, 이에 대해서는 나중에 기술할 것이다. 렌더링 서버(100)는 중앙 서버(200)로부터 수신된 렌더링 명령어에 따라 게임 화면을 렌더링하고, 생성된 게임 화면을 중앙 서버(200)로 출력한다. 주목할 점은, 렌더링 서버(100)가 복수의 게임 화면을 동시에 형성할 수 있다는 것이다. 각각의 게임 화면에 대해 중앙 서버(200)로부터 수신된 정보, 즉 게임 화면에 포함된 렌더링 객체의 식별 정보, 및 각각의 렌더링 객체를 렌더링하는 데 필요한 데이터를 나타내는 상세 정보에 기초하여, 렌더링 서버(100)는 GPU에 의해 게임 화면 렌더링 프로세스를 실행한다.
본 실시예에서, "렌더링 객체를 렌더링하는 데 필요한 데이터를 나타내는 상세 정보"는 다음과 같은 속성 데이터를 나타내는 정보를 포함한다.
- 모델 데이터를 지정하는 식별 정보
- 텍스처 데이터를 지정하는 식별 정보
- 사용될 렌더링 프로그램[예를 들어, 쉐이더(shader)]의 구체적 정보
- 렌더링 프로그램에서 사용될 계산용 데이터(예를 들어, 광원 세기, 광원 벡터, 및 회전 행렬)의 구체적 정보
주목할 점은, 본 실시예에서 상기한 정보를 포함하는 상세 정보가 중앙 서버(200)로부터 렌더링 서버(100)로 전송되지만, 상세 정보에 포함될 정보가 상기 정보에 제한되지 않는다는 것이다. 예를 들어, 상세 정보는 상기한 5가지의 정보 중 적어도 하나를 포함할 수 있고, 또한 상기 정보에 부가하여 렌더링 객체를 렌더링하는 프로세스에서 사용될 정보도 포함할 수 있다. 또한 주목할 점은, 이하의 설명에서, 계산용 데이터가 렌더링 프로세스에서의 계산에서 사용될 상수 및 변수 등의 수치값을 포함한다는 것이다.
중앙 서버(200)는 렌더링 객체 식별 정보 및 상세 정보를 포함하는 전송된 렌더링 명령어에 따라 렌더링 서버(100)로부터 수신되는 게임 화면을 대응하는 클라이언트 장치에 배포한다. 따라서, 본 실시예의 렌더링 시스템은 클라이언트 장치 상에서 행해지는 조작 입력에 대응하는 게임 화면을 생성하고, 그 게임 화면을 클라이언트 장치의 디스플레이 장치를 통해 사용자에게 제공할 수 있다.
주목할 점은, 본 실시예의 렌더링 시스템이 하나의 렌더링 서버(100) 및 하나의 중앙 서버(200)를 포함하지만, 본 발명이 이 구성에 제한되지 않는다는 것이다. 예를 들어, 하나의 렌더링 서버(100)를 복수의 중앙 서버(200)에 할당하거나 복수의 렌더링 서버(100)를 복수의 중앙 서버(200)에 할당하는 것도 가능하다. 중앙 서버(200)는 또한 렌더링 서버(100) 또는 렌더링 서버(100)의 각각의 GPU에 의해 동시에 생성되는 게임 화면의 수를 나타내는 정보에 따라, 렌더링 명령어를 실행하는데 사용되는 렌더링 서버(100) 또는 렌더링 서버(100)의 GPU를 지정할 수도 있다.
<렌더링 서버(100)의 구성>
도 2는 본 발명의 실시예에 따른 렌더링 서버(100)의 기능 구성을 나타낸 블록도이다.
CPU(101)는 렌더링 서버(100)의 각각의 블록의 동작을 제어한다. 보다 구체적으로는, CPU(101)는 ROM(102) 또는 기록 매체(104)에 저장되어 있는 렌더링 프로세스 운영 프로그램을 판독하고, 이 프로그램을 RAM(103)에 전개해서, 이 프로그램을 실행함으로써 각각의 블록의 동작을 제어한다.
ROM(102)은, 예를 들어, 프로그램가능 비휘발성 메모리이다. ROM(102)은 렌더링 프로세스 운영 프로그램, 기타 운영 프로그램, 및 렌더링 서버(100)의 각각의 블록의 동작에 필요한 상수 등의 정보를 저장한다.
RAM(103)은 휘발성 메모리이다. RAM(103)은 운영 프로그램 전개 영역으로서 뿐만 아니라, 예를 들어, 렌더링 서버(100)의 각각의 블록의 동작 시에 중간 데이터 출력을 일시적으로 저장하는 저장 영역으로서도 사용된다.
기록 매체(104)는, 예를 들어, 렌더링 서버(100)로부터 탈착 가능한 HDD 등의 기록 장치이다. 본 실시예에서, 기록 매체(104)는 렌더링 프로세스에서 화면을 생성하는 데 사용될 다음과 같은 데이터를 저장한다.
- 모델 데이터
- 텍스처 데이터
- 렌더링 프로그램
- 렌더링 프로그램에서 사용될 계산용 데이터
통신 유닛(113)은 렌더링 서버(100)의 통신 인터페이스이다. 통신 유닛(113)은 다른 장치[예를 들어, 네트워크(400)를 통해 연결된 중앙 서버(200)]와 데이터를 교환한다. 데이터를 전송할 때, 통신 유닛(113)은 데이터를, 네트워크(400) 또는 전송처 장치와 관련하여 결정된 데이터 전송 형식으로 변환하고, 그 데이터를 전송처 장치로 전송한다. 데이터를 수신할 때, 통신 유닛(113)은 네트워크(400)를 통해 수신된 데이터를, 렌더링 서버(100)에 의해 판독 가능한 임의의 데이터 형식으로 변환하고, 데이터를 예를 들어 RAM(103)에 저장한다.
제1, 제2, 제3 및 제4 GPU(105, 106, 107, 108) 각각은 렌더링 프로세스에서 클라이언트 장치(300)에 제공될 게임 화면을 생성한다. 각각의 GPU는 게임 화면 렌더링 영역인 비디오 메모리[제1, 제2, 제3 및 제4 VRAM(109, 110, 111, 112) 중 하나]에 연결되어 있다. 또한, 각각의 GPU는 캐시 메모리를 포함하고 있다. 연결된 VRAM 상에서 렌더링을 수행할 때, 각각의 GPU는 캐시 메모리 상에서 렌더링 객체를 전개하고, 매핑된 렌더링 객체를 대응하는 VRAM에 기입한다. 주목할 점은, 본 실시예에서 하나의 비디오 메모리가 하나의 GPU에 연결되어 있지만, 본 발명은 이것에 제한되지 않는다는 것이다. 즉, GPU에 연결된 비디오 메모리의 수는 임의의 수일 수 있다.
<중앙 서버(200)의 구성>
본 실시예의 중앙 서버(200)의 기능 구성에 대해 이하에서 설명할 것이다. 도 3은 본 발명의 실시예에 따른 중앙 서버(200)의 기능 구성을 나타낸 블록도이다.
중앙 CPU(201)는 중앙 서버(200)의 각각의 블록의 동작을 제어한다. 보다 구체적으로는, CPU(201)는, 예를 들어, ROM(202) 또는 중앙 기록 매체(204)로부터 게임 처리 프로그램을 판독하고, 이 프로그램을 중앙 RAM(203) 상에 전개해서, 이 프로그램을 실행함으로써 각각의 블록의 동작을 제어한다.
중앙 ROM(202)은 예를 들어 프로그래밍 가능한 비휘발성 메모리이다. 중앙 ROM(202)은 게임 처리 프로그램을 저장하고, 기타 프로그램도 저장할 수 있다. 중앙 ROM(202)은 중앙 서버(200)의 각각의 블록의 동작에 필요한 상수 등의 정보도 저장하고 있다.
중앙 RAM(203)은 휘발성 메모리이다. 중앙 RAM(203)은 게임 처리 프로그램 전개 영역으로서 뿐만 아니라, 예를 들어, 중앙 서버(200)의 각각의 블록의 동작 시에 중간 데이터 출력을 일시적으로 저장하는 저장 영역으로서도 사용된다.
중앙 기록 매체(204)는 예를 들어, 중앙 서버(200)로부터 탈착 가능한 HDD 등의 기록 장치이다. 본 실시예에서, 중앙 기록 매체(204)는 예를 들어, 게임을 사용하는 사용자 및 클라이언트 장치를 관리하는 데이터베이스, 및 연결된 각각의 클라이언트 장치에 제공될 게임 화면을 생성하는 데 필요한 게임에서의 다양한 종류의 정보를 관리하는 데이터베이스로서 사용된다.
중앙 통신 유닛(205)은 중앙 서버(200)의 통신 인터페이스이다. 중앙 통신 유닛(205)은 네트워크(400)를 통해 연결된 렌더링 서버(100) 및 클라이언트 장치(300)와 데이터를 교환한다. 주목할 점은, 중앙 통신 유닛(205)이 통신 유닛(113)처럼, 데이터를 통신 규격에 부합하는 데이터 형식으로 변환한다는 것이다.
<게임 처리>
앞서 기술한 구성을 갖는 본 실시예의 렌더링 시스템의 중앙 서버(200) 상에서 실행되는 기본적인 게임 처리의 실제 처리에 대해 도 4에 나타낸 플로우차트를 참조하여 이하에서 설명할 것이다. 이 플로우차트에 대응하는 처리는, 중앙 CPU(201)가 예를 들어 중앙 기록 매체(204)에 저장되어 있는 대응하는 처리 프로그램을 판독하고 이 프로그램을 중앙 RAM(203) 상에 전개해서 이 프로그램을 실행함으로써 구현될 수 있다.
주목할 점은, 이 게임 처리는 예를 들어, 중앙 서버(200)가 기동할 때 시작되고, 제공된 게임의 각각의 프레임에 대해 반복적으로 실행된다는 것이다. 또한 주목할 점은, 이하의 설명에서, 클라이언트 장치(300a 내지 300e)가 이미 중앙 서버(200)에 연결되어 있다는 것이다. 이 게임 처리에서, 중앙 서버(200)는 각각의 클라이언트 장치에 게임 화면을 제공한다.
단계 S401에서, 중앙 CPU(201)는 각각의 클라이언트 장치(300) 상에서 행해지는 조작 입력을 나타내는 정보가 수신되었는지를 판정한다. 보다 구체적으로는, 중앙 CPU(201)는 중앙 통신 유닛(205)에 의해 수신되어 중앙 RAM(203)에 저장된 정보가 클라이언트 장치(300) 상에서 행해지는 조작 입력을 나타내는 정보인지를 판정한다.
클라이언트 장치(300) 상에서 행해지는 조작 입력을 나타내는 정보는, 예를 들어, 도 5a에 나타낸 바와 같은 데이터 구조를 가질 수 있다. 도 5a에 나타낸 바와 같이, 본 실시예의 조작 입력 정보는, 예를 들어, 다음과 같은 것들을 포함한다.
- 조작 입력이 행해지는 클라이언트 장치의 식별 정보(예를 들어, IP 주소 및 사용자 식별 정보)
- 조작에 의한 이동량 및 이동 방향 입력
- 선택된 액션의 식별 정보
- 게임 화면의 렌더링 범위(예를 들어, 카메라 파라미터)
- 클라이언트 장치의 디스플레이 장치의 디스플레이 설정(예를 들어, 화면 디스플레이 해상도 및 색상의 수).
주목할 점은, 각각의 클라이언트 장치(300) 상에서 행해지는 조작 입력으로서 중앙 서버(200)에 의해 수신되는 정보의 데이터 구조는 이것에 제한되지 않고, 또한 게임에 의해 미리 정해진 데이터 구조일 수도 있다는 것이다.
본 실시예에서, 사용자 등에 의해 클라이언트 장치(300) 상에서 행해진 조작을 게임에서의 수치값 또는 파라미터로 변환함으로써 획득된 정보가 중앙 서버(200)로 전송된다. 그렇지만, 본 발명은 이것에 제한되지 않는다. 즉, 조작 입력 정보는 사용자가 버튼 등을 조작함으로써 클라이언트 장치에 의해 검출되는 입력 신호를 나타내는 정보일 수도 있다. 이 경우에, 게임에서의 수치값 또는 파라미터로 변환하는 프로세스는 중앙 CPU(201)에 의해 수신되는 입력 신호 및 클라이언트 장치의 유형을 나타내는 정보에 따라 수행되기만 하면 된다.
중앙 CPU(201)는 클라이언트 장치(300) 상에서 행해진 조작 입력을 나타내는 정보가 수신된 것으로 판정하면, 프로세스를 단계 S402로 진행시키고, 그렇지 않은 경우, 프로세스를 단계 S403으로 진행시킨다.
단계 S402에서, 중앙 CPU(201)는 클라이언트 장치(300) 상에서의 조작 입력을 나타내는 정보[단계 S401에서 수신됨]에 기초하여 게임 정보를 업데이트한다. 보다 구체적으로는, 중앙 CPU(201)는 중앙 기록 매체(204)로부터, 대응하는 클라이언트 장치(300)의 사용자의 조작 대상인 게임에서의 캐릭터에 대응하는 상태 정보를 판독한다. 캐릭터 상태 정보는 사용자의 조작에 의해 변경될 수 있는 캐릭터의 액션 및 외관[예를 들어, 맵 상에서의 캐릭터의 위치(좌표 정보), 캐릭터의 시선 방향, 및 캐릭터의 액션]의 정보이다.
중앙 CPU(201)는 수신된 조작 입력 정보를 참조하여, 상태 정보에 포함된 파라미터들 중에서 조작 입력에 의해 변하는 파라미터를 수신된 조작 입력 정보에 따라 업데이트한다. 그에 따라, 중앙 CPU(201)는, 게임 상에서, 클라이언트 장치(300) 상에서 행해진 조작 입력의 정보를 반영할 수 있다.
주목할 점은, 단계 S401에서 수신된 클라이언트 장치(300) 상에서의 조작 입력의 정보 중에서, 중앙 CPU(201)가 캐릭터 상태 정보를 업데이트하는 데 사용되지 않는 정보를 클라이언트 장치 식별 정보와 연관시키고, 그 정보를 중앙 기록 매체(204) 상에 기록한다는 것이다.
단계 S403에서, 중앙 CPU(201)는, 각각의 클라이언트 장치(300)의 사용자의 조작 대상 캐릭터를 제외하고, 게임에서의 상태 관리 대상인 렌더링 객체의 상태 정보를 업데이트한다. 게임에서의 상태 관리 대상인 렌더링 객체의 일례는 사용자의 조작 대상이 아닌 NPC(Non Player Character)라고 하는 캐릭터, 및 지형 등의 배경 객체이다. 시간에 따라 또는 사용자의 조작 대상 캐릭터의 액션에 의해 게임에서의 상태 관리 대상인 렌더링 객체가 변한다. 단계 S403에서, 중앙 CPU(201)는 시간의 경과 또는 단계 S402에서 업데이트된 캐릭터 상태 정보에 따라, 게임에서의 상태 관리 대상인 렌더링 객체의 상태 정보를 업데이트한다.
단계 S404에서, 중앙 CPU(201)는 각각의 클라이언트 장치(300)에 제공되는 게임 화면에 포함되는 렌더링 객체를 지정한다. 게임 화면에 포함되는 렌더링 객체는 게임에서의 상태 관리 대상인 상기한 렌더링 객체, 및 사용자의 조작 대상 캐릭터의 렌더링 객체이다.
보다 구체적으로는, 중앙 CPU(201)는 중앙 서버(200)에 현재 연결되어 있는 각각의 클라이언트 장치(300)를 선택하고, 중앙 기록 매체(204)로부터, 클라이언트 장치(300)의 식별 정보와 연관되어 있는 게임 화면 렌더링 범위의 정보를 판독한다. 상기한 바와 같이, 게임 화면 렌더링 범위의 정보는 게임 화면에 대응하는 카메라 파라미터를 포함한다. 중앙 CPU(201)는 카메라 파라미터를 참조하여, 게임 화면에 포함되는 렌더링 객체로서, 카메라의 렌더링 범위에 포함되는 좌표 정보를 포함하는 상태 정보를 갖는 캐릭터 등의 렌더링 객체를 지정한다. 주목할 점은, 식별 정보가 렌더링 객체에 배정되고, 중앙 CPU(201)가 게임 화면에 포함되는 지정된 렌더링 객체의 식별 정보를 클라이언트 장치의 식별 정보와 연관시키고 그 정보를 중앙 기록 매체(204) 상에 기록한다는 것이다.
단계 S405에서, 중앙 CPU(201)는 모든 클라이언트 장치(300)에 제공될 게임 화면을 렌더링하라는 명령어를 렌더링 서버(100)로 전송하여 렌더링 서버(100)로 하여금 렌더링 프로세스를 실행하게 한다. 보다 구체적으로는, 중앙 CPU(201)는 먼저 클라이언트 장치(300)에 제공될 게임 화면에 포함되는 렌더링 객체의 식별 정보 - 각각의 클라이언트 장치(300)의 식별 정보와 연관되어 중앙 기록 매체(204) 상에 기록되어 있음 - 를 판독한다. 중앙 CPU(201)는 또한 게임 화면에 포함되는 각각의 렌더링 객체에 대한 상세 정보 세트를 중앙 기록 매체(204)로부터 판독한다. 이어서, 중앙 CPU(201)는 각각의 클라이언트 장치(300)에 제공될 게임 화면에 포함되는 렌더링 객체의 식별 정보, 및 각각의 렌더링 객체의 상세 정보를 클라이언트 장치(300)의 식별 정보와 연관시키고, 그 정보를 렌더링 명령어로서 중앙 통신 유닛(205)을 통해 중앙 서버(200)로 전송한다. 이와 동시에, 중앙 CPU(201)는 게임 화면의 렌더링 범위의 정보 및 각각의 클라이언트 장치의 디스플레이 장치의 디스플레이 설정 정보 - 클라이언트 장치의 식별 정보와 연관되어 있음 - 를 중앙 기록 매체(204)로부터 판독하고, 판독된 정보를 렌더링 서버(100)로 전송한다.
즉, 도 5b에 도시된 바와 같이, 하나의 클라이언트 장치에 제공될 게임 화면을 렌더링하기 위해 중앙 서버(200)로 전송되는 렌더링 명령어는 클라이언트 장치의 식별 정보와 연관되어 있는 다음과 같은 정보를 포함한다.
- 게임 화면에 포함되는 각각의 렌더링 객체의 식별 정보
- 게임 화면에 포함되는 각각의 렌더링 객체의 상세 정보
- 게임 화면에 포함되는 각각의 렌더링 객체의 상태 정보
- 게임 화면의 렌더링 범위 및 디스플레이 설정의 정보
주목할 점은, 게임이, 예를 들어, 카메라 위치가 변하지 않은 채로 있는 게임 또는 고정된 디스플레이 해상도를 갖는 게임인 경우, 카메라 파라미터, 및 게임 화면 렌더링 범위를 나타내는 디스플레이 설정이 렌더링 명령어에 포함될 필요가 없다는 것이다.
주목할 점은, 본 실시예에서, 렌더링 명령어가 각각의 클라이언트 장치(300)에 대한 렌더링 서버(100)로 전송된다는 것이다. 그렇지만, 복수의 또는 모든 클라이언트 장치(300)에 대한 렌더링 명령어를 동시에 전송하는 것도 가능한 것은 말할 것도 없다.
단계 S406에서, 중앙 CPU(201)는 렌더링 명령어에 따라 렌더링 서버(100)에 의해 생성된 게임 화면이 렌더링 서버(100)로부터 수신되었는지를 판정한다. 보다 구체적으로는, 중앙 CPU(201)는 렌더링 서버(100)에 의해 생성되어 출력된 각각의 클라이언트 장치(300)의 게임 화면을 중앙 통신 유닛(205)이 수신했는지를 판정한다. 게임 화면이 수신된 것으로 판정되는 경우, 중앙 CPU(201)는 프로세스를 단계 S407로 진행시키고, 그렇지 않은 경우, 중앙 CPU(201)는 이 단계의 처리를 반복한다. 즉, 중앙 CPU(201)는 이 단계에서 각각의 클라이언트 장치(300)의 게임 화면이 수신될 때까지 기다린다.
주목할 점은, 이 단계에서 수신된 게임 화면이 바람직하게는 직전 단계인 단계 S404에서 렌더링 서버(100)에 전송된 렌더링 명령어에 기초하여 생성된 게임 화면이지만, 게임 화면은 이것에 제한되지 않는다는 것이다. 즉, 이 게임 처리가 각각의 프레임마다 실행된다. 따라서, 제공된 게임의 프레임 레이트에 의해 정의된 프레임 시간 내에 게임 화면의 렌더링이 완료되지 않은 경우, 이 단계에서 수신된 게임 화면이 또한 현재 프레임보다 몇 프레임만큼 앞에 있는 프레임에서 전송된 렌더링 명령어에 따라 생성된 화면일 수 있다.
단계 S407에서, 중앙 CPU(201)는 단계 S406에서 수신된 게임 화면을 대응하는 클라이언트 장치(300)에 배포한다. 보다 구체적으로는, 중앙 CPU(201)는, 예를 들어, 중앙 통신 유닛(205)에 의해 수신되는 게임 화면의 헤더에 포함되어 있고 중앙 RAM(203)에 저장되는 클라이언트 장치(300)의 식별 정보를 참조한다. 이어서, 중앙 CPU(201)는 게임 화면을 중앙 통신 유닛(205)을 통해, 식별 정보가 나타내는 클라이언트 장치(300)로 전송하여, 이 게임 처리를 완료한다.
상기한 바와 같이, 중앙 서버(200)는, 렌더링 명령어를 렌더링 서버(100)로 전송함으로써, 각각의 클라이언트 장치(300) 상에서 행해진 조작 입력을 반영하는 게임 화면을 생성하여, 획득된 게임 화면을 클라이언트 장치(300)에 배포할 수 있다.
그렇지만, 클라이언트 장치(300)의 수 또는 렌더링 범위에 포함된 렌더링 객체의 수에 따라, 각각의 클라이언트 장치(300) 상에서 행해지는 조작 입력을 반영하는 게임 화면을 생성하는 데 긴 시간이 걸린다. 이것은 클라이언트 장치(300)의 사용자에게 게임의 응답이 느리다는 인상을 줄 수 있다. 본 실시예에서, 다음과 같이 렌더링 명령어에 포함되는 렌더링 객체 상세 정보를 결정함으로써 렌더링 서버(100)에서의 렌더링 프로세스에 필요한 시간을 단축시키는 방법에 대해 이하에서 설명할 것이다.
각각의 렌더링 객체에 대해, 상세 정보에 포함된 "모델 데이터를 지정하는 식별 정보", "텍스처 데이터를 지정하는 식별 정보", "렌더링 프로그램의 구체적 정보", 및 "렌더링 프로그램에서 사용될 계산용 데이터"를 판독함으로써 렌더링 프로세스가 수행된다. 즉, 복수의 렌더링 객체가 게임 화면에 포함될 때, 각각의 렌더링 객체가 선택되고, 상세 정보가 판독되며, 그 상세 정보에 따라 렌더링이 수행된다. 그 후에, 그 다음 렌더링 객체에 대한 렌더링이 수행된다. 즉, 렌더링될 렌더링 객체가 렌더링 프로세스 시에 전환될 때마다, 렌더링 서버(100)는 초기화에 관한 프로세스를, 예를 들어 모델 데이터 및 텍스처 데이터의 GPU로의 전송, 데이터의 변환, 렌더링 프로그램의 판독, 계산용 데이터의 설정을 실행한다. 따라서, 하나의 게임 화면에 대한 렌더링 프로세스에서, 게임 화면의 렌더링 범위에 포함된 렌더링 객체의 수에 대해 하나의 렌더링 객체를 렌더링하는 초기화를 위한 처리 시간(전환 비용)이 필요하다. 복수의 클라이언트 장치(300)에 배포될 게임 화면을 동시에 생성할 때 전환 비용이 추가로 증가한다.
한편, 게임 화면의 생성에서, 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체가 특히, 예를 들어, 배경에 존재한다. 예를 들어, 게임 화면에 포함되는 나무 등의 객체가 모델 데이터의 몇개의 패턴에 대해 하나의 텍스처 데이터를 사용하여 렌더링된다. 또한, 예를 들어, 동일한 재료 또는 텍스처를 갖는 객체, 또는 동일한 광원 하에 존재하는 객체에 대해, 동일한 렌더링 프로그램 및 동일한 계산용 데이터가 사용된다. 게다가, 상이한 클라이언트 장치에 제공될 게임 화면에 있어서 게임의 맵 상에서의 카메라 위치 및 방향이 유사한 경우, 공통의 렌더링 객체가 렌더링 범위 내에 존재하여 동일한 상세 정보가 사용될 가능성이 많다.
본 실시예는 앞서 기술한 바와 같이 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체에 렌더링 순서로서 연속적인 서수를 할당함으로써 렌더링 프로세스 시에 전환 비용을 감소한다. 즉, 렌더링될 렌더링 객체를 전환할 때, 맨앞에 렌더링되는 렌더링 객체에 대해 수행되는 계산의 결과 또는 그에 대해 판독된 데이터를 사용하여 공통 처리에 필요한 시간이 단축되고, 그로써 전환 비용을 감소할 수 있다.
<렌더링 프로세스>
본 실시예의 렌더링 서버(100)의 렌더링 프로세스의 실제 처리에 대해 도 6에 나타낸 플로우차트를 참조하여 이하에서 설명할 것이다. 이 플로우차트에 대응하는 처리는 CPU(101)가, 예를 들어, ROM(102)에 저장되어 있는 대응하는 처리 프로그램을 판독하고 이 프로그램을 RAM(203) 상에 전개해서 이 프로그램을 실행함으로써 구현될 수 있다. 예를 들어, 중앙 서버(200)로부터의 렌더링 명령어가 수신될 때 이 렌더링 프로세스가 시작되는 것으로 가정한다. 주목할 점은, 이하의 설명에서, 렌더링 서버(100)가 상기한 게임 처리에서와 동일한 방식으로 5개의 클라이언트 장치(300a 내지 300e)에 제공될 게임 화면을 생성한다는 것이다.
단계 S601에서, CPU(101)는 클라이언트 장치(300a 내지 300e)에 제공될 게임 화면의 생성을 렌더링 서버(100)의 GPU로 분류한다. 즉, 이 단계에서, CPU(101)는 제1, 제2, 제3 및 제4 GPU(105, 106, 107, 108) 중에서, 수신된 렌더링 명령어를 처리하는 데 사용될 GPU를 결정한다.
클라이언트 장치를 하나의 GPU에 할당될 게임 화면 생성 대상으로서 분류하는 방법의 일례는 다음과 같다.
1. 게임 화면을 정의하는 카메라 파라미터(렌더링 범위)
게임 화면 렌더링 범위(시야)가, 각각의 클라이언트 장치(300)에 제공될 게임 화면에 대한 카메라 파라미터에 의해 정의된다. 하나의 카메라의 시야는 보통 사각뿔 또는 절단된 사각뿔에 의해 정의된다. 시야가 서로 겹치는 게임 화면은 아마도 동일한 렌더링 객체를 포함한다. 따라서, 시야의 겹침을 고려하여 클라이언트 장치를 동일한 GPU에 할당될 게임 화면 생성 대상으로 분류함으로써 렌더링 프로세스의 효율성이 증가할 수 있다. 보다 구체적으로는, 시야에 의해 정의되는 사각뿔을 2차원 평면에 투사함으로써 얻어지는 삼각형이 각각의 클라이언트 장치에 제공될 게임 화면을 정의하는 카메라의 좌표 및 방향에 따라 계산되고, 삼각형 범위가 미리 정해진 비율 이상만큼 서로 겹치는 게임 화면이 하나의 그룹으로서 분류되며, 그 그룹의 렌더링 프로세스가 동일한 GPU에 할당된다.
간단히 말하면, 게임 화면을 정의하는 가까운 카메라 좌표를 갖는 클라이언트 장치가 유사한 게임 화면 렌더링 콘텐츠를 가질 것으로 예상된다. 그에 따라, 게임 화면을 정의하는 카메라 좌표 사이의 거리가 미리 정해진 거리 내에 속하는 각각의 게임 화면이 하나의 그룹으로 분류될 수 있고, 그 그룹의 렌더링 프로세스가 동일한 GPU에 할당될 수 있다.
또한, 산, 숲, 또는 바다 등의 동일한 배경 객체를 사용하는 영역이 게임에서의 맵 상에 존재한다. 즉, 게임 화면을 정의하는 카메라 좌표가 이 배경 객체가 배열되어 있는 특정 영역에 존재할 때, 또는 카메라 방향이 이 특정 영역의 방향일 때, 생성된 게임 화면은 공통의 배경 객체를 포함한다. 따라서, 공통의 배경 객체를 포함하는 게임 화면을 하나의 그룹으로 분류하고 그 그룹의 렌더링 프로세스를 동일한 GPU에 할당함으로써 렌더링 프로세스의 효율성이 증가할 수 있다.
게다가, 동일한 렌더링 객체가 게임에서의 맵 상의 다양한 영역에서 배경으로서 사용될 수 있다. 즉, 게임 화면을 정의하는 카메라 좌표 및 방향이 상이할 때에도, 동일한 배경 객체가 렌더링 범위에 포함될 수 있다. 그에 따라, 하나의 GPU에 의해 생성될 게임 화면에서의 카메라 위치 등이 항상 가까울 필요는 없다.
할당될 GPU의 정보로서, 렌더링 프로세스를 수행하는 GPU를 미리 결정하는 정보가 예를 들어, 카메라 좌표와 방향 정보의 조합에 대한 룩업 테이블로서 기록 매체(104) 상에 기록될 수 있다. 할당될 GPU의 정보로서, 처리를 수행하는 GPU의 정보는 예를 들어, 카메라 위치 및 방향의 값을 인수로서 사용하는 함수에 의해 획득될 수도 있다.
2. 렌더링 범위에 포함된 렌더링 객체의 상세 정보의 조합
렌더링 순서로서 연속적인 서수를 갖는 렌더링 객체의 상세 정보의 일치성(coincidence)이 상승함에 따라 렌더링 프로세스에서의 전환 비용이 감소된다. 따라서, CPU(201)는 모든 클라이언트 장치(300)에 제공될 각각의 게임 화면에 포함된 모든 렌더링 객체의 상세 정보를 참조하고, 상세 정보 레벨에서 게임 화면들 사이의 렌더링 객체의 일치성을 계산한다. 그런 다음, CPU(201)는 높은 일치성을 갖는 게임 화면의 생성을 하나의 그룹으로 분류하고, 그 그룹의 렌더링 프로세스를 동일한 GPU에 할당한다.
주목할 점은, 상세 정보의 일치성은 예를 들어, 상세 정보 내의 텍스처 데이터 및 모델 데이터의 조합에 기초하여, 각각의 게임 화면에 포함되는 렌더링 객체에 대해 형성된 분포의 유사성으로서도 획득될 수 있다는 것이다. 또한, 각각의 게임 화면에 포함되는 렌더링 객체를, 상세 정보가 나타내는 특정의 속성 데이터에 기초하여 분류하고, 각각의 세트에 속하는 렌더링 객체의 수가 임계값 이상인 분류에 대해서만, 게임 화면들 간에 라운드 로빈 방식으로 상세 정보를 비교함으로써, 상세 정보의 일치성을 계산하는 것도 가능하다.
3. 사용자의 조작 대상인 캐릭터의 이벤트 참가 여부
게임에서 특정 조건을 만날 때, 예를 들어, 객체가 게임에서의 맵 상의 특정 지점에 존재할 때, 이벤트가 발생할 수 있고, 게임 화면이 강제적으로 보통의 화면과 상이한 화면으로 변경될 수 있다. 예를 들어, 적 캐릭터 등과의 전투 이벤트에서, 사용자의 조작 대상인 캐릭터가 전용 전투장에서 적 캐릭터와 싸운다. 이것과 같은 이벤트가 맵 상의 임의의 위치에서 동시에 일어날 수 있기 때문에, 동일한 종류의 이벤트가 발생한 클라이언트 장치(300)에 제공될 게임 화면을 하나의 그룹으로 분류하고 그 그룹의 렌더링 프로세스를 동일한 GPU에 할당함으로써 전환 비용이 감소될 수 있다.
4. 게임의 진행 상태
스토리의 진행이 결정되어 있는 종류의 게임의 경우, 렌더링될 객체의 유형이 게임의 진행 상태에 따라 제한될 수 있다. 예를 들어, 건물의 내부 -> 개방된 공간 -> 풀이 우거진 벌판 -> 숲과 같이 필드가 변하는 스토리에서, 필드가 변할 때마다 그룹을 분류하여 게임 화면 렌더링을 상이한 GPU에 할당하는 것이 가능하다.
상기한 바와 같이, 렌더링 객체의 유사성을 결정 기준으로서 사용함으로써, 게임 화면에 포함되는 렌더링 객체를 유사한 렌더링 콘텐츠를 갖는 복수의 그룹으로 분류하고, 각각의 그룹의 게임 화면의 렌더링을 동일한 GPU에 할당한다. 이어서, 렌더링 순서 결정 프로세스(이에 대해서는 나중에 설명할 것임)를 실행한다. 이로써, 각각의 GPU는 게임 화면을 보다 효율적으로 생성할 수 있게 된다. 주목할 점은, 클라이언트 장치(300)에 제공될 게임 화면을 생성하는 GPU를 결정하는 상기한 방법이 단지 일례에 불과하다는 것이다. 그에 따라, 또한 유사한 렌더링 콘텐츠를 갖는 것으로 간주되는 게임 화면의 렌더링을 동일한 GPU에 할당함으로써 렌더링 프로세스의 효율성을 향상시킬 수 있는 방법을 사용하는 것이 가능하다.
본 실시예는 렌더링 프로세스를 수행하는 GPU가 게임 화면을 정의하는 카메라 위치 및 좌표 정보에 따라 결정되는 앞서 기술한 방법 1을 사용한다. 이하의 설명에서는, 5개의 클라이언트 장치(300a 내지 300e)에 제공될 게임 화면의 생성이 하나의 그룹으로 분류되어 제1 GPU(105)에 의해 실행된다. 주목할 점은, 하나의 그룹으로 분류되는 게임 화면의 수(클라이언트 장치의 수)가 GPU의 처리 능력 및 VRAM의 용량에 의해 결정된다는 것이다. 또한 주목할 점은, 각각의 그룹으로 분류되는 클라이언트 장치의 정보가, 예를 들어, 클라이언트 장치의 식별 정보를 하나의 그룹 ID를 갖는 테이블에 부가하고 이 테이블을 RAM(103)에 저장함으로써 관리될 수 있다는 것이다.
단계 S602에서, CPU(101)는 각각의 GPU에 할당된 각각의 그룹에 대해 렌더링될 모든 게임 화면에 포함되는 렌더링 객체의 렌더링 순서를 결정하는 렌더링 순서 결정 프로세스를 실행한다.
(렌더링 순서 결정 프로세스)
본 실시예의 렌더링 순서 결정 프로세스에 대해 도 7에 나타낸 플로우차트를 참조하여 이하에서 상세히 설명할 것이다. 주목할 점은, 제1 GPU(105)에 의해 렌더링될 하나의 그룹의 게임 화면에 포함되는 렌더링 객체의 렌더링 순서를 결정하는 프로세스가 이하에서 설명될 것이지만, 동일한 프로세스가 다른 GPU에 적용 가능함은 말할 것도 없다는 것이다.
단계 S701에서, CPU(101)는, 제1 GPU(105)에 의해 렌더링될 하나의 그룹의 게임 화면에 포함되는 모든 렌더링 객체에 대해, 각각이 2개의 렌더링 객체를 포함하는 모든 조합의 쌍을 형성한다.
단계 S702에서, CPU(101)는, 상세 정보의 속성을 우선순위의 내림차순으로 정렬하여 불균형 할당에 의해 획득된 점수를 사용함으로써, 단계 S701에서 형성된 모든 쌍의 2개의 렌더링 객체의 상세 정보의 일치성에 점수를 매긴다. 본 실시예에서, 상세 정보가 나타내는 각각의 데이터의 속성이 다음과 같은 순서에 의해 우선순위를 부여받는다.
1. 텍스처 데이터를 지정하는 식별 정보
2. 모델 데이터를 지정하는 식별 정보
3. 사용될 렌더링 프로그램의 구체적 정보
4. 렌더링 프로그램에서 사용될 계산용 데이터의 구체적 정보
상세 정보가 나타내는 각각의 데이터의 속성의 우선순위는 그 속성을 갖는 데이터가 판독되어 캐시 메모리 상에 전개될 때, 캐시 메모리 상에서의 데이터 크기에 따라 결정된다. 상위 속성을 갖는 데이터가 큰 데이터 크기를 갖고 높은 전환 비용을 필요로 하는데, 즉 이 데이터가 다른 데이터로 전환될 때, 캐시 메모리 상에 데이터를 전개해서, 캐시 메모리부터 데이터를 판독하며, 파라미터를 설정하는 데 긴 시간이 걸린다. 즉, 상위 우선순위 속성을 갖는 데이터의 전환 빈도수를 감소시키는(재사용 빈도수를 증가시키는) 렌더링 순서에 따라 렌더링을 수행함으로써 전환 비용을 효율적으로 감소할 수 있다.
보다 구체적으로는, 이 단계에서 점수를 매기는 것은 높은 상세 정보 일치성을 갖는 렌더링 객체의 쌍에 - 즉, 상위 우선순위를 갖는 속성 데이터에 대한 재사용 빈도수를 증가시킴으로써 전환 비용이 감소되는 렌더링 객체의 쌍에 - 높은 점수를 부여한다.
단계 S703에서, CPU(101)는 모든 쌍의 일치성 점수를 참조하고, 제1 GPU(105)에 의해 렌더링될 하나의 그룹의 게임 화면에 포함되는 모든 렌더링 객체의 렌더링 순서를 결정한다. 보다 구체적으로는, CPU(101)는 모든 렌더링 객체가 렌더링 순서로 배열될 경우 연속적인 렌더링 객체의 조합에 대한 점수의 총합을 최대로 하는 렌더링 순서를 결정한다.
실제의 렌더링 순서 결정 프로세스에 대해, 첨부 도면을 참조하여 이하에서 상세히 설명할 것이다. 설명을 간략화하기 위해, 렌더링 순서를 결정하는 방법은 상기한 상세 정보의 4가지 속성 중에서 텍스처 데이터 및 모델 데이터의 일치성을 고려한다.
도 8은 단계 S703에서의 렌더링 객체 렌더링 순서 결정 절차의 일례에서 사용되는, 각각의 클라이언트 장치에 제공될 게임 화면에 포함되는 렌더링 객체를 나타낸 것이다. 도 8에 도시된 이 일례에서, 동일한 GPU가 3개의 클라이언트 장치에 제공될 게임 화면을 생성하고, GPU는 각각의 게임 화면마다 2개의 렌더링 객체를 렌더링하는데, 즉 총 6개의 렌더링 객체를 렌더링한다.
CPU(101)가 모든 객체의 가능한 조합의 쌍을 생성할 때, 그 수는 6C2 = 15이다. 즉, CPU(101)는 15개의 쌍 전부에 대해 일치성 점수 부여를 수행한다. 본 실시예에서, 상세 정보의 속성이 일치할 때, 점수는 텍스처 데이터의 일치성에 대해서는 2점이고, 모델 데이터의 일치성에 대해서는 1점이다. 이 경우에, 이들 쌍의 점수가 도 9에 표시되어 있다.
CPU(101)는 먼저 최고 점수 3을 갖는 쌍에 주목한다. 이 일례에서, 3개의 쌍 (A-1, B-1), (A-1, C-2), 및 (B-1, C-2)은 최고 점수 3을 갖는다. 이 경우에, 최고 점수를 갖는 쌍의 수는 쌍을 형성하는 렌더링 객체(3점 객체)의 수와 같다. 이것은 모든 쌍이 동일한 상세 정보를 갖는 3점 객체에 의해 형성된다는 것을 나타낸다. CPU(101)는 이어서 각각의 3점 객체를 포함하는 다른 쌍의 점수를 참조하여, 3점 객체의 렌더링 순서를 결정한다.
도 9에 도시된 바와 같이, 3점 객체를 포함하는 다른 쌍의 점수는 2번째로 가장 높은 점수인 2이거나 A-2를 갖는 쌍의 점수 0이다. 즉, 렌더링 순서에 있어서 A-2 이외의 렌더링 객체를 3점 객체 이후의 렌더링 객체로서 할당할 때, 전환 비용은 렌더링 객체에 상관없이 동일하게 된다. 따라서, CPU(101)는 상기한 3개의 3점 객체의 렌더링 순서를 특별히 고려하는 일 없이, 예를 들어 식별 정보의 정렬 순서에 기초하여 순서를 결정한다.
주목할 점은, 2번째로 가장 높은 점수를 갖는 쌍이 1개만 있는 경우, 3개의 3점 객체 중에서 그 쌍에 포함되는 렌더링 객체가 3번째 것, 즉 3점 객체 렌더링 순서에서 마지막 것으로서 결정되고, 그 쌍에 포함된 다른 렌더링 객체가 4번째 것으로서 할당된다.
마찬가지로, CPU(101)는 2번째로 가장 높은 점수를 갖는 쌍에 포함되는, 3점 객체 이외의 렌더링 객체(2점 객체 B-2 및 C-1)의 렌더링 순서를 결정한다. 도 9에 도시한 바와 같이, 렌더링 객체 A-2를 갖는 쌍은, 2점 객체를 포함하며 2번째로 가장 높은 점수 또는 그 이하를 갖는 쌍뿐이다. 도 9에 도시한 바와 같이, 렌더링 객체 A-2에 대해 2점 객체 B-2를 갖는 쌍의 점수만이 1이다. 따라서, 2점 객체들 중에서, 렌더링 객체 B-2는 렌더링 순서에서 5번째 것, 즉 2점 객체들 중 마지막 것으로서 결정되고, 렌더링 객체 A-2는 6번째 것으로서 결정된다.
상기한 바와 같이 결정을 반복함으로써, CPU(101)는 하나의 그룹의 게임 화면에 포함되는 모든 렌더링 객체의 렌더링 순서를 결정할 수 있다. 이 일례에서, CPU(101)는 마지막으로 도 10에 나타낸 바와 같이 A-1→B-1→C-2→C-1→B-2→A-2를 렌더링 순서로서 결정한다.
이러한 방식으로, 전환 비용을 감소시키는 렌더링 순서의 서수가 하나의 그룹으로 분류되는 게임 화면에 포함되는 모든 렌더링 객체에 할당될 수 있다. 주목할 점은, 예를 들어, 렌더링 객체의 식별 정보를 렌더링 순서와 연관시키고 그 결과를 RAM(103) 등에 목록으로서 저장함으로써 렌더링 순서의 서수를 할당할 수 있다는 것이다.
단계 S602에서의 렌더링 순서 결정 프로세스가 완료된 후에, CPU(101)는 단계 S603에서 결정된 렌더링 순서에 따라 렌더링 객체를 렌더링하고, 그로써 각각의 클라이언트 장치(300)에 제공될 게임 화면을 생성한다. 보다 구체적으로는, CPU(101)는 렌더링 객체의 상세 정보를 렌더링 순서로 참조하고, 상세 정보에 의해 지정된 데이터를 기록 매체(104)로부터 판독하며, 이 데이터를 렌더링을 수행하는 GPU로 전송한다. 이 프로세스에서, CPU(101)는 전개 영역에 이미 전개된 데이터와 상이한 데이터만을 판독하여 전송하고, CPU(101)는 이미 전개된 데이터와 동일한 데이터는 판독하지 않고, 그 대신에 이미 전개된 데이터를 사용한다.
주목할 점은, 각각의 렌더링 객체의 좌표 정보 및 액션 정보를 포함하는 상태 정보, 및 카메라 파라미터를 포함하는 게임 화면 렌더링 범위/디스플레이 설정 정보를 사용함으로써 게임 화면이 생성된다는 것이다. 이들 정보의 사용이 콘텐츠 처리로서 잘 알려져 있기 때문에, 그에 대한 설명은 생략할 것이다.
단계 S604에서, CPU(101)는, 각각의 GPU에 의해 생성된 게임 화면의 헤더에, 게임 화면이 제공되는 클라이언트 장치의 식별 정보를 부가하고, 그 게임 화면을 통신 유닛(113)을 통해 중앙 서버(200)로 전송한다.
이와 같이 전환 비용을 감소시킴으로써 렌더링 프로세스가 수행될 수 있기 때문에, 사용자의 조작 입력에 높은 응답성을 갖는 게임 화면이 클라이언트 장치를 조작하는 사용자에게 제공될 수 있다.
주목할 점은, 본 실시예에서, "게임 화면"이 간단히 중앙 서버(200)로부터 클라이언트 장치(300)로 전송된다는 것이다. "게임 화면"이 간단한 정지 영상 데이터일 수 있지만, "게임 화면"은 또한 데이터 크기를 추가로 감소시키는 프레임간 예측(interframe prediction) 등의 인코딩 프로세스가 적용되는 동영상 데이터의 프레임 영상 데이터로서도 전송될 수 있다. 물론, 인코딩 프로세스는 렌더링 서버(100) 또는 중앙 서버(200)에 의해 수행될 수 있다.
또한, 본 실시예에서는, 대규모 멀티플레이어 유형 네트워크 게임을 일례로 하여 본 발명을 설명하고 있다. 그러나, 앞서 기술한 바와 같이, 본 발명은 하나 이상의 클라이언트 장치에 제공될 화면을 동시에 생성할 수 있는 임의의 장치 및 임의의 시스템에 적용 가능하며, 상기한 실시예에 제한되지 않는다. 예를 들어, 단일 사용자에 대응하는 게임 콘텐츠가 렌더링 시스템에서 각각의 클라이언트 장치에 독립적으로 제공될 때, 유사한 게임 화면이 복수의 클라이언트 장치에 출력될 수 있다. 즉, 공통의 렌더링 객체가 아마도, 맵 상에서의 위치 또는 방향이 유사할 때, 게임의 진행 상태가 유사할 때, 또는 동일한 게임이 실행될 때 제공되는 게임 화면에 포함되어 있다. 따라서, 본 발명을 적용함으로써 렌더링 프로세스의 효율성이 증가할 수 있다.
게다가, 렌더링 서버(100) 및 중앙 서버(200)가 본 실시예의 렌더링 시스템에서 분리되어 있지만, 본 발명은 이것에 제한되지 않는다. 즉, 본 발명은 렌더링 서버(100) 및 중앙 서버(200)의 양쪽 기능을 갖는 하나의 서버에 의해서도 실행될 수 있다.
앞서 설명한 바와 같이, 본 실시예의 렌더링 제어 장치는 하나 이상의 클라이언트 장치에 게임 화면을 제공하는 렌더링 시스템에서 높은 응답성을 갖는 효율적인 렌더링 프로세스를 수행할 수 있다. 보다 구체적으로는, 렌더링 제어 장치는 클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 복수의 렌더링 객체 각각에 대한, 식별 정보 및 렌더링에 필요한 데이터를 나타내는 상세 정보를 획득한다. 복수의 렌더링 객체 각각의 상세 정보를 참조함으로써, 렌더링 제어 장치는 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체에 연속적인 서수를 할당하도록 모든 렌더링 객체의 렌더링 순서를 결정한다. 렌더링 제어 장치는 렌더링 순서에 따라 렌더링 객체의 상세 정보가 나타내는 데이터를 판독하고 이 데이터를 GPU에 전송한다. 이 경우에, 렌더링 순서가 연속적으로 되어 있는 렌더링 객체의 상세 정보가 나타내는 데이터 중에서, 렌더링 제어 장치는 GPU에 이미 전송된 데이터와 동일하지 않은 데이터만 판독하여 전송한다.
상기한 바와 같은 처리는 게임 화면 렌더링 프로세스에 필요한 시간을 단축시켜 렌더링을 효율적으로 수행하는 것을 가능하게 해준다.
[변형예]
상기한 실시예에서는, 게임 화면에 포함되는 모든 렌더링 객체의 모든 조합의 쌍을 하나의 그룹으로 분류시키고 이들 쌍에 대해 점수 부여를 수행함으로써 렌더링 순서를 결정하는 렌더링 순서 결정 프로세스를 설명하였다. 본 변형예에서는, 상세 정보의 속성을 우선순위의 내림차순으로 정렬함으로써 렌더링 객체를 정렬하고 분류함으로써 간단히 점수 부여를 수행하는 방법에 대해 설명할 것이다.
(렌더링 순서 결정 프로세스)
본 변형예의 렌더링 순서 결정 프로세스에 대해 도 11에 나타낸 플로우차트를 참조하여 이하에서 상세히 설명할 것이다. 주목할 점은, 이하에서 제1 GPU(105)에 의해 렌더링될 하나의 그룹의 게임 화면에 포함되는 렌더링 객체의 렌더링 순서를 결정하는 프로세스를 설명할 것이지만, 동일한 프로세스가 다른 GPU에 적용 가능함은 말할 것도 없다는 것이다.
단계 S1101에서, 제1 GPU(105)에 의해 렌더링될 하나의 그룹의 게임 화면에 포함되는 모든 렌더링 객체에 대해, CPU(101)는 최고 우선순위를 갖는 속성 데이터에 기초하여 상세 정보가 나타내는 속성을 우선순위의 내림차순으로 정렬함으로써 분류한다. 상세 정보가 나타내는 각각의 데이터의 속성이 본 변형예에서도 다음과 같은 순서에 의해 우선순위를 부여받는다.
1. 텍스처 데이터를 지정하는 식별 정보
2. 모델 데이터를 지정하는 식별 정보
3. 사용될 렌더링 프로그램의 구체적 정보
4. 렌더링 프로그램에서 사용될 계산용 데이터의 구체적 정보
즉, 이 단계에서, CPU(101)는 텍스처 데이터를 지정하는 식별 정보에 따라 모든 렌더링 객체를 분류한다.
단계 S1102에서, CPU(101)는 단계 S1101에서의 분류에 의해 생성되는, 동일한 텍스처 데이터를 사용하는 각각의 렌더링 객체 세트에 속하는 멤버의 수를 참조하여, 멤버의 수가 1인 세트를 지정한다. 이어서, CPU(101)는 멤버의 수가 1인 세트들을 하나의 세트[텍스처 비일치 세트(texture non-coincidence set)]로 통합한다.
단계 S1103에서, CPU(101)는 2번째로 가장 높은 우선순위를 갖는 모델 데이터를 지정하는 식별 정보를 사용함으로써 동일한 텍스처 데이터를 사용하는 각각의 렌더링 객체 세트 및 텍스처 비일치 세트 내의 렌더링 객체를 분류한다. 즉, 이 단계에서, 동일한 텍스처 데이터를 사용하는 각각의 렌더링 객체 세트 및 텍스처 비일치 세트에 속하는 렌더링 객체가 동일한 모델 데이터를 사용하는 자식(child) 렌더링 객체 세트로 분류된다.
단계 S1104에서, CPU(101)는 단계 S1103에서 분류에 의해 생성되는, 동일한 모델 데이터를 사용하는 각각의 렌더링 객체 세트에 속하는 멤버의 수를 참조하여, 멤버의 수가 1인 세트를 지정한다. 이어서, 동일한 텍스처 데이터를 사용하는 각각의 렌더링 객체 세트 및 텍스처 비일치 세트에 대해, CPU(101)는 멤버의 수가 1인 세트 내의 렌더링 객체를 하나의 세트[모델 비일치 세트(model non-coincidence set)]로 통합한다.
단계 S1105에서, CPU(101)는 세트 분류(set classification)에서 사용되지 않는 속성이 있는지를 판정한다. 세트 분류에서 사용되지 않는 속성이 있는 경우, CPU(101)는 우선순위 순서로 세트 분류에서 사용되지 않는 속성을 선택하고, 프로세스를 단계 S1103으로 되돌아가게 한다. 즉, CPU(101)는 이어서, 렌더링 프로그램 지정 정보를 사용하여, 동일한 모델 데이터를 사용하는 각각의 렌더링 객체 세트 및 모델 비일치 세트 내의 렌더링 객체를 분류한다.
단계 S1101 및 단계 S1102와, 단계 S1103 내지 단계 S1105의 반복적 처리를 이와 같이 수행함으로써, 상세 정보가 나타내는 각각의 속성 데이터에 대한 렌더링 객체를 분류하고, 상세 정보가 나타내는 데이터의 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체를 하나의 세트로 최종적으로 분류하는 것이 가능하다.
주목할 점은, CPU(101)가 이 단계에서 세트 분류에서 사용되지 않는 속성이 없는 것으로 판정하는 경우, CPU(101)가 프로세스를 단계 S1106으로 진행시킨다는 것이다.
단계 S1106에서, CPU(101)는 제1 GPU(105)에 의해 렌더링될 하나의 그룹의 게임 화면에 포함되는 모든 렌더링 객체의 렌더링 순서를 결정한다. 즉, CPU(101)는 단계 S1101 내지 단계 S1105에서 수행되는 렌더링 객체 분류의 정보에 따라, 전환 비용을 감소시키는 렌더링 순서를 결정한다.
보다 구체적으로는, CPU(101)는 먼저 최고 우선순위를 갖는 "텍스처 데이터를 지정하는 식별 정보"에 대해 분류된 세트들 중에서 텍스처 비일치 세트 이외의 하나의 세트를 선택한다. 이어서, CPU(101)는 그 세트에 포함되어 있는 자식 세트를 순차적으로 선택하고, 자식 세트 내의 렌더링 객체에 렌더링 순서의 서수를 할당한다. 이 프로세스에서, 자식 세트는, 예를 들어, 이진수를 사용하여 각각의 세트를 표현하고 이진값의 내림차순으로 세트를 선택함으로써 선택될 수 있다. 예를 들어, 렌더링 객체가 2번째로 가장 높은 우선순위를 갖는 속성을 공통으로 갖는 세트에 23을 부가하고, 렌더링 객체가 3번째로 가장 높은 우선순위를 갖는 속성을 공통으로 갖는 세트에 22를 부가하며, 렌더링 객체가 4번째로 가장 높은 우선순위를 갖는 속성을 공통으로 갖는 세트에 21을 부가하고, 렌더링 객체가 가장 낮은 우선순위를 갖는 속성을 공통으로 갖는 세트에 20을 부가함으로써 점수 부여가 수행되고, 렌더링 순서가 점수의 내림차순으로 결정된다.
또한, "텍스처 데이터를 지정하는 식별 정보"에 대해 분류된 하나의 세트에 대해 렌더링 객체의 렌더링 순서가 결정될 때, 동일한 텍스처 데이터를 사용하는 그 다음 세트에 대해 랜더링 순서가 마찬가지로 결정된다. 게다가, 텍스처 비일치 세트 이외의 모든 세트에 대해 렌더링 객체의 렌더링 순서가 결정될 때, 텍스처 비일치 세트에 포함되는 렌더링 객체에 대해 렌더링 순서가 마찬가지로 결정된다.
그에 따라, 전환 비용을 감소시키는 렌더링 순서가 모든 렌더링 객체에 할당될 수 있다.

Claims (18)

  1. 렌더링 제어 장치에 있어서,
    클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 복수의 렌더링 객체의 정보를 획득하고 그 정보를 저장 수단에 저장하는 획득 수단으로서, 각각의 렌더링 객체의 정보는 렌더링 객체의 식별 정보, 및 렌더링 객체를 렌더링하는 데 필요한 데이터를 나타내는 상세 정보를 포함하는 것인 획득 수단과,
    상기 획득 수단에 의해 획득된 상기 복수의 렌더링 객체 각각의 상세 정보를 참조하여 상기 복수의 렌더링 객체의 렌더링 순서를 결정하는 결정 수단과,
    상기 결정 수단에 의해 결정된 렌더링 순서에 따라 렌더링 객체의 식별 정보를 획득하고, 데이터 저장 수단으로부터 그 식별 정보에 대응하는 렌더링 객체의 상세 정보가 나타내는 데이터를 판독하며, 그 데이터를, 상기 복수의 렌더링 객체를 순차적으로 렌더링함으로써 화면을 생성하는 렌더링 수단에 전송하는 전송 수단
    을 포함하며,
    상기 결정 수단은 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체의 렌더링 순서로서 연속적인 서수를 상기 복수의 렌더링 객체에 할당하고,
    상기 렌더링 순서에 따라 렌더링을 수행할 때, 상기 전송 수단은, 상기 렌더링 순서가 연속적으로 되어 있는 렌더링 객체의 상세 정보가 나타내는 데이터 중에서, 상기 렌더링 수단에 이미 전송된 데이터와 동일하지 않은 데이터를 상기 데이터 저장 수단으로부터 판독하고, 그 판독된 데이터를 전송하는 것인 렌더링 제어 장치.
  2. 제1항에 있어서, 렌더링 객체의 상세 정보는 상기 렌더링 객체를 렌더링하는 데 필요한 복수의 속성 데이터를 나타내고,
    상기 결정 수단은 상세 정보가 나타내는 상위 우선순위 속성 데이터를 공통으로 갖는 렌더링 객체의 렌더링 순서로서 서수를 상기 복수의 렌더링 객체에 우선적으로 할당하는 것인 렌더링 제어 장치.
  3. 제2항에 있어서, 상세 정보가 나타내는 복수의 속성 데이터가 상기 데이터 저장 수단으로부터 판독되어 전개 영역에 전개될 때 많은 영역을 차지하는 데이터를 갖는 속성에 상위 우선순위가 부여되도록 우선순위가 설정되는 것인 렌더링 제어 장치.
  4. 제2항 또는 제3항에 있어서, 상기 결정 수단은 상기 상세 정보가 나타내는 공통의 속성 데이터의 수가 큰 렌더링 객체의 렌더링 순서로서 서수를 상기 복수의 렌더링 객체에 우선적으로 할당하는 것인 렌더링 제어 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 렌더링 객체의 상세 정보는 텍스처 데이터, 모델 데이터, 렌더링 프로그램, 및 렌더링 계산용 데이터 중 적어도 하나를 나타내는 것인 렌더링 제어 장치.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 획득 수단은 복수의 클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 렌더링 객체의 정보를 획득하고,
    상기 결정 수단은 상기 복수의 클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 모든 렌더링 객체의 렌더링 순서를 결정하는 것인 렌더링 제어 장치.
  7. 렌더링 제어 장치의 제어 방법에 있어서,
    클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 복수의 렌더링 객체의 정보를 획득하고 그 정보를 저장 수단에 저장하는 획득 단계로서, 각각의 렌더링 객체의 정보는 렌더링 객체의 식별 정보, 및 렌더링 객체를 렌더링하는 데 필요한 데이터를 나타내는 상세 정보를 포함하는 것인 획득 단계와,
    상기 획득 단계에서 획득된 상기 복수의 렌더링 객체 각각의 상세 정보를 참조하여 상기 복수의 렌더링 객체의 렌더링 순서를 결정하는 결정 단계와,
    상기 결정 단계에서 결정된 렌더링 순서에 따라 렌더링 객체의 식별 정보를 획득하고, 데이터 저장 수단으로부터 그 식별 정보에 대응하는 렌더링 객체의 상세 정보가 나타내는 데이터를 판독하며, 그 데이터를, 상기 복수의 렌더링 객체를 순차적으로 렌더링함으로써 화면을 생성하는 렌더링 수단에 전송하는 전송 단계
    를 포함하며,
    상기 결정 단계에서는, 상기 복수의 렌더링 객체 중에서, 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체에 렌더링 순서로서 연속적인 서수가 할당되고,
    상기 전송 단계에서는, 상기 렌더링 순서에 따라 렌더링을 수행할 때, 상기 렌더링 순서가 연속적으로 되어 있는 렌더링 객체의 상세 정보가 나타내는 데이터 중에서, 상기 렌더링 수단에 이미 전송된 데이터와 동일하지 않은 데이터가 상기 데이터 저장 수단으로부터 판독되어 전송되는 것인 렌더링 제어 장치의 제어 방법.
  8. 컴퓨터로 하여금 제1항 내지 제6항 중 어느 한 항에 기재된 렌더링 제어 장치의 각각의 수단으로서 기능하게 하는 프로그램을 기록하는 기록 매체.
  9. 컴퓨터로 하여금 제1항 내지 제6항 중 어느 한 항에 기재된 렌더링 제어 장치의 각각의 수단으로서 기능하게 하는 프로그램이 저장되어 있는 컴퓨터 판독 가능한 저장 매체.
  10. 제1항 내지 제6항 중 어느 한 항에 기재된 렌더링 제어 장치를 포함하는 렌더링 서버.
  11. 렌더링 서버에 의해 생성된 화면을 중앙 서버에 연결된 하나 이상의 클라이언트 장치 각각에 제공하는 렌더링 시스템에 있어서,
    상기 중앙 서버는,
    상기 하나 이상의 클라이언트 장치로부터 입력 데이터를 수신하는 수신 수단과,
    상기 하나 이상의 클라이언트 장치 각각에 대해, 상기 수신 수단에 의해 수신된 입력 데이터에 따라, 그 클라이언트 장치에 제공될 화면에 포함되는 렌더링 객체를 지정하는 지정 수단과,
    상기 지정 수단에 의해 지정되며, 상기 하나 이상의 클라이언트 장치에 제공될 화면에 포함되는 복수의 렌더링 객체의 정보를 상기 렌더링 서버로 전송하는 전송 수단으로서, 각각의 렌더링 객체의 정보는 렌더링 객체의 식별 정보, 및 렌더링 객체를 렌더링하는 데 필요한 데이터를 나타내는 상세 정보를 포함하는 것인 전송 수단과,
    상기 렌더링 서버에 의해 렌더링되는 상기 하나 이상의 클라이언트 장치 각각에 제공될 화면을 수신하고 그 화면을 대응하는 클라이언트 장치에 배포하는 배포 수단
    을 포함하고,
    상기 렌더링 서버는,
    상기 전송 수단에 의해 전송되는 상기 복수의 렌더링 객체의 정보를 획득하고 그 정보를 저장 수단에 저장하는 획득 수단과,
    상기 복수의 렌더링 객체를 순서대로 렌더링하고 상기 하나 이상의 클라이언트 장치 각각에 제공될 화면을 생성하는 렌더링 수단과,
    상기 획득 수단에 의해 획득된 상기 복수의 렌더링 객체 각각의 상세 정보를 참조하여 상기 복수의 렌더링 객체의 렌더링 순서를 결정하는 결정 수단과,
    상기 결정 수단에 의해 결정된 렌더링 순서에 따라 렌더링 객체의 식별 정보를 획득하고, 데이터 저장 수단으로부터 그 식별 정보에 대응하는 렌더링 객체의 상세 정보가 나타내는 데이터를 판독하며, 그 데이터를 상기 렌더링 수단에 전송하는 전송 수단
    을 포함하며,
    상기 결정 수단은 상세 정보가 나타내는 적어도 부분적 데이터를 공통으로 갖는 렌더링 객체의 렌더링 순서로서 연속적인 서수를 상기 복수의 렌더링 객체에 할당하고,
    상기 렌더링 순서에 따라 렌더링을 수행할 때, 상기 전송 수단은, 상기 렌더링 순서가 연속적으로 되어 있는 렌더링 객체의 상세 정보가 나타내는 데이터 중에서, 상기 렌더링 수단에 이미 전송된 데이터와 동일하지 않은 데이터를 상기 데이터 저장 수단으로부터 판독하고, 그 판독된 데이터를 전송하는 것인 렌더링 시스템.
  12. 제11항에 있어서, 렌더링 객체의 상세 정보는 상기 렌더링 객체를 렌더링하는 데 필요한 복수의 속성 데이터를 나타내고,
    상기 결정 수단은 상세 정보가 나타내는 상위 우선순위 속성 데이터를 공통으로 갖는 렌더링 객체의 렌더링 순서로서 서수를 상기 복수의 렌더링 객체에 우선적으로 할당하는 것인 렌더링 시스템.
  13. 제12항에 있어서, 상세 정보가 나타내는 복수의 속성 데이터가 상기 데이터 저장 수단으로부터 판독되어 전개 영역에 전개될 때 많은 영역을 차지하는 데이터를 갖는 속성에 상위 우선순위가 부여되도록 우선순위가 설정되는 것인 렌더링 시스템.
  14. 제12항 또는 제13항에 있어서, 상기 결정 수단은 상기 상세 정보가 나타내는 공통의 속성 데이터의 수가 큰 렌더링 객체의 렌더링 순서로서 서수를 상기 복수의 렌더링 객체에 우선적으로 할당하는 것인 렌더링 시스템.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서, 렌더링 객체의 상세 정보는 텍스처 데이터, 모델 데이터, 렌더링 프로그램, 및 렌더링 계산용 데이터 중 적어도 하나를 나타내는 것인 렌더링 시스템.
  16. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 지정 수단은 상기 수신 수단에 의해 수신되는 입력 데이터에 따라 변하는 카메라 파라미터를 참조하여, 상기 하나 이상의 클라이언트 장치 각각의 화면을 정의하고, 상기 카메라 파라미터에 의해 지정된 렌더링 범위가 미리 정해진 양만큼 서로 겹치는 클라이언트 장치들을 하나의 그룹으로 분류하며, 그 그룹 내의 클라이언트 장치들에 제공될 화면에 포함되는 렌더링 객체를 지정하는 것인 렌더링 시스템.
  17. 제11항 내지 제15항 중 어느 한 항에 있어서, 상기 지정 수단은 상기 수신 수단에 의해 수신되는 입력 데이터에 따라 변하는 카메라 좌표를 참조하여, 상기 하나 이상의 클라이언트 장치 각각의 화면을 정의하고, 상기 카메라 좌표가 미리 정해진 거리 내에 속하는 클라이언트 장치들을 하나의 그룹으로 분류하며, 그 그룹 내의 클라이언트 장치들에 제공될 화면에 포함되는 렌더링 객체를 지정하는 것인 렌더링 시스템.
  18. 제11항 내지 제17항 중 어느 한 항에 있어서,
    상기 획득 수단은 복수의 클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 렌더링 객체의 정보를 획득하고,
    상기 결정 수단은 상기 복수의 클라이언트 장치에 제공될 화면을 생성하는 데 사용되는 모든 렌더링 객체의 렌더링 순서를 결정하며,
    상기 렌더링 수단은 상기 복수의 클라이언트 장치에 제공될 화면을 동시에 렌더링하는 것인 렌더링 시스템.
KR1020127027701A 2011-05-25 2012-05-11 렌더링 제어 장치, 그 제어 방법, 컴퓨터 판독 가능한 저장 매체, 렌더링 서버, 및 렌더링 시스템 KR101342228B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161489761P 2011-05-25 2011-05-25
US61/489,761 2011-05-25
JPJP-P-2011-260976 2011-11-29
JP2011260976A JP5076132B1 (ja) 2011-05-25 2011-11-29 描画制御装置、その制御方法、プログラム、記録媒体、描画サーバ、及び描画システム
US13/453,212 2012-04-23
US13/453,212 US8698813B2 (en) 2011-05-25 2012-04-23 Rendering control apparatus, control method thereof, recording medium, rendering server, and rendering system
PCT/JP2012/062720 WO2012161102A1 (en) 2011-05-25 2012-05-11 Rendering control apparatus, control method thereof, recording medium, rendering server, and rendering system

Publications (2)

Publication Number Publication Date
KR20130028084A true KR20130028084A (ko) 2013-03-18
KR101342228B1 KR101342228B1 (ko) 2013-12-16

Family

ID=47262860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127027701A KR101342228B1 (ko) 2011-05-25 2012-05-11 렌더링 제어 장치, 그 제어 방법, 컴퓨터 판독 가능한 저장 매체, 렌더링 서버, 및 렌더링 시스템

Country Status (7)

Country Link
US (2) US8698813B2 (ko)
EP (1) EP2556493A4 (ko)
JP (3) JP5076132B1 (ko)
KR (1) KR101342228B1 (ko)
CN (1) CN103098099B (ko)
CA (1) CA2768900C (ko)
WO (1) WO2012161102A1 (ko)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9044677B2 (en) * 2011-07-11 2015-06-02 Roblox Corporation System for optimizing processing capacity for a group of gaming appliances engaged in play of an online game
JP5155462B2 (ja) 2011-08-17 2013-03-06 株式会社スクウェア・エニックス・ホールディングス 動画配信サーバ、動画再生装置、制御方法、プログラム、及び記録媒体
JP5937957B2 (ja) 2011-12-05 2016-06-22 株式会社スクウェア・エニックス リアルタイム大局照明レンダリングシステム
JP6333180B2 (ja) 2012-02-07 2018-05-30 エンパイア テクノロジー ディベロップメント エルエルシー オンラインゲーム
CA2821830A1 (en) 2012-02-23 2013-08-23 Square Enix Holdings Co., Ltd. Moving image distribution server, moving image playback apparatus, control method, program, and recording medium
EP2674916B1 (en) 2012-04-12 2018-06-27 Square Enix Holdings Co., Ltd. Moving image distribution server, moving image playback device, control method, program, and recording medium
US9873045B2 (en) * 2012-05-25 2018-01-23 Electronic Arts, Inc. Systems and methods for a unified game experience
JP2014008158A (ja) 2012-06-28 2014-01-20 Square Enix Holdings Co Ltd ゲームシステム及びその制御方法
US8961302B2 (en) 2012-07-20 2015-02-24 Microsoft Technology Licensing, Llc Game browsing
US9381432B2 (en) 2012-08-24 2016-07-05 Microsoft Technology Licensing, Llc Game migration
US9717982B2 (en) 2012-12-21 2017-08-01 Microsoft Technology Licensing, Llc Client rendering of latency sensitive game features
US9526980B2 (en) 2012-12-21 2016-12-27 Microsoft Technology Licensing, Llc Client side processing of game controller input
JP6106674B2 (ja) * 2013-02-06 2017-04-05 株式会社スクウェア・エニックス・ホールディングス 情報処理装置、制御方法、プログラム、及び記録媒体
WO2014123127A1 (en) * 2013-02-06 2014-08-14 Square Enix Holdings Co., Ltd. Image processing apparatus, method of controlling the same, program and storage medium
CA2872130C (en) * 2013-03-05 2020-01-14 Square Enix Holdings Co., Ltd. Information processing apparatus, rendering apparatus, method and program
US9694277B2 (en) 2013-03-14 2017-07-04 Microsoft Technology Licensing, Llc Client side processing of character interactions in a remote gaming environment
US9564102B2 (en) * 2013-03-14 2017-02-07 Microsoft Technology Licensing, Llc Client side processing of player movement in a remote gaming environment
US10092834B2 (en) * 2013-05-23 2018-10-09 Kabushiki Kaisha Square Enix Holdings Dynamic allocation of rendering resources in a cloud gaming system
WO2015011741A1 (ja) 2013-07-25 2015-01-29 株式会社スクウェア・エニックス・ホールディングス 画像処理プログラム、サーバ装置、画像処理システムおよび画像処理方法
US9904972B2 (en) 2013-08-06 2018-02-27 Square Enix Holdings Co., Ltd. Information processing apparatus, control method, program, and recording medium
JP6341986B2 (ja) * 2013-09-11 2018-06-13 株式会社スクウェア・エニックス・ホールディングス 描画装置、その描画方法、プログラム及び記録媒体
CA2923910C (en) * 2013-09-13 2020-08-25 Square Enix Holdings Co., Ltd. Rendering apparatus for 3d graphics
US9805479B2 (en) 2013-11-11 2017-10-31 Amazon Technologies, Inc. Session idle optimization for streaming server
US9604139B2 (en) 2013-11-11 2017-03-28 Amazon Technologies, Inc. Service for generating graphics object data
CA2929588A1 (en) * 2013-11-11 2015-05-14 Vinod Murli MAMTANI Data collection for multiple view generation
US9413830B2 (en) 2013-11-11 2016-08-09 Amazon Technologies, Inc. Application streaming service
US9582904B2 (en) 2013-11-11 2017-02-28 Amazon Technologies, Inc. Image composition based on remote object data
US9641592B2 (en) 2013-11-11 2017-05-02 Amazon Technologies, Inc. Location of actor resources
US9634942B2 (en) 2013-11-11 2017-04-25 Amazon Technologies, Inc. Adaptive scene complexity based on service quality
US9773293B2 (en) 2013-12-24 2017-09-26 Empire Technology Development Llc Composition data dispatcher
WO2015098165A1 (en) * 2013-12-26 2015-07-02 Square Enix Holdings Co., Ltd. Rendering system, control method and storage medium
JP5559445B1 (ja) 2013-12-26 2014-07-23 株式会社スクウェア・エニックス 描画システム、制御方法、プログラム、及び記録媒体
US9344733B2 (en) 2013-12-27 2016-05-17 Samsung Electronics Co., Ltd. Feature-based cloud computing architecture for physics engine
JP5952403B2 (ja) * 2014-01-09 2016-07-13 株式会社スクウェア・エニックス・ホールディングス 共有描画を用いるオンラインゲームサーバ構造
JP6265337B2 (ja) * 2014-06-03 2018-01-24 株式会社スクウェア・エニックス プログラム、記録媒体及び描画装置決定方法
US20160044139A1 (en) * 2014-08-07 2016-02-11 Hsiu-Ping Lin Methods and systems for communications between apps and virtual machines
WO2016024432A1 (ja) * 2014-08-12 2016-02-18 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
WO2016073035A1 (en) 2014-11-05 2016-05-12 Super League Gaming, Inc. Game system
US20160259453A1 (en) * 2015-03-06 2016-09-08 Sony Computer Entertainment America Llc Dynamic adjustment of cloud game data streams to output device and network quality
US11071919B2 (en) * 2015-06-30 2021-07-27 Amazon Technologies, Inc. Joining games from a spectating system
US20170140570A1 (en) * 2015-11-13 2017-05-18 Intel Corporation Facilitating efficeint centralized rendering of viewpoint-agnostic graphics workloads at computing devices
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
CN106227709B (zh) * 2016-07-14 2019-03-29 北京小米移动软件有限公司 细线绘制方法、装置及终端
CN107789836B (zh) * 2016-09-06 2021-03-26 盛趣信息技术(上海)有限公司 一种在线游戏千人同屏的实现方法以及客户端
JP6550418B2 (ja) * 2017-04-03 2019-07-24 エンパイア テクノロジー ディベロップメント エルエルシー オンラインゲーム
US10290141B2 (en) * 2017-04-17 2019-05-14 Intel Corporation Cloud based distributed single game calculation of shared computational work for multiple cloud gaming client devices
CN110678239B (zh) 2017-10-10 2024-02-09 谷歌有限责任公司 利用游戏元数据和量度的分布式基于样本的游戏剖析以及支持第三方内容的游戏api平台
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
EP4276814A3 (en) 2018-03-22 2023-12-20 Google LLC Methods and systems for rendering and encoding content for online interactive gaming sessions
JP7073526B2 (ja) 2018-04-02 2022-05-23 グーグル エルエルシー インタラクティブなクラウドゲームのための方法、デバイス、およびシステム
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
CN111886057A (zh) 2018-04-02 2020-11-03 谷歌有限责任公司 用于电子系统的输入装置
KR20230173223A (ko) * 2018-04-10 2023-12-26 구글 엘엘씨 게이밍 렌더링에서의 메모리 관리
US11260295B2 (en) 2018-07-24 2022-03-01 Super League Gaming, Inc. Cloud-based game streaming
EP3807766B1 (en) 2018-11-16 2021-10-27 Google LLC Shadow tracking of real-time interactive simulations for complex system analysis
US20220212100A1 (en) * 2021-01-04 2022-07-07 Microsoft Technology Licensing, Llc Systems and methods for streaming interactive applications

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3548396B2 (ja) 1997-09-24 2004-07-28 キヤノン株式会社 描画処理装置、描画処理方法、及び記憶媒体
JP3078792B1 (ja) * 1999-03-31 2000-08-21 株式会社スクウェア ポリゴン画像生成装置、ポリゴン画像生成方法、コンピュータ読取可能な記録媒体及びコンピュータデータ信号
JP3605317B2 (ja) 1999-06-07 2004-12-22 株式会社ソニー・コンピュータエンタテインメント 画像描画方法、画像描画装置及び記録媒体
JP2001067062A (ja) * 1999-08-24 2001-03-16 Enix Corp 画像表示装置、方法および記録媒体
JP3871011B2 (ja) 1999-09-06 2007-01-24 富士ゼロックス株式会社 情報処理装置および情報処理方法
US6734852B2 (en) * 1999-09-24 2004-05-11 Sun Microsystems, Inc. Using rendering molecules to manage scene-based rendering
US7184038B2 (en) 1999-09-24 2007-02-27 Sun Microsystems, Inc. Using render bin parallelism for rendering scene graph based graphics data
JP2001331792A (ja) 2000-05-18 2001-11-30 Canon Inc 画像処理装置及び画像処理方法、記憶媒体
JP4047011B2 (ja) * 2002-01-10 2008-02-13 三菱電機株式会社 サーバ及び伝送システム及び歩行方向予測方法及び移動方向予測方法
US7916147B2 (en) * 2002-03-01 2011-03-29 T5 Labs Ltd. Centralised interactive graphical application server
JP2004258264A (ja) * 2003-02-25 2004-09-16 Matsushita Electric Works Ltd 画面作成方法、画面作成装置、表示器
JP4424008B2 (ja) * 2004-03-03 2010-03-03 ソニー株式会社 プログラム、データ処理装置およびその方法
KR100452089B1 (ko) * 2004-06-23 2004-10-13 엔에이치엔(주) 게임 화면을 갱신하기 위한 오브젝트를 로딩하는 이미지리소스 로딩 시스템 및 이미지 리소스 로딩 방법
JP2006252292A (ja) * 2005-03-11 2006-09-21 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
JP4663363B2 (ja) * 2005-03-18 2011-04-06 シャープ株式会社 表示装置、表示プログラム、および表示プログラムを記録する記録媒体
WO2007004837A1 (en) * 2005-07-01 2007-01-11 Nhn Corporation Method for rendering objects in game engine and recordable media recording programs for enabling the method
US20070013694A1 (en) * 2005-07-13 2007-01-18 Microsoft Corporation Optimized meshlet ordering
CA2631639C (en) 2005-12-08 2015-02-03 Agency 9 Ab A method to render a root-less scene graph with a user controlled order of rendering
WO2011065929A1 (en) * 2007-11-23 2011-06-03 Mercury Computer Systems, Inc. Multi-user multi-gpu render server apparatus and methods
US8117617B2 (en) 2007-11-26 2012-02-14 Xerox Corporation Energy-aware print job management
JP2009132082A (ja) * 2007-11-30 2009-06-18 Canon Inc 画像形成装置
US8264493B2 (en) 2008-05-12 2012-09-11 Playcast Media Systems, Ltd. Method and system for optimized streaming game server
US8154553B2 (en) 2008-05-22 2012-04-10 Playcast Media System, Ltd. Centralized streaming game server
WO2009138878A2 (en) 2008-05-12 2009-11-19 Playcast Media Systems, Ltd. Centralized streaming game server
CN101369345B (zh) * 2008-09-08 2011-01-05 北京航空航天大学 一种基于绘制状态的多属性对象绘制顺序优化方法
US8411319B2 (en) 2009-03-30 2013-04-02 Sharp Laboratories Of America, Inc. Methods and systems for concurrent rendering of graphic-list elements

Also Published As

Publication number Publication date
CA2768900C (en) 2015-09-29
JP6026169B2 (ja) 2016-11-16
EP2556493A4 (en) 2016-08-31
JP5937711B2 (ja) 2016-06-22
CA2768900A1 (en) 2012-11-25
US8698813B2 (en) 2014-04-15
CN103098099B (zh) 2016-06-22
JP2012245363A (ja) 2012-12-13
CN103098099A (zh) 2013-05-08
US9649561B2 (en) 2017-05-16
JP2012245347A (ja) 2012-12-13
JP5076132B1 (ja) 2012-11-21
US20140168226A1 (en) 2014-06-19
US20120299938A1 (en) 2012-11-29
JP2015146198A (ja) 2015-08-13
KR101342228B1 (ko) 2013-12-16
WO2012161102A1 (en) 2012-11-29
EP2556493A1 (en) 2013-02-13

Similar Documents

Publication Publication Date Title
KR101342228B1 (ko) 렌더링 제어 장치, 그 제어 방법, 컴퓨터 판독 가능한 저장 매체, 렌더링 서버, 및 렌더링 시스템
JP5887458B1 (ja) プレイヤの移動履歴に基づいてノンプレイヤキャラクタの経路探索を行うゲームシステム等
JP6181917B2 (ja) 描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体
US11724191B2 (en) Network-based video game editing and modification distribution system
US7019742B2 (en) Dynamic 2D imposters of 3D graphic objects
CN106502670A (zh) 一种游戏场景切换方法与装置
JP2010022646A (ja) プログラム、情報記憶媒体および画像生成システム
EP2777023A1 (en) Rendering system, rendering server, control method thereof, program, and recording medium
CN103889524B (zh) 信息处理系统、信息处理方法、信息处理程序、存储信息处理程序的计算机可读记录介质、数据结构、信息处理服务器和信息处理终端
US11704868B2 (en) Spatial partitioning for graphics rendering
CN109685909A (zh) 图像的显示方法、装置、存储介质和电子装置
CN110070609A (zh) 地形数据的处理方法、装置、存储介质、处理器及终端
CN105597314B (zh) 一种2d游戏的渲染系统及方法、终端设备
JP2007052508A (ja) 描画処理装置および描画処理方法
JP2020018620A (ja) 仮想空間における音声生成プログラム、四分木の生成方法、および音声生成装置
JP2010029375A (ja) ゲームシステム、プログラム、及び情報記憶媒体
KR100469820B1 (ko) 화면 갱신 방법 및 그 시스템
CN117076143B (zh) 装备资源的处理方法、装置、设备及介质
JP6647376B1 (ja) 空間情報探索プログラム、および空間情報探索装置
JP2009045091A (ja) ゲーム機器、ネットワークゲームシステム、画像生成方法および画像生成プログラム
CN117122928A (zh) 粒子动画的显示方法、装置、设备、介质及程序产品
JP2022188633A (ja) 情報処理装置、プログラム、及びゲーム画像生成方法
CN114768260A (zh) 游戏中虚拟角色的数据处理方法、装置以及电子设备

Legal Events

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

Payment date: 20161205

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171201

Year of fee payment: 5