Hardware accelerated real-time rendering

From OpenStreetMap Wiki
Jump to: navigation, search
Available languages — Hardware accelerated real-time rendering
Afrikaans Alemannisch aragonés asturianu azərbaycanca Bahasa Indonesia Bahasa Melayu Bân-lâm-gú Basa Jawa Baso Minangkabau bosanski brezhoneg català čeština dansk Deutsch eesti English español Esperanto estremeñu euskara français Frysk Gaeilge Gàidhlig galego Hausa hrvatski Igbo interlingua Interlingue isiXhosa isiZulu íslenska italiano Kiswahili Kreyòl ayisyen kréyòl gwadloupéyen kurdî latviešu Lëtzebuergesch lietuvių magyar Malagasy Malti Nederlands Nedersaksies norsk norsk nynorsk occitan Oromoo oʻzbekcha/ўзбекча Plattdüütsch polski português română shqip slovenčina slovenščina Soomaaliga suomi svenska Tiếng Việt Türkçe Vahcuengh vèneto Wolof Yorùbá Zazaki српски / srpski беларуская български қазақша македонски монгол русский тоҷикӣ українська Ελληνικά Հայերեն ქართული नेपाली मराठी हिन्दी অসমীয়া বাংলা ਪੰਜਾਬੀ ગુજરાતી ଓଡ଼ିଆ தமிழ் తెలుగు ಕನ್ನಡ മലയാളം සිංහල ไทย မြန်မာဘာသာ ລາວ ភាសាខ្មែរ ⵜⴰⵎⴰⵣⵉⵖⵜ አማርኛ 한국어 日本語 中文(简体)‎ 吴语 粵語 中文(繁體)‎ ייִדיש עברית اردو العربية پښتو سنڌي فارسی ދިވެހިބަސް
Screenshot of RTrender
Author: Dragan Stevanov
License: Free?
Platform: Windows
Version: (2010-10-30)
Language: English

Realtime OSM rendering


Conventional OpenStreetMap visualization is done by prerendering map tiles which are later displayed while browsing the map. Instead of prerendering map tiles, real-time renderer allows map image to be created on-the-fly, based on OSM data. No map tiles are used or created in the process. Image is generated on client side.

How does it work?

Rendering is hardware accelerated. DirectX is used to render images. Renderer requires at least geForce 6 or other DirectX 9 compatible graphics card to run. OSM data is imported to binary file, prior to using. Client and server are both embedded in one standalone application, for now. No database is used. I've written my own code to access stored data fast enough for real-time usage, no matter how big the data set is. That also required defining a custom binary file format.

This video explains the main features and ideas http://www.youtube.com/watch?v=vpoiUKBV6D0

The osm extract used in the video (Netherlands) is about 4gb (need to check this to make sure) in size. It's running on an average home pc.

How do I use it?

1. First, you need to install SlimDX runtime, http://slimdx.org/download_june10.php

2. Next, download a map you want to display from http://downloads.cloudmade.com/ or some other source. You’ll need the file with extension osm.

3. Next step is importing an *.osm file to internal format. To import, choose File>Import. When import process is done, 3 additional files will be created in the same folder.

4. Finally, use File>Open to open newly created map file (extension is map).

Once the map is loaded, use mouse to drag it around, use the scroll wheel to zoom in and out.

Use keyboard arrows and +/- to drag and zoom without loading new elements.

Element filter can be used to toggle rendering of map elements.

F key turns on and off wireframe rendering, to show actual triangles map geometry is composed of.

W,A,S,D rotate the whole map around to show map geometry in 3d.

To use benchmark feature, you’ll need fraps or similar software installed. Fraps can be found at http://www.fraps.com/download.php

Where can I get it?

You can get the executable here https://drive.google.com/file/d/0B1z5WPNdccTpa0pmVXhDX3R4ZVk/view?usp=sharing

Just extract the archive and run MainAppTest.exe. No installation needed.

Update: application will not be available for download until some licensing issues are solved. Update 2: executable is now available for download, but source code is still closed.



.NET 3.5 runtime or newer http://www.microsoft.com/downloads

SlimDX june 2010 or newer http://slimdx.org/download_june10.php

DirectX 9c or newer http://www.microsoft.com/downloads

Windows XP, Vista, Windows 7 (64bit recommended, but works on 32bit also)


Any newer CPU (at least dual core recommended, but works on single core)

1 gb of ram (at least 4 recommended)

geForce 6 or better (directX 9 compatible)

About author

MSc Dragan Stevanov, born 1985. in Serbia, Europe

Software Engineer