Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
NZ620132B2 - Crowd-sourced video rendering system - Google Patents
[go: Go Back, main page]

NZ620132B2 - Crowd-sourced video rendering system - Google Patents

Crowd-sourced video rendering system Download PDF

Info

Publication number
NZ620132B2
NZ620132B2 NZ620132A NZ62013212A NZ620132B2 NZ 620132 B2 NZ620132 B2 NZ 620132B2 NZ 620132 A NZ620132 A NZ 620132A NZ 62013212 A NZ62013212 A NZ 62013212A NZ 620132 B2 NZ620132 B2 NZ 620132B2
Authority
NZ
New Zealand
Prior art keywords
clients
render
composite
server
rendered
Prior art date
Application number
NZ620132A
Other versions
NZ620132A (en
Inventor
Julian Michael Urbach
Original Assignee
Otoy Inc
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
Priority claimed from US13/208,164 external-priority patent/US9250966B2/en
Application filed by Otoy Inc filed Critical Otoy Inc
Priority to NZ709336A priority Critical patent/NZ709336B2/en
Publication of NZ620132A publication Critical patent/NZ620132A/en
Publication of NZ620132B2 publication Critical patent/NZ620132B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/00Three-dimensional [3D] image rendering
    • G06T15/50Lighting effects
    • G06T15/503Blending, e.g. for anti-aliasing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/06Use of more than one graphics processor to process data before displaying to one or more screens
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Abstract

Disclosed is a method for graphic rendering over multiple clients (82, 84). The method includes distributing rendering tasks to connected client nodes (82, 84) having capable graphics processing units by transmitting viewport state data objects and a unique spatial location to each of the clients (82, 84); performing path tracing at each of the clients (82, 84) from the starting point of their unique spatial locations, and transmitting their rendered output back to the server (22). The server (22) generates a composite rendered output from the individual rendered outputs received by the participating clients (82, 84), and then transmits the composite to all connected clients (82, 84) for display. Thus, as the number of client nodes (82, 84) increases, the scene is rendered more rapidly and at higher quality. 2, 84); performing path tracing at each of the clients (82, 84) from the starting point of their unique spatial locations, and transmitting their rendered output back to the server (22). The server (22) generates a composite rendered output from the individual rendered outputs received by the participating clients (82, 84), and then transmits the composite to all connected clients (82, 84) for display. Thus, as the number of client nodes (82, 84) increases, the scene is rendered more rapidly and at higher quality.

Description

