Upload
others
View
0
Download
0
Embed Size (px)
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/ [email protected] 724.450.1535 (office) 724.450.4031 (fax)