Floating-point complementary depth buffer
AssigneeTrident Microsystems, Inc.
InventorsEugene Lapidous, Guofang Jiao
Life of this patent
Estimating the term…
Abstract
A method for evaluating the depth of a pixel in a scene, the scene enclosed in a view volume, the scene to be rendered from a camera position, the view volume having a near and a far plane, includes calculating a depth value for a pixel in the scene, the depth value being generated by a depth function of view distance within the view volume from the camera position, and storing the depth value in a floating-point format, the floating-point format including a mantissa and exponent, where, as the distance of the pixel to the far plane decreases, the absolute magnitude of the depth value generated by the depth function approaches the minimum non-negative number representable by the floating-point format.
Claims22
A method for evaluating the depth of a pixel in a scene, the scene enclosed in a view volume, the scene to be rendered from a camera position, the view volume having a near and a far plane, comprising:
- calculating a depth value for a pixel in the scene, the depth value being generated by a depth function of view distance within the view volume from the camera position;
- and
- storing the depth value in a floating-point format, the floating-point format including a mantissa and exponent, where, for a pixel within the view volume having the minimal non-zero distance to the far plane represented by a unique stored depth value, the depth value is stored as the smallest positive floating-point number representable by the floating-point format.
A method for evaluating the depth of a pixel in a scene, the scene enclosed in a view volume, the scene to be rendered from a camera position, the view volume having a near and a far plane, comprising:
- calculating a depth value for a pixel in the scene, the depth value being generated by a depth function of view distance within the view volume from the camera position;
- and
- storing the depth value in a floating-point format, the floating-point format including a mantissa and exponent, where substantially the entire set of points of view distance, from the near to far plane in the view volume, is mapped by the depth function to substantially the entire set of floating-point numbers representable in the floating-point format.
A method for evaluating the depth of a pixel in a scene, the scene enclosed in a view volume, the scene to be rendered from a camera position, the view volume having a near and a far plane, comprising:
- calculating one or more depth values for pixels in the scene, the depth values being generated by a piece-wise continuous function of distance within the view volume from the camera position;
- and
- storing the depth values as floating-point numbers in a depth buffer using a floating-point format, such that for at least one pixel inside the view volume at which the derivative of the depth value function over the distance within the view volume has the smallest absolute magnitude over the view volume, its depth value is stored using a floating-point number having the smallest absolute magnitude representable in the floating-point format.
An apparatus for evaluating the depth of a pixel in a scene, the scene enclosed in a view volume, the scene to be rendered from a camera position, the view volume having a near plane and a far plane, comprising:
- a depth value calculation module configured to calculate a depth value for a pixel in a scene, the depth value being generated by a depth function of view distance within the view volume from the camera position;
- and
- a depth storage module configured to store the depth value in a depth value storage buffer using a floating-point format, the floating-point format including a mantissa and exponent, the depth value calculation module configured to calculate the depth value for the pixel such that, for a pixel within the view volume having the minimal non-zero distance from the far plane represented by a unique stored depth value, the depth value is stored as the smallest positive floating-point number representable by the floating-point format.
Dependencies are inferred from the claim text.