60 likes | 86 Views
3D Renderer for GeoTools. Renders a 2D map on an infinite 3D surface Uses variable level of detail Closer areas are more detailed than far away ones A standard Swing Component with mouse gesture navigation. Screenshot. Implementation.
E N D
3D Renderer for GeoTools • Renders a 2D map on an infinite 3D surface • Uses variable level of detail • Closer areas are more detailed than far away ones • A standard Swing Component with mousegesture navigation
Implementation • Uses a Quad Tree of tiles, to get variable level of detail • The Quad Tree Nodes are expanded or collapsed as the camera gets closer or further away • Has a Texture Renderer interface used to render the ground tiles • Easy to provide a custom ground texture • Tiles are rendered in a separate rendering thread • While a tile is rendered, a section of the parent tile is shown instead
Current Limitations • Slow performance with large maps • The 3D renderer renders every tile separately • But the GeoTools 2D StreamingRenderer iterates through all the map data when rendering a small area • No elevation yet • The landscape is flat
Future Plans • Elevation data support • 3D styles for features • Buildings, roads, forests, 3D objects at points • Tiled groundtextures • Texture to use determined by local terrain type • Faster than rendering a 2D map on the ground • More natural looking • But features will need to be presented as 3D objects • Will be used in an open source multiplayer game • Skycastle.org
Contact • Wiki page: http://docs.codehaus.org/display/GEOTOOLS/3D+Rendering+Pipeline+for+GeoTools • Or just google for “3D Map Renderer” • Developer: Hans Häggström – zzorn@iki.fi