Overview Introduction Constructing a scene Rendering Frustum culling OpenGL Performer.

Slides:



Advertisements
Similar presentations
GR2 Advanced Computer Graphics AGR
Advertisements

Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Ray Tracing CMSC 635. Basic idea How many intersections?  Pixels  ~10 3 to ~10 7  Rays per Pixel  1 to ~10  Primitives  ~10 to ~10 7  Every ray.
3D Graphics Rendering and Terrain Modeling
Visibility in Computer Graphics Toni Sellarès Unversitat de Girona
CSE 381 – Advanced Game Programming Scene Management
Korea Univ. Graphics Lab. 3D Game Engine Design Chapter 12. Spatial Sorting Chung Ji Hye
HCI 530 : Seminar (HCI) Damian Schofield.
Chapter 6: Vertices to Fragments Part 2 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley Mohan Sridharan Based on Slides.
CGDD 4003 THE MASSIVE FIELD OF COMPUTER GRAPHICS.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
1 Advanced Scene Management System. 2 A tree-based or graph-based representation is good for 3D data management A tree-based or graph-based representation.
Part I: Basics of Computer Graphics Rendering Polygonal Objects (Read Chapter 1 of Advanced Animation and Rendering Techniques) Chapter
02/04/03 Page 1 Rendering Visibility Lighting Texturing.
3D Rendering – A beginners guide Phil Carlisle – University of Bolton.
10/11/2001CS 638, Fall 2001 Today Kd-trees BSP Trees.
3D Rendering with JOGL Introduction to Java OpenGL Graphic Library By Ricardo Veguilla
Presentation of LR2V Kadi Bouatouch IRISA
Introduction to 3D Graphics John E. Laird. Basic Issues u Given a internal model of a 3D world, with textures and light sources how do you project it.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
Course Overview, Introduction to CG Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Friday, September 5, 2003.
1 Perception and VR MONT 104S, Spring 2008 Lecture 22 Other Graphics Considerations Review.
10/29/02 (c) 2002 University of Wisconsin, CS559 Today Hidden Surface Removal Exact Visibility.
Spatial Data Structures Jason Goffeney, 4/26/2006 from Real Time Rendering.
Virtual reality. Tasks 3D digital model from planes 3D digital model of existing objects Office work Field observations Solid modeling Photogrammetry.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
10/09/2001CS 638, Fall 2001 Today Spatial Data Structures –Why care? –Octrees/Quadtrees –Kd-trees.
CSE 381 – Advanced Game Programming Basic 3D Graphics
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Computer Graphics An Introduction. What’s this course all about? 06/10/2015 Lecture 1 2 We will cover… Graphics programming and algorithms Graphics data.
Computer Graphics. Requirements Prerequisites Prerequisites CS 255 : Data Structures CS 255 : Data Structures Math 253 Math 253 Experience with C Programming.
-Global Illumination Techniques
MIT EECS 6.837, Durand and Cutler Graphics Pipeline: Projective Transformations.
Graphics Graphics Korea University cgvr.korea.ac.kr Solid Modeling 고려대학교 컴퓨터 그래픽스 연구실.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Rendering Overview CSE 3541 Matt Boggus. Rendering Algorithmically generating a 2D image from 3D models Raster graphics.
1 Computer Graphics Week2 –Creating a Picture. Steps for creating a picture Creating a model Perform necessary transformation Lighting and rendering the.
COMPUTER GRAPHICS CSCI 375. What do I need to know?  Familiarity with  Trigonometry  Analytic geometry  Linear algebra  Data structures  OOP.
Collaborative Visual Computing Lab Department of Computer Science University of Cape Town Graphics Topics in VR By Shaun Nirenstein.
03/14/02 (c) 2002 University of Wisconsin, CS559 Last Time Some more visibility (Hidden Surface Removal) algorithms –A-buffer –Scanline –Depth sorting.
The Rendering Pipeline CS 445/645 Introduction to Computer Graphics David Luebke, Spring 2003.
2 COEN Computer Graphics I Evening’s Goals n Discuss application bottleneck determination n Discuss various optimizations for making programs execute.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
1Computer Graphics Implementation II Lecture 16 John Shearer Culture Lab – space 2
Implementation II Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
CS 450: COMPUTER GRAPHICS PROJECTIONS SPRING 2015 DR. MICHAEL J. REALE.
Implementation II.
Mark Nelson 3d projections Fall 2013
Subject Name: Computer Graphics Subject Code: Textbook: “Computer Graphics”, C Version By Hearn and Baker Credits: 6 1.
Where We Stand At this point we know how to: –Convert points from local to window coordinates –Clip polygons and lines to the view volume –Determine which.
In the name of God Computer Graphics. Introduction Modeling techniques modeling techniques managements Some renderings.
Computer Graphics I, Fall 2010 Implementation II.
Honours Graphics 2008 Session 5. Today’s focus Rasterization Visibility determination Coarse / fine visibility determination.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Computer Graphics One of the central components of three-dimensional graphics has been a basic system that renders objects represented by a set of polygons.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Applications and Rendering pipeline
- Introduction - Graphics Pipeline
Computer Graphics Implementation II
Computer Graphics.
3D Graphics Rendering PPT By Ricardo Veguilla.
The Graphics Rendering Pipeline
CS451Real-time Rendering Pipeline
Understanding Theory and application of 3D
Implementation II Ed Angel Professor Emeritus of Computer Science
Introduction to Computer Graphics with WebGL
Implementation II Ed Angel Professor Emeritus of Computer Science
Presentation transcript:

