Download presentation

Presentation is loading. Please wait.

Published byHannah Demers Modified about 1 year ago

1

2
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Whitted ray tracing OptiX 2010 Doom 1992

3
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting PBRT – San Miguel ~2010 Crysis 2 by CryTek ~2010

4
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

5
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting p0 p1 p2 > 0 < 0

6
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting p0 p1 p2

7
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

8
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting e p2 p1 p0 n = (p2 – e) × (p0 – e) n d V(d) = n. d

9
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

10
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Traverse( frustum F, node N ) {

11
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

12
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Traverse( frustum F, node N ) { if ( isOutside or isOccluded ) return;

13
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting isOutside isOccluded

14
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Traverse( frustum F, node N ) { if ( isOutside or isOccluded ) return; if ( splitFrustum ) { split F into sub-frusta Fi foreach ( Fi ) traverse ( Fi, N ) }

15
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Splitting

16
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting F1F2 F3F4

17
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Traverse( frustum F, node N ) { if ( isOutside or isOccluded ) return; if ( splitFrustum ) { split F into sub-frusta Fi foreach ( Fi ) traverse ( Fi, N ) } else { if ( generateSamples ) { rasterize ( N, binning ) } else { foreach ( child of N ) traverse ( F, child of N ) }

18
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting p0 p1 p2

19
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Traverse( frustum F, node N ) { if ( isOutside or isOccluded ) return; if ( splitFrustum ) { split F into sub-frusta Fi foreach ( Fi ) traverse ( Fi, N ) } else { if ( generateSamples ) { rasterize ( N, binning ) } else { foreach ( child of N ) traverse ( F, child of N ) }

20
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Traverse( frustum F, node N = All Scene ) { if ( isOutside or isOccluded ) return; if ( splitFrustum ) { split F into sub-frusta Fi foreach ( Fi ) traverse ( Fi, N ) } else { if ( generateSamples ) { rasterize ( N, binning ) } else { foreach ( child of N ) traverse ( F, child of N ) }

21
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Traverse( frustum F = Single ray, node N ) { if ( isOutside or isOccluded ) return; if ( splitFrustum ) { split F into sub-frusta Fi foreach ( Fi ) traverse ( Fi, N ) } else { if ( generateSamples ) { rasterize ( N, binning ) } else { foreach ( child of N ) traverse ( F, child of N ) }

22
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Non-planar viewports

23
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting p0 p1 p2

24
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

25
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

26
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

27
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

28
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Non-planar Viewports Consistency

29
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting e p2 p1 p0 n = (p2 – e) × (p0 – e) n d V(d) = n. d Vx= deriv(V(d), x) = n × dx dx dy

30
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

31
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting dy dx Vx > 0

32
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting dy dx Vx = 0 Vy > 0

33
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting dy dx Vx > 0

34
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting Non-planar Viewports Consistency Coverage Sampling Antialiasing

35
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

36
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

37
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

38
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting 16x OSAA Time x11 CSAA (4+12) Time x4.3 No AA

39
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting

40
T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting 3D Rasterization Poses ray tracing as rasterization Transfer of old ideas CSAA, binning New ideas Frustum splitting, Non-planar viewports Future work More general frusta Unified software rasterization pipeline

41

Similar presentations

© 2016 SlidePlayer.com Inc.

All rights reserved.

Ads by Google