View rendering from multiple server-side renderings

US9569812B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9569812-B1
Application numberUS-201614990623-A
CountryUS
Kind codeB1
Filing dateJan 7, 2016
Priority dateJan 7, 2016
Publication dateFeb 14, 2017
Grant dateFeb 14, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A first user input is received when a client program executed by a client computing device is in a first state. The first user input is sent to a server computing device to render a view of a virtual scene. A state change from the first state in the client program due to a second user input or a program event is identified. One or more gaps in a server-rendered current view due to the state change are determined. A rendering of the one or more gaps is selected from among the server-rendered current view, a server-rendered predicted view and one or more prior-rendered views. A current view is rendered using a simplified model of the virtual scene by rendering the one or more gaps from the selected rendering. The current rendered view is visually presented via a display of the client computing device.

First claim

Opening claim text (preview).

The invention claimed is: 1. A client computing device comprising: a processor configured to: receive a first user input when the client program is in a first state; send the first user input to a server computing device to render a view of a virtual scene; receive from the server computing device a server-rendered current view of the virtual scene that is based on the first input; receive from the server computing device a server-rendered predicted view of the virtual scene that is based on the first input; receive from the server computing device a simplified model of geometry of the virtual scene; retrieve one or more prior-rendered views of the virtual scene from memory of the client computing device; identify a state change from the first state in the client program due to a second user input or a program event; determine one or more gaps in the server-rendered current view due to the state change; select a rendering of the one or more gaps from among the server-rendered current view, the server-rendered predicted view and the one or more prior-rendered views; and render from the simplified model a current view by rendering the one or more gaps from the rendering; and a display configured to visually present the current view; wherein the server-rendered current view, the server-rendered predicted view and the one or more prior-rendered views are candidate views, and wherein selecting the rendering of the one or more gaps includes: selecting a candidate view in which the one or more gaps are visible as the highest quality rendering; and if the one or more gaps are visible in more than one candidate view, assigning a quality score to each candidate view, and selecting a candidate view having a highest quality score as the rendering, wherein the quality score is derived at least in part from one or more of an angle of a perspective of the candidate view relative to the one or more gaps and a distance between a surface corresponding to the one or more gaps and the perspective of the candidate view. 2. The client computing device of claim 1 , wherein the one or more gaps includes a plurality of gaps, and wherein rendering the current view includes if a subset of gaps of the plurality of gaps are not visible in the rendering, selecting a different rendering that includes the subset of gaps, and rendering the subset of gaps from the different rendering. 3. The client computing device of claim 2 , wherein rendering the current view includes rendering gaps that are not visible in any of the candidate views using a smoothing or blurring algorithm. 4. The client computing device of claim 1 , wherein the simplified model of geometry of the virtual scene includes a subset of geometry of the virtual scene that is selected for inclusion in the simplified model based the first state of the program and the first user input. 5. The client computing device of claim 1 , wherein the server-rendered current view and the server-rendered predicted view include a plurality of pixels each having color data and depth data corresponding to a surface in the virtual scene. 6. The client computing device of claim 1 , wherein the server-rendered predicted view has a field of view that is wider than a field of view of the server-rendered current view. 7. The client computing device of claim 1 , wherein the server-rendered predicted view has a perspective of the virtual scene that is higher than a perspective of the server-rendered current view. 8. A method for predicting and rendering content, executable on a client computing device, the method comprising: receiving a first user input when a client program executed by the client computing device is in a first state; sending the first user input to a server computing device to render a view of a virtual scene; receiving from the server computing device a server-rendered current view of the virtual scene that is based on the first input; receiving from the server computing device a server-rendered predicted view of the virtual scene that is based on the first input; receiving from the server computing device a simplified model of geometry of the virtual scene; retrieving one or more prior-rendered views of the virtual scene from memory of the client computing device; identifying a state change from the first state in the client program due to a second user input or a program event; determining one or more gaps in the server-rendered current view due to the state change; selecting a rendering of the one or more gaps from among the server-rendered current view, the server-rendered predicted view and the one or more prior-rendered views; rendering from the simplified model a current view by rendering the one or more gaps from the rendering; and visually presenting the rendered view via a display of the client computing device; wherein the server-rendered current view, the server-rendered predicted view and the one or more prior-rendered views are candidate views, and wherein selecting the rendering of the one or more gaps includes: selecting a candidate view in which the one or more gaps are visible as the highest quality rendering; and if the one or more gaps are visible in more than one candidate view, assigning a quality score to each candidate view, and selecting a candidate view having a highest quality score as the rendering, wherein the quality score is derived at least in part from one or more of an angle of a perspective of the candidate view relative to the one or more gaps and a distance between a surface corresponding to the one or more gaps and the perspective of the candidate view. 9. The method of claim 8 , wherein the one or more gaps includes a plurality of gaps, and wherein rendering the current view includes if a subset of gaps of the plurality of gaps are not visible in the rendering, selecting a different rendering that includes the subset of gaps, and rendering the subset of gaps from the different rendering. 10. The method of claim 9 , wherein rendering the current view includes rendering gaps that are not visible in any of the candidate views using a smoothing or blurring algorithm. 11. The method of claim 8 , wherein the simplified model of geometry of the virtual scene includes a subset of geometry of the virtual scene that is selected for inclusion in the simplified model based on the first state of the program, and the first user input. 12. A client computing device comprising: a processor configured to: receive a first user input when the client program is in a first state; send the first user input to a server computing device to render a view of a virtual scene; receive from the server computing device a server-rendered current view of the virtual scene that is based on the first input; receive from the server computing device a server-rendered predicted view of the virtual scene that is based on the first input; receive from the server computing device a simplified model of geometry of the virtual scene; retrieve one or more prior-rendered views of the virtual scene from memory of the client computing device; identify a state change from the first state in the client program due to a second user input or a program event; determine one or more gaps in the server-rendered current view due to the state change; identify one or more candidate views in which the one or more gaps are visible from among the server-rendered current view, the server-rendered predicted view and the one or more prior-rendered views; if only one candidate view is identified, select the candidate view as a rendering of the one or more gaps; if more than one candidate view is identified, 1) assign a quali

Assignees

Inventors

Classifications

  • Centralised management of display operation, e.g. in a server instead of locally · CPC title

  • Three-dimensional [3D] modelling for computer graphics · CPC title

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

  • Use of more than one graphics processor to process data before displaying to one or more screens · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9569812B1 cover?
A first user input is received when a client program executed by a client computing device is in a first state. The first user input is sent to a server computing device to render a view of a virtual scene. A state change from the first state in the client program due to a second user input or a program event is identified. One or more gaps in a server-rendered current view due to the state cha…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 14 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).