Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992."— Presentation transcript:

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


Download ppt "T. Davidovič 3D Rasterization: A Bridge between Rasterization and Ray Casting  Whitted ray tracing  1979...  OptiX 2010  Doom  1992."

Similar presentations


Ads by Google