AreaPortal Visibility By Filami. Objectives Practice the techniques of visibility determination using Area Portals; Develop an experimental application.

Slides:



Advertisements
Similar presentations
1 Binary Space Partition Trees ©Anthony Steed, Yiorgos Chrysanthou
Advertisements

GR2 Advanced Computer Graphics AGR
Collisions and Intersections When objects move, test for collision. When projecting surfaces, check for intersections. (Many slides adapted from Amitabh.

Computer Graphics1 Geometry Area of polygons & Volume Of Polygonal surfaces.
CSE 381 – Advanced Game Programming Scene Management
Korea Univ. Graphics Lab. 3D Game Engine Design Chapter 12. Spatial Sorting Chung Ji Hye
BSP Trees Binary space partitioning trees. Used to store a collection of objects in n- dimensional space. Tree recursively divides n-dimensional space.
GATE D Object Representations (GATE-540) Dr.Çağatay ÜNDEĞER Instructor Middle East Technical University, GameTechnologies & General Manager SimBT.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
A lion in the desert How do you find a lion in the desert? How about when you have a predicate that tells you if the lion is in front or behind a separating.
Hidden Surface Elimination Wen-Chieh (Steve) Lin Institute of Multimedia Engineering I-Chen Lin’ CG Slides, Rich Riesenfeld’s CG Slides, Shirley, Fundamentals.
Quake Engine. THE QUAKE ENGINE IS OLD (relatively) Made in 1996 to power the game of the same name. id’s follow up to the immensely popular “DOOM” Made.
Introduction General Data Structures - Arrays, Linked Lists - Stacks & Queues - Hash Tables & Binary Search Trees - Graphs Spatial Data Structures -Why.
A lion in the desert How do you find a lion in the desert? How about when you have a predicate that tells you if the lion is in front or behind a separating.
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.
10/11/2001CS 638, Fall 2001 Today Kd-trees BSP Trees.
10/02/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Octrees.
Hidden Surface Removal
BSP Trees, Quadtrees & Octrees Glenn G. Chappell U. of Alaska Fairbanks CS 481/681 Lecture Notes Wednesday, January 28, 2004.
Shadows Computer Graphics. Shadows Shadows Extended light sources produce penumbras In real-time, we only use point light sources –Extended light sources.
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
H IGH P ERFORMANCE R AY T RACING Keqing Chen Yihan Sun Xinran Xu.
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.
Managing Your Objects Paul Taylor 2009 Assignment Due Fri 5/6/2009.
1 Speeding Up Ray Tracing Images from Virtual Light Field Project ©Slides Anthony Steed 1999 & Mel Slater 2004.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
CS 376 Introduction to Computer Graphics 04 / 16 / 2007 Instructor: Michael Eckmann.
Graphics Graphics Korea University cgvr.korea.ac.kr Solid Modeling 고려대학교 컴퓨터 그래픽스 연구실.
The BSP-tree from Prof. Seth MIT.. Motivation for BSP Trees: The Visibility Problem We have a set of objects (either 2d or 3d) in space. We have.
Real-Time Rendering SPEEDING UP RENDERING Lecture 04 Marina Gavrilova.
Visible-Surface Detection Jehee Lee Seoul National University.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
PRESENTED BY – GAURANGI TILAK SHASHANK AGARWAL Collision Detection.
Using BSP for CD Ref: BSP in deBerg et al ’ s book (url)url.
Collaborative Visual Computing Lab Department of Computer Science University of Cape Town Graphics Topics in VR By Shaun Nirenstein.
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.
1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 6, 2002 Day 10.
M. Jędrzejewski, K.Marasek, Warsaw ICCVG, Multimedia Chair Computation of room acoustics using programable video hardware Marcin Jędrzejewski.
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
Arrangements and Duality Motivation: Ray-Tracing Fall 2001, Lecture 9 Presented by Darius Jazayeri 10/4/01.
Ray Tracing Fall, Introduction Simple idea  Forward Mapping  Natural phenomenon infinite number of rays from light source to object to viewer.
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.
Constructive Solid Geometry Ray Tracing CSG Models
Maths & Technologies for Games Spatial Partitioning 2
Maths & Technologies for Games Spatial Partitioning 1 CO3303 Week 8-9.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
February 17, 2005Lecture 6: Point Location Point Location (most slides by Sergi Elizalde and David Pritchard)
Honours Graphics 2008 Session 7. Today’s focus Indoor environment rendering BSP and Portal techniques revisited.
BSP Tree Supplement Jyun-Ming Chen. Fall Kd-Tree and BSP tree kd-tree is a special kind of bsp tree.
Ray Tracing Optimizations
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
Solid Modeling Dr. Scott Schaefer.
3D Object Representations 2009, Fall. Introduction What is CG?  Imaging : Representing 2D images  Modeling : Representing 3D objects  Rendering : Constructing.
Visibility Determination – List Priority Methods Chapter 11.
CS552: Computer Graphics Lecture 28: Solid Modeling.
Visibility-Driven View Cell Construction Oliver Mattausch, Jiří Bittner, Michael Wimmer Institute of Computer Graphics and Algorithms Vienna University.

Bounding Volume Hierarchies and Spatial Partitioning
Week 2 - Monday CS361.
BSP Trees Binary space partitioning trees.
Bounding Volume Hierarchies and Spatial Partitioning
Modeliranje kompleksnih modelov
3D Object Representations
CSCE 441: Computer Graphics Hidden Surface Removal
Modeliranje kompleksnih modelov
Presentation transcript:

AreaPortal Visibility By Filami

Objectives Practice the techniques of visibility determination using Area Portals; Develop an experimental application showing techniques of visibility determination for interior scenes; Develop Know How for future game applications in the style of Doom3 or Unreal Tournament.

What are AreaPortals? A Technique the splits a scene in several areas interconnected by portals; Lets to compute the visibility of contained objects fast and efficiently; Effective on interior scenes full of rooms, corridors and the corresponding “doors” or portals.

How to build a scenario with AreaPortals? All scenes are built using many objects that adds detail and mood to the scenery; Those scenes are not adequate for the construction of the data structures, they have got a lot of small details and is difficult to identity the areas.

How to build a scenario with AreaPortals? (cont.)‏ The scene is then separated into 2 kinds of objects:  A “Cage” that only has walls, ceilings and floors.  “Static Meshes” with the remaining scene detail; In the following picture, only the “Cage” is being shown; it is at the same viewpoint as the previous picture.

How to build a scenario with AreaPortals? (cont.)‏ It's then inserted new models into the “Cage” that will be identified as portals that will connect the areas.

DEMO

Construction After the scene as been loaded from hard drive, this one has to be prepared:  Calculate the scene's areas;  Compute the portals and corresponding area connections; But first of all, the scene has to be subdivided into convex volumes.

Binary Space Partition (BSP)‏ The BSP divides the “Cage” into convex volumes; A BSP is computational binary tree whose divider are three-dimensional planes; The following image shows a small example of a 2D scene divided by a BSP.

Binary Space Partition (Cont.)‏ It's possible to note that the BSP actually cuts some triangles; Those cuts have to be minimized and that is possible using a subdivision heuristic that minimizes cuts without sacrificing the balancing of the tree. The following images shows the cuts that have been applied by the application.

Binary Space Partition (Cont.)‏ The following image shows the computational tree generated for the actual test scene; The blue dots are the nodes containing the cutting planes; The rectangles are the tree's leaves with the number of “Cage's” faces on that leaf.

DEMO

Calculating the Areas After dividing the scene into convex volumes, it is then possible to determine the areas. The areas are computed using raytracing:  For each leaf pair, a given number of random rays are traced;  If one of those rays is not occluded, the two leaves have to be part of the same area;  The portals do not let rays pass.

Calculating the Areas (Cont.)‏

Apart form occluding those rays, the portals also uses them to determine which areas it connects. When a portal receives a ray coming from an area, the portal stores that area and the area is also notified that that portal is in it's inside; The areas knows it's portals and the portals knows it's areas.

Calculating the Areas (Cont.)‏ The portals have to be simplified as well; Their geometries are simplified into rectangles so in the future it simplifies the visibility system workings.

DEMO

Application After the needed data structures had been computed it is then possible, through a given point of view, identify which the tree's leaves are potentially visible;

How the Portals are used? It is calculated a visibility frustum through the point of view to determine which objects are visible; The portals cuts out the visibility frustum; this way, the frustums are not able to see through the walls.

DEMO

What about Details? Now that the scene's areas have been identified and it's possible to determine which leaves are potentially visible, how to insert again the details into the original scene?

What about Details? (Cont.)‏ Each scene's detail is represented by a polygonal mesh and each mesh has a Bounding Box. That box can be inserted, through the use of the BSP, into a leaf (and corresponding area); After being inserted into the scene, the polygonal mesh can then use the underlying structure to determine whether it is potentially visible to a particular point of view.

DEMO

Where are those techniques being used? A lot of modern games still uses Area Portal or similar techniques to accelerate the drawing of their's interior scenes; An example is Doom3 that used very similar techniques presented here both for construction of scenes as well for the visibility determination; The Unreal Engine is also a very effective engine for interior scenes and it also uses some of the techniques presented here.

Prey Prey is a 3DRealms game that uses the same game engine developed for Doom3; It uses the same visibility system presented at the original game; Those images where taken from the playable demo of the game and shows the portals on operation.

Prey (cont.)‏

Unreal Engine In an article written for Game Developer Magazine by Lee Parry, Epic Game's lead level designer, it is possible to note that this engine also uses the concept of “Cage” and “Detail Meshes”. “Cage” used for BSP and created using CSG (Constructive Solid Geometry)‏ Addition of “Static Meshes” giving important details to the scene.

Unreal Engine (cont.)‏ The following websites from UDN also explains in detail all the techniques used by this engine for scene development:  

Future Work... Create a loading and compilation tool for scenes to be integrated into an artistic workflow and level editors; Develop CSP (Constructive Solid Geometry) to create “Cages” simplifying the artists' work; Automating placement of portals through the scene.

? ? ? ? ? ? ? ? ? ?