wxNviz is a wxGUI 3D view mode which allows users to realistically render multiple surfaces (2D raster maps) in a 3D space, optionally using thematic coloring, draping 2D vector data or different 2D raster data over the surfaces, displaying 3D vector data in the space, and visualization of 3D rasters.
To start the wxGUI 3D view mode, choose '3D view' from the map toolbar. You can switch between 2D and 3D view. The region in 3D view is updated according to displayed region in 2D view.
wxNviz is emphasized on the ease and speed of viewer positioning and provided flexibility for using a wide range of data. A low resolution surface or wire grid (optional) provides real-time viewer positioning capabilities. Coarse and fine resolution controls allow the user to further refine drawing speed and detail as needed. Continuous scaling of elevation provides the ability to use various data types for the vertical dimension.
For each session of wxNviz, you might want the same set of 2D/3D raster and vector data, view parameters, or other attributes. For consistency between sessions, you can store this information in the GRASS workspace file (gxw). Workspace contains information to restore "state" of the system in 2D and if wxNviz is enabled also in the 3D display mode.
There are four other buttons for view control in the bottom of this panel (following label Look:):
You can also adjusts the vertical exaggeration of the surface. As an example, if the easting and northing are in meters and the elevation in feet, a vertical exaggeration of 0.305 would produce a true (unexaggerated) surface.
View parameters can be controlled by sliders or edited directly in the text boxes. It is possible to enter values which are out of slider's range (and it will then adjust to the new range).
The top half of the panel has drawing style options. Surface can be drawn as a wire mesh or using filled polygons (most realistic). You can set draw mode to coarse (fast display mode), fine (draws surface as filled polygons with fine resolution) or both (which combines coarse and fine mode). Additionally set coarse style to wire to draw the surface as wire mesh (you can also choose color of the wire) or surface to draw the surface using coarse resolution filled polygons. This is a low resolution version of the polygon surface style. E.g. surface is drawn as a wire mesh if you set mode to coarse and style to wire. Note that it differs from the mesh drawn in fast display mode because hidden lines are not drawn. To draw the surface using filled polygons, but with wire mesh draped over it, choose mode both and style wire. Beside mode and style you can also choose style of shading used for the surface. Gouraud style draws the surfaces with a smooth shading to blend individual cell colors together, flat draws the surfaces with flat shading with one color for every two cells. The surface appears faceted.
To set given draw settings for all loaded surfaces press button "Set to all".
The bottom half of the panel has options to set, unset or modify attributes of the current surface. Separate raster data or constants can be used for various attributes of the surface:
In the very bottom part of the panel position of surface can be set. To move the surface right (looking from the south) choose X axis and set some positive value. To reset the surface position press Reset button.
You can define the width (in pixels) of the line features, the color used for lines or point markers.
If vector map is 2D you can display vector features as flat at a specified elevation or drape it over a surface(s) at a specified height. Use the height control to set the flat elevation or the drape height above the surface(s). In case of multiple surfaces it is possible to specify which surfaces is the vector map draped over.
For display purposes, it is better to set the height slightly above the surface. If the height is set at zero, portions of the vector may disappear into the surface(s).
For 2D/3D vector points you can also set the size of the markers. Currently are implemented these markers:
Thematic mapping can be used to determine marker color and size (and line color and width).
The middle part of the panel has controls to add, delete, move up/down selected isosurface or slice. The bottom part differs for isosurface and slice. When choosing an isosurface, this part the of panel has options to set, unset or modify attributes of the current isosurface. Various attributes of the isosurface can be defined, similarly to surface attributes:
3D rasters can be moved the same way like surfaces do.
In case of multiple surfaces you can visualize the cutting plane by Shading. Shading is visible only when more than one surface is loaded and these surfaces must have the same fine resolution set.
The lighting panel enables to change the position of light source, light color, brightness and ambient. Light position is controlled similarly to eye position. If option Show light model is enabled light model is displayed to visualize the light settings.
The Fringe panel allows you to draw fringes in different directions (North & East, South & East, South & West, North & West). It is possible to set the fringe color and height of the bottom edge.
The Decorations panel enables to display north arrow and simple scale bar. North arrow and scale bar length is determined in map units. You can display more than one scale bar.
Please note that with wxGTK port of wxPython (Linux systems), a problem might appear during wxNviz initialization (nothing is rendered at all) or when rendering vectors (bad order of rendering surfaces and vectors). If you encounter such problems, try to change a depth buffer number in wxGUI Settings > Preferences > Map Display > Advanced (possible numbers are 0, 16, 24, 32). It is currently not possible to automatically determine the right number which is working for your computer.
See also wiki page
(especially various video
tutorials).
Command-line module m.nviz.image.
Martin
Landa, Google
Summer of Code 2008 (mentor: Michael Barton)
and 2010 (mentor: Helena Mitasova)
Anna Kratochvilova, Google
Summer of Code 2011 (mentor: Martin Landa)
The OGSF library and NVIZ engine
NVIZ (GRASS's n-dimensional visualization suite) was written by Bill Brown, Terry Baker, Mark Astley, and David Gerdes, U.S. Army Corps of Engineers Research Laboratories, Champaign, Illinois and UI GMS Laboratory, Urbana, IL in the early 1990s.
Original documentation was written by Terry Baker (spring 1995), and updated by Mark Astley, based on a document written by Bill Brown. Additional design help and funding in the early 1990s by Helena Mitasova (CERL). Tcl/Tk support added by Terry Baker. Ported to Linux by Jaro Hofierka and others. Conversion from SGI IRIS GL code to OpenGL by Justin Hickey. Further program and documentation (2004) updates by Bob Covill, Tekmap Consulting. 3D volume support by Tomas Paudits with supervision from Jaro Hofierka and Helena Mitasova. Fly-through mode, thematic site attributes, and picking by Massimo Cuomo (ACS) with updates by Michael Barton. GRASS 6 vector support by Radim Blazek. Additional updates by Markus Neteler, Martin Landa, Glynn Clements, and Hamish Bowman.
NVIZ evolved from the earlier GRASS program SG3d written for Silicon Graphics IRIS GL by Bill Brown and Dave Gerdes at USA CERL, 1990-1995 and from the NVIZ Motif version written by Bill Brown with contributions by Terrance McGhee.