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

scene representation
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

1

Scene Graphs Scene Representation

 How does one describe the objects in a

3D scene?

 Scene Graphs

Scene Modeling Languages / API

 From the low level to the high level

 State Machine Model -- OpenGL  Graph Based Scene Languages

 Inventor  VRML

 True Object Oriented Model Languages

 GROOP

State Machine Model API

 State Machine Model

 Current “state” of rendering is maintained

in global variable or stack.

 Material properties  Object transformation matrix  Lights / Camera parameters

 Much like a “graphicsContext”

State Machine Model API

 Open GL

 Originally designed as an API for SGI’s

rendering hardware

 Very low level “C” programming library  Includes:

 Scene modeling  Rendering  Animation  Some rudimentary and low level interactivity

State Machine Model API

 OpenGL - scene modeling

 Objects

 only knows about polygons (different kinds of

polygons, but just polygons)

 Polygons are specified by vertex list  You are responsible for definition of normal

vector.

slide-2
SLIDE 2

2

State Machine Model API

 OpenGL

 Transformations

 Routines for scaling, translation, and rotation  Routines for direct manipulation of

transformation matrix

 Maintains a stack of transformation matricies

for support of object hierarchy

State Machine Model API

 OpenGL

 Models a state machine. Maintains current:

 Color  Transformation (transformation stack)  Material properties

 New polygonal objects will use current color,

transforms and materials.

State Machine Model API

 Open GL

 Summary

 Low level “C” interface  Polygonal model  State machine  Transformation Stack

 Other State Model specs

 RenderMan (RIB)

Scene Graphs

 Scene is represented by a tree structure

(scene graph)

 Scene graph is passed to a viewer

which is responsible for rendering

 Basis for VRML and Java3D

Scene Graphs

 Inventor

 Object oriented wrapper around GL

 Not a truly Object Oriented scene

representation.

 Originator of the scene graph  Implemented as C++ library with

associated file format.

Scene Graphs

 Inventor

 Scene is represented by a tree structure

(scene graph)

 Scene graph is passed to a viewer which is

responsible for rendering

 Basis for VRML and Java3D

slide-3
SLIDE 3

3

Scene Graphs

 Inventor -- Graph Nodes

 Shape nodes

 represent physical objects  cone, cylinder, sphere, 3Dtext, triangleMesh,

NURB surface

 Lighting Nodes

 introduces lights to a scene  directional, point, spot

Scene Graphs

 Inventor

 Camera Nodes

 Introduces a camera model  Orthographic/Perspective camera

 Property nodes

 Appearance nodes (texture, color, material)  Transformations nodes (scale, rotate, translate)  Other (environment, normal, draw style)

Scene Graphs

 Inventor

 Group nodes

 Support for definition of “objects”  Locally groups subgraphs  Switch node (switch between 2 subgraphs)

Scene Graphs

 Inventor

Scene Graphs

 Graph Actions

 Traversal of scene graph for a particular

purpose.

 Examples

 Rendering  Searching  Compute Bounding Box  Interactivity / Picking  Write to file

Scene Graphs

 Inventor - Rendering

 Like OpenGL, Inventor assumes a state

machine.

 Unlike OpenGL, entire state can be placed

  • n a stack.

 Visiting a shape node introduces a new

  • bject with “current” properties

 Visiting a property node is equivalent to

making a given material current.

slide-4
SLIDE 4

4

Scene Graphs

 Inventor - Rendering

 Entering a group node pushes current state

  • n stack

 Leaving a group node pops current state

  • ff stack.

Scene Modeling Language

 Inventor - summary

 “Object oriented” wrapper to OpenGL  Scene represented as graph  Actions performed on graphs for specific

purposes (like rendering)

 Precursor to VRML and Java3D

Scene Modeling Languages

 Inventor - further reading

 [Strauss92]  Strauss/Carey, The Inventor Mentor

Scene Modeling Language - VRML

 VRML

 Virtual Reality Modeling Language  “an open standard for 3D multimedia and shared virtual

