Eikonal Rendering: View Renderer refEiko - View renderer “Eikonal Rendering: Efficient Light Transport in Refractive Objects”, Ivo Ihrke, Gernot Ziegler, Art Tevs, Christian Theobalt, Marcus Magnor, Hans-Peter Seidel
Overview: 2 main components System capable of Refractive Object Rendering: Light Simulator (pre-process, ~10 secs) View Renderer (real-time, 5-60 fps) To efficiently map our concepts onto the GPU we have developed new algorithms and data structures that enable us to strongly accelerate light simulation and achieve real-time view rendering performance. We use a volumetric scene representation to store all relevant data in textures, such as refraction indices, their local gradients and attenuation values describing the local energy loss due to material properties.
Renderer Shader Model >= 3.0 GPU Use OpenSceneGraph (v1.2) for the low level tasks, e.g. transparency sorting, mesh rendering, etc. nrEngine: script handling, resource management, … Volume Ray Casting - Renderer implements the image formation model of our algorithm - Implemented on SH4.0 but can run on SH3.0 hardware - For ray propagation use the ray casting principle (shooting rays from camera through the object) - Thus try to find a solution for the volume rendering integral
Scene Graph based rendering (depth and transparency sorting) OpenSceneGraph for rendering the meshed environment, It gives us also Depth and Transparency sorting Refractive objects can be seen from the other one but by one frame difference (since the envmap is rendered before volume object)
Renderer Full HDR color along complete rendering pipeline Post processing by PPUG (post-processing units graph) Completely scriptable
Scene Representation XML description of a complete scene Supported objects: Camera Light Shader Texture Model (Mesh) Entity (Static, Voxel Volume) Environment Map (CubeMap, PlaneMap, ShadowCubeMap) Post Processing Unit
Scene graph Root Node Environment Renderable Map Root Node Entity Light Group Light 1 Light 2 Mesh (Geode) Mesh (Geode)
Volume rendering Volume rendering is required for our approach VoxelVolume class stays for an osg node handling volume rendering VoxelVolumeDrawable derived from osg::Drawable, implements volume rendering by a shader program Rendering by a proxy geometry (ray casting) Box primitive (default) Geode as a child-node
Post Processing Effects Post processing by a so called PPU, post processing unit PPUs are combined into a graph Multiple inputs for each of PPU (osg::Texture) Multiple outputs (MRT) are implemented, but not well tested ;-( PPUG could contribute to osg as a new node kit
PP Effects (HDR bloom, Depth of Field, Motion Blur, [+ tone mapping]) Post Processing effects. Renderer implements a ppu graph Result after the volume ray casting is stored in a 16bit float texture. blooming or glowing, depth of field and motion blur are done in HDR at the end an adaptive tone mapping approach
Post Processing Units Graph (Depth of Field) DoF resample 0.5 DoF resample 0.5 DoF blur horizontal DoF blur vertical DoF blur horizontal DoF blur vertical Color bypass DoF Result Depthmap bypass Taken from http://www.daionet.gr.jp/~masa/archives/GDC2003_DSTEAL.ppt
Post Processing Units Graph (HDR Bloom + tone mapping) DoF Result Downsample Compute avg. luminance Compute scaled luminance Brightpass Downsample Blur vertical Blur horizontal Tone mapping Based on http://msdn2.microsoft.com/en-us/library/bb173484.aspx
Summary & Future work Nice renderer for our approach HDR rendering and scripting Osg 2.x is supported, but not well tested osgLua implementation required Possible contribution to the community by developing a new node kit osgPPU New SH4.0 features are in development, hence new contribution to osg will follow: Texture2DArray, GeometryProgram, …
Advertisement Visit our implementation sketch at Thursday, 9th August, Room 3 at San Diego Convention Center: GPU-based Light Wavefront Simulation for Real-Time Refractive Object Rendering Google for Eikonal Rendering or just go to : http://www.mpi-inf.mpg.de/resources/EikonalRendering/ and download slides, videos and source code. Visit my Homepage http://www.tevs.eu ;-)
Discussion & Demo