realizing multi-hit ray tracing in embree & ospray · •ospray permits easy integration...

51
Realizing Multi-Hit Ray Tracing in Embree & OSPRay Christiaan Gribble SURVICE Engineering Intel HPC Developer Conference 12 November 2016

Upload: others

Post on 23-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Realizing Multi-Hit Ray Tracingin Embree & OSPRay

Christiaan GribbleSURVICE Engineering

Intel HPC Developer Conference

12 November 2016

Page 2: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Take-home messages

• Multi-hit ray traversal

Enables a new class of ray-based rendering &simulation applications

• Embree permits efficient implementation

• OSPRay permits easy integration

2 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 3: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Take-home messages

• Multi-hit ray traversal

• Embree permits efficient implementation

Intersection filter functions enable user-level implementationof state-of-the-art multi-hit ray traversal techniques

• OSPRay permits easy integration

3 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 4: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Take-home messages

• Multi-hit ray traversal

• Embree permits efficient implementation

• OSPRay permits easy integration

Supports scalable, high performance visual analysis toolsacross optical & non-optical domains

4 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 5: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Acknowledgements

• SURVICE• Joe Rosenthal

• Mark Butkiewicz

• Intel• Jeff Amstutz

• Ingo Wald

• Jim Jeffers

5 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 6: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Overview

Page 7: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Interval computation

Optical rendering

7 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 8: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Interval computation

Optical rendering

8 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 9: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Interval computation

Optical rendering Non-optical rendering

9 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 10: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Interval computation

Optical rendering Non-optical rendering

10 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 11: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Non-optical rendering

Interval computation

11 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 12: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Non-optical rendering

Interval computation

12 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 13: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Non-optical rendering Interval computation

Interval computation

13 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 14: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Interval computation

• Difficult or impossible• Epsilon hacks

• Missed/repeated intersections

• Performance impacts

14 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 15: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Interval computation

• Difficult or impossible

• Performance impacts• Traversal restart

• Operational overhead

15 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 16: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Interval computation

• Difficult or impossible

• Performance impacts

Is there a better solution?

16 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 17: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Multi-hit ray traversal

• Which primitives are intersected?• One or more, & possibly all

• Ordered by t-value along ray

• Possible applications

• GNK14

• AGGW15

• Gri16, GWA16

17 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 18: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Multi-hit ray traversal

• Which primitives are intersected?

• Possible applications• Transparent rendering

• Alpha textures

• GNK14

• AGGW15

• Gri16, GWA16

18 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 19: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Multi-hit ray traversal

• Which primitives are intersected?

• Possible applications

• GNK14• Spatial partitioning

• Two algorithms: naive, buffered

• AGGW15

• Gri16, GWA16

19 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 20: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Multi-hit ray traversal

• Which primitives are intersected?

• Possible applications

• GNK14

• AGGW15• Object partitioning

• User-level implementation mechanisms

• Gri16, GWA16

20 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 21: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Multi-hit ray traversal

• Which primitives are intersected?

• Possible applications

• GNK14

• AGGW15

• Gri16, GWA16• Enable early-exit in BVH

• Implement in Embree & OSPRay

21 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 22: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Implementation

Page 23: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Mechanisms

• Direct implementation• Kernels specific to multi-hit

• Runs counter to our goal

• Intersection callbacks

• Traversal callbacks

• Reference implementation

23 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 24: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Mechanisms

• Direct implementation

• Intersection callbacks• Invoked on valid ray/primitive intersection

• User accepts/rejects hit

• Traversal callbacks

• Reference implementation

24 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 25: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Mechanisms

• Direct implementation

• Intersection callbacks

• Traversal callbacks• Invoked on ray/node interaction

• Two variants: every-node, leaf-node

• Reference implementation

25 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 26: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Mechanisms

• Direct implementation

• Intersection callbacks

• Traversal callbacks

• Reference implementation• Supports callback mechanisms

• Opts for clarity & simplicity

26 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

http://www.rtvtk.org/~cgribble/research/mhBVH/

Page 27: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Embree implementation

• Intersection filters• Compatible with mainline developments

• v2.10.0+ – enables node-culling

• Assumptions

• Full source code available

27 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 28: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Embree implementation

• Intersection filters

• Assumptions• Nquery known a priori

• Preallocated hit data buffer

• Initial value beyond range

• Full source code available

28 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 29: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Embree implementation

• Intersection filters

• Assumptions

• Full source code available• Apache License, v2.0

• Public git repository

29 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

http://www.rtvtk.org/~cgribble/research/ospMultiHit/

Page 30: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Scalar implementation

static void collectIntersectionsFilter(void* /* unused */,

RTCRay& _ray)

