Scenegraph When Head Moves • Lighting and Reflection This Idea Can Be Extended to the Entire Scene → Scene Graph • Collect Every Objects Into a Single Hierarchy

Scenegraph When Head Moves • Lighting and Reflection This Idea Can Be Extended to the Entire Scene → Scene Graph • Collect Every Objects Into a Single Hierarchy

Hierarchical Modeling Hierarchical modeling is essential for transforming oBjects with attached parts, e.g., in animation: • eyes move with head EECS 487: Interactive • hands move with arms • feet move with legs Computer Graphics • … Without such structure the model Lecture 15: falls apart, e.g., eyes don’t follow • Scenegraph when head moves • Lighting and Reflection This idea can be extended to the entire scene → scene graph • collect every oBjects into a single hierarchy Scene Representation Scene as a Flat List of Objects How to represent a scene? Can represent scene as a flat list of oBjects • list of objects • But editing (e.g., delete) requires updating many nodes • transform of each oBject • can use minimal primitives: an ellipse is a transformed circle • transform applies to points on oBject Scene representation: data structures+transforms house roof door window window Marschner Marschner Hierarchical Representation Scene Graphs Introduce a new aBstract data type: group • treats a set of oBjects as one oBject (group) All parts of the scene are represented in one graph • contains list of references to memBer oBjects • each node in the graph is one scene element, including • lets the data structure reflect the rendering structure • oBjects, cameras, lights, materials, transformations, … • enables high-level editing by changing just one node • switch/select: specify which children to enaBle, etc… • simulation procedures, shaders • other scene graphs • simplest form: tree • every node has one parent • interior nodes = groups • leaf nodes = objects in the scene • edges = memBership of oBject in group • transforms are associated with nodes or edges • each transform applies to all geometry Below it Marschner Marschner,TP3,Schulze Scene Graph The Graphics Software Stack Example applications • modeling programs use scene graph to manage complexity, e.g., Maya, 3dsmax, etc. • games, visualization, virtual reality, weB apps scene graph/rendering engine • as “scene graph API”: middleware for graphics API • as “3D toolkit”: implement graphics functionalities commonly required in applications graphics API • interface to graphics hardware, e.g., OpenGL, Direct3D GPU Marschner,Schulze Schulze Scene Graphs Scene Graph Advantages To draw the scene, the graph is walked Hierarchical processing • each suB-hierarchy naturally defines a Bounding volume, • each time a node is traversed, either the rendering e.g., for culling, collision detection, or ray-tracing state is changed or something is rendered with the computation current state • an operation performed on a node, such as rendering, OBject-oriented paradigm culling, and transform, affects all of its children • each object is defined in its own local coordinate systems • e.g., traversing a light node turns on the light for all its children • objects can have other properties Besides shape • transforms accumulate along path from root to leaves • color, shading parameters • approximation parameters (e.g., degree of tessellation) Makes modeling and animation of complex • user interaction, etc … • property nodes can Be applied to suB-hierarchy, scenes easier By Breaking them down into a e.g., paint entire window green hierarchy of simpler ones with their own local • oBjects are self-contained and re-usaBle behavior • instancing: an oBject can Be a memBer of multiple groups Chenney TP3,Marschner Instancing Example Multiple Instantiations Allow multiple references to nodes Object defined once, used many times, • reflects more of drawing structure in many places in the scene • allows editing of repeated parts in one operation • an oBject with multiple instantiations has multiple parents • not the “make a copy” instantiation of C++ • transforms still accumulate along path from root to leaf • objects may have multiple paths from root to leaves • transform may Be different for each instance • graph is no longer a tree, But a directed acyclic graph (DAG, no cycle) Marschner Schulze,Marschner,James Scene Graph Toolkits and APIs Basic Scene Graph Operations No Broadly accepted standard High-level scene management APIs focus on different applications • OpenSceneGraph (openscenegraph.org) • edit transformation • scientific visualization, virtual reality, GIS • need good UI • optimized for memory requirements • • open source version of historical scene graph APIs for SGI IRIS GL transform oBject in world coordinate frame • Open Inventor (oss.sgi.com/projects/inventor/) • traverse path from root to leaf • OpenGL Performer (oss.sgi.com/projects/performer/) • grouping and ungrouping • Ogre3D (www.ogre3d.org) and a host of others • re-parenting • games, optimized for high-performance rendering (speed) • moving node from one parent to another • Javascript scenegraphs, WeBGL compatible: • three.js (threejs.org) • “a lightweight 3D liBrary with a very low level of complexity” • sceneJS (scenejs.org) • CAD, medical, and engineering visualization • Modeling systems’ proprietary liBraries • optimized for editing flexiBility Marschner Common Functionalities Performance Optimizations Culling Resource management • early discard of invisiBle parts of scene • asset management (geometry, textures, materials, animation sequences, audio) Level-of-detail • shader management • use lower poly count version for distant (small) oBject • memory management Computing Bounding volume hierarchy for • multi-threading • culling • (server clustering) • collision detection • rendering, e.g., ray-tracing, qsplat Rendering liBraries: Scene graph compilation/optimization • render oBjects with similar attriButes (textures, materials, • bump mapping shaders, geometry) in Batches • shadows • efficient use of low-level API • particle system • avoid state changes in rendering pipeline Serious scene graphs should have implementation of these techniques Schulze Schulze Scene Graph Encoding Scene Graph Encoding X3D (web3d.org) • VRML with XML syntax, replaced VRML in July 2004 Collada • primary goal is for interactive visualization of 3D assets • asset exchange using an XML schema custom tools • specifies Behaviors and interactions and includes • e.g., passing models to a physics engine • a run-time model that enaBles viewing, navigation, picking, and scripting • asset transformation from high-level modeling • an API to manipulate the scene-graph at runtime description to platform-specific optimized description X3DOM Maya • can descriBe everything to do with a scene: • HTML5/X3D geometry with full skinning, advanced integration material and visual effects, animation, • declarative 3D (vs. physical properties and collisions procedural WeBGL) view3D (PA2,4) • x3dom.org OBject Appearance in CGI OBject appearance in CGI depends on its EECS 487: Interactive • shape: the geometry of its surfaces and position wrt camera Computer Graphics • shade: its illumination environment and optical properties Rendering program separates: Lecture 15: • geometric processing: transformation, hidden surface removal, etc. from • Scenegraph • optical processing: propagation and filtering of light • Lighting and Reflection Illumination Models GloBal Illumination Effects A rendering process can Be modeled as an integral equation representing the transport of light through Properly determining the right color is really hard the environment the rendering equation • translucency • refraction Local illumination: an approx. of the rendering eqn. • particle scattering • assumes light is scattered only once: light from light source • color Bleed is reflected By a surface and modulated on its way towards the eye GloBal illumination: • light rays traveling from light to surface may Be • Blocked By intervening surfaces (shadows) or • Bent or scattered By intervening material (refraction and atmospheric effects) or • light arriving at a surface may come indirectly via another surface (reflection and color Bleed) Light Sources Local Illumination A photograph of a lit sphere Light is approximated By the RGB components shows not a uniformly emitted from the light source colored circle But a circular shape with many gradation or shades of color, giving For light, the RGB coefficients represent the impression of 3D percentages of full intensity of each color • c = (1.0, 1.0, 1.0) is white • c = (0.5, 0.5, 0.5) is white at half intensity, Local illumination consists of two major aspects: which appears gray 1. light source distriBution function 2. surface reflectance distriBution function Light Sources Light Sources Grassman’s Laws: Types of light sources • point light, e.g., light BulB: light direction • if two lights emit at c1 = (R1, G1, B1) and changes over surface c2 = (R2, G2, B2), the light that arrives at the eye is • directional light, e.g., sunlight: “distant” light, a direction is constant c = c1⊕ c2 = (R1 + R2, G1 + G2, B1 + B2) b • spotlight: point source with directional fall-off • scaling light intensity: c(s a) = s c(a) • area source: luminous 2D surface: radiates light from all points on surface, generates soft shadows point light directional spotlight Spotlight Point and Directional Sources Spotlight −l α plight - x sdir Point light: l(x) = Point source, with intensity a function of –l, sexp p - x plight (cosα) light specified with: • light arriving at a point (x) on the surface • position: the location of the source • l always points towards the light x glLightfv(GL_LIGHT0,GL_POSITION,light_posn); • must Be normalized • direction (sdir): the center axis of the light • to specify an OpenGL light at light position (1, 1, 1): glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,light_dir); Glfloat light_position[]

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us