System and method of procedural visibility for interactive and broadcast streaming of entertainment, advertising, and tactical 3D graphical information using a visibility event codec
First Claim
Patent Images
1. A computer-implemented method comprising steps of:
- a) determining, using a processor, one or more portions of a procedurally generated 3D graphical object not occluded from a second viewcell and occluded from a first viewcell, the procedurally generated 3D graphical object comprising graphics primitives generated by a generation procedure using procedural parameters,wherein the first and second viewcells have a plurality of viewcell vertices,wherein both non-procedural 3D graphical objects and the procedurally generated 3D graphical object comprise mesh polygons forming polygon meshes, andwherein the one or more portions of the procedurally generated graphical object not occluded from the second viewcell and occluded from the first viewcell are determined by steps of;
a1) executing a generation procedure to generate the mesh polygons comprising the procedurally generated object,a2) determining at least one first-order silhouette edge of the polygon meshes, the at least one first-order silhouette edge being an edge of the polygon meshes having;
first and second polygons sharing the at least one first-order silhouette edge,the first polygon back-facing to each viewcell vertex from the plurality of viewcell vertices of the second viewcell,the second polygon front-facing to at least one viewcell vertex from the plurality of viewcell vertices of the second viewcell, andthe first and second polygons having a back-facing orientation with respect to each other,a3) determining at least one supporting polygon between the second viewcell and the polygon meshes, the at least one supporting polygon being determined between the second viewcell and at least one vertex of the at least one first-order silhouette edge,a4) constructing at least one wedge from the at least one supporting polygon, the at least one wedge extending away from the second viewcell,a5) determining one or more intersections of the at least one wedge with the mesh polygons, anda6) determining the set of the mesh polygons or fragments of the mesh polygons not occluded from the second viewcell using the determined one or more intersections;
b) determining, using the processor, values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell; and
c) storing the values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell.
1 Assignment
0 Petitions
Accused Products
Abstract
A system includes a server and a client computer device. The server determines a graphical object visible from a view region and determines one or more parameters defining the graphical object visible from the view region. The server further transmits the determined one or more parameters to a client computing device. The client computing device includes a processor to generate the graphical object using the determined one or more parameters received from the server. The client computing device further includes a display device to display the generated graphical object within a computer generated modeled environment.
-
Citations
23 Claims
-
1. A computer-implemented method comprising steps of:
-
a) determining, using a processor, one or more portions of a procedurally generated 3D graphical object not occluded from a second viewcell and occluded from a first viewcell, the procedurally generated 3D graphical object comprising graphics primitives generated by a generation procedure using procedural parameters, wherein the first and second viewcells have a plurality of viewcell vertices, wherein both non-procedural 3D graphical objects and the procedurally generated 3D graphical object comprise mesh polygons forming polygon meshes, and wherein the one or more portions of the procedurally generated graphical object not occluded from the second viewcell and occluded from the first viewcell are determined by steps of; a1) executing a generation procedure to generate the mesh polygons comprising the procedurally generated object, a2) determining at least one first-order silhouette edge of the polygon meshes, the at least one first-order silhouette edge being an edge of the polygon meshes having; first and second polygons sharing the at least one first-order silhouette edge, the first polygon back-facing to each viewcell vertex from the plurality of viewcell vertices of the second viewcell, the second polygon front-facing to at least one viewcell vertex from the plurality of viewcell vertices of the second viewcell, and the first and second polygons having a back-facing orientation with respect to each other, a3) determining at least one supporting polygon between the second viewcell and the polygon meshes, the at least one supporting polygon being determined between the second viewcell and at least one vertex of the at least one first-order silhouette edge, a4) constructing at least one wedge from the at least one supporting polygon, the at least one wedge extending away from the second viewcell, a5) determining one or more intersections of the at least one wedge with the mesh polygons, and a6) determining the set of the mesh polygons or fragments of the mesh polygons not occluded from the second viewcell using the determined one or more intersections; b) determining, using the processor, values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell; and c) storing the values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer-implemented method conducted on a client computing device, the method comprising steps of:
-
a) displaying a first set of graphics information not occluded from a second viewcell and occluded from a first viewcell, the first and second viewcells having a plurality of viewcell vertices, the first set of graphics information including one or more 3D objects in a computer-represented environment, the first set of graphics information comprising graphics primitives generated using procedural parameters, and mesh polygons forming polygon meshes, wherein one or more portions of the procedurally generated first set of graphics information not occluded from the second viewcell and occluded from the first viewcell are determined by; a1) determining at least one first-order silhouette edge of the polygon meshes, the at least one first-order silhouette edge being an edge of the polygon meshes having; first and second polygons sharing the at least one first-order silhouette edge, the first polygon back-facing to each viewcell vertex from the plurality of viewcell vertices of the second viewcell, the second polygon front-facing to at least one viewcell vertex from the plurality of viewcell vertices of the second viewcell, and the first and second polygons having a back-facing orientation with respect to each other; a2) determining at least one supporting polygon between the second viewcell and the polygon meshes, the at least one supporting polygon being determined between the second viewcell and at least one vertex of the at least one first-order silhouette edge; a3) constructing at least one wedge from the at least one supporting polygon, the at least one wedge extending away from the second viewcell; a4) determining one or more intersections of the at least one wedge with the mesh polygons; and a5) determining the set of the mesh polygons or fragments of the mesh polygons not occluded from the second viewcell using the determined one or more intersections; b) receiving, from a server, a second set of graphics information upon determination that at least one predetermined condition is satisfied, the second graphics information not occluded from the second viewcell and occluded from the first viewcell, the second set of graphics information including at least one 3D advertising object; c) displaying the second set of graphics information within the displayed computer-represented environment; d) displaying the second set of graphics information with a visual indication that the second set of graphics information is selectable with only a single button press; and e) transmitting a selection result of the displayed second set of graphics information to the server. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A system, comprising:
-
an encoder configured to perform a computer-implemented encoding method comprising steps of; a1) determining, using a processor, one or more portions of a procedurally generated 3D graphical object not occluded from a second viewcell and occluded from a first viewcell, the procedurally generated 3D graphical object comprising graphics primitives generated by a generation procedure using procedural parameters, a2) determining, using the processor, values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell, and a3) storing the values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell; a server configured to; b1) transmit the values of the procedural parameters if any portion of the procedurally generated 3D graphical object is unoccluded from the second viewcell and occluded from the first viewcell; and a client configured to; c1) display a first set of graphics information not occluded from the second viewcell and occluded from the first viewcell, the first set of graphics information including one or more 3D objects in a computer-represented environment, c2) receive, from the server, a second set of graphics information upon determination that at least one predetermined condition is satisfied, the second graphics information not occluded from the second viewcell and occluded from the first viewcell, the second set of graphics information including at least one 3D advertising object, c3) display the second set of graphics information within the displayed computer-represented environment, c4) the second set of graphics information with a visual indication that the second set of graphics information is selectable with only a single button press, and c5) transmit a selection result of the displayed second set of graphics information to the server, wherein the first and second viewcells have a plurality of viewcell vertices, wherein both non-procedural 3D graphical objects and the procedurally generated 3D graphical object comprise mesh polygons forming polygon meshes, and wherein the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell are determined by steps of; d1) determining at least one first-order silhouette edge of the polygon meshes, the at least one first-order silhouette edge being an edge of the polygon meshes having; first and second polygons sharing the at least one first-order silhouette edge, the first polygon back-facing to each viewcell vertex from the plurality of viewcell vertices of the second viewcell, the second polygon front-facing to at least one viewcell vertex from the plurality of viewcell vertices of the second viewcell, and the first and second polygons having a back-facing orientation with respect to each other, d2) determining at least one supporting polygon between the second viewcell and the polygon meshes, the at least one supporting polygon being determined between the second viewcell and at least one vertex of the at least one first-order silhouette edge, d3) constructing at least one wedge from the at least one supporting polygon, the at least one wedge extending away from the second viewcell, d4) determining one or more intersections of the at least one wedge with the mesh polygons, and d5) determining the set of the mesh polygons or fragments of the mesh polygons not occluded from the second viewcell using the determined one or more intersections.
-
-
19. A system, comprising:
-
a server including a memory to store; a first set of graphics information representing a procedure for generating a procedurally generated 3D graphical object using procedural parameters, and a second set of graphics information representing values of the procedural parameters which define the one or more portions of the procedurally generated 3D graphical object not occluded from a second viewcell and occluded from a first viewcell; a processor configured to; determine a likelihood that a user viewpoint moves from the first viewcell to the second viewcell, and transmit the first and second sets of graphics information to a client only if the likelihood that a client-user viewpoint moves from the first viewcell to the second viewcell exceeds a movement threshold; and a client computing device configured to; upon determination that the likelihood that that the client-user viewpoint moves from the first viewcell to the second viewcell exceeds the movement threshold, and generate a portion of the procedurally generated 3D graphical object using the transmitted first and second sets of graphics information including the values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell, wherein the first and second viewcells have a plurality of viewcell vertices, wherein both non-procedural 3D graphical objects and the procedurally generated 3D graphical object comprise mesh polygons forming polygon meshes, and wherein the one or more portions of a procedurally generated 3D graphical object not occluded from a second viewcell and occluded from a first viewcell are determined by steps of; a1) determining at least one first-order silhouette edge of the polygon meshes, the at least one first-order silhouette edge being an edge of the polygon meshes having; first and second polygons sharing the at least one first-order silhouette edge, the first polygon back-facing to each viewcell vertex from the plurality of viewcell vertices of the second viewcell, the second polygon front-facing to at least one viewcell vertex from the plurality of viewcell vertices of the second viewcell, and the first and second polygons having a back-facing orientation with respect to each other, a2) determining at least one supporting polygon between the second viewcell and the polygon meshes, the at least one supporting polygon being determined between the second viewcell and at least one vertex of the at least one first-order silhouette edge, a3) constructing at least one wedge from the at least one supporting polygon, the at least one wedge extending away from the second viewcell, a4) determining one or more intersections of the at least one wedge with the mesh polygons, and a5) determining the set of the mesh polygons or fragments of the mesh polygons not occluded from the second viewcell using the determined one or more intersections. - View Dependent Claims (20)
-
-
21. A non-transitory computer readable storage medium having computer executable instructions stored thereon, which when executed by a processor in a server, causes the server to execute a method comprising steps of:
-
a) determining, using a processor, one or more portions of a procedurally generated 3D graphical object not occluded from a second viewcell and occluded from a first viewcell, the procedurally generated 3D graphical object comprising graphics primitives generated by a generation procedure using procedural parameters, wherein the first and second viewcells have a plurality of viewcell vertices, wherein both non-procedural 3D graphical objects and the procedurally generated 3D graphical object comprise mesh polygons forming polygon meshes, and wherein the one or more portions of a procedurally generated 3D graphical object not occluded from a second viewcell and occluded from a first viewcell are determined by steps of; a1) executing the generation procedure to generate mesh polygons comprising the procedurally generated object, a2) determining at least one first-order silhouette edge of the polygon meshes, the at least one first-order silhouette edge being an edge of the polygon meshes having; first and second polygons sharing the at least one first-order silhouette edge, the first polygon back-facing to each viewcell vertex from the plurality of viewcell vertices of the second viewcell, the second polygon front-facing to at least one viewcell vertex from the plurality of viewcell vertices of the second viewcell, and the first and second polygons having a back-facing orientation with respect to each other, a3) determining at least one supporting polygon between the second viewcell and the polygon meshes, the at least one supporting polygon being determined between the second viewcell and at least one vertex of the at least one first-order silhouette edge, a4) constructing at least one wedge from the at least one supporting polygon, the at least one wedge extending away from the second viewcell, a5) determining one or more intersections of the at least one wedge with the mesh polygons, and a6) determining the set of the mesh polygons or fragments of the mesh polygons not occluded from the second viewcell using the determined one or more intersections; b) determining, using the processor, values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell; and c) storing the values of the procedural parameters, which define the one or more portions of the procedurally generated 3D graphical object not occluded from the second viewcell and occluded from the first viewcell. - View Dependent Claims (22, 23)
-
Specification