System and method of reducing transmission bandwidth required for visibility-event streaming of interactive and non-interactive content
First Claim
1. A computer-implemented method of determining a set of mesh polygons or fragments of said mesh polygons visible from a navigation cell, said mesh polygons forming polygon meshes, the method comprising steps of:
- a) determining a composite view frustum containing predetermined view frusta in said navigation cell;
b) determining mesh polygons contained in said composite view frustum;
c) determining at least one supporting polygon between said navigation cell and said contained mesh polygons;
d) constructing at least one wedge from said at least one supporting polygon, said at least one wedge extending away from said navigation cell beyond at least said contained mesh polygons;
e) determining one or more intersections of said at least one wedge with said contained mesh polygons;
f) determining said set of said contained mesh polygons or fragments of said contained mesh polygons visible from said navigation cell using said determined one or more intersections of said at least one wedge with said polygon meshes; and
g) determining at least one first-order silhouette edge of said contained mesh polygons,wherein said at least one supporting polygon is determined between said navigation cell and at least one vertex of said at least one first-order silhouette edge,wherein the navigation cell includes a plurality of navigation cell vertices,wherein said at least one first-order silhouette edge includes;
first and second polygons sharing said at least one first-order silhouette edge,the first polygon backfacing to each navigation cell vertex from the plurality of navigation cell vertices,the second polygon front-facing to at least e navigation cell vertex from the plurality of navigation cell vertices, andthe first and second polygons having a backfacing orientation with respect to each other, andwherein upon determination that said at least one first-order silhouette edge and another first-order silhouette edge share a vertex forming an inside corner vertex of said polygon mesh, the at least one supporting polygon is formed by said inside corner vertex and at least two navigation cell vertices from said plurality of navigation cell vertices, said at least two navigation cell vertices and said inside corner vertex forming a plane, said plane having a same sidedness orientation as said first polygon sharing said at least one first-order silhouette edge, said plane not being front-facing with respect to each navigation cell vertex from said plurality of navigation cell vertices, and said contained mesh polygons or fragments of said contained mesh polygons included on a side of the plane that is visible from the navigation cell.
2 Assignments
0 Petitions
Accused Products
Abstract
In an exemplary embodiment, a computer-implemented method determines a set of mesh polygons or fragments of the mesh polygons visible from a navigation cell. The method includes determining a composite view frustum containing predetermined view frusta and determining mesh polygons contained in the composite view frustum. The method includes determining at least one supporting polygon between the navigation cell and the contained mesh polygons. The method further includes constructing at least one wedge from the at least one supporting polygon, the at least one wedge extending away from the navigation cell beyond at least the contained mesh polygons. The method includes determining one or more intersections of the at least one wedge with the contained mesh polygons. The method also includes determining the set of the contained mesh polygons or fragments of the contained mesh polygons visible from the navigation cell using the determined one or more intersections.
-
Citations
8 Claims
-
1. A computer-implemented method of determining a set of mesh polygons or fragments of said mesh polygons visible from a navigation cell, said mesh polygons forming polygon meshes, the method comprising steps of:
-
a) determining a composite view frustum containing predetermined view frusta in said navigation cell; b) determining mesh polygons contained in said composite view frustum; c) determining at least one supporting polygon between said navigation cell and said contained mesh polygons; d) constructing at least one wedge from said at least one supporting polygon, said at least one wedge extending away from said navigation cell beyond at least said contained mesh polygons; e) determining one or more intersections of said at least one wedge with said contained mesh polygons; f) determining said set of said contained mesh polygons or fragments of said contained mesh polygons visible from said navigation cell using said determined one or more intersections of said at least one wedge with said polygon meshes; and g) determining at least one first-order silhouette edge of said contained mesh polygons, wherein said at least one supporting polygon is determined between said navigation cell and at least one vertex of said at least one first-order silhouette edge, wherein the navigation cell includes a plurality of navigation cell vertices, wherein said at least one first-order silhouette edge includes; first and second polygons sharing said at least one first-order silhouette edge, the first polygon backfacing to each navigation cell vertex from the plurality of navigation cell vertices, the second polygon front-facing to at least e navigation cell vertex from the plurality of navigation cell vertices, and the first and second polygons having a backfacing orientation with respect to each other, and wherein upon determination that said at least one first-order silhouette edge and another first-order silhouette edge share a vertex forming an inside corner vertex of said polygon mesh, the at least one supporting polygon is formed by said inside corner vertex and at least two navigation cell vertices from said plurality of navigation cell vertices, said at least two navigation cell vertices and said inside corner vertex forming a plane, said plane having a same sidedness orientation as said first polygon sharing said at least one first-order silhouette edge, said plane not being front-facing with respect to each navigation cell vertex from said plurality of navigation cell vertices, and said contained mesh polygons or fragments of said contained mesh polygons included on a side of the plane that is visible from the navigation cell. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A server to determine a set of mesh polygons or fragments of said mesh polygons visible from a navigation cell, said mesh polygons forming polygon meshes, the server comprising:
-
a processor configured to; determine a composite view frustum containing predetermined view frusta in said navigation cell; determine mesh polygons contained in said composite view frustum; determine at least one supporting polygon between said navigation cell and said contained mesh polygons; construct at least one wedge from said at least one supporting polygon, said at least one wedge extending away from said navigation cell beyond at least said contained mesh polygons; determine one or more intersections of said at least one wedge with said contained mesh polygons; determine said set of said contained mesh polygons or fragments of said contained mesh polygons visible from said navigation cell using said determined one or more intersections of said at least one wedge with said polygon meshes; and determine at least one first-order silhouette edge of said contained mesh polygons, wherein said at least one supporting polygon is determined between said navigation cell and at least one vertex of said at least one first-order silhouette edge, wherein the navigation cell includes a plurality of navigation cell vertices, wherein said at least one first-order silhouette edge includes; first and second polygons sharing said at least one first-order silhouette edge, the first polygon backfacing to each navigation cell vertex from the plurality of navigation cell vertices, the second polygon front-facing to at least one navigation cell vertex from the plurality of navigation cell vertices, and the first and second polygons having a backfacing orientation with respect to each other, and wherein upon determination, by the processor, that said at least one first-order silhouette edge and another first-order silhouette edge share a vertex forming an inside corner vertex of said polygon mesh, the at least one supporting polygon is formed by said inside corner vertex and at least two navigation cell vertices from said plurality of navigation cell vertices, said at least two navigation cell vertices and said inside corner vertex forming a plane, said plane having a same sidedness orientation as said first polygon sharing said at least one first-order silhouette edge, said plane not being front-facing with respect to each navigation cell vertex from said plurality of navigation cell vertices, and said contained mesh polygons or fragments of said contained mesh polygons included on a side of the plane that is visible from the navigation cell.
-
-
7. A system to determine a set of mesh polygons or fragments of said mesh polygons visible from a navigation cell, said mesh polygons forming polygon meshes, the system comprising:
-
a server having a processor configured to; determine a composite view frustum containing predetermined view frusta in said navigation cell; determine mesh polygons contained in said composite view frustum; determine at least one supporting polygon between said navigation cell and said contained mesh polygons; construct at least one wedge from said at least one supporting polygon, said at least one wedge extending away from said navigation cell beyond at least said contained mesh polygons; determine one or more intersections of said at least one wedge with said contained mesh polygons; determine said set of said contained mesh polygons or fragments of said contained mesh polygons visible from said navigation cell using said determined one or more intersections of said at least one wedge with said polygon meshes; and determine at least one first-order silhouette edge of said contained mesh polygons, wherein said at least one supporting polygon is determined between said navigation cell and at least one vertex of said at least one first-order silhouette edge, wherein the navigation cell includes a plurality of navigation cell vertices, wherein said at least one first-order silhouette edge includes; first and second polygons sharing said at least one first-order silhouette edge, the first polygon backfacing to each navigation cell vertex from the plurality of navigation cell vertices, the second polygon front-facing to at least one navigation cell vertex from the plurality of navigation cell vertices, and the first and second polygons having a backfacing orientation with respect o each other, and wherein upon determination, by the processor, that said at least one first-order silhouette edge and another first-order silhouette edge share a vertex forming an inside corner vertex of said polygon mesh, the at least one supporting polygon is formed by said inside corner vertex and at least two navigation cell vertices from said plurality of navigation cell vertices, said at least two navigation cell vertices and said inside corner vertex forming a plane, said plane having a same sidedness orientation as said first poly on sharing said at least one first-order silhouette edge, said plane not being front-facing with respect to each navigation cell vertex from said plurality of navigation cell vertices, and said contained mesh polygons or fragments of said contained mesh polygons included on a side of the plane that is visible from the navigation cell; and a client computing device configured to receive and display said determined set of said contained mesh polygons or fragments of said contained mesh polygons visible from said navigation cell.
-
-
8. A non-transitory computer readable storage medium having executable instructions stored thereon, which when executed by a processor in a server causes the processor to execute a method for determining a set of mesh polygons or fragments of said mesh polygons visible from a navigation cell, said mesh polygons forming polygon meshes, the method comprising steps of:
-
a) determining a composite view frustum containing predetermined view frusta in said navigation cell; b) determining mesh polygons contained in said composite view frustum; c) determining at least one supporting polygon between said navigation cell and said contained mesh polygons; d) constructing at least one wedge from said at least one supporting polygon, said at least one wedge extending away from said navigation cell beyond at least said contained mesh polygons; e) determining one or more intersections of said at least one wedge with said contained mesh polygons; f) determining said set of said contained mesh polygons or fragments of said contained mesh polygons visible from said navigation cell using said determined one or more intersections of said at least one wedge with said polygon meshes; and g) determining, at least, one first-order silhouette edge of said contained mesh polygons, wherein said at least one supporting polygon is determined between said navigation cell and at least one vertex of said at least one first-order silhouette edge, wherein the navigation cell includes a plurality of navigation cell vertices, wherein said at least one first-order silhouette edge includes; first and second polygons sharing said at least one first-order silhouette edge, the first polygon backfacing to each navigation cell vertex from the plurality of navigation cell vertices, the second polygon front-facing to at least one navigation cell vertex from the plurality of navigation cell vertices, and the first and second polygons having a backfacing orientation with respect to each other, and wherein upon determination that said at least one first-order silhouette edge and another first-order silhouette edge share a vertex forming an inside corner vertex of said polygon mesh, the at least one supporting polygon is formed by said inside corner vertex and at least two navigation cell vertices from said plurality of navigation cell vertices, said at least two navigation cell vertices and said inside corner vertex forming a plane, said plane having a same sidedness orientation as said first polygon sharing said at least one first-order silhouette edge, said plane not being front-facing with respect to each navigation cell vertex from said plurality of navigation cell vertices, and said containedmesh polygons or fragments of said contained mesh polygons included on a side of the plane that is visible from the navigation cell.
-
Specification