1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 2, 2002 Day 6.

Slides:



Advertisements
Similar presentations
 Over-all: Very good idea to use more than one source. Good motivation (use of graphics). Good use of simplified, loosely defined -- but intuitive --
Advertisements

Surface Simplification Using Quadric Error Metrics Speaker: Fengwei Zhang September
Ray tracing. New Concepts The recursive ray tracing algorithm Generating eye rays Non Real-time rendering.
Week 11 - Wednesday.  Image based effects  Skyboxes  Lightfields  Sprites  Billboards  Particle systems.
Week 10 - Monday.  What did we talk about last time?  Global illumination  Shadows  Projection shadows  Soft shadows.
3D Graphics Rendering and Terrain Modeling
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
CAP4730: Computational Structures in Computer Graphics Visible Surface Determination.
Developer’s Survey of Polygonal Simplification Algorithms Based on David Luebke’s IEEE CG&A survey paper.
Smooth view-dependent LOD control and its application to terrain rendering Hugues Hoppe Microsoft Research IEEE Visualization 1998.
1 Displaced Subdivision Surfaces Aaron Lee Princeton University Henry Moreton Nvidia Hugues Hoppe Microsoft Research.
Smooth View-Dependent Level-of- Detail Control and its Application to Terrain Rendering Hugues Hoppe Microsoft Research.
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 4: 3D Objects and Meshes Ravi Ramamoorthi
Visibility-Guided Simplification Eugene Zhang and Greg Turk GVU Center, College of Computing Georgia Institute of Technology.
Advanced Computer Graphics (Spring 2005) COMS 4162, Lecture 10: Mesh simplification Ravi Ramamoorthi Many slides courtesy.
Visualization and graphics research group CIPIC February 13, 2003ECS289L – Multiresolution Methods – Winter Illumination Dependent Refinement of.
The Story So Far The algorithms presented so far exploit: –Sparse sets of images (some data may not be available) –User help with correspondences (time.
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.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Beyond Meshes Spring 2012.
09/18/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Bump Mapping Multi-pass algorithms.
1 KIPA Game Engine Seminars Jonathan Blow Seoul, Korea November 30, 2002 Day 5.
Computer Graphics Mirror and Shadows
1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 4, 2002 Day 8.
1 KIPA Game Engine Seminars Jonathan Blow Seoul, Korea November 29, 2002 Day 4.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Viewpoint Entropy-driven Simplification Pascual Castelló 1, Mateu Sbert 2, Miguel Chover 1 and Miquel Feixas 2 1 Universitat Jaume I de Castelló, Spain.
Dynamic Meshing Using Adaptively Sampled Distance Fields
NDVI-based Vegetation Rendering CGIM ‘07 Stefan Roettger, University of Erlangen
Presented By Greg Gire Advised By Zoë Wood California Polytechnic State University.
Week 11 - Thursday.  What did we talk about last time?  Image processing  Blurring  Edge detection  Color correction  Tone mapping  Lens flare.
10/02/2001CS 638, Fall 2001 Today Level of Detail Overview Decimation Algorithms LOD Switching.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
GPU Graftals: Stylized Rendering of Fluffy Objects Michael Lester.
1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 6, 2002 Day 10.
Game Programming 06 The Rendering Engine
Interactive Cinematic Shading Where are we? Fabio Pellacini Dartmouth College.
Shader Study 이동현. Vision engine   Games Helldorado The Show Warlord.
Realtime NPR Toon and Pencil Shading Joel Jorgensen May 4, 2010.
10/23/2001CS 638, Fall 2001 Today Terrain –Terrain LOD.
Advanced Computer Graphics CSE 190 [Spring 2015], Lecture 8 Ravi Ramamoorthi
BUMP-MAPPING SET09115 Intro to Graphics Programming.
CSCE 552 Spring D Models By Jijun Tang. Triangles Fundamental primitive of pipelines  Everything else constructed from them  (except lines and.
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.
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.
Image-based Rendering Ref: RTRv2. 2 Introduction Sprite, billboard, overview.
Applied Mathematics 1 Distributed visualization of terrain models How to get the whole world into a coffee mug... Rune Aasgaard.
1 CSCE 441: Computer Graphics Hidden Surface Removal Jinxiang Chai.
Rendering Large Models (in real time)
DPL3/10/2016 CS 551/651: Simplification Continued David Luebke
Digital Media Dr. Jim Rowan ITEC 2110 Vector Graphics II.
1 Geometry for Game. Geometry Geometry –Position / vertex normals / vertex colors / texture coordinates Topology Topology –Primitive »Lines / triangles.
Model Optimization Wed Nov 16th 2016 Garrett Morrison.
- Introduction - Graphics Pipeline
Photorealistic Rendering vs. Interactive 3D Graphics
We propose a method which can be used to reduce high dimensional data sets into simplicial complexes with far fewer points which can capture topological.
Terrain Level of Detail
Perspective, Scene Design, and Basic Animation
CS475 3D Game Development Level Of Detail Nodes (LOD)
Stylized Environmental Rendering
The Graphics Rendering Pipeline
Meshes.
UMBC Graphics for Games
Dr. Jim Rowan ITEC 2110 Vector Graphics II
CS679 - Fall Copyright Univ. of Wisconsin
Jonathan Blow Bolt Action Software
Chap 10. Geometric Level of Detail
Run-Time LOD Run-time algorithms may use static or dynamic LOD models:
Presentation transcript:

1 KIPA Game Engine Seminars Jonathan Blow Ajou University December 2, 2002 Day 6

2 Level-of-Detail Method Overview Traditional Purpose: Speed Boost Ideal: Render a fixed number of triangles always –Doesn’t matter how far your view stretches into the distance –Diagram of pixel tesselation Object detail / triangle count as a function of distance

3 Future Purpose: Geometric Antialiasing Discussion of scenes with many small objects far away In a rendering paradigm like MCRT we get a certain amount of antialiasing for free When projecting geometry onto the screen, we do not; we need to implement something that provides antialiasing for us

4 Level-of-Detail Methods Static mesh switching Progressive mesh Continuous-LOD mesh Issues involving big objects (static and progressive mesh not good enough?)

5 Static mesh switching Pre-generate a series of meshes decreasing in detail Switch between them based on z distance of the mesh from the camera –Perhaps be more analytical and switch based on max. projected pixel error? –Nobody actually does this because it is far too conservative

6 Progressive Mesh Generate one sequence of collapses that takes you from high-res to 1 triangle Dynamically select number of triangles at runtime Works well with modern 3D hardware since you only modify a little bit of the index buffer at a time.

7 Progressive Mesh Disadvantages Relies on frame coherence (bad!) Interferes with triangle stripping and vertex cache sorting (they become mutually impossible). High code complexity, and it makes everything else more complicated, and adds restrictions to everything else –Example of normal map generation restricted to object space

8 Continuous Level-of-Detail Algorithms Lindstrom-Koller, ROAM, Rottger quadtree algorithm Dynamically update tessellation based on estimate of screen-space error Crack fixing between adjacent blocks, etc

9 Continuous LOD Example of binary triangle trees There are other formats (quadtree, diamond, etc) but the ideas are similar

10 Continuous LOD Disadvantages Extremely complicated implementations Slow on modern hardware Extreme reliance on frame coherence (bad!) Not conducive to unified rendering (hard to make work on curved surfaces, arbitrary topologies)

11 Continuous LOD Has a lot of hype in the amateur and academic communities Is currently not competitive with other LOD approaches This is not likely to change any time soon

12 LOD Metrics

13 Introduction We need an effective way to benchmark / judge LOD schemes –The academic world is not really doing this right now! We need a standard set of data with comparable results –University of Waterloo Brag Zone for image compression

14 LOD Metric? We often create metrics for taking each small step in a geometric reduction We don’t have a metric for comparing a fully reduced mesh with the source model or another reduced mesh Because our mesh representations are so ad hoc

15 Image Compression guys have a metric (even though they know it’s not that good) PSNR measures difference between compressed image and original They know it has problems (not perceptually driven) and are working on a better metric But at least they have a way of comparing results, which means they are sort of doing science!

16 Metric ideas “Sum of closest-point distances” –Continuous, which is good –Very expensive to compute –Non-monotonic (!), which is bad Monotonic for small changes, usually, which might be good enough Ignores texture warping, which is bad –Unless we try it in 5-dimensional space Ignores vertex placement –Important for rasterization (iterated vertex properties!) –Example of big flat area Ignores cracks in destination model

17 Lindstrom/Turk screenspace LOD comparison Guide compression of a mesh by taking snapshots of it from many different viewpoints and PSNR’ing the images This can work but PSNR is not necessarily stable with respect to small image-space motions

18 Lindstrom/Turk screenspace LOD comparison (Talking about paper, showing figures from it)

19 The Fundamental Problem Our rendering methods are totally ad-hoc; we have 3 different things: –Vertices –Topology –Texture A metric that uniformly integrates these things is very difficult.

20 Complexity of metric The more complicated a metric is, the more difficult it is to program correctly, ensure we are using it correctly That our simplest possible metric should be something so complicated … that is a bad sign.

21 Compare with Voxels Voxel geometry representations can basically use something like PSNR directly; no need for complicated metrics Lightfields can also (though it’s a little harder)

22 “Digital Geometry Processing” Work by Peter Schroeder at Caltech, and many others Attempts to develop DSP-like ideas for geometry manipulation Heavy use of subdivision surfaces

23 (Overview of subdivision surfaces)

24 How DGP works Apply a scaled filter kernel to the neighborhood of a vertex Like wavelet image analysis in its multiscale aspects But unlike wavelets/DSP in that the inputs/outputs are not homogeneous –What exactly is the high-pass residual after a low-pass filter? This is because of that whole topology-different- from-vertices thing

25 Actual effective DGP would be …? I don’t know. (It’s a hard problem!) Spherical harmonics would work, for shapes representable as functions over the sphere

26 Solutions/Details

27 What I Use Garland/Heckbert Error Quadric Simplification Static Mesh Switching I want to do a unified renderer this way (characters, terrain, big airplanes, whatever) People seem to think crack fixing is hard but it is actually easy –Maybe that’s why people haven’t tried this yet?

28 Discussion of Garland/Heckbert Algorithm (whiteboard)

29 Garland/Heckbert References “Surface Simplification Using Quadric Error Metrics” “Simplifying Surfaces with Color and Texture using Quadric Error Metrics”

30 G/H is useful also if you are making progressive meshes It just tells you how to collapse the mesh; doesn’t dictate how you will use that information.

31 Review of GH Algorithm In code (looking at the code)