Overview Introduction Constructing a scene Rendering Frustum culling OpenGL Performer

Introduction The term ‘scene graph’ is a combination of cinematography and discrete mathematics. Scene: ‘the visual percept of a region.’ In cinematography a scene includes camera’s, actors, background and so forth Graph: ‘nodes connected by edges.’ In this case a directed acyclic graph

Introduction A scene graph is a data structure which contains: (Viewable) objects Relations of objects to another Information on the appearance of objects Why use scene graphs? Possibly quick elimination of peripheral regions Easy content management Hierarchical objects are well supported Persistence; easy saving and storing

Introduction Every graphics application uses some form of scene graph. Paint photo manipulation programs Illustration/design programs Presentation software Visualization of modeling and simulation Any program that provides a GUI etc…

Models are stored in their own local space. To be positioned in the right position in the scene, they must be transformed from ‘model space’ to ‘world space’. It is common practice to use a 4x4 transformation matrix for this purpose. Positioning objects in a scene

3-dimensional coordinates can (amongst other transformations) be rotated, scaled and translated using 4x4 matrices after the vectors are rewritten in homogeneous form. Linear transformations TranslationScaling Z-axis rotationY-axis rotationX-axis rotation

Transforming coordinate v with a single matrix A Linear transformations Transforming coordinate v by matrix B after begin transformed with matrix A

Green box is placed (A) somewhere in the scene. Red prism is placed (B) on top of the green box Blue box is scaled down (C) and placed (D) on top of green box White prism is rotated (E) and placed on top of blue box (F) Positioning objects in a scene Green box: A Red prism: AB Blue box: ADC White prism: ADCFE

Positioning objects in a scene

Positioning objects in a scene (2)

Light sources Directional lightSpot lightPoint light Parameters: Attenuation Diffuse color/specular color Intensity

Rendering states Material properties Color Light reflection Surface texture Transparancy/opacity Reflection/refraction (ray tracing) Type of shading More rendering states Fog ZBuffer/Stencil buffer settings Other OpenGL/rasterizer specific settings

Refined scene graph

LOD (Level Of Detail) node (1) High-res bunnyMed-res bunnyLow-res bunny

LOD (Level Of Detail) node (2)

Switch/animation node Depending on a decision function only a specific subtree is used

Rendering the scene graph (1) Input: Scene graph, initial render state Output: Render queue

Rendering the scene graph (2) Next, let OpenGL or other rendering context consume the render queue. Changing the render state might be expensive!! Therefore the render queue is often sorted in such a way that the number of render changes is minimized.

Frustum culling So far, we've been rendering everything without considering wether or not it is in our field of view. Frustum culling: only process that part of the scene graph that is within our field of view. Test if an object lies within all six frustum boundaries. Do not proceed if this isn't the case. Not rendering something is cheap.

Frustum culling (2)

Bounding volumes Testing individual vertices of a model is not very efficient. By using bounding volumes, the number of tests is reduced significantly, at the cost of some unnescessary rendering. Bounding SphereAxis Aligned Bounding BoxOrientated Bounding Box

Bounding volumes Bounding volumes can be grouped in larger bounding volumes, so that large sections of the graph can be rejected at an early stage.

Spatial structuring: Static grid Only process nodes that overlap grid cells lying inside the frustum.

Spatial structuring: BSP-tree Binary Space Partitioning-tree. A spatial binary hierarchy within the scene graph. A balanced, axis aligned BSP-tree can be generated with the k-D tree algorithm.

Spatial structuring: Octree BSP-related. Every node of an octree splits an region in eight subregions or none at all (leaf). The 2-dimensional version of the same principal is called a quadtree.

Portals Portals clip the viewing frustum. When an additional transformation is added as well, portals can also be used for 'television' or mirrors. Making the viewing frustum smaller by clipping increases the chance of rejection.

Occlusion Culling Occlussion culling attempts to not render objects that are invisible because occluding objects are located in front of them. Z-Buffering Z-Pyramid/Hierarchical occluding maps Shadow frusta

OpenGL Performer "Industrial-strength" scene graph API developed by Silicon Graphics for OpenGL. Mainly used for visualisation purposes, but can also be employed for simulations and games. From the "Getting Started" guide: OpenGL Performer is an extensible software toolkit for creating real-time 3D graphics. Typical applications are in the fields of visual simulation, entertainment, virtual reality, broadcast video, and CAD. OpenGL Performer provides a flexible, intuitive, toolkit-based solution for developers who want to optimize application performance.

OpenGL Performer Performer is composed of the following eight libraries: 1. High performance rendering library 2. Visual simulation library 3. Geometry Builder Library 4. Utility Library 5. User Interface Library 6. Graphical Viewer Library 7. A Configuration-import Library 8. Database Loader Library

OpenGL Performer