Terrain Level of Detail

Slides:



Advertisements
Similar presentations
Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids
Advertisements

Optimized Stencil Shadow Volumes
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.
Introduction to Massive Model Visualization Patrick Cozzi Analytical Graphics, Inc.
CSE 381 – Advanced Game Programming Scene Management
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
Real-Time Rendering POLYGONAL TECHNIQUES Lecture 05 Marina Gavrilova.
Terrain rendering in games
Geometric Algorithms in 3D Real-Time Rendering and facial Expression Modeling Prof. Marina L. Gavrilova University of Calgary.
Honours Graphics 2008 Session 6. Today’s focus Terrain rendering Heightfield generation Level-of-detail for terrain.
“Level of Detail Management for 3D Games” Martin Reddy Pixar Animation Studios Terrain Level Of Detail.
1 Further Terrain Rendering and Level of Detail Lecture 8 - Week 4 Advanced Programming for 3D Applications CE
UVA / UNC / JHU Perceptually Guided Simplification of Lit, Textured Meshes Nathaniel WilliamsUNC David LuebkeUVA Jonathan D. CohenJHU Michael KelleyUVA.
4.4. L EVEL OF D ETAIL Exploration of 3D mesh level-of-detail approaches.
Smooth view-dependent LOD control and its application to terrain rendering Hugues Hoppe Microsoft Research IEEE Visualization 1998.
Haptic Rendering using Simplification Comp259 Sung-Eui Yoon.
View-Dependent Refinement of Progressive Meshes Hugues Hoppe Microsoft Research SIGGRAPH 97.
Cody White Department of Computer Science and Engineering University of Nevada, Reno.
Adaptive Streaming and Rendering of Large Terrains using Strip Masks Joachim Pouderoux and Jean-Eudes Marvie IPARLA Project (LaBRI – INRIA Futurs) University.
Tomas Mőller © 2000 Speeding up your game The scene graph Culling techniques Level-of-detail rendering (LODs) Collision detection Resources and pointers.
Smooth View-Dependent Level-of- Detail Control and its Application to Terrain Rendering Hugues Hoppe Microsoft Research.
1 Terrain Rendering and Level of Detail Week 7 Advanced Programming for 3D Applications CE
Visualization and graphics research group CIPIC January 21, 2003Multiresolution (ECS 289L) - Winter Dynamic View-Dependent Simplification for Polygonal.
ECS 289L A Survey of Mesh-Based Multiresolution Representations Ken Joy Center for Image Processing and Integrated Computing Computer Science Department.
Hidden Surface Removal
CS-378: Game Technology Lecture #11: Visibility Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
Compressing Multiresolution Triangle Meshes Emanuele Danovaro, Leila De Floriani, Paola Magillo, Enrico Puppo Department of Computer and Information Sciences.
10/14/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Level of Detail.
Dynamic Meshing Using Adaptively Sampled Distance Fields
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen
VIS Group, University of Stuttgart Tutorial T4: Programmable Graphics Hardware for Interactive Visualization Adaptive Terrain Slicing (Stefan Roettger)
So far we have covered … Basic visualization algorithms Parallel polygon rendering Occlusion culling They all indirectly or directly help understanding.
10/02/2001CS 638, Fall 2001 Today Level of Detail Overview Decimation Algorithms LOD Switching.
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”
2 COEN Computer Graphics I Evening’s Goals n Discuss application bottleneck determination n Discuss various optimizations for making programs execute.
Issues in Terrain Visualization for Environmental Monitoring Applications Ricardo Veguilla Nayda G. Santiago.
1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 2, 2002 Day 6.
10/23/2001CS 638, Fall 2001 Today Terrain –Terrain LOD.
Level of Detail Management for Games David Luebke University of Virginia Introduction, Overview.
- Laboratoire d'InfoRmatique en Image et Systèmes d'information
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
Emerging Technologies for Games Deferred Rendering CO3303 Week 22.
Arrangements and Duality Motivation: Ray-Tracing Fall 2001, Lecture 9 Presented by Darius Jazayeri 10/4/01.
1 Multi-resolution Tetrahedral Meshes Leila De Floriani Department of Computer and Information Sciences University of Genova, Genova (Italy)
Representation and modelling 3 – landscape specialisations 4.1 Introduction 4.2 Simple height field landscapes 4.3 Procedural modeling of landscapes- fractals.
Graphics Graphics Korea University cgvr.korea.ac.kr 1 7. Speed-up Techniques Presented by SooKyun Kim.
1 Subdivision. 2 Subdivision for game Why? Large model require many memory for storage Need to dynamically tessellated during game play Make surface modeling.
Computer-Generated Medical, Technical, and Scientific Illustration SIGGRAPH 2005 Course #31 Half-Day, Tuesday, 2 August, 8:30 am - 12:15 pm Level: Intermediate.
Maths & Technologies for Games Spatial Partitioning 2
Applied Mathematics 1 Distributed visualization of terrain models How to get the whole world into a coffee mug... Rune Aasgaard.
Rendering Large Models (in real time)
1 Overview (Part 1) Background notions A reference framework for multiresolution meshes Classification of multiresolution meshes An introduction to LOD.
Fifth International Conference on Curves and Surfaces Incremental Selective Refinement in Hierarchical Tetrahedral Meshes Leila De Floriani University.
1 Advanced Scene Management. 2 This is a game-type-oriented issue Bounding Volume Hierarchies (BVHs) Binary space partition trees (BSP Trees) “Quake”
UNC Chapel Hill David A. O’Brien Automatic Simplification of Particle System Dynamics David O’Brien Susan Fisher Ming C. Lin Department of Computer Science.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
1 Real-Time High-Quality View-dependent Texture Mapping using Per-Pixel Visibility Damien Porquet Jean-Michel Dischler Djamchid Ghazanfarpour MSI Laboratory,
Model Optimization Wed Nov 16th 2016 Garrett Morrison.
Terrain Level of Detail
Level of Detail (LOD) Models Part Two
So far we have covered … Basic visualization algorithms
Deferred Lighting.
CS679 - Fall Copyright Univ. of Wisconsin
CS475 3D Game Development Level Of Detail Nodes (LOD)
Sorting and Searching Tim Purcell NVIDIA.
CS679 - Fall Copyright Univ. of Wisconsin
Collision Detection.
Run-Time LOD Run-time algorithms may use static or dynamic LOD models:
Presentation transcript:

