摘要:
A method, computer program product, and system are provided for processing data in a graphics pipeline. An embodiment of the method includes processing one or more vertices of a geometric primitive with a vertex shader function and generating new primitive information for the one or more processed vertices with a geometry shader function. The geometry shader function receives one or more processed vertices from the vertex shader function and emits a single vertex associated with the new primitive information. Each emitted vertex from the geometry shader function can be stored in a memory device. Unlike conventional graphic pipelines that require a memory device for data storage during the vertex and geometry shading processes, the present invention increases efficiency in the graphics pipeline by eliminating the need to access memory when the vertex and geometry shaders process vertex information.
摘要:
The present invention addresses the problem of describing an arbitrary object (up to user-defined limits) given a set of triangles with vertex normals describing the object. A novel method of successively merging traingles into larger and larger patches to compute a set of "as-few-as-possible" Bezier patches is presented. This method is not only applicable to arbitrary objects, but also aims at producing as few patches as possible depending on the geometry of the input object. Also presented are methods to enforce C.sup.0 - and C.sup.1 -continuity between a pair of patches B.sub.L (s,t) and B.sub.R (s,t), placed arbitrarily. The methods perturb the appropnate control points to achieve geometric continuities. For C.sup.0 -continuity the area of the hole between the patches is minimized by formulating the area as a series of linear programs, where the continuity has to be enforced across the adjacent boundary curves B.sub.L (1,t) and B.sub.R (0,t). Similarly, to enforce C.sup.1 -continuity the hole-area in tangential space is minimized.
摘要:
Techniques described in the disclosure are generally related to generating points of a domain. A tessellation unit may determine outer ring point coordinates for a point of an outer ring of the domain, and inner ring point coordinates for a point of an inner ring of the domain. The inner ring is inner to the outer ring within the domain. The tessellation unit may enqueue the inner ring point coordinates at a location of a queue, read the inner ring point coordinates from the queue, and read the outer ring point coordinates from the queue when the outer ring is not an outermost ring, where the outer ring point coordinates were previously enqueued in the queue when the outer ring was a previous inner ring. The tessellation unit may connect the inner ring coordinates and the outer ring coordinates each of which being read from the queue.
摘要:
Techniques described in the disclosure are generally related to generating points of a domain. A tessellation unit may determine outer ring point coordinates for a point of an outer ring of the domain, and inner ring point coordinates for a point of an inner ring of the domain. The inner ring is inner to the outer ring within the domain. The tessellation unit may enqueue the inner ring point coordinates at a location of a queue, read the inner ring point coordinates from the queue, and read the outer ring point coordinates from the queue when the outer ring is not an outermost ring, where the outer ring point coordinates were previously enqueued in the queue when the outer ring was a previous inner ring. The tessellation unit may connect the inner ring coordinates and the outer ring coordinates each of which being read from the queue.
摘要:
A conferencing system and method includes, during the conference session, invoking an interactive voice response (IVR) routine that provides names of one or more conference participants to a user of an audio-only endpoint device responsive to a request from the user to create a sidebar session. An invitation to join the sidebar session is then communicated to each of one or more participants selected by the user, the invitation being communicated via a private media channel separate from a media stream associated with the conference session. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.
摘要:
In accordance with the present invention, the rate of change of texture addresses when mapped to individual pixels of a polygon is used to obtain the correct level of detail (LOD) map from a set of prefiltered maps. The method comprises a first determination of perspectively correct texture address values found at four corners of a predefined span or grid of pixels. Then, a linear interpolation technique is implemented to calculate a rate of change of texture addresses for pixels between the perspectively bound span corners. This linear interpolation technique is performed in both screen directions to thereby create a level of detail value for each pixel. The YUV formats described above have Y components for every pixel sample, and UN (they are also named Cr and Cb) components for every fourth sample. Every UN sample coincides with four (2×2) Y samples. This is identical to the organization of texels in U.S. Pat. No. 4,965,745 “YIQ-Based Color Cell Texturing”, incorporated herein by reference. The improvement of this algorithm is that a single 32-bit word contains four packed Y values, one value each for U and V, and optionally four one-bit Alpha components: YUV_0566: 5-bits each of four Y values, 6-bits each for U and V YUV_1544: 5-bits each of four Y values, 4-bits each for U and V, four 1-bit Alphas These components are converted from 4-, 5-, or 6-bit values to 8-bit values by the concept of color promotion. The reconstructed texels consist of Y components for every texel, and UN components repeated for every block of 2×2 texels. The combination of the YIQ-Based Color Cell Texturing concept, the packing of components into convenient 32-bit words, and color promoting the components to 8-bit values yields a compression from 96 bits down to 32 bits, or 3:1. There is a similarity between the trilinear filtering equation (performing bilinear filtering of four samples at each of two LODs, then linearly filtering those two results) and the motion compensation filtering equation (performing bilinear filtering of four samples from each of a “previous picture” and a “future picture”, then averaging those two results). Thus some of the texture filtering hardware can do double duty and perform the motion compensation filtering when those primitives are sent through the pipeline. The palette RAM area is conveniently used to store correction data (used to “correct” the predicted images that fall between the “I” images in an MPEG data stream) since, during motion compensation the texture palette memory would otherwise be unused.
摘要:
A high order surface patch rendering system with adaptive tessellation. A patch is rendered by subdividing a patch until the subpatches are sufficiently flat that they can be approximated by a quadrilateral. To determine when a subpatch is flat enough to be approximated with a quadrilateral, the patch rendering system uses a patch flatness test unit which tests the straightness of the edges and internal curves of the subpatch. The edges and internal curves of a subpatch are determined to be straight if the intermediate control points of a curve are within a tolerance range of a straight line between the curve's endpoints. The tolerance range is chosen with respect to a pixel resolution of the final image so that subpatch is determined to be flat when the curvature of the subpatch cannot be perceived relative to a flat surface. One embodiment contemplates a flatness test unit for determining the flatness of a patch having a set of control points. The flatness test unit comprises a series of stages. The first stage is configured to receive and store the set of control points. The second stage is coupled to the first stage to receive pairs of control points and configured to determine control point coordinate differences. The third stage is coupled to the second stage to receive the control point coordinate differences and configured to determine absolute values of the control point differences. The fourth stage is coupled to the third stage to receive absolute values of the control point coordinate differences along with the control point differences and configured to determine multiplicand pairs. The fifth stage is coupled to the fourth stage to receive and multiply multiplicand pairs to determine products. The sixth stage is coupled to the fifth stage to receive products and configured to determine control point deviations and deviation tolerances. The seventh stage is coupled to the sixth stage to receive the control point deviations and deviation tolerances and configured to determine a deviation flag to indicate if the control point deviations are less than the deviation tolerances. The eighth stage is coupled to the seventh stage to receive the deviation flag and determine edge straightness and patch flatness flags.
摘要:
A high order surface patch rendering system with adaptive tessellation. A patch is rendered by subdividing a patch until the subpatches are sufficiently flat that they can be approximated by a quadrilateral. To subdivide a patch, the patch rendering system uses a patch division unit which accepts the control points of a patch and divides the patch in half by determining the control points of a subpatch. The relationship of the patch to it's subpatches is that of a binary tree, where every patch division produces two subpatches which may themselves be subject to patch division. In one embodiment, the patch division unit is able to traverse the binary subdivision tree in three directions (parent to left-child, left-child to right-sibling, and right-sibling to parent) to minimize memory requirements. In this embodiment the patch division unit comprises a set of curve division units. An X-curve division unit is coupled to a patch buffer to receive current X coordinates for the set of control points for the current patch, and configured to convert the current X coordinates into new X coordinates for the control points of the new patch. A Y-curve division unit is coupled to the patch buffer to receive current Y coordinates for the set of control points for the current patch, and configured to convert the current Y coordinates into new Y coordinates for the control points of the new patch. A Z-curve division unit is coupled to the patch buffer to receive current Z coordinates for the set of control points for the current patch, and configured to convert the current Z coordinates into new Z coordinates for the control points of the new patch. Each of the curve division units is further configured to receive an operation type signal and configured to generate coordinates for (a) a left subpatch if the operation type signal indicates a left child operation, (b) a right subpatch if the operation type signal indicates a right sibling operation, and (c) a parent patch if the operation type signal indicates a parent operation.
摘要:
A method, system, and computer program product are disclosed for providing tessellated primitive data to a geometry shader. The method comprises computing a set of tessellated vertices and a computed set of connectivity data based on an original set of vertices and an original set of connectivity data, generating computed vertex data based on the original set of vertices and the set of tessellated vertices, receiving the computed set of connectivity data, requesting a subset of the computed vertex data based on the computed set of connectivity data, and processing primitives defined by the subset of the computed vertex data. The system and computer program product are further disclosed for accomplishing a similar result as the aforementioned method.
摘要:
Techniques described in the disclosure are generally related to determining the manner in which to connect points that reside along an outer ring edge and an inner ring edge for purposes of tessellation. For example, a two-dimensional (2D) stitching table may define the manner in which points along the edges should be connected together to form a plurality of primitives. The techniques may index the 2D stitching table to retrieve entry values that define the manner in which the points along the edges should be connected together.