{

0 // Find index at which to store candidate intersection

1 uint idx = Nquery;

2 while (idx > 0 && ray.tfar < hits[idx-1].tval)

3 {

4 hits[idx] = hits[idx-1];

5 --idx;

6 }

30 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 31: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Scalar implementation

7 // Store intersection, possibly beyond index of the

8 // N ≤ Nquery closest intersections (i.e., at

9 // idx = Nquery)

10 HitData& hit = hits[idx];

11 hit.geomID = ray.geomID;

12 hit.primID = ray.primID;

13 hit.tval = ray.tfar;

14 hit.Ng = ray.Ng;

15

16 // Update number of intersections identified so far

17 ray.nhits += (ray.nhits < Nquery ? 1 : 0);

31 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 32: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Scalar implementation

17 if (ray.nhits < Nquery)

18 {

19 // Reject intersection to continue traversal with

20 // incoming ray interval, as in previous work

21 // [Amstutz et al. 2015]

22 ray.geomID = RTC_INVALID_GEOMETRY_ID;

23 return;

24 }

32 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 33: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Scalar implementation

25 // Induce node culling

26 // Trick: set ray.tfar to farthest value among the

27 // N = Nquery intersections identified so far

28 // and (implicitly) accept intersection with

29 // modified ray interval

30 ray.tfar = hits[Nquery-1].tval;

31 }

33 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 34: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Results

Page 35: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Performance – tests

• Find-first-intersection• First-hit v. multi-hit variants

• Isolates multi-hit overhead

• Find-all-intersections

• Find-some-intersections

35 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 36: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Performance – tests

• Find-first-intersection

• Find-all-intersections• Naive v. node culling multi-hit

• Bounds performance expectations

• Find-some-intersections

36 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 37: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Performance – tests

• Find-first-intersection

• Find-all-intersections

• Find-some-intersections• Naive v. node culling multi-hit

• Demonstrates in situ performance

37 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 38: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Performance – scenes

sibe

80K tris

fair

174K tris

conf

282K tris

truck

426K tris

tank

1.0M tris

hball

2.8M tris

sanm

10.5M tris

pplant

12.7M tris

38 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 39: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Performance – truck scene

0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

10%1 30% 70% all

Mhps

+4.60x

+1.64x

+1.08x 0.96x 0.97x

naive culling

39 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 40: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Performance – truck scene

0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

10%1 30% 70% all

Mhps

+4.60x

+1.64x

+1.08x 0.96x 0.97x

naive culling

40 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 41: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Performance – truck scene

0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

10%1 30% 70% all

Mhps

+4.60x

+1.64x

+1.08x 0.96x 0.97x

naive culling

41 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 42: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Limitations

• Number of hits specified a priori• Too few – incorrect

• Too many – wasteful

• C++ templates?

• Ordered BVH traversal [WAB16]

• Spatial partitioning [GNK14]

42 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 43: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Limitations

• Number of hits specified a priori

• Ordered BVH traversal [WAB16]• Enables early-exit

• No dynamic allocation

• Requires new traversal kernels

• Spatial partitioning [GNK14]

43 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 44: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Limitations

• Number of hits specified a priori

• Ordered BVH traversal [WAB16]

• Spatial partitioning [GNK14]• Enables early-exit

• No dynamic allocation

• Requires user-defined geometry

44 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 45: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Demonstrations

Engineering CAD visualization Vulnerability analysis

45 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 46: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Wrap-up

Page 47: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Take-home messages

• Multi-hit ray traversal

Enables a new class of ray-based rendering &simulation applications

• Embree permits efficient implementation

• OSPRay permits easy integration

47 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 48: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Take-home messages

• Multi-hit ray traversal

• Embree permits efficient implementation

Intersection filter functions enable user-level implementationof state-of-the-art multi-hit ray traversal techniques

• OSPRay permits easy integration

48 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 49: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Take-home messages

• Multi-hit ray traversal

• Embree permits efficient implementation

• OSPRay permits easy integration

Supports scalable, high performance visual analysis toolsacross optical & non-optical applications

49 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 50: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Key references

[AGGW15] Amstutz, J., Gribble, C., Gunther, J., & Wald, I. (2015) An evaluation of multi-hitray traversal in a BVH using existing first-hit/any-hit kernels. Journalof Computer Graphics Techniques, 4(4):72—90.

[GNK14] Gribble, C., Naveros, A., & Kerzner, E. (2014) Multi-hit ray traversal. Journal ofComputer Graphics Techniques, 3(1):1—17.

[Gri16] Gribble, C. (2016) Node culling multi-hit BVH traversal. Eurographics Symposiumon Rendering. doi:10.2312/sre.20161213

[GWA16] Gribble, C., Wald, I., & Amstutz, J. (2016) Implementing node culling multi-hitBVH traversal in Embree. Journal of Computer Graphics Techniques,5(4):29—35.

50 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay

Page 51: Realizing Multi-Hit Ray Tracing in Embree & OSPRay · •OSPRay permits easy integration Supports scalable, high performance visual analysis tools across optical & non-optical applications

Contact information

AddressApplied Technology Operation

SURVICE Engineering

4695 Millennium Drive

Belcamp, MD 21017

[email protected]

Webhttp://www.survice.com/employees/~cgribble/

51 C. Gribble, Realizing Multi-Hit Ray Tracing in Embree & OSPRay