Terrain Level of Detail John Tran Computer Science Department University of Virginia <jdt6a@cs.virginia.edu>

Why Terrain LOD? “It seems you can’t shake a stick in the world of terrain visualization without hitting a reference to LOD Terrain Algorithms” –Bryan Turner (gamasutra.com)

The Data Regular Grid Height Field Tradeoffs? Triangulated Irregular Networks (TIN) Tradeoffs?

Terrain LOD vs Traditional LOD Easier Constrained geometry (generally) More specialized and simpler algorithms Harder Continuous and large models Simultaneously very close and far away Necessitates view-dependent LOD Out-of-core From Martin Reddy’s 2002 SIGGRAPH course

A Discrete LOD approach View-Independent, camera location-dependent Still involves subdividing terrain Render closer subdivisions at higher resolution Popping Will get cracks and T-junctions

Terrain LOD Basics Cracks, T-junctions How do we solve this?

Terrain LOD Basics 2 Can’t use edge/vertex collapse techniques from last lecture – Why not? What can you do? Ensure common vertices on edge of subdivision Looks awkward Draw a triangle to fill that spot Force a crack into a T-junction There must be an easier way… Subdivide the terrain such that this is easier or done for free

Terrain LOD Basics 3 Quadtrees and BinTrees

Quadtrees Each quad is actually two triangles Still have cracks and T-junctions Easy to implement

BinTrees (Binary Triangle Trees) Cracks and T-junctions are solved! Any two triangles differ by no more than one resolution level A little harder to implement Forced Splitting

Several Algorithms Lindstrom’s Continuous LOD ROAM (Duchaineau) 3D Bounding Isosurfaces (Blow) Caching geometry (Vis2002) Visualization of Large Terrains Made Easy SOAR

Continuous LOD for Height Fields Peter Lindstrom et al., 1996 Used a binary vertex tree Frame-to-frame coherence Introduced user-controllable screen space error threshold

