Tile-Based Texture Mapping on Graphics Hardware Li-Yi Wei NVIDIA.

Slides:



Advertisements
Similar presentations
Eurographics 2012, Cagliari, Italy Template for EG2012 presentations CRS4 EG2012 Team.
Advertisements

Destruction Masking in Frostbite 2 using Volume Distance Fields
Inverse Texture Synthesis Li-Yi Wei 1 Jianwei Han 2 Kun Zhou 1,2 Hujun Bao 2 Baining Guo 1 Harry Shum 1 1 Microsoft 2 Zhejiang University.
Semantics Consistent Parallelism Li-Yi Wei Microsoft Research.
Chapter 6 File Systems 6.1 Files 6.2 Directories
Polygon Scan Conversion – 11b
SE-292 High Performance Computing
Wang Tiles for Image and Texture Generation
Deferred Lighting and Post Processing on PLAYSTATION®3
Chapter 12: File System Implementation
Technische Universität München Fakultät für Informatik Computer Graphics SS 2014 Sampling Rüdiger Westermann Lehrstuhl für Computer Graphik und Visualisierung.
1 COMP 206: Computer Architecture and Implementation Montek Singh Wed., Oct. 23, 2002 Topic: Memory Hierarchy Design (HP3 Ch. 5) (Caches, Main Memory and.
CSE 781 Anti-aliasing for Texture Mapping. Quality considerations So far we just mapped one point – results in bad aliasing (resampling problems) We really.
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Understanding the graphics pipeline Lecture 2 Original Slides by: Suresh Venkatasubramanian Updates by Joseph Kider.
Graphics Hardware CMSC 435/634. Transform Shade Clip Project Rasterize Texture Z-buffer Interpolate Vertex Fragment Triangle A Graphics Pipeline.
Cs123 INTRODUCTION TO COMPUTER GRAPHICS Andries van Dam © Andries van Dam Texture Mapping Beautification of Surfaces 1/23.
Geometry Compression Michael Deering, Sun Microsystems SIGGRAPH (1995) Presented by: Michael Chung.
Lecture 6: 3D Rendering Pipeline (III) Prof. Hsien-Hsin Sean Lee School of Electrical and Computer Engineering Georgia Institute of Technology.
ABC HFG JKLW OPQR NTU VS YZ.
Edit this text to create a title slide And put your sub-heading here.
3D Graphics for Game Programming (J. Han) Chapter VIII Image Texturing.
The Programmable Graphics Hardware Pipeline Doug James Asst. Professor CS & Robotics.
Order-Independent Texture Synthesis Li-Yi Wei Marc Levoy Gcafe 1/30/2003.
A Crash Course on Programmable Graphics Hardware Li-Yi Wei 2005 at Tsinghua University, Beijing.
A Crash Course on Texturing Li-Yi Wei 2005 at Tsinghua University, Beijing.
Status – Week 277 Victor Moya.
The FFT on a GPU Graphics Hardware 2003 July 27, 2003 Kenneth MorelandEdward Angel Sandia National LabsU. of New Mexico Sandia is a multiprogram laboratory.
Texture Synthesis from Multiple Sources Li-Yi Wei Stanford University (was) NVIDIA Corporation (now)
Evolutions of GPU Architectures Andrew Coile CMPE220 3/2007.
Basic Rendering Techniques V Recognizing basic rendering techniques.
My Tessellation Has Cracks! (and solutions to other tessellation related problems) Bryan Dudash Developer Technology, NVIDIA.
GPU Programming Robert Hero Quick Overview (The Old Way) Graphics cards process Triangles Graphics cards process Triangles Quads.
CSE 381 – Advanced Game Programming Basic 3D Graphics
© Copyright Alvarion Ltd. Slide Title Arial Bold 30pt Slide Subtitle Arial Bold 16pt Presenter Name Position.
CS 395 T Real-Time Graphics Architectures, Algorithms, and Programming Systems Spring’03 Vector Quantization for Texture Compression Qiu Wu Dept. of ECE.
11/11/04© University of Wisconsin, CS559 Fall 2004 Last Time Shading Interpolation Texture mapping –Barycentric coordinates for triangles.
PolyCube-Maps seamless texture mapping
Adaptive Real-Time Rendering of Planetary Terrains WSCG 2010 Raphaël Lerbour Jean-Eudes Marvie Pascal Gautron THOMSON R&D, Rennes, France.
Mesh Color Cem Yuksel John Keyser Donald H. House Texas A&M University SIGGRAPH /12/06 Xiang.
Edit this text to create a Heading  This subtitle is 20 points  Bullets are blue  They have 110% line spacing, 2 points before & after  Longer bullets.
1 Rendering Geometry with Relief Textures L.Baboud X.Décoret ARTIS-GRAVIR/IMAG-INRIA.
IT253: Computer Organization
How to Build a CPU Cache COMP25212 – Lecture 2. Learning Objectives To understand: –how cache is logically structured –how cache operates CPU reads CPU.
Pattern Based Procedural Textures Sylvain Lefebvre Fabrice Neyret iMAGIS - GRAVIR / IMAG - INRIA
10/18: Lecture topics Memory Hierarchy –Why it works: Locality –Levels in the hierarchy Cache access –Mapping strategies Cache performance Replacement.
Computer Graphics 2 Lecture 7: Texture Mapping Benjamin Mora 1 University of Wales Swansea Pr. Min Chen Dr. Benjamin Mora.
CS418 Computer Graphics John C. Hart
Synthesis of Compact Textures for real-time Terrain Rendering Nader Salman 22 juin 2007 Encadrant : Sylvain Lefebvre.
Edit this text to create a Heading  This subtitle is 20 points  Bullets are blue  They have 110% line spacing, 2 points before & after  Longer bullets.
Material obtained from Summer workshop in Guildford County, July, 2014 Unit 6.
COMP SYSTEM ARCHITECTURE HOW TO BUILD A CACHE Antoniu Pop COMP25212 – Lecture 2Jan/Feb 2015.
Havok FX Physics on NVIDIA GPUs. Copyright © NVIDIA Corporation 2004 What is Effects Physics? Physics-based effects on a massive scale 10,000s of objects.
Edit this text to create a Heading  This subtitle is 20 points  Bullets are blue  They have 110% line spacing, 2 points before & after  Longer bullets.
Real-Time Relief Mapping on Arbitrary Polygonal Surfaces Fabio Policarpo Manuel M. Oliveira Joao L. D. Comba.
Canny Edge Detection Using an NVIDIA GPU and CUDA Alex Wade CAP6938 Final Project.
Antialiasing. What is alias? Alias - A false signal in telecommunication links from beats between signal frequency and sampling frequency (from dictionary.com)
1 Real-Time High-Quality View-dependent Texture Mapping using Per-Pixel Visibility Damien Porquet Jean-Michel Dischler Djamchid Ghazanfarpour MSI Laboratory,
GPU Architecture and Its Application
COMPUTER GRAPHICS CHAPTER 38 CS 482 – Fall 2017 GRAPHICS HARDWARE
File-System Implementation
A Crash Course on Programmable Graphics Hardware
Graphics Processing Unit
Presentation Title, Arial 44 bold
Chapters VIII Image Texturing
Presentation Title, Arial 44 bold
Static Image Filtering on Commodity Graphics Processors
Kenneth Moreland Edward Angel Sandia National Labs U. of New Mexico
Edit this text to create a title slide
Patch Textures: Hardware Implementation of Mesh Colors
Presentation transcript:

Tile-Based Texture Mapping on Graphics Hardware Li-Yi Wei NVIDIA

Texture Mapping with Large Repetitive Pattern Large terrain textures are very common Games, simulation Issues Bandwidth for texture access Memory/Cache for texture storage Need texture compression

Method 1: General Image Compression imagepattern Implemented in graphics hardware VQ [Beers*96], S3TC/DXT [S3 Corporation] Good for general images × Suboptimal for repetitive patterns

Method 2: Texture Tiling Only works for repetitive patterns Good compression ratio × Requires changing texture coordinates × No native texture filtering support

Our Goal: Texture Tiling on GPU No need to change texture coordinates Native texture filtering Implementation in fragment program

Texture Tiling: Simple Case Infinite compression Good for GPU Fast decoding × Repetition Input tile Arbitrarily large output texture tiling

Texture Tiling: Wang Tiles Arbitrarily large output texture Input tiles tiling replace repetition by non-periodic tiling

How Wang Tile Works Input tiles tiling adjacent tiles share identical edge colorcontinuous pattern across identical edge color 12 34

Wang Tiles for Texture Mapping on GPU ? Original [Cohen*03] × Sequential tiling × No texture filtering across tiles × Not good for GPU Our approach Random-accessible tiling Native texture filtering across tiles Good for GPU × Need more tiles

Overview of Our System Packed input tiles (correct filtering across tiles) Output virtual texture Tile hashing

Random Access by Tile Hashing

Tile index (O h, O v ) Hash function H() Edge color (O h, O v ) C s = H( H(O h ) + O v ) C n = H( H(O h ) + O v + 1) C w = H( O h + H(2×O v ) ) C e = H( O h H(2×O v ) ) Consistency e.g. C e (1, 2) = C w (2, 2) Direct evaluation No sequential dependency Easy to compute OhOh OvOv CwCw CsCs CnCn CeCe

Tile Hashing Quality H() simply a permutation table Hashing quality depends on table size 8 entries16 entries32 entries Image size 32 x 32

Random Access Needs All Possible Tile Edge Colors Output virtual texture Input tiles No matching input! with all edge colors

How to Filter Tiled Texture ? Shader filtering flexible × slow × > 1 texture Boundary padding fast 1 texture × size not in 2 n × MIPMAP Tile packing fast 1 texture size in 2 n MIPMAP × how to pack? No good packing (for general case)

Tile Packing for Texture Filtering × tiles with all colors (for random access) each tile used once (no wasted memory) continuous boundary (native filtering) easy to compute Packed input tiles

Tile Packing in 1D Index(e 1, e 2 ) = 0, e 1 = e 2 = 0; e ×e 2 – 1, e 1 > e 2 > 0; e ×e 1, e 2 > e 1 0; (e 2 + 1) 2 - 2, e 1 = e 2 > 0; (e 1 + 1) 2 - 1, e 1 > e 2 = 0; e1e1 e2e2 each tile used once continuous boundary easy to compute

Tile Packing in 2D Index(e 1, e 2 ) = 0, e 1 = e 2 = 0; e ×e 2 – 1, e 1 > e 2 > 0; e ×e 1, e 2 > e 1 0; (e 2 + 1) 2 - 2, e 1 = e 2 > 0; (e 1 + 1) 2 - 1, e 1 > e 2 = 0; as 2 orthogonal 1D packing horizontal: Index(c w, c e ) vertical: Index(c s, c n ) cece cwcw cncn cscs

Implementation and Performance Implementation Cg without hand optimization Performance (million tri-linear texels per second on Geforce FX 5600) 2.7 – full fragment program implementation 20 – pre-compute tile hashing in a texture

Results Input tiles Result with virtual texture size 8192x8192

Results Input tiles Traditional texture mapCorrect tile edge/corner Correct tile edgeIncorrect low-res tile

Limitations × Incorrect lower-resolution MIPMAP levels × Need tile set with all possible edge colors × Not fast enough

Future Work Performance improvement Driver implementation Hash instruction in hardware 3D texture tile

Acknowledgements Wei-Chao Chen Read the 1 st paper draft Says I should submit John Danskin Permission to submit Reviewers NVIDIANS

Questions?

Limitations × Incorrect lower-resolution MIPMAP levels × Need tile set with all possible edge colors × Not fast enough

Filtering Result: Tile Edge Input tiles Result without correct input tile packing Result with correct input tile packing

Filtering Result: Tile Corner Input tiles Result without corner handling Result with corner handling

Ungrouped Border and Image

Grouped Border and Image

aph/shutbug.htm

S2004 Arial, Bold, 37 points This subtitle is 31 points Bullets are orange; text is 26 points They have 110% line spacing, 6 points before/after Longer bullets in the form of a paragraph are harder to read if there is insufficient line spacing. This is the maximum recommended number of lines per slide (seven). –Sub-bullets look like this.