logging in or signing up Texture Mapping on Graphics Hardware CoolDude26 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 478 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: June 15, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Tile-Based Texture Mapping on Graphics Hardware: Tile-Based Texture Mapping on Graphics Hardware Li-Yi Wei NVIDIA Texture Mapping with Large Repetitive Pattern: 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: Method 1: General Image Compression image pattern Implemented in graphics hardware VQ [Beers*96], S3TC/DXT [S3 Corporation] ○ Good for general images × Suboptimal for repetitive patterns Method 2:Texture Tiling: 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: Our Goal: Texture Tiling on GPU ○ No need to change texture coordinates ○ Native texture filtering ○ Implementation in fragment program Texture Tiling: Simple Case: Texture Tiling: Simple Case ○ Infinite compression ○ Good for GPU ○ Fast decoding × Repetition Input tile Arbitrarily large output texture Texture Tiling: Wang Tiles: Texture Tiling: Wang Tiles Arbitrarily large output texture Input tiles ○ replace repetition by non-periodic tiling How Wang Tile Works: How Wang Tile Works Input tiles adjacent tiles share identical edge color continuous pattern across identical edge color 1 2 3 4 Wang Tiles for Texture Mapping on GPU ?: 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: Overview of Our System Packed input tiles (correct filtering across tiles) Output virtual texture Tile hashing Random Access by Tile Hashing: Random Access by Tile Hashing Random Access by Tile Hashing: Random Access by Tile Hashing Tile index (Oh, Ov) Hash function H() Edge color ← (Oh, Ov) Cs = H( H(Oh) + Ov ) Cn = H( H(Oh) + Ov + 1) Cw = H( Oh + H(2×Ov) ) Ce = H( Oh + 1 + H(2×Ov) ) ○ Consistency e.g. Ce(1, 2) = Cw(2, 2) ○ Direct evaluation No sequential dependency ○ Easy to compute Tile Hashing Quality: Tile Hashing Quality H() simply a permutation table Hashing quality depends on table size 8 entries 16 entries 32 entries Image size 32 x 32 Random Access Needs All Possible Tile Edge Colors: Random Access Needs All Possible Tile Edge Colors Output virtual texture Input tiles with all edge colors How to Filter Tiled Texture ?: How to Filter Tiled Texture ? Shader filtering ○ flexible × slow × andgt; 1 texture No good packing (for general case) Tile Packing for Texture Filtering: 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: Tile Packing in 1D Index(e1, e2) = 0, e1 = e2 = 0; e12 + 2×e2 – 1, e1 andgt; e2 andgt; 0; e22 + 2×e1, e2 andgt; e1 ≥ 0; (e2 + 1)2 - 2, e1 = e2 andgt; 0; (e1 + 1)2 - 1, e1 andgt; e2 = 0; 0 0 0 0 1 2 2 2 1 1 e1 e2 ○ each tile used once ○ continuous boundary ○ easy to compute Tile Packing in 2D: Tile Packing in 2D Implementation and Performance: 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: Results Input tiles Result with virtual texture size 8192x8192 Results: Results Input tiles Traditional texture map Correct tile edge/corner Correct tile edge Incorrect low-res tile Limitations: Limitations × Incorrect lower-resolution MIPMAP levels × Need tile set with all possible edge colors × Not fast enough Future Work: Future Work Performance improvement Driver implementation Hash instruction in hardware 3D texture tile Acknowledgements: Acknowledgements Wei-Chao Chen Read the 1st paper draft Says I should submit John Danskin Permission to submit Reviewers NVIDIANS Questions?: Questions? Slide26: Slide27: Limitations: Limitations × Incorrect lower-resolution MIPMAP levels × Need tile set with all possible edge colors × Not fast enough 1 1 3 2 Filtering Result: Tile Edge: Filtering Result: Tile Edge Input tiles Result without correct input tile packing Result with correct input tile packing Filtering Result: Tile Corner: Filtering Result: Tile Corner Input tiles Result without corner handling Result with corner handling Ungrouped Border and Image: Ungrouped Border and Image Grouped Border and Image: Grouped Border and Image Grouped Border and Image: Grouped Border and Image Slide34: Slide35: http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm: http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm Slide37: 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. You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
Texture Mapping on Graphics Hardware CoolDude26 Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINT Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 478 Category: Education License: All Rights Reserved Like it (0) Dislike it (0) Added: June 15, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Tile-Based Texture Mapping on Graphics Hardware: Tile-Based Texture Mapping on Graphics Hardware Li-Yi Wei NVIDIA Texture Mapping with Large Repetitive Pattern: 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: Method 1: General Image Compression image pattern Implemented in graphics hardware VQ [Beers*96], S3TC/DXT [S3 Corporation] ○ Good for general images × Suboptimal for repetitive patterns Method 2:Texture Tiling: 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: Our Goal: Texture Tiling on GPU ○ No need to change texture coordinates ○ Native texture filtering ○ Implementation in fragment program Texture Tiling: Simple Case: Texture Tiling: Simple Case ○ Infinite compression ○ Good for GPU ○ Fast decoding × Repetition Input tile Arbitrarily large output texture Texture Tiling: Wang Tiles: Texture Tiling: Wang Tiles Arbitrarily large output texture Input tiles ○ replace repetition by non-periodic tiling How Wang Tile Works: How Wang Tile Works Input tiles adjacent tiles share identical edge color continuous pattern across identical edge color 1 2 3 4 Wang Tiles for Texture Mapping on GPU ?: 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: Overview of Our System Packed input tiles (correct filtering across tiles) Output virtual texture Tile hashing Random Access by Tile Hashing: Random Access by Tile Hashing Random Access by Tile Hashing: Random Access by Tile Hashing Tile index (Oh, Ov) Hash function H() Edge color ← (Oh, Ov) Cs = H( H(Oh) + Ov ) Cn = H( H(Oh) + Ov + 1) Cw = H( Oh + H(2×Ov) ) Ce = H( Oh + 1 + H(2×Ov) ) ○ Consistency e.g. Ce(1, 2) = Cw(2, 2) ○ Direct evaluation No sequential dependency ○ Easy to compute Tile Hashing Quality: Tile Hashing Quality H() simply a permutation table Hashing quality depends on table size 8 entries 16 entries 32 entries Image size 32 x 32 Random Access Needs All Possible Tile Edge Colors: Random Access Needs All Possible Tile Edge Colors Output virtual texture Input tiles with all edge colors How to Filter Tiled Texture ?: How to Filter Tiled Texture ? Shader filtering ○ flexible × slow × andgt; 1 texture No good packing (for general case) Tile Packing for Texture Filtering: 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: Tile Packing in 1D Index(e1, e2) = 0, e1 = e2 = 0; e12 + 2×e2 – 1, e1 andgt; e2 andgt; 0; e22 + 2×e1, e2 andgt; e1 ≥ 0; (e2 + 1)2 - 2, e1 = e2 andgt; 0; (e1 + 1)2 - 1, e1 andgt; e2 = 0; 0 0 0 0 1 2 2 2 1 1 e1 e2 ○ each tile used once ○ continuous boundary ○ easy to compute Tile Packing in 2D: Tile Packing in 2D Implementation and Performance: 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: Results Input tiles Result with virtual texture size 8192x8192 Results: Results Input tiles Traditional texture map Correct tile edge/corner Correct tile edge Incorrect low-res tile Limitations: Limitations × Incorrect lower-resolution MIPMAP levels × Need tile set with all possible edge colors × Not fast enough Future Work: Future Work Performance improvement Driver implementation Hash instruction in hardware 3D texture tile Acknowledgements: Acknowledgements Wei-Chao Chen Read the 1st paper draft Says I should submit John Danskin Permission to submit Reviewers NVIDIANS Questions?: Questions? Slide26: Slide27: Limitations: Limitations × Incorrect lower-resolution MIPMAP levels × Need tile set with all possible edge colors × Not fast enough 1 1 3 2 Filtering Result: Tile Edge: Filtering Result: Tile Edge Input tiles Result without correct input tile packing Result with correct input tile packing Filtering Result: Tile Corner: Filtering Result: Tile Corner Input tiles Result without corner handling Result with corner handling Ungrouped Border and Image: Ungrouped Border and Image Grouped Border and Image: Grouped Border and Image Grouped Border and Image: Grouped Border and Image Slide34: Slide35: http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm: http://www.siggraph.org/education/materials/HyperGraph/shutbug.htm Slide37: 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.