![Page 1: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/1.jpg)
© 2008 NVIDIA Corporation.
Tom McReynolds, NVIDIA
Efficient Map, Road, Terrain, Text and POI Rendering on OpenGL-ES
![Page 2: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/2.jpg)
© 2008 NVIDIA Corporation.
• Embedded platform: weak CPU with small cache, slow bus
• Need consistent latency, must be smooth all the time
• Similar to Vis-Sim apps• Constant frame rate, similar techniques• But lots of annotations: text, icons,
landmarks, etc.
• Different “graphics culture”
Mapping is Different
![Page 3: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/3.jpg)
© 2008 NVIDIA Corporation.
• Scrolling landscape• Terrain geometry, land use and roads
• Terrain and roads have level-of-detail control
• Multiple icons/text/landscape features• Must be clear and uncluttered
• Scene realism features• Sky/fog, lighting, bump mapping
Mapping Elements
![Page 4: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/4.jpg)
© 2008 NVIDIA Corporation.
Rendering Architecture
TerrainTiles
MapTiles
MapDBase
TerrainDBase
On Disk SystemMemory
Textures+
VBOs
VBOs
VideoMemory
![Page 5: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/5.jpg)
© 2008 NVIDIA Corporation.
• Use good graphics programming practice
• Performance tune application• Solve mapping problems
• Use “tricky” OpenGL-ES techniques• Stay within application constraints
Strategy
![Page 6: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/6.jpg)
© 2008 NVIDIA Corporation.
• VBOs vs. vertex arrays• Optimize rendering thread
• Start rendering early in the frame• Maximize pipelining; keep input fifo full
• State sorting• Minimize state changes
• Primitive grouping• Combine primitives where possible, re-
use verts, textures
Good OpenGL-ES Practice
![Page 7: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/7.jpg)
© 2008 NVIDIA Corporation.
• Benchmark to find bottlenecks, don’t assume you know!• Look for performance that varies as well
• Look for latency as well as bandwidth problems• Can wait for bus, disk, context switch,
etc.• Having some kernel and user tracing
tools essential
Performance Tuning
![Page 8: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/8.jpg)
© 2008 NVIDIA Corporation.
Extensive Benchmarking2D Performance Improvement in fps
10.045
7.02
3.84
7.21 7.458.725
11.65
15.79
12.785
8.86
5.285
14.985
26.31
10.7657692310.965
7.68
4.04
7.555 7.7459.15
12.145
18.76
13.995
9.24
5.43
17.31
29.275
11.7915384610.395
7.685
4.765
12.0711.025
12.375
22.285
7.265
36.68
19
7.905
29.425
45.46
17.41038462
14.775
8.69
5.46
11.78513.425
15.73
22.82
37.34
27.5326.17
16.06
31.715
45.525
21.30961538
31.2
23.235
15.51517.355
15.99516.89
24.005
38.63
28.34527.12
16.5
29.915
41.54
25.09576923
33.52
27.78
19.09520.15
17.585 17.59
25.9
39.705
29.6528.695
17.78
31.07
44.265
27.13730769
0
5
10
15
20
25
30
35
40
45
50
55
60
5000
1000
0
2000
0
5000
0
1000
00
2000
00
5000
00
1000
000
2000
000
5000
000
1000
0000
2000
0000
5000
0000
Aver
age
Zoom Level
FPS
Baseline
R6 Baseline
08.03.07 Baseline
08-10-07 Baseline .21DB
08.22.07 Baseline .21DB
08.27.07 Baseline .21DB
![Page 9: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/9.jpg)
© 2008 NVIDIA Corporation.
Tracing to find timing delays
![Page 10: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/10.jpg)
© 2008 NVIDIA Corporation.
Visualizing your Data: PerfHUD
![Page 11: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/11.jpg)
© 2008 NVIDIA Corporation.
Measuring Data
![Page 12: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/12.jpg)
© 2008 NVIDIA Corporation.
• Roads and land usage• POI collision detection• Terrain scrolling• 3D terrain generation• Bump mapping• Sky and fog• Color correction
Mapping Requirements
![Page 13: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/13.jpg)
© 2008 NVIDIA Corporation.
• High quality AA is expected• Better than what FSAA can routinely
achieve
• Roads complex to draw• Fancy joins and ends• Road segments have multiple elements
• Straightforward implementation too slow• Low bus bandwidth from CPU to GPU
Roads
![Page 14: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/14.jpg)
© 2008 NVIDIA Corporation.
• Use textures on tri-strips• Texture with alpha + alpha blend: high
quality AA edges• Simplifies geometry: reduces CPU and
bus bandwidth requirements• Works around slow wide lines on GPU
Road Techniques
![Page 15: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/15.jpg)
© 2008 NVIDIA Corporation.
• Create “bullseye texture”• May need multiple resolutions to achieve
good texel sampling at different zoom levels.
• “Stretch” texture over tri-strip road segments• S coords 0 at one end, 1 at other, .5 at
line end transition.• T coords span width of line
AA Roads using Textures
![Page 16: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/16.jpg)
© 2008 NVIDIA Corporation.
AA Roads using Texture
Road detail textures, different resolutions(if needed)
Road texture stretched onto tri-strip
Tri-strip with texture coordinates
0,0 0,1
.5,0 .5,1
.5,0 .5,1
1,0 1,1
![Page 17: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/17.jpg)
© 2008 NVIDIA Corporation.
• Not limited to line ends• Can also do joins (curves) and
intersections• Use finer tessellation of base strip to get
smooth curves• Discontinuous texture coordinates
possible by doubling vertices
AA Roads using Texture (cont).
![Page 18: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/18.jpg)
© 2008 NVIDIA Corporation.
• Same technique as roads• Expand to general polygons• Wrap polygons with textured tri-strips
• Alternatively you can surround polygons with AA lines
Land Use Features
![Page 19: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/19.jpg)
© 2008 NVIDIA Corporation.
• POI = Points of Interest• Think road signs: food, gas, lodging, etc.• Usually round or square• 2D: a point on map, stays upright• 3D: billboard floating over point on
terrain
• Text• City, county, country, names etc.• Sometimes aligned to stay upright
POI, Text Collision Detection
![Page 20: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/20.jpg)
© 2008 NVIDIA Corporation.
Roads, Land Use,Text and POIs
![Page 21: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/21.jpg)
© 2008 NVIDIA Corporation.
• Need to decide how many POIs to show• They shouldn’t overlap, or crowd each
other: make map too busy or unreadable• More complex problem for 3D maps
• Need to keep POIs, rotated text from overlapping with upright text• Some apps require culling, not clipping
POI/Text Collision Detection
![Page 22: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/22.jpg)
© 2008 NVIDIA Corporation.
• Can blit POIs and text to map image• But this prevents fast updates• Corrupts base image, limiting reuse
• Better to add text, POIs as textured polygons• Rotation, scale invariant (within limits)
• Billboarding used to keep text, POIs upright• Can group billboarding rotations
Applying POIs and Text
![Page 23: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/23.jpg)
© 2008 NVIDIA Corporation.
• Precompute geometry extents, overlaps with CPU
• If objects can clip each other, depth buffering and stenciling will work• Sort objects by priority; higher priority
objects obscure lower priority ones
• Pixel picking methods to find overlap• Use colors as object ids• Needs fast readback, histogram
Collision Detection Approaches
![Page 24: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/24.jpg)
© 2008 NVIDIA Corporation.
• Potentially large amount of bandwidth required
• Different techniques possible: best depends on hardware capabilities• Render speed• Blit Speed• Texturing
• Want to minimize CPU bandwidth, maximize GPU performance
Terrain Scrolling
![Page 25: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/25.jpg)
© 2008 NVIDIA Corporation.
• Surface larger than visible area• Render a buffer around visible region• Render extra in direction of travel• Blit to scroll
• Optimal if there is not texturing h/w• Uses a lot of video memory• Blits may be slow, use up frame time• Won’t handle rotations, scales
Blitting
![Page 26: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/26.jpg)
© 2008 NVIDIA Corporation.
Blitting (cont)
VisibleRegion Ex
tra
![Page 27: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/27.jpg)
© 2008 NVIDIA Corporation.
• Surface the same size as visible area• Re-render entire scene each frame• No wasted video memory• No copies, handles rotation, scaling• Requires scene update, render update
is very fast• H/W accelerated transforms• VBOs or other methods to minimize
triangle bandwidth
Re-Render
![Page 28: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/28.jpg)
© 2008 NVIDIA Corporation.
Re-Render (cont)
![Page 29: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/29.jpg)
© 2008 NVIDIA Corporation.
• Texture larger than visible region• Used texture coordinate wrapping• Render to region in front of direction of
travel• Render with transformed texture
coordinates to scroll
• No copy, handles rotation, some scaling
• Must have fast render-to-texture
Wrapped Textures
![Page 30: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/30.jpg)
© 2008 NVIDIA Corporation.
Wrapped Textures
VisibleRegion
![Page 31: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/31.jpg)
© 2008 NVIDIA Corporation.
• Usually store height fields, create tessellated surfaces
• Multiple constraints• Must be fast with a slow CPU, bus• Data divided into tiles with different
resolutions to ease loading, save space• Flat vs. mountainous terrain• Near vs. far tiles
• Tiles must connect cleanly even when resolutions don’t match
3D Terrain Generation
![Page 32: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/32.jpg)
© 2008 NVIDIA Corporation.
Terrain Generation
![Page 33: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/33.jpg)
© 2008 NVIDIA Corporation.
• Sophisticated algorithms like SOAR• Good storage but high CPU load
• Simple regular grid• Fast but uses large amount of storage
• Simplified “quadtree” approach• Fast traversal to appropriate resolution
tiles• Regular at each level, fast tessellation
3D Terrain Representation
![Page 34: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/34.jpg)
© 2008 NVIDIA Corporation.
• The more the map matches windshield view the better, but:• Too busy = hard to understand• Too much detail, map goes out of date
quickly
• The right amount of realism:• Easy for viewer to orient to map• Symbolic enough to quickly find useful
details
Adding realism to Terrain
![Page 35: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/35.jpg)
© 2008 NVIDIA Corporation.
More Detail not Always Better
![Page 36: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/36.jpg)
© 2008 NVIDIA Corporation.
• Terrain shape• Simplified terrain ok, but can’t make
distinct features unrecognizable!
• Lighting• Daytime: time of day (exact sun position)• Night: modified headlight view
• Sky, fogging• Adds realism that doesn’t distract• Simplifies view, eases terrain generation
Appropriate Terrain Realism
![Page 37: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/37.jpg)
© 2008 NVIDIA Corporation.
• Normal maps• Less computation for CPU• Per pixel lighting, high quality
• Fog maps• OpenGL-ES fog too primitive• Maps give fine control of fogging function• Can change fog color with height (haze)• Can combine: RGB = color A = fogging
Terrain rendering tricks
![Page 38: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/38.jpg)
© 2008 NVIDIA Corporation.
Fog Maps
![Page 39: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/39.jpg)
© 2008 NVIDIA Corporation.
Terrain with Normal, Fog Maps2D Map (Cm)
Normal Map (Cn)
Diffuse Light (CD)
Cm * dot(Cn, CD) = CMapShaded
V
Fog map RGB
V
U
Fog map A
Pass 1 goes to RenTarget
Pass 2 goes to BackBuffer
Terrain Diffuse Color (CTerrain)
Fog (CFog)
= Cfinal
![Page 40: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/40.jpg)
© 2008 NVIDIA Corporation.
• Content designers choose specific colors• Especially route colors
• They don’t like it if your shading changes their colors!
• Approaches• Tone mapping: adjust colors to “undo”
shading effect• Use stencil to mask out shading
Color Correction
![Page 41: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/41.jpg)
© 2008 NVIDIA Corporation.
• OpenGL-ES 1.X (fixed functionality) can do a lot
• But there’s room for improvement• Better map quality• Better performance
• Newer maps need more of both• Higher resolution displays• More detail (with on-line updates)• Driver viewpoint
Going Forward
![Page 42: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/42.jpg)
© 2008 NVIDIA Corporation.
• Displacement mapping• Use height field and flat grids as
inputs• Grids can be 2D and low precision coords
• Height field stored as mipmap• Grid vertex + ds/dx, dt/dy used to
mipmap to height value
• Fragment shader used for lighting• Compute normal from height map
Areas to Improve: Terrain
![Page 43: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/43.jpg)
© 2008 NVIDIA Corporation.
• Vertex shader can do billboard computations on GPU
• Can batch multiple billboards into single draw call + uniform data
• Can also adjust billboard height based on height field stored as a texture
• Billboard position/orientation info reduced to an 2D point
Going Forward: Billboarding
![Page 44: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/44.jpg)
© 2008 NVIDIA Corporation.
• Minimize geometry needed to render buildings
• Assume simplified buildings: floorplan + constant height• Reasonable for non-landmark buildings
• Send convex outlines of buildings• Can build arbitrary buildings from these
• Render as fans for tops• Use geometry shader to build walls
Areas to Improve: Buildings
![Page 45: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/45.jpg)
© 2008 NVIDIA Corporation.
• Geometry shader to build walls• Send floorplans twice• Use primitive restart to separate array
into building pieces• Geometry shader offsets per attribute
height value, stitches quad array• Wall id attribute can be used to choose
wall texture, etc.• Facet normals computed from quads
Areas to Improve: Buildings (cont)
![Page 46: Efficient Map, Road, Terrain, Text and POI Rendering on ... · 2D Performance Improvement in fps 10.045 7.02 3.84 7.21 7.45 8.725 11.65 15.79 12.785 8.86 5.285 14.985 26.31 10.965](https://reader031.vdocuments.mx/reader031/viewer/2022011918/5ffb73a4f7d4304366732e7b/html5/thumbnails/46.jpg)
© 2008 NVIDIA Corporation.
Questions?