worlds on the Internet.”

 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 - VRML

 Nodes

 Have data fields & children

 Node Types

 Geometry  Appearance  Transformation  Sound  Grouping  Viewpoint

Scene Modeling Language - VRML

Transform { translation 1.0 1.0 6.5 children [ Shape { appearance Appearance { material Material { diffuseColor 1.0 0.0 0.0 } } geometry Sphere { radius 1.0 } } ] } Xform Shape Sphere Material Radius = 1.0 Color = red geometry appearance Translation = (1.0, 1.0, 6.5)

slide-5
SLIDE 5

5 Scene Modeling Language - VRML

 VRML

 Supports Encapsulation and Reuse  Ability to define new node types  PROTO Statement

Scene Modeling Language - VRML

PROTO Seat [ exposedField SFVec3f location 0.0 0.0 0.0 exposedField SFColor mycolor 1.0 1.0 1.0 ] Transform { translation IS location children [ Shape { appearance Appearance { material Material { diffuseColor IS myColor } } geometry Sphere { radius 1.0 } } ] } Seat { location 1.0 1.0 6.5 mycolor 1.0 0.0 0.0} Xform Shape Sphere Material Radius = 1.0 Color = mycolor geometry appearance Translation = location

Define Seat (location, mycolor)

Scene Modeling Language - VRML

PROTO Seat [ exposedField SFVec3f location 0 0 0 exposedField SFColor mycolor 1.0 1.0 1.0 ] … DEF Seat1 Seat { location 1.0 1.0 6.5 mycolor 1.0 0.0 0.0} DEF Seat2 Seat { location 2.0 1.0 6.5 mycolor 1.0 0.0 0.0} DEF Seat3 Seat { location 3.0 1.0 6.5 mycolor 1.0 0.0 0.0} DEF Seat4 Seat { location 4.0 1.0 6.5 mycolor 1.0 0.0 0.0} DEF Seat5 Seat { location 5.0 1.0 6.5 mycolor 1.0 0.0 0.0} Seat1 Seat2 Seat3 Seat4 Seat5

Color / Location of each seat can be modified by sending messages

Scene Modeling Language - VRML

 Inventor and VRML not a truly OO scene

model

 Separation between object and materials  Still based on state machine model.  Created for CG user. Still doesn’t fit real world

paradigm

 e.g. We usually aren’t concerned transformation

matricies

 Scene Graphs are excellent for specifying object

heirarchies

Scene Modeling Language

 GROOP

 truly object oriented scene description  transformations, material, geometry, and

color are all associated with an object

 uses a camera/actor/stage paradigm.

Scene Modeling Languages

 GROOP

slide-6
SLIDE 6

6

Scene Modeling Language

 GROOP

 Scene object is a collection of objects in a

scene.

 Objects are introduced by literally “Adding”

them to a scene.

 Unlike Inventor, order of addition is not

important.

Scene Modeling Languages

 GROOP

 Extensibility achieved by use of C++

inheritance.

Scene Modeling Languages

 GROOP - summary

 example of a truly object oriented scene

description mechanism

 intuitive  extensible  Alas, not used….never caught on.

Summary

 On the road to scene graphs

 Scene Modeling Languages  State Model  Scene Graphs  True Object Oriented Descriptions

 Questions?

Paper Preview -- Week 2

 Procedural Models (Mon)

 [Catmul/Clark78] -- Original B-Spline paper  [Doo/Sabin78] -- Splines to polys.  [Musgrave, etal89] -- Fractal landscapes  [Fournier, et al82] -- Fractals and procedural

models

 [Reeves83] -- 1st particle system paper  [Perlin/Hoffert89] -- Hypertexture

Paper Preview - Week 2

 Light / Ray Tracing (Wed)

 [Whitted80] - The original ray tracing

paper

 [Parker, et al99] - Interactive ray tracing  [Woop, et al 2005] -- RPU: Ray tracing in

hardware