image synthesis n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Image Synthesis PowerPoint Presentation
Download Presentation
Image Synthesis

Loading in 2 Seconds...

play fullscreen
1 / 76

Image Synthesis - PowerPoint PPT Presentation


  • 124 Views
  • Updated on

Image Synthesis. What is left to do? „The Real-World Problems!!!“. So far …. Realtime OpenGL / DirectX basics Programmable pipeline Effects Non- Realtime Raytracing Radiosity Photon Mapping. What‘s left ?. „Optimizations“ „Problem size“. Terabyte To Exabyte Datasets!.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Image Synthesis


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
    Presentation Transcript
    1. Image Synthesis Whatisleftto do? „The Real-World Problems!!!“

    2. So far … • Realtime • OpenGL / DirectX basics • Programmable pipeline • Effects • Non-Realtime • Raytracing • Radiosity • Photon Mapping

    3. What‘sleft? • „Optimizations“ • „Problem size“ Terabyte To ExabyteDatasets!

    4. Image Synthesis Scenegraph APIs

    5. Scenegraph APIs Low-level APIs like GL/DX as well as self writen raytracing/radiosity implementations have several disadvantages:

    6. Goals of a high-level API

    7. What is a scenegraph?

    8. API provides the interface to the user

    9. Scenegraph APIs:Rendering modes

    10. Scenegraph APIs A historic overview • 1992 OpenInventor (SGI) ? • 1992 Iris Performer (SGI)  • 1995 Cosmo3D (SGI)  • 1996 Optimizer (SGI)  • 1996 DirectModel/Jupiter (HP)  • 1997 OpenGL++ (ARB-Sun,SGI,Intel,...)  • 1997 Java3D (Sun)  • 1998 Fahrenheit (SGI,MS)  • 2000 OpenSG (OpenSource - Germany)  • 2000 OpenScenegraph • 2003 NVSG NVidiaScenegraph?

    11. Scenegraph APIs Features of a scenegraph API • The scene is stored in a hierarchically organized tree-like data structure Group Transform Nodes are the objects describing the scene Edges are references that define the relationship between objects Light Shape Appearance Geometry

    12. Scenegraph APIs The scenegraph is implemented as a directed acyclic graph • It organizes and controls the rendering of the scene • It provides fixed or application dependent traversal order (Depth-first, breath-first, arbitrary) • It determines the way in which attributes are propagated to/associated with objects

    13. Scenegraph APIs Each node belongs to a specific class • Shape nodes -> geometry • Appearance nodes -> material properties • Transform nodes -> local object transforms • Environment nodes -> lights, space properties • Camera nodes -> viewing parameters • Etc.

    14. OpenInventor First widelyusedscenegraphfrom SGI • IRIS Inventor based on IrisGL • 1994: OpenInventorbased on OpenGL • Basis formanyproductsandprojects • Iris Explorer VisualizationToolkit • Amira • Since 2000 original in OpenSource • Multipipe, Stereo,3D Textures, Kollisionen,... • Multiplatforms: Linux, Windows • http://oss.sgi.com/projects/inventor/

    15. OpenInventor - Concepts

    16. OpenInventor - Nodes

    17. OpenInventor - Example

    18. OpenInventor - Example Table-scenewithpathtoone leg

    19. Different nodes trigger different actions

    20. Scenegraph APIs Scenegraph traversal • OpenInventor • Depth-first traversal • Inheritence of states from left to right and top to bottom • Performer • Depth-first traversal • Different traversalprocesses (app., cull, draw, etc.) • No inheritance from left to right

    21. OpenInventor - Details • Traversal from top to bottom and left to right • Update of traversal state • Current transformation, geometry, material, texture, ... • Separator: push/pop of traversal state • Multiple references to nodes possible • Shared instancing • Explicit reference counting with automatic delete (important for memory management under C++) • Data elements of node: Fields • Basis types: Bool, Color, Vec3f, Matrix, List, Name, String, ... • Single Value Fields and Multiple Value Fields • setValue/getValue and defaults • Ignore/Overwrite Flags

    22. OpenInventor - Interactions • Events • Windowindependent (Event Translator) • Processedbyapplication, viewerornodes • HandleEventAction: propagateseventsthroughgraphuntilonenodereacts (grab) • Picking • Yieldspaththroughscenegraph • Manipulators • Interaction nodeswithowngeometry (Pick, Feedback) • Supports 3D-Navigation with2D-Mouse (Projector) • ConsistsofDraggers (one Transformation)

    23. OpenInventor - Manipulators Handlebox

    24. OpenInventor - Manipulatoren Transformer Spot Light

    25. OpenInventor - Viewer & Editors

    26. OpenInventor - Scenegraph-Editor Directmodifikationofnodes in graph

    27. OpenInventor – Data format #Inventor V2.0 ascii Separator { PerspectiveCamera { position 0 0 4.18154 nearDistance 2.44949 farDistance 5.91359 focalDistance 4.18154 } DirectionalLight {} Material { diffuseColor[ 1 1 0.2 ] } Cone { } }

    28. OpenInventor – Data format • OpenInventor-2.0-Format • Basis for VRML 1.0 • Only slight differences, e.g. nodes for Web-Access • VRML 2.0 and following (VRML 97, X3D) • 3D-Formats for Internet • Take some OpenInventor concepts • But: structural changes

    29. Scenegraph APIs SG APIs provide additional features to achieve interactive frame rates for large scenes • Handling and manipulation of huge data structures • Multiprocessor/Multipipe rendering • Build-in components for efficient rendering of large geometries • Pre-defined components, e.g. viewer including event handling

    30. Scenegraph APIs Basic scenegraph optimization techniques can be split into different categories • Storage – Generate Stage • Graph traversal – Traversal Stage • Geometry processing – Transform Stage • Rasterization

    31. Generate stage optimization • Storage • Links instead of instances • Hierarchical partitioning of the scenegraph • On-demand rendering from disk • Paging of (less frequently used) objects • Multiprocessor-control • Thread manager • Synchronization of multiprozessor-SG traversal • Geometry compression • Quantization and topology encoding • Geometry simplification and optimization • Mesh reduction • Efficient conversion in strips and fans

    32. Generate stage optimization Geometry simplification • Objects are represented with less triangles • Relevant features and the original shape within a certain error tolerance are retained • Automatic selection of triangles to be removed based on local curvatureorothercriteria • Automatic triangle removal • Collapse, split, swap

    33. Generate stage optimization Geometry simplification

    34. Generatestageoptimization Mesh reduction criteria Mean-curvature Gauss-curvature 2-i Difference between area before and after reduction

    35. Mesh analysis Criteria to analyze mesh quality • Distance to other mesh, e.g. mesh before modification • Hausdorff-distance (two-sided): dHaus(A,B) = max{maxaA dist(a,B), maxbBdist(A,b)} dist(a,B) = minbBdist(a,b) (one-side Hausdorff) dist(A,b) = minaAdist(a,b) (one-side Hausdorff) • Maximum of all shortest vertex-to-mesh distances

    36. Mesh analysis Hausdorff-distance dhaus=d

    37. Mesh analysis Hausdorff-distance • d1=maxqQdist(P,q) • d2=maxpPdist(p,Q)

    38. Mesh analysis Hausdorff-distance dhaus=d1=d2

    39. Generate stage optimization Triangle removal by re-tesselation • UsegluTesselatetotesselatearbitrarypolys

    40. Generate stage optimization • n practical applications • User defines compression factor • Different Levels-of-Detail are precomputed • Manual or automatic LOD selection during rendering • E.g, less details are shown during movement or if the object is far away

    41. Generate stage optimization Geometry simplification (5,10,50,100 %) progressive nonprogressive

    42. Generate stage optimization • Geometry simplification #: 1.087716 286578 30392 3774

    43. Generate stage optimization Geometry simplification Original Simplified

    44. Generate stage optimization • Geometry optimization • Large redundant structures are stored into vertex arrays • Sharing of multiple defined geometry and attributes • Re-organization into strips and fans • Adjacency information is exploited for efficient coding 1 3 5 (012)(123)(234)(345) ->(012345) one strip 0 4 0 2 4 (012)(023)(034) -> (01234) one fan 3 1 2

    45. Traversal stage optimization • Improved traversal by re-organization of the graph structure • Spatialization • Nodes are re-arranged with respect to their spatial position or other attributes • Can lead to a more efficient traversal order • Accelerated culling and picking • Flattening the graph structure results in less recursion stages • Better memory efficiency • Less CPU load • Group geometry with equal material • Minimize GPU state changes

    46. Traversal stage optimization • Spatialization • Shared Instancing: group nodes • Build parallel SG of inner nodes for efficient culling • Remove unnecessary hierarchy stages • Resolve shared instances • Allows for adaptive BV-Hierarchies

    47. Transform stage optimization • Objects rendered multiple times are stored into OpenGL display lists • Renderable primitives that won´t be displayed are automatically determined and culled • Culling: discard invisible objects before they are transfered to the GPU • backface cullingdiscard backfacing facets • detail cullingdiscard „small“ objects • view frustrum cullingdiscard objects outside view frustum • occlusion cullingdiscard occluded objects

    48. Transform stage optimization • Backface culling • Triangles with a normal pointing away from the viewer are discarded • Efficient computation by means of the area of the polygon in window coordinates • Might lead tostrange results

    49. Transform stage optimization View frustum culling • Parts of the scene outside the view frustum are discarded • Not supported by OpenGL; clipping is performed after transformation to screen space coordinates • Efficient intersection test between objects and frustum necessary

    50. Transform stage optimization Occlusion culling • Parts of the scene that are entirely hidden by others are discarded Occludedparts