IP Library › Granted Patent US 10,469,568
Granted Patent B2
US 10,469,568 · App. 15/631,940 · Granted Nov 5, 2019

System and method to reduce bandwidth requirement for visibility event packet streaming using a predicted maximal view frustum and predicted maximal viewpoint extent, each computed at runtime

Inventor: Barry Lynn Jenkins (Raleigh, NC)
Assignee: PRIMAL SPACE SYSTEMS, INC.
H04L67/10A63F13/355G06F3/011G06F3/1454G06T15/20G06T15/40G06T19/003H04L45/08H04L67/42G06T2200/16G06T2210/08G06T2210/36G09G2350/00G09G2360/122G09G2370/022
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,469,568
App. No.
15/631,940
Granted
Nov 5, 2019
Kind
B2
Abstract

There is provided a method of predictive prefetching and transmitting from a server to a client device at least one partial visibility event packet and/or deferred visibility event packet including renderable graphics information occluded from a first viewcell and not occluded from a second viewcell, including otherwise renderable graphics information in a client view frustum not previously transmitted to the client device; determining an estimated maximal client view frustum; calculating a subset comprising renderable graphics information that is included in the estimated maximal client view frustum; determining whether the calculated subset has previously been transmitted to the client device by comparing the calculated subset to the stored renderable graphics information previously transmitted, and transmitting the at least one partial visibility event packet and/or deferred visibility event packet to the client device if said packet has not been previously transmitted to the client device.

Claims (37)

1. A method, conducted on a server, of predictive prefetching and transmitting at least one partial visibility event packet from the server to a client device, the at least one partial visibility event packet being a subset of a complete visibility event packet, the complete visibility event packet including renderable graphics information occluded from a first viewcell and not occluded from a second viewcell among a plurality of viewcells, the method comprising:

a) storing, using storage circuitry, information representing a current client view frustum;

b) storing, using the storage circuitry, renderable graphics information previously transmitted to the client device;

c) determining, using a processor, a conservative from-region view frustum from the information representing the current client view frustum, the conservative from-region view frustum comprising an estimated maximal client view frustum having at least one polygonal boundary that is attached to an edge of a viewcell or viewcell subregion and enclosing a volume of space intersected by a maximum possible rotational and translational movement of the current client view frustum during a delay period of time at least equal to a round-trip-time of data communication between the server and the client device;

d) calculating, using the processor, the subset of the complete visibility event packet comprising renderable graphics information that is included in the estimated maximal client view frustum;

e) determining, using the processor, whether the calculated subset has previously been transmitted to the client device by comparing the calculated subset to the stored renderable graphics information previously transmitted to the client device; and

f) transmitting, to the client device, the at least one partial visibility event packet comprising the calculated subset of the complete visibility event packet, if the calculated subset has not been previously transmitted to the client device.

2. The method according to claim 1 , wherein the information representing the client view frustum includes a current client view direction vector.

3. The method according to claim 2 , wherein the information representing the client view frustum includes a current client viewpoint location.

4. The method according to claim 3 , further comprising determining the estimated maximal client view frustum by:

c1) determining, using the processor, a conservative maximal viewpoint extent comprising a representation of a maximal possible subregion of the second viewcell occupied by a client viewpoint during the delay period;

c2) determining, using the processor, a conservative maximal view direction vector rotation comprising a representation of a maximal rotational extent of the client view direction vector during the delay period; and

c3) calculating, using the processor, the estimated maximal client view frustum from the conservative maximal viewpoint extent and the conservative maximal view direction vector rotation.

5. The method according to claim 4 , wherein the information representing the client view frustum includes a current velocity of the current client viewpoint.

6. The method according to claim 5 , wherein the determining the conservative maximal viewpoint extent is based on the current client viewpoint location, the current velocity of the client viewpoint, and a predetermined maximal value for viewpoint velocity.

7. The method according to claim 4 , wherein the information representing the client view frustum includes a current acceleration of the current client viewpoint.

8. The method according to claim 4 , wherein the information representing the client view frustum includes a current angular velocity of the current client view direction vector.

9. The method according to claim 4 , wherein the information representing the client view frustum includes a current angular acceleration of the current view direction vector.

10. The method according to claim 9 , wherein the conservative maximal view direction vector rotation is based on the current client view direction vector, a current angular velocity of the current client view direction vector, and a predetermined maximal value for the client view direction vector angular velocity.

