34
ray tracing visualization christiaan gribble department of computer science grove city college 1 march 2012

ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

ray tracing visualization

christiaan gribble department of computer science grove city college 1 march 2012

Page 2: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• rtVTK – rl API – viz engine

• applications • demo • wrap-up

agenda

Page 3: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

rtVTK

Page 4: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• visual communication via computation • combines knowledge from

– computer science – human perception

• methods applicable to several domains

visualization

visual analysis of ray state insight

Page 5: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• functional – ray state recorder – core viz engine

• flexible – interactive GUI – various platforms

• extensible – user-defined plug-ins – configurable pipeline

goals

Page 6: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• functional – ray state recorder – core viz engine

• flexible – interactive GUI – various platforms

• extensible – user-defined plug-ins – configurable pipeline

goals

Page 7: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• functional – ray state recorder – core viz engine

• flexible – interactive GUI – various platforms

• extensible – user-defined plug-ins – configurable pipeline

goals

Page 8: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

architecture

Ray-based client

rl API Ray-based

client rl API Ray-based

client rl API

read mode

immediate mode

write mode

ray state data

rtVTK visualization pipeline

visualization plug-in

bvhRenderer

rlRenderer

glRenderer

Ray tracing visualization

rtVTK GUI

visualization configuration

rl API

Page 9: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• capture ray state – common ray tracing parameters – arbitrary user-defined payloads

• minimally intrusive – low runtime overhead – easy to integrate

goals

rl API first step to ray state viz

Page 10: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• write mode – client application captures ray state – processed later (rtVTK, …)

• read mode – application imports ray state – common post-processing tasks

• immediate mode – online ray-based renderers – runtime viz with rtVTK

basic operation

Page 11: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• write mode – client application captures ray state – processed later (rtVTK, …)

• read mode – application imports ray state – common post-processing tasks

• immediate mode – online ray-based renderers – runtime viz with rtVTK

basic operation

Page 12: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• write mode – client application captures ray state – processed later (rtVTK, …)

• read mode – application imports ray state – common post-processing tasks

• immediate mode – online ray-based clients – runtime viz with rtVTK

basic operation

Page 13: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

render(const Scene& s, ...) for (uint y = 0; y < height; ++y)

for (uint x = 0; x < width; ++x)

// generate visibility ray and trace

rlBeginTree(x, y); trace(visibilityRay, ...);

rlEndTree();

trace(const Ray& r, ...) // perform ray tracing computations and recurse

rlAddRay(r.o, r.d, r.t, ray.type, &my_data, sizeof(MyData));

rlDescendTree(); trace(nextRay, ...);

rlAscendTree();

example

Page 14: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

Ray-based client

rl API Ray-based

client rl API Ray-based

client rl API

read mode

immediate mode

write mode

ray state data

rtVTK visualization pipeline

visualization plug-in

bvhRenderer

rlRenderer

glRenderer

Ray tracing visualization

rtVTK GUI

visualization configuration

viz engine

Page 15: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• flexible – no “one right way” – configurable pipeline

• extensible – new techniques new requirements – plug-in architecture

goals

our approach layered visualization

Page 16: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• primary renderer – scene description + view specification – several rendering modes

• responds to user interaction

glRenderer

Page 17: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• ray state viz – rl::ImmediateMode – rl::ReadMode

• interactive control – ray tree traversal – ray state queries

rlRenderer

Page 18: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• implement plug-in interface – visualization functionality – GUI controls

• current modules – 2D/3D compositor – GPU path tracer – BVH renderer

viz plug-ins

core facilities + plug-ins layered viz

Page 19: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

applications

Page 20: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• graphics apps inherently visual • traditional debuggers not • diagnosis

– fairly tedious – extremely difficult

visual debugging

Page 21: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

example

Page 22: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

comparison

incorrect shadow correct shadow

Page 23: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• recursive ray tracing – primary v. secondary rays – direct v. indirect illumination

• design decisions – acceleration structures – pixel traversal order

• abstract concrete – reflectance models – ray distributions

education

Page 24: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• recursive ray tracing – primary v. secondary rays – direct v. indirect illumination

• design decisions – acceleration structures – pixel traversal order

• abstract concrete – reflectance models – ray distributions

education

Page 25: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• recursive ray tracing – primary v. secondary rays – direct v. indirect illumination

• design decisions – acceleration structures – pixel traversal order

• abstract concrete – reflectance models – ray distributions

education

Page 26: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

example

total internal reflection

Page 27: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

demo

Page 28: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

wrap-up

Page 29: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• rtVTK – open-source release – performance visualization – new features & bug fixes

• visual analysis of coherent ray tracing – packet-based ray tracing – stream filtered ray tracing – …

• ballistic penetration?

future work

Page 30: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• rtVTK – open-source release – performance visualization – new features & bug fixes

• visual analysis of coherent ray tracing – packet-based ray tracing – stream filtered ray tracing – …

• ballistic penetration?

future work

Page 31: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• rtVTK – open-source release – performance visualization – new features & bug fixes

• visual analysis of coherent ray tracing – packet-based ray tracing – stream filtered ray tracing – …

• ballistic penetration?

future work

Page 32: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• contributors – visual simulation group (grove city college) – roni choudhury (sci institute) – josh steinhurst (bucknell university)

• funding sources – ii-vi foundation – nvidia corporation – grove city college

acknowledgements

Page 33: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

• contributors – visual simulation group (grove city college) – roni choudhury (sci institute) – josh steinhurst (bucknell university)

• funding sources – ii-vi foundation – nvidia corporation – grove city college

acknowledgements

Page 34: ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based client rl Ray-based API client rl Ray-based API client . rl API . read. mode

contact info

christiaan gribble department of computer science grove city college http://www2.gcc.edu/dept/comp/faculty/gribblecp/ [email protected] 724.450.1535 (office) 724.450.4031 (fax)