Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Tile-Based Texture Mapping on Graphics Hardware Li-Yi Wei NVIDIA."— Presentation transcript:

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

2 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

3 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

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

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

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

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

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

9 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

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

11 Random Access by Tile Hashing

12 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 + 1 + H(2×O v ) ) Consistency e.g. C e (1, 2) = C w (2, 2) Direct evaluation No sequential dependency Easy to compute OhOh 01234 OvOv 0 1 2 3 4 CwCw CsCs CnCn CeCe

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

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

15 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)

16 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

17 Tile Packing in 1D Index(e 1, e 2 ) = 0, e 1 = e 2 = 0; e 1 2 + 2×e 2 – 1, e 1 > e 2 > 0; e 2 2 + 2×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; 0000122211 e1e1 e2e2 each tile used once continuous boundary easy to compute

18 Tile Packing in 2D Index(e 1, e 2 ) = 0, e 1 = e 2 = 0; e 1 2 + 2×e 2 – 1, e 1 > e 2 > 0; e 2 2 + 2×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

19 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

20 Results Input tiles Result with virtual texture size 8192x8192

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

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

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

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

25 Questions?

26

27

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

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

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

31 Ungrouped Border and Image

32 Grouped Border and Image

33

34

35

36 http://www.siggraph.org/education/materials/HyperGr aph/shutbug.htm

37 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.


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

Similar presentations


Ads by Google