11. The method according to claim 4 , further comprising:

g) storing, using the storage circuitry, a complete omnidirectional potentially visible set of data for each viewcell of the plurality of viewcells;

h) storing, using the storage circuitry, a deferred data set for said each viewcell of the plurality of viewcells that is predictively penetrated by the client viewpoint, as determined by the conservative maximal viewpoint extent, the deferred data set representing a subset of the complete omnidirectional potentially visible set that has not been transmitted to the client device in step f);

i) calculating, using the processor, at least one partial visibility event packet for said each viewcell of the plurality of viewcells that is predictively penetrated by the client viewpoint, the partial visibility event packet comprising the deferred data set for the viewcell that intersects the estimated maximal client view frustum; and

j) transmitting, to the client device, at least one deferred rotational visibility event packet comprising deferred data when the deferred data set intersects the estimated maximal client view frustum.

12. A method, conducted on a client device, of receiving at least one partial visibility event packet from a server, the at least one partial visibility event packet being a subset of a complete visibility event packet, the complete visibility event packet including renderable graphics information occluded from a first viewcell and not occluded from a second viewcell among a plurality of viewcells, the method comprising:

a) transmitting to the server, using a processor, client view information representing a current client view frustum;

b) transmitting to the server, using the processor, data comprising at least one of a current client view direction vector and a current client viewpoint location; and

c) receiving, from the server, the at least one partial visibility event packet comprising renderable graphics information that intersects a maximal client view frustum,

wherein the maximal client view frustum is part of a conservative from-region view frustum and has at least one polygonal boundary that is attached to an edge of a viewcell or viewcell subregion and encloses a volume of space intersected by a maximum possible rotational and translational movement of the current client view frustum, based on said at least one of the current client view direction vector and the current client viewpoint location, during a delay period of time at least equal to a round-trip-time of data communication between the server and the client device.

13. The method according to claim 12 , further comprising:

d) receiving, from the server, at least one deferred visibility event packet for said each viewcell of the plurality of viewcells that is predictively penetrated by the client viewpoint, the at least one deferred visibility event packet including, for said each viewcell, a subset of the complete potentially visible set not previously received from the server,

wherein the subset includes renderable graphics information of the at least one deferred visibility event packet that intersects the maximal client view frustum.

14. A method, conducted on a client device, of receiving at least one partial visibility event packet from a server, the at least one partial visibility event packet being a subset of a complete visibility event packet, the complete visibility event packet including renderable graphics information occluded from a first viewcell and not occluded from a second viewcell among a plurality of viewcells, the method comprising:

a) determining, using a processor, client view information representing a current client view frustum and at least one of a current client view direction vector and a current client viewpoint location;

b) determining a conservative from-region view frustum from the client view information, the conservative from-region view frustum comprising a maximal client view frustum having at least one polygonal boundary that is attached to an edge of a viewcell or viewcell subregion and enclosing a volume of space intersected by a maximum possible rotational and translational movement of the current client view frustum, based on said at least one of the current client view direction vector and the current client viewpoint location, during a delay period of time at least equal to a round-trip-time of data communication between the server and the client device;

c) transmitting to the server, using the processor, data representing the maximal client view frustum; and

d) receiving, from the server, the at least one partial visibility event packet comprising renderable graphics information that intersects the maximal client view frustum.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2026
From: PRIMAL SPACE SYSTEMS INC
To: AUGMENTED DYNAMICS LLC
Reel/Frame 075881/0676 →
Continuity (15)
Continuation 14842557 · Sep 1, 2015
Continuation In Part 14754419 · Jun 29, 2015
Continuation In Part 13445792 · Apr 12, 2012
Continuation In Part 13420436 · Mar 14, 2012
Continuation In Part 13420436 · Mar 14, 2012
Continuation In Part PCTUS2011051403 · Sep 13, 2011
Continuation In Part PCTUS2011042309 · Jun 29, 2011
Provisional Application 62044349 · Sep 1, 2014
Provisional Application 61476819 · Apr 19, 2011
Provisional Application 61474491 · Apr 12, 2011
Provisional Application 61452330 · Mar 14, 2011
Provisional Application 61384284 · Sep 19, 2010
Provisional Application 61382056 · Sep 13, 2010
Provisional Application 61360283 · Jun 30, 2010
Related Publication 20170295222A1 · Oct 12, 2017