ray tracing visualizationcgribble/research/papers/gribble12ray_ARL.pdf · 2015. 9. 2. · Ray-based...

Preview:

Citation preview

ray tracing visualization

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

• rtVTK – rl API – viz engine

• applications • demo • wrap-up

agenda

rtVTK

• visual communication via computation • combines knowledge from

– computer science – human perception

• methods applicable to several domains

visualization

visual analysis of ray state insight

• functional – ray state recorder – core viz engine

• flexible – interactive GUI – various platforms

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

goals

• functional – ray state recorder – core viz engine

• flexible – interactive GUI – various platforms

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

goals

• functional – ray state recorder – core viz engine

• flexible – interactive GUI – various platforms

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

goals

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

• 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

• 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

• 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

• 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

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

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

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

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

goals

our approach layered visualization

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

• responds to user interaction

glRenderer

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

• interactive control – ray tree traversal – ray state queries

rlRenderer

• 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

applications

• graphics apps inherently visual • traditional debuggers not • diagnosis

– fairly tedious – extremely difficult

visual debugging

example

comparison

incorrect shadow correct shadow

• 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

• 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

• 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

example

total internal reflection

demo

wrap-up

• 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

• 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

• 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

• 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

• 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

contact info

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

Recommended