WO 23069 CROWD-SOURCED VIDEO RENDERING SYSTEM 2012/050165 TECHNICAL FIELD The t sure generally relates to distributed, crowd-sourced graphics rendering of applications, and more specifically relates to a server utilizing the graphics sing units of one or more connected s to m diffuse light rendering, receiving the rendered scenes from the one or more connected clients, generating a composite scene from the received scenes, and transmitting the composite scene to all connected clients.
BACKGROUND A client-server architecture, in general, is a distributed computing ecture that partitions tasks or work loads between s, which may be considered as “service ers”, and clients, which may be considered as “service requesters” or “service consumers”.
Often, the servers and the clients are connected via a computer network and various types of data may be transmitted between individual servers and individual clients bi-directionally over the computer network. Traditionally, servers usually have more resources and greater performance capabilities than the clients. A server may share its resources with one or more clients, such as performing certain tasks for the clients (i.e., providing services to the clients). Because a server typically has more resources than a client, the server may complete a task, especially a resourcedemanding task, much faster than the client is able to.
Data exchanged between a server and a client may be represented using any suitable data format and transmitted using any suitable communications protocol. For e, when an application is executed on a server for a client, the output of the application may be represented using a structured document, such as a HyperText Markup Language (HTML) document or an Extensible Markup Language (XML) document. The server may it the HTML or XML nt, which includes the data that represent the output of the application, to the client over a HyperText Transfer Protocol (HTTP) connection between the server and the client. The client, upon receiving the HTML or XML document, may consume the document and render the output of the application y using the HTML or XML document, such as in a web browser executed on the client. 2012/050165 SUMMARY The present disclosure generally s to a crowd-sourced graphics rendering system that distributes rendering tasks among one or more connected clients that transmit rendered output back to a server, which composites the client output into a single rendered output for transmission and display to all connected clients.
In the context of server-side graphics rendering, a single server may include an array of graphics processing units (GPUs) to render graphics objects and stream the output to clients. r, rendering complex 3D environments is expensive in terms of processor cycles, and onal GPUs or s must be added to adequately provide rendered frames or scenes to attached clients. Thus, traditional server-side cs rendering encounters significant scalability issues. It may be prohibitively expensive for the provider to add servers or GPUs to meet the s of an increasing number of clients; conversely, overinvestment in server or GPU infrastructure s in underutilization when demand falls below capacity.
Additionally, in recent years, the number of er-level devices having GPUs capable of quickly ming relatively complex 3D rendering has increased dramatically. For e, whereas the number of personal computers possessing GPUs capable of performing path tracing of a 3D scene in under a minute may have been limited to a handful of computers in the early 2000’s, currently over forty-million personal computers possess GPUs with this capability. ore it is desirable to leverage these client-side GPUs to offload graphics rendering tasks from the server to the clients, in effect crowd-sourcing the rendering of a given frame or environment.
In one embodiment, a computer system hosts a plurality of application instances, each ation instance corresponding to a remote client application. The er system ins a network connection to each of the remote client applications for which an application instance is hosted. In particular embodiments, the application instance is a software stub, as further discussed below. In particular embodiments, the computer system transmits render assets to the client applications for computers having sufficiently powerful GPUs to contribute to rendering. In particular embodiments, the computer system transmits render assets in the form of viewport state data objects (VSDOs) as fiarther discussed below. In particular embodiments, the computer system also transmits or assigns a unique spatial position to each client participating in the crowd-sourced rendering process. In particular embodiments, the client s utilize the 2012/050165 received render assets and the unique viewpoint to render the frame or environment. In particular embodiments, the client devices perform path tracing to render the e lighting of a scene or environment. After completing its assigned rendering task, each participating client device transmits its rendered output back to the computer system. In particular embodiments, the rendered output is a frame from a particular viewpoint. In particular embodiments, the ed output is a lightmap for the diffilse lighting of the environment. In particular ments, the rendered output is a modified VSDO. Upon receiving the rendered outputs, the computer system generates a composite rendered output for transmission back to all connected clients, even those that did not participate in the crowd-sourced rendering process.
In particular embodiments, each connected client views the scene from the exact same viewpoint, and the er system transmits a composite frame from the specific viewpoint to each connected client for display. In particular embodiments, each connected client views the scene from a different perspective, and the computer system transmits a composite render asset for the individual s to use in their own rendering engine. In particular environments, the render asset is a light map or VSDO containing light map data representing the diffilse lighting of the nment. Thus, clients may render the scene from different viewpoints using the render assets while retaining high-quality radiosity lighting. In particular embodiments, the clients render the hanging specular lighting locally and in conjunction with the received render assets containing the crowd-sourced diffuse lighting for the environment. Thus, as the number of client nodes possessing capable GPUs increases, any particular scene may be rendered more y or at higher graphics quality.
In an ment, a method for generating a composite render is disclosed. The method comprises transmitting to one or more clients, by a processor, common render assets, a unique spatial position ent from other transmitted spatial positions and one or more instructions to generate a render using the common render assets and its unique spatial position or using the common render assets and a respective unique spatial position that was transmitted to each of the one or more clients. In an embodiment, each unique l position is ted In an embodiment, the ctions to generate a render comprise instructions to perform path tracing on the render assets from the unique spatial position wherein the render is a light map for a portion of or an entire environment containing the render assets. In an embodiment the render is a frame, and the one or more instructions further comprise a common viewpoint from which to render the frame. In an embodiment, the render assets are viewport state data objects (VSDOs) and the render is the set of rendering assets enhanced by diffuse lighting data calculated as a result of the path tracing.
The method fiarther comprises receiving, by the processor, from each of the one or more clients, a render and generating, by the processor, a composite render from the received renders. The composite render thus generated is transmitted by the processor to the one or more clients. In an embodiment, generating, by the processor, the composite render comprises adding, by the processor, the ed light maps to generate a composite light map of a portion of or the entire environment containing the render assets. In an embodiment, generating, by the processor, the composite render fiarther comprises adding the received frames to generate a composite frame.
A method of receiving a ite render is disclosed. The method comprises receiving, by a sor from a server, render , a unique l position and one or more instructions to generate a render using the received render assets and the unique spatial position.
The method filrther ses generating, by the processor, the render in accordance with the one or more instructions, itting, by the processor, the generated render to the server and receiving, by the processor from the server, a composite render. In an embodiment, the method fiarther ses rendering, by the processor, specular ng from a server-independent viewpoint, ing, by the processor, the rendered specular lighting with the ed composite render and outputting, by the processor, the combined ed specular lighting and received composite render to a display.
In an embodiment, a system for generating a composite render is disclosed. The system comprises, a graphics processing unit, a processor and a storage medium for tangibly storing thereon program logic for execution by the processor. In an embodiment, the program logic comprises common render asset transmission logic, executed by the processor, to transmit common render assets to one or more clients, spatial position transmission logic, ed by the processor, to transmit, to each of the one or more clients, a unique spatial position different from other transmitted spatial positions and instruction transmission logic executed by the processor, to transmit, to each of the one or more clients, one or more instructions to generate a render using the common render assets and its unique spatial position. In an embodiment, the program logic further ses receiving logic, executed by the sor, to e, from each of the one or more clients, a render, composite render generating logic, executed by the processor, to te a ite render from the received renders and composite render transmitting logic, executed by the processor, to transmit the composite render to the one or more clients.
In an embodiment, a system for receiving a composite render is disclosed. The system ses, a graphics processing unit, a processor and a storage medium for tangibly storing thereon program logic for execution by the processor. In an embodiment, the program logic comprises receiving logic, executed by a processor, for receiving from a server, render assets, a unique spatial position and one or more instructions to generate a render using the received render assets and the unique spatial position. The programming logic fiarther comprises render generating logic, executed by the processor, for generating the render in accordance with the one or more instructions, transmitting logic, executed by the processor, for transmitting the generated render to the server and composite render receiving logic, executed by the processor for receiving from the server, a composite render. In an embodiment, the system further comprises ng rendering logic, executed by the processor, for ing ar lighting from a server-independent viewpoint. The system also comprises combining logic, executed by the sor, for combining the ed specular lighting with the received composite render and outputting logic, executed by the processor, for outputting the combined rendered specular lighting and received ite render to a display.
In an embodiment, the instruction transmission logic to te a render further comprises instructions to perform path tracing on the render assets from the unique spatial position wherein the render is a light map for a portion of or an entire nment containing the render assets. In an embodiment, the composite render generating logic filrther comprises adding logic to add the ed light maps to generate a composite light map of a portion of or the entire environment containing the render assets. In an embodiment, the composite render generating logic further comprises adding logic, executed by the processor, to add the received frames to generate a composite frame.
These and other embodiments whose features can be combined will be apparent to those of ordinary skill in the art by reference to the following detailed description and the anying drawings. 2012/050165 BRIEF DESCRIPTION OF THE DRAWINGS FIGURE 1 illustrates an example client-server system implementing a crowdsourced graphics rendering system.
FIGURE 2 illustrates a method of distributing the rendering of a frame from a fixed int to a plurality of clients.
FIGURE 3 rates example received client frames for a given scene.
NZ620132A 2011-08-11 2012-08-09 Crowd-sourced video rendering system NZ620132B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
NZ709336A NZ709336B2 (en) 2011-08-11 2012-08-09 Crowd-sourced video rendering system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/208,164 US9250966B2 (en) 2011-08-11 2011-08-11 Crowd-sourced video rendering system
US13/208,164 2011-08-11
PCT/US2012/050165 WO2013023069A2 (en) 2011-08-11 2012-08-09 Crowd-sourced video rendering system

