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

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

Mar 27, 2015

Download

Documents

Megan Russo
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Art Tevs, Saarbrücken, Germany max planck institut informatik osg-user-meeting, Paris, april 2008.

Art Tevs, Saarbrücken, Germany

max planck institutmax planck institutinformatikinformatik

osg-user-meeting, Paris, april 2008

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

Overview

About Me– publications– projects

osgPPU– overview– classes– examples

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

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)

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

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

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

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

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

About Me (projects)

osgPPU ( http://projects.tevs.eu/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

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

osgPPU

Screenshot from Eikonal Rendering (Siggraph07)

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

osgPPU

Screenshots from Maximum Mipmaps (I3D08)

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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]

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

osgPPU (examples - DoF)

http://www.daionet.gr.jp/~masa/archives/GDC2003_DSTEAL.ppt

Color bypass

Depthmap bypass

DoF resample0.5

DoF resample0.5

DoF blurvertical

DoF blurhorizontal

DoF blurvertical

DoF blurhorizontal

DoF Result

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

osgPPU (examples - DoF)

http://www.daionet.gr.jp/~masa/archives/GDC2003_DSTEAL.ppt

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

osgPPU (examples - HDR)

http://msdn2.microsoft.com/en-us/library/bb173484.aspx

Camera Bypass

Downsample

Compute avg.luminance

Compute scaledluminance

BrightpassDownsample

Blur vertical Blur horizontalTone mapping

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

osgPPU (examples - HDR)

http://www.daionet.gr.jp/~masa/archives/GDC2003_DSTEAL.ppt

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

Thank You!

Questions, Discussion, French-Beer...