Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm •...
Transcript of Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm •...
![Page 1: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/1.jpg)
Forward Rasterization
Paul Rosen
Voicu Popescu
![Page 2: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/2.jpg)
2
Class of Algorithm
• Samples are generated by interpolation between the vertices of the primitive.
• Sufficient samples are generated to guarantee that each pixel covered by the primitive receives at least one sample.
• The position on the desired image plane of each sample is recorded with subpixel accuracy using a pair of offsets.
• After all primitives are rasterized and z-buffered, the final image is reconstructed/resampled using the offsets stored with each sample.
![Page 3: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/3.jpg)
3
Frame Buffer Magnification
![Page 4: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/4.jpg)
4
Quadrilateral Rasterization
![Page 5: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/5.jpg)
5
Degenerate Quadrilaterals
![Page 6: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/6.jpg)
6
Triangle Rasterization
• Test interpolation
factors in all 3
sampling directions
• 3rd Edge is a special
case
Interpolation factors for same quadrant edges
Interpolation factors
for edges in different
quadrants
![Page 7: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/7.jpg)
7
Early Discarding
• ED - Discard samples
that land in the same
pixel as the previous
sample
• EDL – Store previous
line of samples
![Page 8: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/8.jpg)
8
Temporal Aliasing
Jittered supersampling Forward Rasterization
![Page 9: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/9.jpg)
9
Temporal Aliasing
![Page 10: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/10.jpg)
10
Depth Buffer Correction
• 2 surfaces close
together
• Move depth sample to
new location
![Page 11: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/11.jpg)
11
Depth Buffer Correction
z = 1m, a = 30o, r = 0.03mm, x16 corr.z = 1m, a = 30o, r = 0.5mm, no corr.
z = 1m, a = 30o, r = 0.125mm, x4 corr.z = 1m, a = 30o, r = 0.125mm, no corr.
![Page 12: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/12.jpg)
12
Results – Quad Rasterization
Conventional Rasterization Forward Rasterization
![Page 13: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/13.jpg)
13
Results – Quad Rasterization
1.872.60532.24Median
Overdraw
1.872.60661.72Median
1.902.64651.83Average
2.112.97884.12Max
1.762.44471.35Min
Overdraw
ED
OverdrawInner loop
FWR/CR (%)
Quad
size (pix)
![Page 14: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/14.jpg)
14
Results - Bunny (69Ktris)
Conventional Rasterization Forward Rasterization
![Page 15: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/15.jpg)
15
Results – Dragon (201Ktris)
Conventional Rasterization Forward Rasterization
![Page 16: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/16.jpg)
16
Results – Buddha (292Ktris)
Conventional Rasterization Forward Rasterization
![Page 17: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/17.jpg)
17
Results – Armadillo (346Ktris)
Conventional Rasterization Forward Rasterization
![Page 18: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/18.jpg)
18
Sample Comparison
1.861.2462862.0
2.81.22751121.2Armad.
1.881.3652892.2
2.921.32681191.2Buddha
1.441.3539723.5
2.011.3455902.0Dragon
1.321.2631646.0
1.571.2751753.0Bunny
Overdraw
overall
Overdraw
inside tris.
ED
(%)
Inner loop
FWR/CR (%)
Tri. Size
(pix)
![Page 19: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/19.jpg)
19
Per Pixel Difference
(IFWR – ICR) *127 (ICR - IFWR) *127
![Page 20: Paul Rosen Voicu Popescu - pdfs.semanticscholar.org · Voicu Popescu. 2 Class of Algorithm • Samples are generated by interpolation between the vertices of the primitive. • Sufficient](https://reader030.fdocuments.us/reader030/viewer/2022040811/5e5351cf8ae0a216d254d1ee/html5/thumbnails/20.jpg)
Questions?