Presentation is loading. Please wait.

Presentation is loading. Please wait.

Art Tevs, Saarbrücken, Germany max planck institut informatik osg-user-meeting, Paris, april 2008.

Similar presentations

Presentation on theme: "Art Tevs, Saarbrücken, Germany max planck institut informatik osg-user-meeting, Paris, april 2008."— Presentation transcript:

1 Art Tevs, Saarbrücken, Germany max planck institut informatik osg-user-meeting, Paris, april 2008

2 Overview About Me –publications –projects osgPPU –overview –classes –examples

3 About Me Art Tevs, born in Russia, living in Germany Master Degree in Computer Science in University of Saarland, Saarbrücken, Germany PhD student in Max-Planck-Institut Informatik, Saarbrücken, Germany –research topics: rendering, natural phenomena, GPUs, geometry processing (just started)

4 About Me (publications) Siggraph07, I. Ihrke, G. Ziegler, A. Tevs, C. Theobalt, M. Magnor, H.-P. Seidel, "Eikonal Rendering: Efficient Light Transport in Refractive Objects" –realistic rendering of refractive objects with spatially varying properties (refractive index, attenuation, scattering,...), first time using OSG and osgPPU

5 About Me (publications) I3D08, A. Tevs, I. Ihrke, H.-P. Seidel, "Maximum Mipmaps for Fast, Accurate, and Scalable Dynamic Height Field Rendering" – quadtree-like datastructure for efficient ray-heightmap intersection on the GPU (usuable displacement mapping), using osgPPU for computations

6 About Me (projects) osgPPU ( ) –developed during the Siggraph07 project –offscreen renderer using GLSL shaders for computations –used for post-processing effects –used to compute maximum-mipmap in the I3D08 project –working hard on v0.2 release –osgPlugins/osgdb_ppu to read/write osgPPU graphs from/to.ppu files

7 osgPPU Screenshot from Eikonal Rendering (Siggraph07)

8 osgPPU Screenshots from Maximum Mipmaps (I3D08)

9 osgPPU Processor –derived from osg::Group –can be placed anywhere in the scene graph –contains camera pointer to retrieve texture attachments and viewport data –do initialize, optimize, update and draw PPU graph –resolve cycles in the Unit graph by placing a BarrierNode which blocks the traversion

10 osgPPU Unit (base class) –derived from osg::Group –should be placed in the processor's subgraph –collect Input data (textures) from the parent Units (output textures) or from processor (camera attachments) –connect input Unit to specified uniform (usefull for shader parameters) –a lot of virtual functions to override in derived classes

11 osgPPU UnitBypass –derived from osgPPU::Unit –perform no rendering –do just set OutputTexture = InputTexture –very usefull to just bypass the data for example from the processor's camera UnitDepthbufferBypass –derived from osgPPU::UnitBypass –perform no rendering –bypass the processor's camera depthbuffer attachment –usefull to bring the depthbuffer texture into the PPU graph

12 osgPPU UnitTexture –derived from osgPPU::Unit –perform no rendering –bypass a user specified input texture (external texture) to the output –very usefull to bring external data into the PPU graph

13 osgPPU UnitInOut –derived from osgPPU::Unit –render a 2D screenquad to perform computation on the input data –use FrameBufferObject (FBO) to setup the output texture –supports MRT by moving the MRT setup code into the FBO patch for the new osg v2.4 UnitInResampleOut –derived from osgPPU::UnitInOut –same as UnitInOut however resample the output texture by specified factor

14 osgPPU UnitInMipmapOut –derived from osgPPU::UnitInOut –same as UnitInOut however the output texture is mipmapped –compute the mipmap data by either applying the glGenerateMipmapsEXT or the attached Shader program UnitText –derived from osgPPU::UnitInOut –don't render the 2D quad, bypass the input to the output –render an osgText::Text on the output texture –very usefull to render text into a texture

15 osgPPU UnitOut –derived from osgPPU::Unit –perform as UnitInOut but don't use FBO –used to render the input to the frame buffer –usualy the last unit in the osgPPU graph to bring the computed result to the screen UnitOutCapture –derived from osgPPU::UnitOut –same as UnitOut but after the rendering write the input texture to a file –very usefull to capture screen contents in upto 4K resolution (8K on G80 chips)

16 osgPPU (examples) viewer –a simple viewer for the.ppu files –./viewer file.ppu [scene.osg = default teapot] dof –a simple faked depth of field effect with osgPPU –./dof [scene.osg = default cow.osg] hdr –shows implementation of HDR rendering –./hdr [scene.osg = default teapot]

17 osgPPU (examples - DoF) Color bypass Depthmap bypass DoF resample 0.5 DoF resample 0.5 DoF blur vertical DoF blur horizontal DoF blur vertical DoF blur horizontal DoF Result

18 osgPPU (examples - DoF)

19 osgPPU (examples - HDR) Camera Bypass Downsample Compute avg. luminance Compute scaled luminance Brightpass Downsample Blur vertical Blur horizontal Tone mapping

20 osgPPU (examples - HDR)

21 Thank You! Questions, Discussion, French-Beer...

Download ppt "Art Tevs, Saarbrücken, Germany max planck institut informatik osg-user-meeting, Paris, april 2008."

Similar presentations

Ads by Google