Publications (2)

Publication Number Publication Date
NZ620132A NZ620132A (en) 2015-07-31
NZ620132B2 true NZ620132B2 (en) 2015-11-03

Family

ID=

Similar Documents

Publication Publication Date Title
AU2017228573B2 (en) Crowd-sourced video rendering system
TWI482118B (en) System and method for processing load balance of graphic streams
MX2014012325A (en) Enabling web clients to provide web services.
Grimstead et al. RAVE: the resource‐aware visualization environment
Aderhold et al. Distributed 3d model optimization for the web with the common implementation framework for online virtual museums
CN114528515A (en) Model rendering method and device, electronic equipment and computer readable storage medium
NZ620132B2 (en) Crowd-sourced video rendering system
NZ709336B2 (en) Crowd-sourced video rendering system
Sigitov et al. Drive: An example of distributed rendering in virtual environments
Su et al. Crossport: a Cloud-Edge-End Microservice Architecture for Collaborative Rendering in Metaverse Services
Soetebier Client-server infrastructure for interactive 3d multi-user environments
Kim et al. Multiscreen-based gaming services using multi-view rendering with different resolutions
He et al. Multi-user 3D based framework for e-commerce
Al-Saidi Interactive Solution For Distributed Collaborative Visualization
HK1194495A (en) Crowd-sourced video rendering system
HK1194495B (en) Crowd-sourced video rendering system
Ratoi et al. A NEW MULTIMEDIA STREAMING PLATFORM BASED ON XPCOM COMPONENTS.