Graphics system with programmable sample positions
First Claim
1. A graphics system comprising:
- a graphics processor configured to calculate a plurality of samples, wherein said graphics processor is programmable to vary the positions of said samples;
a sample buffer coupled to said graphics processor and configured to receive and store said plurality of samples, wherein said samples are double-buffered in said sample buffer; and
a sample-to-pixel calculation unit coupled to read and filter said samples from said sample buffer to form output pixels in real time.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and computer graphics system for rendering images using programmable sample positions is disclosed. In one embodiment, the computer graphics system may comprise a graphics processor, a sample buffer, and a sample-to-pixel calculation unit. The graphics processor may be configured to generate a plurality of samples using a sample positioning algorithm selected from a programmable memory or generated by programmable hardware. The sample buffer, which is coupled to the graphics processor, may be configured to store the samples. The sample buffer may be super-sampled and double buffered. The sample-to-pixel calculation unit is programmable to select a variable number of stored samples from the sample buffer to filter into an output pixel. The sample-to-pixel calculation unit performs the filter process in real-time, and may use a number of different filter types. The algorithms used to position the samples may position the samples according to a regular grid, a perturbed regular grid, or a stochastic grid.
102 Citations
68 Claims
-
1. A graphics system comprising:
-
a graphics processor configured to calculate a plurality of samples, wherein said graphics processor is programmable to vary the positions of said samples;
a sample buffer coupled to said graphics processor and configured to receive and store said plurality of samples, wherein said samples are double-buffered in said sample buffer; and
a sample-to-pixel calculation unit coupled to read and filter said samples from said sample buffer to form output pixels in real time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method for rendering images using a graphics system, the method comprising:
-
receiving a set of 3D graphics data, wherein said 3D graphics data comprises at least one graphics primitive;
generating a plurality of sample positions;
selecting the sample positions that are within said at least one primitive;
calculating samples corresponding to the selected samples positions;
storing the calculated samples into a sample buffer; and
filtering the stored samples to generate output pixels, wherein the filtering is performed once per output pixel per frame. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
reading random offsets from a table of random offsets; and
adding the offsets to regular grid positions.
-
-
23. The method as recited in claim 18, wherein said generating comprises:
-
reading pseudo-random offsets from a table of random offsets; and
adding the offsets to regular grid positions.
-
-
24. The method as recited in claim 22, wherein said random offsets comprise x-offsets and y-offsets, and wherein said x-offsets and said y-offsets are limited to predetermined minimum and maximum values.
-
25. The method as recited in claim 18, further comprising storing said generated sample positions in a double-buffered sample position memory.
-
26. The method as recited in claim 18, wherein each sample has a corresponding sample position, wherein the samples are organized into bins, wherein each bin has a particular screen position, wherein each sample position is an x-offset and y-offset from the corresponding bin'"'"'s x and y screen position.
-
27. The method as recited in claim 18, wherein said generating comprises evaluating a formula using a stored counter value as input.
-
28. The method as recited in claim 18, wherein said sample buffer is super-sampled.
-
29. The method as recited in claim 18, wherein a first portion of each sample'"'"'s information is double-buffered, and wherein a second portion of each sample'"'"'s information is single buffered.
-
30. A computer system comprising:
-
a microprocessor;
a main memory coupled to said microprocessor; and
a graphics accelerator coupled to said main memory, wherein said graphics accelerator comprises;
a graphics processor configured to receive instructions and data from said microprocessor and said main memory and calculate a plurality of samples corresponding thereto;
a sample buffer coupled to said graphics processor and configured to store said samples, wherein said samples are at least partially double buffered in said sample buffer; and
a sample-to-pixel calculation unit couple to said sample buffer, wherein said calculation unit is configured to read and filter samples from said sample buffer to form output pixels. - View Dependent Claims (31, 32, 33, 34, 35, 36)
-
-
37. A graphics device driver embodied on a carrier media, wherein said graphics device driver comprises a plurality of instructions, wherein said plurality of instructions are configured to cause a graphics system to:
-
select a particular algorithm for generating sample positions;
generate a plurality of sample positions;
store the generated sample positions in a sample position memory;
read the sample positions; and
generate corresponding sample pixels in real time. - View Dependent Claims (38, 39, 40, 41, 42)
read 3D graphics data from a main system memory, wherein said 3D graphics data comprises a graphics primitive;
determine which of the sample positions from the sample position memory are within the graphics primitive;
render a sample for each sample position within the graphics primitive; and
store the samples in a sample buffer in a double buffered manner.
-
-
39. The graphics device driver as recited in claim 38, wherein said plurality of instructions are further configured to instruct a graphics system to:
-
output the samples stored in the sample buffer to a sample-to-pixel calculation unit; and
filter the samples into output pixels for display on a display device.
-
-
40. The graphics device driver as recited in claim 37, wherein said particular algorithm is selected from the group comprising:
- stochastic spacing, perturbed regular grid spacing, and regular grid spacing.
-
41. The graphics device driver as recited in claim 37, wherein said carrier medium is a computer-readable medium.
-
42. The graphics device driver as recited in claim 37, wherein said carrier medium is a transmission medium.
-
43. A graphics system comprising:
-
a programmable double-buffered sample position memory including a first sample position buffer and a second sample position buffer;
a graphics processor configured to calculate a plurality of samples based on sample positions read from the first sample position buffer;
a sample buffer coupled to said graphics processor and configured to receive and store said plurality of samples, wherein said samples are double-buffered in said sample buffer; and
a sample-to-pixel calculation unit coupled to read and filter said samples from said sample buffer in real time to form output pixels according to a programmable filter, wherein the programmable filter applies weights to the samples and sums the weighted samples, wherein the weights are based on the sample positions from the second sample position buffer. - View Dependent Claims (44)
-
-
45. A graphics system comprising:
-
a sample position memory configured to store positional information and to generate a first plurality of sample positions within a pixel based on the positional information;
a graphics processor configured to receive the first plurality of sample positions from- the sample position memory and to calculate one or more first samples for the pixel respectively at one or more sample positions of the first plurality, wherein the sample position memory is configured to vary the first plurality sample positions within the pixel between a first frame and a second frame;
a sample buffer coupled to said graphics processor and configured to receive and store second samples including said one or more first samples; and
a sample-to-pixel calculation unit coupled to read and filter said second samples from said sample buffer to generate output pixels for display. - View Dependent Claims (46, 47, 48, 49)
first plurality remains constant between the first frame and the second frame. -
47. The graphics system of claim 45, wherein the positional information comprises a random number table, wherein the sample position memory accesses the random number table differently in the second frame than in the first frame so that the first plurality of sample positions in the pixel vary between the first frame and the second frame.
-
48. The graphics system of claim 45, wherein the sample position memory is configured to programmably generate the first plurality of sample positions according to a selected sample positions scheme.
-
49. The graphics of claim 45, wherein the sample position memory is double buffered.
-
-
50. A graphics system for generating displayable images, the graphics system comprising:
-
a graphics processor configured to generate a plurality of sample positions in a first pixel, to calculate one or more first samples at one or more of the sample positions respectively, wherein the graphics processor is programmable to vary the plurality of sample positions in the first pixel;
a sample buffer coupled to said graphics processor and configured to receive and store second samples including said one or more first samples; and
a sample-to-pixel calculation unit coupled to read and filter said second samples from said sample buffer to generate a plurality of pixels. - View Dependent Claims (51, 52)
-
-
53. A graphics system for rendering displayable images, the graphics system comprising:
-
a graphics processor configured to generate a plurality of sample positions for each pixel in at least a subset of a plurality of pixels, to determine which of said plurality of sample positions in each pixel of said at least a subset reside interior to a first primitive, to calculate samples at the interior sample positions, wherein said graphics processor is programmable to vary said plurality of samples positions in at least one of said pixels in said at least a subset;
a sample buffer coupled to said graphics processor and configured to receive and store the samples; and
a sample-to-pixel calculation unit coupled to read and filter the samples from the sample buffer to generate a plurality of pixels.
-
-
54. A graphics system comprising:
-
a graphics processor configured to calculate a plurality of samples corresponding to a first pixel, wherein said graphics processor is programmable to vary the positions of said samples for the first pixel, wherein the graphics processor is configured to calculate a first plurality of samples at first sample positions in the first pixel in a first frame and to calculate a second plurality of samples at second sample positions in the first pixel in a second frame, wherein said first sample positions are different than said second sample positions;
a sample buffer configured to receive and store one or more of said first plurality of samples in the first frame and to receive and store one or more of said second plurality of samples in the second frame; and
a sample-to-pixel calculation unit coupled to read and filter samples from the sample buffer to generate output pixels including said first pixel, wherein the sample-to-pixel calculation unit is operable to read and filter at least said one or more samples of said first plurality of samples from the sample buffer to form the first pixel in the first frame, and wherein the sample-to-pixel calculation unit is operable to read and filter at least said one or more samples of said second plurality of samples from the sample buffer to form the first pixel in the second frame.
-
-
55. A graphics system comprising:
-
a graphics processor configured to calculate a plurality of samples for each of a plurality of pixels, wherein said graphics processor is programmable to vary the positions of said samples within at least one of said plurality of pixels;
a sample buffer coupled to said graphics processor and configured to receive and store said plurality of samples, wherein said samples are double-buffered in said sample buffer; and
a sample-to-pixel calculation unit coupled to read and filter said samples from said sample buffer to form output pixels in real time.
-
-
56. A graphics system comprising:
-
a sample position memory configured to store positional information and to generate a first plurality of sample positions within a bin based on the positional information;
a graphics processor configured to receive the first plurality of sample positions from the sample position memory and to calculate one or more first samples for the bin respectively at one or more sample positions of the first plurality, wherein the sample position memory is configured to vary the first plurality sample positions within the bin between a first frame and a second frame;
a sample buffer coupled to said graphics processor and configured to receive and store second samples including said one or more first samples; and
a sample-to-pixel calculation unit coupled to read and filter said second samples from said sample buffer to generate output pixels for display. - View Dependent Claims (57, 58, 59)
first plurality remains constant between the first frame and the second frame. -
58. The graphics system of claim 56, wherein the positional information comprises a random number table, wherein the sample position memory accesses the random number table differently in the second frame than in the first frame so that the first plurality of sample positions in the bin vary between the first frame and the second frame.
-
59. The graphics system of claim 56, wherein the sample position memory is configured to programmably generate the first plurality of sample positions according to a selected sample positions scheme.
-
-
60. A graphics system for generating displayable images, the graphics system comprising:
-
a graphics processor configured to generate a plurality of sample positions in a first bin, to calculate one or more first samples at one or more of the sample positions respectively, wherein the graphics processor is programmable to vary the plurality of sample positions in the first bin;
a sample buffer coupled to said graphics processor and configured to receive and store second samples including said one or more first samples; and
a sample-to-pixel calculation unit coupled to read and filter said second samples from said sample buffer to generate a plurality of pixels. - View Dependent Claims (61, 62, 63, 64)
-
-
65. A graphics system for rendering displayable images, the graphics system comprising:
-
a graphics processor configured to generate a plurality of sample positions for each bin in at least a subset of a plurality of bins, to determine which of said plurality of sample positions in each bin of said at least a subset reside interior to a first primitive, to calculate samples at the interior sample positions, wherein said graphics processor is programmable to vary said plurality of samples positions in at least one of said bins in said at least a subset;
a sample buffer coupled to said graphics processor and configured to receive and store the samples; and
a sample-to-pixel calculation unit coupled to read and filter the samples from the sample buffer to generate a plurality of pixels. - View Dependent Claims (66, 67, 68)
-
Specification