P
US9659400B2ActiveUtilityPatentIndex 84

Efficiently implementing and displaying independent 3-dimensional interactive viewports of a virtual world on multiple client devices

Assignee: URBACH JULIAN MICHAELPriority: Oct 29, 2007Filed: Dec 11, 2015Granted: May 23, 2017
Est. expiryOct 29, 2027(~1.3 yrs left)· nominal 20-yr term from priority
Inventors:URBACH JULIAN MICHAEL
G06T 15/04G06T 15/005G06T 2200/04G06F 3/1415G06T 2200/16H04N 21/816G06T 2219/024H04N 21/2393H04N 21/234309
84
PatentIndex Score
10
Cited by
3
References
20
Claims

Abstract

Methods, apparatuses and systems directed to efficiently circumventing the limitations of client side rendering of virtual worlds. In a particular implementation, a proposed system renders each client viewport remotely, removing the burden of rendering a 3D scene from the local client device. 3D viewports, rather than being rasterized on the local client, are instead generated on a remote render device which then transmits a visual representation of the viewport to the client device in a format (including, but not limited to a video stream) which the client can use to display the scene without requiring complex 3D rasterization. This process eliminates the need for the client to have any specialized 3D rendering software or hardware, or to install or download any persistent render assets on the local system. The hardware requirements for the client are therefore roughly equivalent to those needed to play a continuous video stream.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 accessing, by a processor, a buffer of requests for rendering one or more viewports that are representations of a three dimensional virtual environment, the requests are received from one or more remote client devices and each of the requests identifies respective spatial positions within the three dimensional virtual environment and view transform parameters of the viewports to be rendered; 
 accessing by the processor, a list of remote render device (RRD) nodes; 
 routing, by the processor, each of the client requests to an appropriate one of the RRD nodes for generating or accessing a VSDO (viewport state data object) such that the VSDO is used for one of the viewports that are rendered by the appropriate RRD nodes; and 
 causing, by the processor, the appropriate RRD nodes to supply data associated with the rendered viewports in one of session based render packets and continuous render streams to respective requesting remote client devices. 
 
     
     
       2. The method of  claim 1  wherein the VSDO comprises a cube map including one or more layers of spatial information associated with the one or more objects of the scene. 
     
     
       3. The method of  claim 1  further comprising transmitting, by the processor, at least a subset of the VSDO by a root RRD. 
     
     
       4. The method of  claim 1  wherein the one or more remote client devices are peers in a peer-to-peer network. 
     
     
       5. The method of  claim 1 , wherein the appropriate one of the RRD nodes for generating or accessing a VSDO further comprises:
 enabling, by the processor, a single one of the appropriate RRD nodes to generate one viewport for multiple requests that have the spatial positions and view transform parameters within a threshold distance. 
 
     
     
       6. The method of  claim 1 , wherein enabling the appropriate one of the RRD nodes for generating or accessing a VSDO further comprises:
 post processing, by the processor, at least a subset of the rendered viewports, wherein the processor is associated with a root RRD. 
 
     
     
       7. The method of  claim 1 , wherein the appropriate one of the RRD nodes for generating or accessing a VSDO further comprises:
 transmitting, by the processor, further requests from the remote client devices for compressing or transcoding the rendered viewports to a same RRD generated or modified the VSDOs. 
 
     
     
       8. The method of  claim 1  further comprising partially rendering, by the processor, the requested viewport from the VSDOs. 
     
     
       9. The method of  claim 8 , wherein partially rendering the requested viewport further comprises:
 rendering completely, by the processor, the requested viewport in a 2D image format. 
 
     
     
       10. The method of  claim 1 , wherein the RRD node is the remote client device. 
     
     
       11. The method of  claim 10 , further comprising:
 rendering completely, by the processor, the requested viewport as a video sequence that encapsulates the requested viewport; and 
 streaming, by the processor, the video sequence to the remote client device by transcoding the video sequence into a common video format. 
 
     
     
       12. The method of  claim 11 , wherein the common video format is one of Motion Picture Experts Group (MPEG)-2, MPEG-4 or Motion-JPEG. 
     
     
       13. The method of  claim 1 , further comprising:
 enabling, by the processor, the selected RRD node to retransmit the completely rendered viewport to the remote client device. 
 
     
     
       14. The method of  claim 8 , wherein the session based render packets represent discreet snapshots of the partially rendered viewport. 
     
     
       15. The method of  claim 1 , wherein the continuous render streams represent the three dimensional environment. 
     
     
       16. The method of  claim 1 , further comprising:
 employing, by the processor, a hit function to trace rays from a spatial location of the viewport to objects in a scene defined by the VSDOs as the spatial location from which the viewport is to be rendered varies from a reference point of the VSDO. 
 
     
     
       17. The method of  claim 1 , further comprising:
 maintaining, by the processor, state of objects within the three dimensional virtual environment; and 
 providing, by the processor, the state of the objects to the selected RRD node. 
 
     
     
       18. The method of  claim 17 , further comprising:
 modifying, by the processor, the VSDOs in response to a change in the state of at least one of the objects. 
 
     
     
       19. The method of  claim 1 , further comprising:
 selecting, by the processor, another RRD node for generating at least one of the VSDOs when the selected RRD node does not optimally render the at least one VSDO. 
 
     
     
       20. An apparatus comprising
 one or more processors; and 
 a non-transitory processor-readable memory comprising: 
 a remote rendering module comprising programming logic executable by the processors, the programming logic comprising:
 buffer accessing logic, executed by the processors, for accessing a buffer of requests for rendering one or more viewports that are representations of a three dimensional virtual environment, the requests are received from one or more remote client devices and each of the requests identifies respective spatial positions within the three dimensional virtual environment and view transform parameters of the viewports to be rendered; 
 node accessing logic, executed by the processors, for accessing a list of remote render device (RRD) nodes; 
 routing logic, executed by the processors, for routing each of the client requests to an appropriate one of the RRD nodes for generating or accessing a VSDO (viewport state data object) such that the VSDO is used for one of the viewports that are rendered by the appropriate RRD nodes; 
 list accessing logic, executed by the processors, for accessing a list of remote render device (RRD) nodes; 
 selecting logic, executed by the processors, for selecting one of the remote render device (RRD) nodes for receiving a partially rendered viewport; and 
 supplying logic, executed by the processors, for causing the appropriate RRD nodes to supply data associated with the rendered viewports in one of session based render packets and continuous render streams to respective requesting remote client devices.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.