ROAM Mark Duchaineau, 1997 (LLNL) Binary Triangle Tree Structure Real-Time Optimally Adapting Meshes Mark Duchaineau, 1997 (LLNL) Binary Triangle Tree Structure No need to worry about cracks, etc Can specify the desired number of triangles Probably the most popular algorithm today

ROAM – Main Concepts Split and Merge Two priority queues One for splits and one for merge Allows for frame-to-frame coherence Error Metrics for Splits and Merges Geomorphing – introduced, but rarely needed Incremental triangle stripping introduced

ROAM – Splitting and Merging diamonds

ROAM – Priority Queues One priority queue for splits, one for merges, and use a greedy algorithm to triangulate Priority = error metric Nested world space bounds Geometric screen distortion Line of site How do we calculate these error metrics?

ROAM – Wedgies! Wedgie – basically a bounding volume Covers the (x,y) extent of a triangle and extends over the height range z-eT through z+eT

ROAM – Splitting Algorithm Let T = the base triangulation For all t in T, insert t into Q While T is too small or inaccurate Identify highest priority t in Q Force-split t Update split queue as follows: Remove t and other split triangles from Q Add any new triangles to Q Adapted from Duchaineau’s original ROAMing Terrain paper (96)

ROAM – Merging AND Splitting Splitting is straightforward, but so is merging Make two priority queues, Qs and Qm Add another check: if T is too large or too accurate identify lowest priority elements T and TB in Qm Merge (T, TB) Update queues: Remove all merged children from Qs Add merge parents T, TB to Qs Remove T, TB from Qm Add all newly-mergeable diamonds to Qm

ROAM – Notes Also need to check if the previous frame is finished rendering and update priorities for all elements if not For more details on algorithm, read the ROAMing Terrain paper

ROAM – Demo Bryan Turner, gamasutra.com “Split-Only ROAM” No frame to frame coherence, but still performs very well Seamus McNally, SMTerrain uses this same approach

Bounding ROAM with 3D Isosurfaces Jonathon Blow (2000) ROAM doesn’t work well for densely sampled data – large number of unnecessary wedgie calculations Screen-space error metrics compress 3D geometric data into a 1D scalar value Instead, use all 3 dimensions, and have bounding volumes (spheres) determine visibility 65% less triangles than ROAM

Caching Geometry Josh Levenberg, Vis2002 “Fast View-Dependent Level-of-Detail Rendering Using Cached Geometry” Not yet published Uses ROAM, but also caches geometry of “aggregate triangles” on the video card (VAR) Claim 4x faster with caching

Visualization of Large Terrains Made Easy P. Lindstrom and V. Pascucci (Vis2001) Few dozen lines of C-code Uses regular grid bintree Now implemented as SOAR (Stateless, One-pass adaptive Refinement)

Visualization of Large Terrains Made Easy (2) Focus on “the manner in which the data is laid out to achieve good memory coherency” Using mmap system call Let the OS take care of paging

Visualization of Large Terrains Made Easy (3) “Longest edge bisection” Monotonic! Implicit parent-child relationships – no need for priority queues Represent this mesh using a DAG of the vertices They used a nested sphere hierarchy for object space and screen space testing (similar to Blow)

Visualization of Large Terrains Made Easy (4) Separate threads for rendering and geometry updates Mesh refinement, view frustum culling, and FULL triangle stripping All done in one pass over the mesh No Frame-to-frame coherence needed!

Visualization of Large Terrains Made Easy τ = 2 pixels 79,382 triangles τ = 4 pixels 25,100 triangles τ = screen space error threshold

Implementing a terrain in your Scene Graph Anyone have tips? Most games use a modified ROAM algorithm Although a static approach may be easy, it will be inaccurate and it will show Keep the terrain fairly small if possible i.e. Don’t have a 10k x 10k grid if you only want to show a single mountain

Implementing a terrain in your Scene Graph Where to go for more info? LODbook.com Virtual Terrain Project (www.vterrain.org) Duchaineau’s ROAM homepage (www.cognigraph.com/ROAM_homepage/) SOAR (www.cc.gatech.edu/~lindstro/software/soar/) There are other basic algorithms ie TIN-based algorithms

More Problems with Terrain LOD QuadTIN (VIS2002) Large Textures Paging/Streaming and Out-of-core Techniques

Summary Any questions?