Efficiently implementing and displaying independent 3-dimensional interactive viewports of a virtual world on multiple client devices
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-modifiedWhat 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.