Procedural terrain on the GPU Chalmers University of Technology Advanced computer graphics – DAT205 David Sundelius Adam Scott.

Slides:



Advertisements
Similar presentations
Exploration of advanced lighting and shading techniques
Advertisements

Reconstruction from Voxels (GATE-540)
Task Challenge \nted Challenge \nted Achievements Demo Game Terrains How can we create more interesting game terrains?
CS123 | INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © 1/16 Deferred Lighting Deferred Lighting – 11/18/2014.
Stefan Roettger, VIS Group, University of Stuttgart Ingo Frick, Massive Development, Mannheim The Terrain Rendering Pipeline
Computer Graphics1 Geometry Area of polygons & Volume Of Polygonal surfaces.
Ray tracing. New Concepts The recursive ray tracing algorithm Generating eye rays Non Real-time rendering.
Exploration of bump, parallax, relief and displacement mapping
Graphics Pipeline.
Direct Volume Rendering. What is volume rendering? Accumulate information along 1 dimension line through volume.
3D Graphics Rendering and Terrain Modeling
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
Week 9 - Wednesday.  What did we talk about last time?  Fresnel reflection  Snell's Law  Microgeometry effects  Implementing BRDFs  Image based.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2005 Tamara Munzner Information Visualization.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
Surface Reconstruction from 3D Volume Data. Problem Definition Construct polyhedral surfaces from regularly-sampled 3D digital volumes.
Introduction to Volume Rendering Presented by Zvi Devir.
(conventional Cartesian reference system)
Tetra-Cubes: An algorithm to generate 3D isosurfaces based upon tetrahedra BERNARDO PIQUET CARNEIRO CLAUDIO T. SILVA ARIE E. KAUFMAN Department of Computer.
3D Graphics Processor Architecture Victor Moya. PhD Project Research on architecture improvements for future Graphic Processor Units (GPUs). Research.
IN4151 Introduction 3D graphics 1 Introduction to 3D computer graphics part 2 Viewing pipeline Multi-processor implementation GPU architecture GPU algorithms.
Seminar 1 Surface Rendering, Decimation Presented By Sonali Barua Date:10/31/2005.
Direct Volume Rendering w/Shading via Three- Dimensional Textures.
Fluid Surface Rendering in CUDA Andrei Monteiro Marcelo Gattass Assignment 4 June 2010.
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
1 Perception, Illusion and VR HNRS 299, Spring 2008 Lecture 19 Other Graphics Considerations Review.
1 Computer Graphics Week13 –Shading Models. Shading Models Flat Shading Model: In this technique, each surface is assumed to have one normal vector (usually.
Real-time Rendering of Dynamic Vegetation Alexander Kusternig Vienna University Of Technology.
Technology and Historical Overview. Introduction to 3d Computer Graphics  3D computer graphics is the science, study, and method of projecting a mathematical.
CSE 381 – Advanced Game Programming Basic 3D Graphics
19/18/ :34 Graphics II Volume Rendering Session 10.
Lecture 3 : Direct Volume Rendering Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University Acknowledgement : Han-Wei Shen Lecture.
09/09/03CS679 - Fall Copyright Univ. of Wisconsin Last Time Event management Lag Group assignment has happened, like it or not.
TERRAIN SET09115 Intro to Graphics Programming. Breakdown  Basics  What do we mean by terrain?  How terrain rendering works  Generating terrain 
C O M P U T E R G R A P H I C S Guoying Zhao 1 / 14 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 14 Going-through.
Marching Cubes: A High Resolution 3D Surface Construction Algorithm William E. Lorenson Harvey E. Cline General Electric Company Corporate Research and.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Computer Graphics and Multimedia Systems, University of Siegen, Germany 1 GPU-Based Responsive Grass Jens Orthmann, Christof Rezk-Salama, Andreas Kolb.
CMSC 635 Volume Rendering. Volume data  3D Scalar Field: F(x,y,z) = ?  Implicit functions  Voxel grid  Scalar data  Density  Temperature  Wind.
Volume Rendering CMSC 491/635. Volume data  3D Scalar Field: F(x,y,z) = ?  Implicit functions  Voxel grid  Scalar data  Density  Temperature  Wind.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
3D Volume Visualization. Volume Graphics  Maintains a 3D image representation that is close to the underlying fully-3D object (but discrete)  경계표면 (Boundary.
Sample Based Visibility for Soft Shadows using Alias-free Shadow Maps Erik Sintorn – Ulf Assarsson – uffe.
BUMP-MAPPING SET09115 Intro to Graphics Programming.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Vertices, Edges and Faces By Jordan Diamond. Vertices In geometry, a vertices is a special kind of point which describes the corners or intersections.
Global Illumination. Local Illumination  the GPU pipeline is designed for local illumination  only the surface data at the visible point is needed to.
OpenGL Graphics Textures. Quiz You didn't see that coming!
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
CSCE 641 Computer Graphics: Image-based Rendering (cont.) Jinxiang Chai.
COMPUTER GRAPHICS CS 482 – FALL 2015 SEPTEMBER 29, 2015 RENDERING RASTERIZATION RAY CASTING PROGRAMMABLE SHADERS.
3-D Information cs5764: Information Visualization Chris North.
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
1 Interactive Volume Isosurface Rendering Using BT Volumes John Kloetzli Marc Olano Penny Rheingans UMBC.
Applications and Rendering pipeline
A novel approach to visualizing dark matter simulations
Scene Manager Creates and places movable objects like lights and cameras so as to access them efficiently, e.g. for rendering. Loads and assembles world.
Ying Zhu Georgia State University
Week 12 - Thursday CS361.
Photorealistic Rendering vs. Interactive 3D Graphics
ICG Syllabus 1. Introduction 2. Viewing in 3D and Graphics Programming
Generating Terrains via Marching Cube Algorithm for Games
Graphics Processing Unit
The Graphics Rendering Pipeline
Computer Graphics Introduction to Shaders
Interactive Sampling and Rendering for Complex and Procedural Geometry
Presentation transcript:

Procedural terrain on the GPU Chalmers University of Technology Advanced computer graphics – DAT205 David Sundelius Adam Scott

Introduction Generating terrain is a task fitted well for parallelization and thus for the GPU A technique to generate terrain, with textures and lighting during runtime. Divides the world into cubic blocks containing voxels

Agenda Overview Density function and noise generation Marching cubes algorithm Texturing, shading and lighting Demo Questions

Terrain generation overview Divide environment in blocks of voxels Parallelize block calculation by using pixelshaders Use a density function to create the basic environment Apply noise to the generated density function Use the marching cubes algorithm to generate geometry Add textures and texture coordinates Render scene

Density function Function used to create the basic environment A three dimensional function Positive and negative values float density = -1; float density = -ws.y; float density = rad – length(ws- float3(0,rad,0));

Noise generation Generate some noise 3d texture repeating Modify the density function with random sampling from our noise texture Use interpolation to warp the area Able to create a hard floor or flat areas, just clamp the density function Possibility to use hand made textures Generate cave structure

Marching cubes - Blocks March through voxels in blocks For each voxel we create an array with information of corners from the density function

Marching cubes – Lookup tables Lookup constructed array Pregenereted lookuptables

Marching cubes - geometry Geometry shader Calculate position of vertex Calculate normal Three different methods to generate blocks

Block generation method 1 1. Fill volume 2. Generate vertices The slowest method

Block generation method 2 1. Fill density volume 2. Lightweight marker point 3. Generate vertices

Block generation method 3 1. Fill volume 2. List non-empty cells 3. List vertices to generate 4. Generate vertices 5. Splat vertices 6. Make triangles

Lighting and ambient occlusion Easy to implement Calculating normals Ray casting Long/short rays

Premade textures Pros and cons Loading textures (such as photographs) Triplanar texturing – project on axis with least distorted normal

Generating textures Marble textures

Pros and cons Requires a lot of memory on the GPU Can compromize valitity of data (not exact), ambiguity in model Can have holes Fast way to generate procedural environments Easy and fast to manipulate environment High resolution (easy to extend use to LoD)

Applications Level of detail Collisions Lighting Other use: create 3d models from sampling i.e. MRI

Demonstration Video

Further research references/Lorensen-Cline-brief.pdf references/Lorensen-Cline-brief.pdf iteration-at-time.html iteration-at-time.html The CD to GPU gems 3 – Interactive demo

Questions ?