EP1918878A2

Hierarchical tile-based rasterization algorithm

Abstract

A hierarchical tile-based rasterization method is disclosed. The inventive rasterization algorithm rasterizes pixels in hierarchical rectangles or blocks. The method includes: walking a plurality of tiles of pixels and determining if each tile is valid; breaking each valid tile into a plurality of subtiles and determining if each subtile is valid; breaking each valid subtile into a plurality of quads and determining if each quad is valid; and rendering pixels for each valid quad. These hierarchical levels of block validations are performed in parallel. The inventive rasterization algorithm is further implemented in hardware for better performance.

EP1918878A2, drawing sheet 1
Sheet 1 of 7

Term

1.1 yearsto projected expiry

Projected expiry 31 October 2027, counted from filing; an application has no term until it is granted.

  1. Priority
  2. Filed
  3. Published
  4. Today
  5. Projected expiry

18 claims: 8 independent, 10 dependent

  1. 1
    A hierarchical triangle rasterization method, comprising the steps of:(a) walking a plurality of tiles of pixels and determining if each tile is valid;(b) breaking each valid tile into a plurality of subtiles and determining if each subtile is valid;(c) breaking each valid subtile into a plurality of quads and determining if each quad is valid;and (d) rendering pixels for each valid quad, wherein steps (a) through (d) are performed in parallel.
  2. 4
    The method of one of claims 1 to 3, wherein the breaking step (c) comprises:(c1) breaking each valid subtile into the plurality of quads;(c2) walking the plurality of quads;and (c3) determining if each quad is valid.
  3. 6
    The method of one of claims 1 to 5, wherein validation of a block, wherein the block comprises a tile, a subtile, or a quad, comprises:checking if a pixel in the block sits on the left, right, or exactly on a line of a triangle using edge equations;checking four corners of the block against three edges of the triangle and returning a combined result;determining if the block contains any pixels inside the triangle, based on the combined result;and determining that the block is valid, if the block contains at least one pixel inside the triangle.
  4. 8
    A hierarchical rasterization method, comprising the steps of:(a) inputting an initial point for a polygon;(b) determining if the polygon is a line or a triangle;and (c) if the polygon is a triangle, rasterizing the triangle in a hierarchical manner, comprising: (c1) walking a plurality of tiles of pixels and determining if each tile is valid;(c2) breaking each valid tile into a plurality of subtiles and determining if each subtile is valid;(c3) breaking each valid subtile into a plurality of quads and determining if each quad is valid;and (c4) rendering pixels for each valid quad, wherein steps (c 1) through (c4) are performed in parallel.
  5. 11
    The method of one of claims 8 to 10, wherein the breaking step (c3) comprises:(c3i) breaking each valid subtile into the plurality of quads;(c3ii) walking the plurality of quads;and (c3iii) determining if each quad is valid.
  6. 13
    The method of one of claims 8 to 12, wherein validation of a block, wherein the block comprises a tile, a subtile, or a quad, comprises:checking if a pixel in the block sits on the left, right, or exactly on a line of a triangle using edge equations;checking four corners of the block against three edges of the triangle and returning a combined result;determining if the block contains any pixels inside the triangle, based on the combined result;and determining that the block is valid, if the block contains at least one valid pixel inside the triangle.
  7. 15
    The method of one of claims 8 to 14, further comprising:(d) if the polygon is a line, computing pixels for each quad of pixels for the line;and (e) rendering pixels for each valid quad.
  8. 16
    A method for validation of a block of pixels in a hierarchical triangle rasterization method, comprising the steps of:(a) checking if a pixel in the block sits on the left, right, or exactly on a line of a triangle using edge equations;(b) checking four corners of the block against three edges of the triangle and returning a combined result;(c) determining if the block contains any pixels inside the triangle, based on the combined result;and (d) determining that the block is valid, if the block contains at least one valid pixel inside the triangle.