InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Method for a fast scissor clip for a chunk-enabled renderer

IP.com Disclosure Number: IPCOM000008488D
Publication Date: 2002-Jun-17
Document File: 8 page(s) / 697K

Publishing Venue

The IP.com Prior Art Database


Disclosed is a method for a fast scissor clip for a chunk-enabled renderer. Benefits include improved performance.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 27% of the total text.

Method for a fast scissor clip for a chunk-enabled renderer

Disclosed is a method for a fast scissor clip for a chunk-enabled renderer. Benefits include improved performance.


              In a conventional chunk-based renderer, triangles are sorted into chunk-ordered lists. The renderer is initialized with a scissor rectangle that describes the pixel rectangle for which the triangles are ordered. Each successive chunk list has a scissor rectangle initialized before the actual ordered triangles are fetched and rendered.

              The fact that the triangles are ordered and issued to the renderer in chunk order causes these triangles to be rasterized only inside the scissor rectangle. This approach causes a significant number of triangles to be clipped by the scissor rectangle. The conventional rasterization method allows triangles to be partially or fully outside the rectangle. However, this method is inefficient when part of the triangle exists within the scissor rectangle and the starting point (topmost vertex) is outside that rectangle. This method is fully efficient if the starting vertex is inside the scissor rectangle.

General description

              The disclosed method is a fast scissor clip for a chunk-enabled renderer (see Figure 1). The key element in making the rasterizer efficient with scissor rectangles is deriving the starting point for rasterization to be both within the triangle and within the scissor rectangle. A fast clip derives the starting span for rasterizing within the scissor rectangle and close, if not on, the triangle itself. When this start span is derived, it is used in place of the topmost vertex's span for the rest of setup. No other change to setup is required because the present structure of the rasterizer is insensitive to this change.


              The disclosed method provides advantages, including:

·        Improved performance

·        Improved rasterizer efficiency

·        Simplified processing algorithm

·        Processing rate that is greater than 26-million triangles per second at a 266-Mhz rate

·        Improved boundary-counter logic for complex discards due to performing the clamp before storage


Detailed description

              The disclosed method includes several key concepts:

·        Clip equations

·        Determining edges to clip and where

·        Trivial discard of edges and triangles

·    Complex discards triangles

·        Clip point storage

·        Start span selection

Clip equations

              The clip equation is dependent on the part of the triangle to be clipped, the leftmost, the rightmost, or the topmost boundary of the scissor rectangle. For example, a triangle is made from the following points: X[0], Y[0], X[1 ], Y[1 ], X[2], Y[2].

              The three edges of the triangle are defined by the following equations:
Y = m[n] * ΔX + Y[n]

X = 1/m[n] * ΔY + X[n]

              These equations assume the following values:

·        m [n] = (y[n+1 ] - y[n]) / (x[n+1 ] - x[n])

·        1/m[n] = (x[n+1 ] - x[n]) / (y[n+1 ] - y[n])

·        Δy_top[n] = y[Scissor Top] - y[n]

·        Δx_left[n] = x[Scissor Left] - x[n]

·        Δx_right[n] = x[Scissor Right] - x[n]

              The X...