paul rosen voicu popescu - pdfs.semanticscholar.org · voicu popescu. 2 class of algorithm •...

20
Forward Rasterization Paul Rosen Voicu Popescu

Upload: others

Post on 15-Feb-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Questions?