Method of producing a sequence of triangles from a vertex raster with and without half resolution edges while decompressing a compressed geometry stream
First Claim
1. A method of producing a sequence of triangles from a geometry stream containing an array of vertices, comprising the steps of:
- parsing vertices from the geometry stream and pushing the parsed vertices into a mesh buffer until a last vertex of a current row of the array is parsed and pushed;
re-using a first vertex of the current row from the mesh buffer and drawing the re-used first vertex;
parsing a first vertex of a next row from the geometry stream, pushing the first vertex into the mesh buffer and drawing the first vertex;
determining if a quad split bit is asserted;
when the quad split bit is not asserted, parsing a next vertex from a current row of the array, pushing the parsed next vertex into the mesh buffer, drawing the parsed next vertex, and re-using a next vertex of a previous row from the mesh buffer and drawing the re-used next vertex;
when the quad split bit is asserted, re-using the next vertex of the previous row from the mesh buffer and drawing the re-used next vertex, parsing and drawing the next vertex of the current row of the array and pushing the parsed next vertex of the current row into the mesh buffer; and
returning to the determining step until the last vertex of the current row is reached, and returning to the first vertex re-using step until a last vertex of the array of vertices is reached,whereby, a triangle is formed from each three consecutive drawn vertices, to thereby create the sequence of triangles, starting from the beginning of each row.
4 Assignments
0 Petitions
Accused Products
Abstract
A method of producing a sequence of triangles from a compressed geometry stream that includes an array of vertices includes steps of parsing vertices and pushing the parsed vertices into a buffer until the last vertex of the current row of the array is parsed and pushed. The first vertex of the current row is then re-used from the buffer and drawn. The first vertex of the next row is then parsed from the geometry stream, pushed into the buffer and drawn. Thereafter, it is determined whether a quad split bit is asserted. If the quad split bit is not asserted, the next vertex from the current row is parsed, pushed into the buffer, and drawn. The next vertex of the previous row is then re-used from the buffer and the re-used next vertex is drawn. If the quad split bit is asserted, the next vertex of the previous row is re-used from the buffer and drawn. The next vertex from the current row is then parsed and pushed into the buffer. Thereafter, the method returns to the determining step until the last vertex of the current row is reached, and returns to the first vertex re-using step until the last vertex of the array is reached. A triangle is formed from each three consecutive drawn vertices, to thereby create the sequence of triangles, starting from the beginning of each row. The raster may include one or more half-resolution edges, wherein alternate vertices are dropped and not drawn.
-
Citations
17 Claims
-
1. A method of producing a sequence of triangles from a geometry stream containing an array of vertices, comprising the steps of:
-
parsing vertices from the geometry stream and pushing the parsed vertices into a mesh buffer until a last vertex of a current row of the array is parsed and pushed; re-using a first vertex of the current row from the mesh buffer and drawing the re-used first vertex; parsing a first vertex of a next row from the geometry stream, pushing the first vertex into the mesh buffer and drawing the first vertex; determining if a quad split bit is asserted; when the quad split bit is not asserted, parsing a next vertex from a current row of the array, pushing the parsed next vertex into the mesh buffer, drawing the parsed next vertex, and re-using a next vertex of a previous row from the mesh buffer and drawing the re-used next vertex; when the quad split bit is asserted, re-using the next vertex of the previous row from the mesh buffer and drawing the re-used next vertex, parsing and drawing the next vertex of the current row of the array and pushing the parsed next vertex of the current row into the mesh buffer; and returning to the determining step until the last vertex of the current row is reached, and returning to the first vertex re-using step until a last vertex of the array of vertices is reached, whereby, a triangle is formed from each three consecutive drawn vertices, to thereby create the sequence of triangles, starting from the beginning of each row. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of generating a sequence of triangles from a compressed geometry stream containing an array of vertices, each of the vertices including a plurality of attributes, comprising the steps of:
-
traversing the array and selectively issuing, for each vertex of the array, one of a draw command and a don'"'"'t draw command, and by carrying out at least one of a vertex drop step, to drop the attributes of selected vertices of the array, a mesh buffer pushing step, to push the attributes of selected vertices of the array into a mesh buffer, a mesh buffer re-use step, to read vertex attributes previously pushed into the mesh buffer, a working registers load step, to load vertex attributes into working registers, and a mesh buffer re-push step, to read vertex attributes previously pushed into the mesh buffer and to re-push the attributes in another location of the mesh buffer; and during the traversing step, decompressing the geometry stream by utilizing attributes of vertices loaded into the working registers, the loaded working registers storing vertex attributes to allow interpolation of attributes of subsequent vertices in the geometry stream therefrom, whereby a plurality of triangles is generated to form the sequence, each of the plurality of triangles being defined by three consecutive vertices for which a draw command has been issued, starting from the beginning of each row. - View Dependent Claims (13, 14, 15, 16, 17)
-
Specification