scene representation
play

Scene Representation How does one describe the objects in a Scene - PDF document

Scene Representation How does one describe the objects in a Scene Graphs 3D scene? Scene Graphs State Machine Model API Scene Modeling Languages / API From the low level to the high level State Machine Model State Machine


  1. Scene Representation  How does one describe the objects in a Scene Graphs 3D scene?  Scene Graphs State Machine Model API Scene Modeling Languages / API  From the low level to the high level  State Machine Model  State Machine Model -- OpenGL  Current “state” of rendering is maintained in global variable or stack.  Graph Based Scene Languages  Material properties  Inventor  Object transformation matrix  VRML  Lights / Camera parameters  True Object Oriented Model Languages  GROOP  Much like a “graphicsContext” State Machine Model API State Machine Model API  Open GL  OpenGL - scene modeling  Originally designed as an API for SGI’s  Objects rendering hardware  only knows about polygons (different kinds of  Very low level “C” programming library polygons, but just polygons)  Includes:  Polygons are specified by vertex list  Scene modeling  You are responsible for definition of normal  Rendering vector.  Animation  Some rudimentary and low level interactivity 1

  2. State Machine Model API State Machine Model API  OpenGL  OpenGL  Models a state machine. Maintains current:  Transformations  Color  Routines for scaling, translation, and rotation  Transformation (transformation stack)  Routines for direct manipulation of transformation matrix  Material properties  Maintains a stack of transformation matricies  New polygonal objects will use current color, for support of object hierarchy transforms and materials. State Machine Model API Scene Graphs  Open GL  Scene is represented by a tree structure (scene graph)  Summary  Low level “C” interface  Scene graph is passed to a viewer  Polygonal model which is responsible for rendering  State machine  Basis for VRML and Java3D  Transformation Stack  Other State Model specs  RenderMan (RIB) Scene Graphs Scene Graphs  Inventor  Inventor  Object oriented wrapper around GL  Scene is represented by a tree structure (scene graph)  Not a truly Object Oriented scene representation.  Scene graph is passed to a viewer which is  Originator of the scene graph responsible for rendering  Implemented as C++ library with  Basis for VRML and Java3D associated file format. 2

  3. Scene Graphs Scene Graphs  Inventor -- Graph Nodes  Inventor  Shape nodes  Camera Nodes  represent physical objects  Introduces a camera model  cone, cylinder, sphere, 3Dtext, triangleMesh,  Orthographic/Perspective camera NURB surface  Property nodes  Lighting Nodes  Appearance nodes (texture, color, material)  introduces lights to a scene  Transformations nodes (scale, rotate, translate)  directional, point, spot  Other (environment, normal, draw style) Scene Graphs Scene Graphs  Inventor  Inventor  Group nodes  Support for definition of “objects”  Locally groups subgraphs  Switch node (switch between 2 subgraphs) Scene Graphs Scene Graphs  Graph Actions  Inventor - Rendering  Traversal of scene graph for a particular  Like OpenGL, Inventor assumes a state purpose. machine.  Examples  Unlike OpenGL, entire state can be placed on a stack.  Rendering  Visiting a shape node introduces a new  Searching object with “current” properties  Compute Bounding Box  Interactivity / Picking  Visiting a property node is equivalent to  Write to file making a given material current. 3

  4. Scene Graphs Scene Modeling Language  Inventor - Rendering  Inventor - summary  Entering a group node pushes current state  “Object oriented” wrapper to OpenGL on stack  Scene represented as graph  Leaving a group node pops current state  Actions performed on graphs for specific off stack. purposes (like rendering)  Precursor to VRML and Java3D Scene Modeling Language - Scene Modeling Languages VRML  VRML  Inventor - further reading  Virtual Reality Modeling Language  [Strauss92]  “ an open standard for 3D multimedia and shared virtual worlds on the Internet .”  Strauss/Carey, The Inventor Mentor  Text-based scene description language  Need plug-in/applet for viewing VRML scenes  ISO Standard  Originally designed to create virtual worlds as described in books like Snowcrash.  VRML is a Scene Description Language NOT an API  Based on Inventor file format Scene Modeling Language - Scene Modeling Language - VRML VRML  Nodes  Have data fields & children Transform { Translation = Xform translation 1.0 1.0 6.5  Node Types (1.0, 1.0, 6.5) children [ Shape {  Geometry appearance Appearance { material Material {  Appearance diffuseColor 1.0 0.0 0.0 Shape }  Transformation } appearance geometry geometry Sphere { radius 1.0 }  Sound }  Grouping ] Sphere Material }  Viewpoint Radius = 1.0 Color = red 4

  5. Scene Modeling Language - Scene Modeling Language - VRML VRML Define Seat (location, mycolor)  VRML PROTO Seat [ exposedField SFVec3f location 0.0 0.0 0.0 Translation = exposedField SFColor mycolor 1.0 1.0 1.0  Supports Encapsulation and Reuse Xform location ] Transform {  Ability to define new node types translation IS location children [ Shape {  PROTO Statement appearance Appearance { Shape material Material { diffuseColor IS myColor appearance } geometry } geometry Sphere { radius 1.0 } } ] Sphere Material } Seat { location 1.0 1.0 6.5 Radius = 1.0 Color = mycolor mycolor 1.0 0.0 0.0} Scene Modeling Language - Scene Modeling Language - VRML VRML PROTO Seat [ exposedField SFVec3f location 0 0 0  Inventor and VRML not a truly OO scene exposedField SFColor mycolor 1.0 1.0 1.0 Seat3 ] … model DEF Seat1 Seat  Separation between object and materials { location 1.0 1.0 6.5 mycolor 1.0 0.0 0.0} DEF Seat2 Seat  Still based on state machine model. { location 2.0 1.0 6.5 Seat2 Seat4 mycolor 1.0 0.0 0.0}  Created for CG user. Still doesn’t fit real world DEF Seat3 Seat { location 3.0 1.0 6.5 paradigm mycolor 1.0 0.0 0.0} DEF Seat4 Seat  e.g. We usually aren’t concerned transformation { location 4.0 1.0 6.5 matricies Seat5 mycolor 1.0 0.0 0.0} Seat1 DEF Seat5 Seat  Scene Graphs are excellent for specifying object { location 5.0 1.0 6.5 mycolor 1.0 0.0 0.0} heirarchies Color / Location of each seat can be modified by sending messages Scene Modeling Language Scene Modeling Languages  GROOP  GROOP  truly object oriented scene description  transformations, material, geometry, and color are all associated with an object  uses a camera/actor/stage paradigm. 5

  6. Scene Modeling Language Scene Modeling Languages  GROOP  GROOP  Scene object is a collection of objects in a  Extensibility achieved by use of C++ scene. inheritance.  Objects are introduced by literally “Adding” them to a scene.  Unlike Inventor, order of addition is not important. Scene Modeling Languages Summary  GROOP - summary  On the road to scene graphs  example of a truly object oriented scene  Scene Modeling Languages description mechanism  State Model  Scene Graphs  intuitive  True Object Oriented Descriptions  extensible  Questions?  Alas, not used….never caught on. Paper Preview -- Week 2 Paper Preview - Week 2  Procedural Models (Mon)  Light / Ray Tracing (Wed)  [Catmul/Clark78] -- Original B-Spline paper  [Whitted80] - The original ray tracing  [Doo/Sabin78] -- Splines to polys. paper  [Musgrave, etal89] -- Fractal landscapes  [Parker, et al99] - Interactive ray tracing  [Fournier, et al82] -- Fractals and procedural  [Woop, et al 2005] -- RPU: Ray tracing in models hardware  [Reeves83] -- 1st particle system paper  [Perlin/Hoffert89] -- Hypertexture 6

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend