Optimization of Mesh Locality for Transparent Vertex Caching - PowerPoint PPT Presentation

About This Presentation
Title:

Optimization of Mesh Locality for Transparent Vertex Caching

Description:

Optimization of Mesh Locality for. Transparent Vertex ... AGP) texture. image. texture. image. geometry. vertices. faces. mesh in memory. System architecture ... – PowerPoint PPT presentation

Number of Views:59
Avg rating:3.0/5.0
Slides: 32
Provided by: hugues
Category:

less

Transcript and Presenter's Notes

Title: Optimization of Mesh Locality for Transparent Vertex Caching


1
Optimization of Mesh Locality forTransparent
Vertex Caching
  • Hugues Hoppe
  • Microsoft ResearchSIGGRAPH 99

2
Triangle meshes
3
System architecture
mesh in memory
geometry
vertices
faces
textureimage
texturecache
textureimage
...
4
Previous work
graphics processor
compressedgeometry stream
meshbuffer
parsinglogic
geometricprocessing
bus
  • 16-entry FIFO buffer Deering95, Chow97
  • stack buffer BarYehuda-Gotsman96
  • mesh compression Taubin-Rossignac98 Gum
    hold-Strasser98

5
Previous work
graphics processor
compressedgeometry stream
meshbuffer
parsinglogic
geometricprocessing
bus
  • Drawbacks
  • only static geometry
  • new API
  • not backward compatible

6
Our approach
graphics processor
vertexcache
geometricprocessing
bus
textureimage
texturecache
textureimage
rasterization
...
No explicit cache management
7
Transparent vertex caching
traditional mesh API
graphicssystem
application
vertexarray
indexedstrips
  • Pros
  • animated geometry
  • application program unchanged
  • backward compatible on legacy hardware
  • Cons
  • less compression (but still a factor 2)

8
Indexed triangle strips
3
6
1
v1
1
2
3
v2
4
3
5
v3
6
4
2
5
v4
2
7
4
v5
5
v6
v7
7
32 bytes
9
Cache parameters
vertex cache
size ?
replacementpolicy ?
10
Vertex data access
traditional strips
with caching
11
Vertex data access
0
1
2
3
misses
traditional strips
with caching
transfer 0.5 vertex/tri
transfer 1.0 vertex/tri
12
Example
before optimization
0
1
2
3
misses
13
Optimization problem
  • Given mesh,find strips minimizing bus bandwidth
  • ( strips correspond to ordering of faces F )

?
cache miss rate
vertex indices
14
Two reordering techniques
  • Greedy strip-growing
  • fast 40,000 faces/sec
  • Local optimization
  • improve initial greedy solution
  • very slow

15
Greedy strip-growing
  • Inspired by Chow97

1
2
3
4
  • To decide when to restart strip, perform
    lookahead cache simulations

16
When to restart strip?
good strip length
(cache size 4)
17
When to restart strip?
good strip length
strip too long
? jump in miss rate!
(cache size 4)
18
Lookahead simulations
  • Perform s simulations

(a) restart immediately, after 0 faces
(b) restart after 0 lt i lt s faces
  • If (a) is best, restart strip

19
Result
traditional long strips
face order
within strip
strip restart
20
Result
traditional long strips
greedy strip-growing
21
Result
before
after
45.8 bytes/triangle
25.5 bytes/triangle
22
Local optimization
  • Apply perturbations to face ordering if cost is
    lowered

Initial order F
Fy..x
Fy
Fx..y-1
Fy-1..y
23
Result
greedy strip-growing
local optimization
25.5 bytes/triangle
24.2 bytes/triangle
24
Bandwidth Results
Improvement by factor of 1.6 1.9
25
Choice of cache size
26
Cache replacement policy
(cache size 4)
FIFO
LRU
? all is OK
27
Cache replacement policy
(cache size 4)
FIFO
LRU
28
Comparison
FIFO
LRU
29
Comparison
FIFO
LRU
30
Summary
  • Vertex caching reduces geometrybandwidth by
    factor of 1.6 to 1.9
  • Transparent to application simply pre-process
    the models (fast)
  • Still efficient on legacy hardware
  • Supports dynamic geometry

31
Future work
  • Issue of cache size
  • Find face ordering good for all sizes?
  • Standardize on size 16?
  • Reprocess mesh at load time
  • Interaction with texture caching
  • Cache efficiency during runtime LOD
Write a Comment
User Comments (0)
About PowerShow.com