Systems and methods for providing forward mapping with visibility for and resolution of accumulated samples
View Patent ↗Forward mapping is provided, which accumulates and resolves over all samples forward mapped to each pixel bin. During accumulation and resolution of each of the samples, since a point sample from a forefront object and a point sample from an occluded object may be received by the same bin, wherein only the former should be accumulated and resolved according to the accumulation and resolution process, a Z-range, or Z-interval, is assigned to each sample instead of the conventional Z-value. The Z-range is a function of the Z-value. Analysis of the overlapping of these Z-ranges then determines which samples are to be accumulated and resolved together according to the accumulation and resolution process, and which are not.
1. A method of rendering visual content to a display device having a plurality of pixels, comprising:
receiving at least one sample in each bin of a buffer, wherein at least two samples are received in at least one bin of the buffer, wherein each sample includes a Z-value reflecting an orthogonal distance of the sample front a plane of a display of the display device defined by said plurality of pixels; and
for each bin,
assigning a Z-range to each of said at least one sample in the bin, and
if the Z-range of the first sample of said at least one sample does not overlap the Z-range of a second sample, setting the Z-interval for the bin to the Z-range of the first sample if the first sample's Z-range is in front of the second sample's Z-range, and to the Z-range of the second sample if the Z-range of the second sample is in front of the Z-range of the first sample,
wherein the second sample is discarded if the first sample's Z-range is in front of the second sample's Z-range, and the first sample is discarded if the Z-range of the second sample is in front of the Z-range of the first sample, and
wherein the second sample is stored temporarily if the first sample's Z-range is in front of the second sample's Z-range in case the Z-interval for the bin subsequently overlaps with the second sample's Z-range, and the first sample is temporarily stored if the Z-range of the second sample is in front of the Z-range of the first sample in case the Z-interval for the bin subsequently overlaps with the first sample's Z-range.
2. A method according to claim 1 , further including for each bin,
if the Z-range of a first sample of said at least one sample overlaps the Z-range of a second sample, setting a Z-interval for the bin to have a low limit which is the lower of the low limit of the Z-range for the first sample and the low limit for the Z-range for the second sample.
3. A method according to claim 1 , further including for each bin,
if the Z-range of the first sample of said at least one sample overlaps the Z-range of a second sample, setting the Z-interval for the bin to have a high limit which is the higher of the high limit of the Z-range for the first sample and the high limit for the Z-range for the second sample.
4. A method according to claim 1 , wherein said assigning includes:
calculating said Z-range for each sample based on a function of at least one of (A) the Z-value for the sample and (B) a Z-value for a neighbor of the sample from a geometry map from where the samples originated.
5. A method according to claim 4 , wherein said Z-range for each sample is set at a width such that the Z-value for said sample and at least one neighbor of the sample has a Z-value that are in said Z-range.
6. A method according to claim 1 , further including for each bin,
accumulating at least one sample that has a Z-value in said Z-interval for the bin; and
resolving said accumulated at least one sample.
7. A method according to claim 6 , further including:
calculating at least one pixel value of a pixel associated with said bin in accordance with the output of said resolving.
8. A method according to claim 1 , wherein the buffer is a frame buffer and a pixel of the display device is set based upon at least one of said at least one sample in accordance with an analysis of at least one Z-range.
9. At least one of an operating system, driver code, an application programming interface, a tool kit and a coprocessing device for providing the image rendering of claim 1 .
10. A computing device comprising means for performing the method of claim 1 .
11. A system for rendering visual content to a display device having a plurality of pixels comprising:
a frame buffer comprising a plurality of bins, wherein each bin receives at least one sample, whereby a pixel of the display device is set based upon at least one of said at least one sample and wherein each sample includes a Z-value reflecting an orthogonal distance of the sample from a plane of a display of the display device defined by said plurality of pixels;
a Z-range assigning component for assigning a Z-range to each of said at least one sample in each bin; and
a Z-interval setting component for setting a Z-interval for each bin, wherein if the Z-range of the first sample of said at least one sample does not overlap the Z-range of a second sample, the setting component sets the Z-interval for the bin to the Z-range of the first sample if the first sample's Z-range is in front of the second sample's Z-range, and to the Z-range of the second sample if the Z-range of the second sample is in front of the Z-range of the first sample, and
wherein the second sample is discarded if the first sample's Z-range is in front of the second sample's Z-range, and the first sample is discarded if the Z-range of the second sample is in front of the Z-range of the first sample, and
wherein the second sample is stored temporarily if the first sample's Z-range is in front of the second sample's Z-range in case the Z-interval for the bin subsequently overlaps with the second sample's Z-range, and the first sample is temporarily stored if the Z-range of the second sample is in front of the Z-range of the first sample in case the Z-interval for the bin subsequently overlaps with the first sample's Z-range.
12. A system according to claim 11 , wherein if the Z-range of a first sample of said at least one sample in each bin overlaps the Z-range of a second sample, the setting component sets a Z-interval for the bin to have a low limit which is the lower of the low limit of the Z-range for the first sample and the low limit for the Z-range for the second sample.
13. A system according to claim 11 , wherein if the Z-range of the first sample of said at least one sample overlaps the Z-range of a second sample, the setting component sets the Z-interval for the bin to have a high limit which is the higher of the high limit of the Z-range for the first sample and the high limit for the Z-range for the second sample.
14. A system according to claim 11 , wherein said Z-range assigning component calculates said Z-range for each sample based on a function of at least one of (A) the Z-value for the sample and (B) a Z-value for a neighbor of the sample from a geometry map from where the samples originated.
15. A system according to claim 14 , wherein said Z-range for each sample is set at a width such that the Z-value for said sample and at least one neighbor of the sample has a Z-value that are in said Z-range.
16. A system according to claim 11 , further including
an accumulating component for accumulating at least one sample that has a Z-value in said Z-interval for each bin; and
a resolution component for resolving said samples accumulated by said accumulating component.
17. A system according to claim 16 , further including:
a rasterizing component that calculates at least one pixel value of a pixel associated with the bin in accordance with the output of said resolving.
18. At least one computer readable medium for rendering visual content to a display device having a plurality of pixels having stored thereon a plurality of computer-executable modules comprising computer executable instructions, the modules comprising:
buffering means comprising a plurality of bins, wherein each bin receives at least one sample, whereby a pixel of the display device is set based upon at least one of said at least one sample and wherein each sample includes a Z-value reflecting an orthogonal distance of the sample from a plane of a display of the display device defined by said plurality of pixels;
Z-range assigning means for assigning a Z-range to each of said at least one sample in each bin; and
Z-interval setting means for setting a Z-interval for each bin based upon an analysis of at least one Z-range of a sample in the bin, wherein if the Z-range of the first sample of said at least one sample does not overlap the Z-range of a second sample, the setting means sets the Z-interval for the bin to the Z-range of the first sample if the first sample's Z-range is in front of the second sample's Z-range, and to the Z-range of the second sample if the Z-range of the second sample is in front of the Z-range of the first sample,
wherein the second sample is discarded if the first sample's Z-range is in front of the second sample's Z-range, and the first sample is discarded if the Z-range of the second sample is in front of the Z-range of the first sample, and
wherein the second sample is stored temporarily if the first sample's Z-range is in front of the second sample's Z-range in case the Z-interval for the bin subsequently overlaps with the second sample's Z-range, and the first sample is temporarily stored if the Z-range of the second sample is in front of the Z-range of the first sample in case the Z-interval for the bin subsequently overlaps with the first sample's Z-range.
19. At least one computer readable medium according to claim 18 , wherein if the Z-range of a first sample of said at least one sample in each bin overlaps the Z-range of a second sample, the setting means sets a Z-interval for the bin to have a low limit which is the lower of the low limit of the Z-range for the first sample and the low limit for the Z-range for the second sample.
20. At least one computer readable medium according to claim 18 , wherein if the Z-range of the first sample of said at least one sample overlaps the Z-range of a second sample, the setting means sets the Z-interval for the bin to have a high limit which is the higher of the high limit of the Z-range for the first sample and the high limit for the Z-range for the second sample.
21. At least one computer readable medium according to claim 18 , wherein said Z-range assigning means calculates said Z-range for each sample based on a function of at least one of (A) the Z-value for the sample and (B) a Z-value for a neighbor of the sample from a geometry map from where the samples originated.
22. At least one computer readable medium according to claim 21 , wherein said Z-range for each sample is set at a width such that the Z-value for said sample and at least one neighbor of the sample has a Z-value that are in said Z-range.
23. At least one computer readable medium according to claim 18 , further including
accumulating means for accumulating at least one sample that has a Z-value in said Z-interval for each bin; and
resolution means for resolving said samples accumulated by said accumulating means.
24. At least one computer readable medium according to claim 18 , further including:
rasterizing means that calculates at least one pixel value of a pixel associated with the bin in accordance with the output of said resolving.
25. A computing device for use in connection with image rendering, comprising the modules of claim 18 .