123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442 |
- <!-- meta page description: wxGUI 3D View Mode -->
- <!-- meta page index: wxGUI -->
- <h2>KEYWORDS</h2>
- <a href="display.html">display</a>, <a href="topic_GUI.html">GUI</a>, <a href="keywords.html#visualization">visualization</a>, <a href="keywords.html#graphics">graphics</a>, <a href="keywords.html#raster">raster</a>, <a href="keywords.html#vector">vector</a>, <a href="keywords.html#raster3d">raster3d</a>
- <h2>DESCRIPTION</h2>
- Note: <b>wxNviz is currently under development. Not
- all planned functionality is already implemented.</b>
- <p>
- <b>wxNviz</b> is a <em><a href="wxGUI.html">wxGUI</a></em> <b>3D view
- mode</b> which allows users to realistically render multiple
- <em>surfaces</em> (2D raster maps) in a 3D space, optionally using
- thematic coloring, draping 2D <em>vector</em> data or different 2D raster data
- over the surfaces, displaying 3D vector data in the space, and visualization
- of <em>3D rasters</em>.
- <p>
- 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.
- <p>
- 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.
- <p>
- 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 <em>workspace</em> file (gxw). Workspace contains information to
- restore "state" of the system in 2D and if wxNviz is enabled also in
- the 3D display mode.
- <h2>3D View Toolbar</h2>
- <center>
- <br><img src="wxGUI_nviz_toolbar.jpg" border="1" alt="toolbar"><br><br>
- </center>
- <dl>
- <dt><img src="icons/script-save.png" alt="icon">
- <em>Generate command for m.nviz.image</em></dt>
- <dd>Generate command for m.nviz.image based on current state.</dd>
- <dt><img src="icons/settings.png" alt="icon">
- <em>Show 3D view mode settings</em></dt>
- <dd>Show dialog with settings for wxGUI 3D view mode. The user
- settings can be stored in wxGUI settings file.</dd>
- <dt><img src="icons/help.png" alt="icon">
- <em>Show help</em></dt>
- <dd>Show this help.</dd>
- </dl>
- <h2>3D View Layer Manager Toolbox</h2>
- The 3D view toolbox is integrated in the Layer Manager. The toolbox
- has several tabs:
- <ul>
- <li><b>View</b> for view controlling,</li>
- <li><b>Data</b> for data properties,</li>
- <li><b>Appearance</b> for appearance settings (lighting, fringes, ...).</li>
- <li><b>Analysis</b> for various data analyses (only cutting planes so far).</li>
- <li><b>Animation</b> for creating simple animations.</li>
- </ul>
- <h3>View</h3>
- You can use this panel to set the <em>position, direction, and
- perspective</em> of the view. The position box shows a puck with a
- direction line pointing to the center. The direction line indicates
- the look direction (azimuth). You click and drag the puck to change
- the current eye position. Another way to change eye position is
- to press the buttons around the position box representing cardinal
- and ordinal directions.
-
- <p>
- There are four other buttons for view control in the bottom of this panel
- (following label <em>Look:</em>):
- <ul>
- <li><em>here</em> requires you to click on Map Display Window to determine
- the point to look at.</li>
- <li><em>center</em> changes the point you are looking at to the center.</li>
- <li><em>top</em> moves the current eye position above the map center.</li>
- <li><em>reset</em> returns all current view settings to their default values.</li>
- </ul>
- <center>
- <br><img src="wxGUI_nviz_tools_view.jpg" border="1" alt="toolbox"><br><br>
- </center>
- You can adjust the viewer's height above the scene, perspective and
- twist value to rotate the scene about the horizontal axis. An angle of
- 0 is flat. The scene rotates between -90 and 90 degrees.
- <p>
- 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.
- <p>
- 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).
- <h4>Fly-through mode</h4>
- View can be changed in fly-through mode (can be activated in Map Display
- toolbar), which enables to change the view smoothly and therefore it is
- suitable for creating animation (see below). To start flying, press left
- mouse button and hold it down to continue flying. Flight direction is
- controlled by mouse cursor position on screen. Flight speed can be
- increased/decreased stepwise by keys PageUp/PageDown, Home/End or Up/Down
- arrows. Speed is increased multiple times while Shift key is held down.
- Holding down Ctrl key switches flight mode in the way that position of
- viewpoint is changed (not the direction).
- <h3>Data properties</h3>
- This tab controls the parameters related to map layers. It consists
- of four collapsible panels - <em>Surface</em>, <em>Constant surface</em>,
- <em>Vector</em> and <em>3D raster</em>.
- <h4>Surface</h4>
- Each active raster map layer from the current layer tree is displayed as
- surface in the 3D space. This panel controls how loaded surfaces are
- drawn. To change parameters of a surface, it must be selected in the very
- top part of the panel.
- <p>
- 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 <b>mode</b> to <em>coarse</em> (fast
- display mode), <em>fine</em> (draws surface as filled polygons with
- fine resolution) or <em>both</em> (which combines coarse and fine
- mode). Additionally set coarse <b>style</b> to <em>wire</em> to draw
- the surface as wire mesh (you can also choose color of the wire)
- or <em>surface</em> 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 <b>mode</b>
- to <em>coarse</em> and <b>style</b> to <em>wire</em>. 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 <b>mode</b> <em>both</em>
- and <b>style</b> <em>wire</em>.
- Beside mode and style you can also choose style of <b>shading</b> used
- for the surface. <em>Gouraud</em> style draws the surfaces with a
- smooth shading to blend individual cell colors together, <em>flat</em>
- draws the surfaces with flat shading with one color for every two
- cells. The surface appears faceted.
- <p>
- To set given draw settings for all loaded surfaces press button "Set to
- all".
- <p>
- 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:
- <ul>
- <li><b>color</b> - raster map or constant color to drape over the current
- surface. This option is useful for draping imagery such as aerial
- photography over a DEM.</li>
- <li><b>mask</b> - raster map that controls the areas displayed from
- the current surface.</li>
- <li><b>transparency</b> - raster map or constant value that controls
- the transparency of the current surface. The default is completely
- opaque. Range from 0 (opaque) to 100 (transparent).</li>
- <li><b>shininess</b> - raster map or constant value that controls
- the shininess (reflectivity) of the current surface. Range from 0 to
- 100.</li>
- </ul>
- <p>
- In the very bottom part of the panel position of surface can be set.
- To move the surface right (looking from the south) choose <em>X</em> axis
- and set some positive value. To reset the surface position press
- <em>Reset</em> button.
- <center>
- <br><img src="wxGUI_nviz_tools_surface.jpg" border="1" alt="toolbox"><br><br>
- </center>
- <h4>Constant surface</h4>
- It is possible to add constant surface and set its properties like
- fine resolution, value (height), color and transparency. It behaves
- similarly to surface but it has less options.
- <h4>Vector</h4>
- 2D vector data can be draped on the selected surfaces with various
- markers to represent point data; you can use attribute of vector
- features to determine size, color, shape of glyph.
- 3D vector data including volumes (closed group of faces with one
- kernel inside) is also supported.
- This panel controls how loaded 2D or 3D vector data are drawn.
- <p>
- You can define the width (in pixels) of the line features, the color
- used for lines or point markers.
- <p>
- 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.
- <p>
- 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).
- <p>
- For 2D/3D vector points you can also set the size of the markers.
- <!-- and the width (in pixels) of the line used to draw the point markers (only
- applies to wire-frame markers). -->
- Currently are implemented these markers:
- <ul>
- <li><b>x</b> sets the current points markers to a 2D "X",</li>
- <li><b>sphere</b> - solid 3D sphere,</li>
- <li><b>diamond</b> - solid 3D diamond,</li>
- <li><b>cube</b> - solid 3D cube,</li>
- <li><b>box</b> - hollow 3D cube,</li>
- <li><b>gyroscope</b> - hollow 3D sphere,</li>
- <li><b>asterisk</b> - 3D line-star.</li>
- </ul>
-
- <p>
- Thematic mapping can be used to determine marker color and size
- (and line color and width).
- <center>
- <br><img src="wxGUI_nviz_tools_vector.jpg" border="1" alt="toolbox"><br><br>
- </center>
- <h4>3D rasters</h4>
- 3D raster maps (volumes, voxel models) can be displayed either as isosurfaces
- or slices.
- Similarly to surface panel you can define draw <b>shading</b> -
- <em>gouraud</em> (draws the 3D rasters with a smooth shading to blend
- individual cell colors together) and <em>flat</em> (draws the 3D rasters with
- flat shading with one color for every two cells. The 3D raster appears
- faceted). As mentioned above currently are supported two visualization
- modes:
- <ul>
- <li><b>isosurface</b> - the levels of values for drawing the
- 3D raster(s) as isosurfaces,</li>
- <li>and <b>slice</b> - drawing the 3D raster
- as cross-sections.</li>
- </ul>
- <p>
- 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:
- <ul>
- <li><b>isosurface value</b> - reference isosurface value (height in map
- units).</li>
- <li><b>color</b> - raster map or constant color to drape over the
- current 3D raster.</li>
- <li><b>mask</b> - raster map that controls the areas displayed from
- the current 3D raster.</li>
- <li><b>transparency</b> - raster map or constant value that controls
- the transparency of the current 3D raster. The default is completely
- opaque. Range from 0 (opaque) to 100 (transparent).</li>
- <li><b>shininess</b> - raster map or constant value that controls
- the shininess (reflectivity) of the current 3D raster. Range from 0 to
- 100.</li>
- </ul>
- In case of 3D raster slice the bottom part of the panel controls the slice
- attributes (which axis is slice parallel to, position of slice edges,
- transparency). Press button <em>Reset</em> to reset slice position
- attributes.
- <p>
- 3D rasters can be moved the same way like surfaces do.
- <center>
- <br><img src="wxGUI_nviz_tools_volume.jpg" border="1" alt="toolbox"><br><br>
- </center>
- <h3>Analysis</h3>
- <em>Analysis</em> tab contains <em>Cutting planes</em> panel.
- <h4>Cutting planes</h4>
- Cutting planes allow cutting surfaces along a plane. You can switch
- between six planes; to disable cutting planes switch to <em>None</em>.
- Initially the plane is vertical, you can change it to horizontal by
- setting <em>tilt</em> 90 degrees. The <em>X</em> and <em>Y</em> values
- specify the rotation center of plane. You can see better what <em>X</em>
- and <em>Y</em> do when changing <em>rotation</em>. The <em>Height</em>
- parameter applies only when changing <em>tilt</em> concurrently.
- Press the <em>Reset</em> button to reset the current cutting plane.
- <p>
- In case of multiple surfaces you can visualize the cutting plane by
- <em>Shading</em>. Shading is visible only when more than one surface
- is loaded and these surfaces must have the same fine resolution set.
- <h3>Appearance</h3>
- Appearance tab consists of three collapsible panels:
- <ul>
- <li><em>Lighting</em> for adjusting light source</li>
- <li><em>Fringe</em> for drawing fringes
- <li><em>Decorations</em> to display north arrow and scale bar</li>
- </ul>
- <p>
- The <em>lighting</em> panel enables to change the position of light
- source, light color, brightness and ambient. Light position is controlled
- similarly to eye position. If option <em>Show light model</em> is enabled
- light model is displayed to visualize the light settings.
- <center>
- <br><img src="wxGUI_nviz_tools_light.jpg" border="1" alt="toolbox"><br><br>
- </center>
- <p>
- The <em>Fringe</em> 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.
- <p>
- The <em>Decorations</em> 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.
- <h3>Animation</h3>
- Animation panel enables to create a simple animation as a sequence of
- images. Press 'Record' button and start changing the view. Views are
- recorded in given interval (FPS - Frames Per Second). After recording, the
- animation can be replayed. To save the animation, fill in the directory
- and file prefix, choose image format (PPM or TIF) and then press 'Save'.
- Now wait until the last image is generated.
- It is recommended to record animations using fly-through mode to achieve
- smooth motion.
- <h2>Settings</h2>
- This panel has controls which allows user to set default surface,
- vector and 3D raster data attributes. You can also modify default view
- parameters, or to set the background color of the Map Display Window
- (the default color is white).
- <h2>To be implemented</h2>
- <ul>
- <li>Labels, decoration, etc. (Implemented, but not fully functional)</li>
- <li>Surface - mask by zero/elevation, more interactive positioning</li>
- <li>Vector points - implement display mode flat/surface for 2D points</li>
- <li>...</li>
- </ul>
- <h2>NOTE</h2>
- wxNviz is under active development and
- distributed as "Experimental Prototype".
- <p>
- 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
- <i>wxGUI Settings > Preferences > Map Display > Advanced</i>
- (possible numbers are 0, 16, 24, 32). It is currently not possible to
- automatically determine the right number which is working for your
- computer.
- <h2>SEE ALSO</h2>
- <em>
- <a href="wxGUI.html">wxGUI</a><br>
- <a href="wxGUI.components.html">wxGUI components</a>
- </em>
- <p>
- See also <a href="https://grasswiki.osgeo.org/wiki/WxNVIZ">wiki</a> page
- (especially various <a href="https://grasswiki.osgeo.org/wiki/WxNVIZ#Video_tutorials">video
- tutorials</a>).
- <br><br>
- Command-line module <em><a href="m.nviz.image.html">m.nviz.image</a></em>.
- <br><br>
- <h2>AUTHORS</h2>
- <b>The wxNviz GUI</b>
- <p>
- <a href="http://geo.fsv.cvut.cz/gwiki/Landa">Martin
- Landa</a>, <a href="https://grasswiki.osgeo.org/wiki/WxNviz_GSoC_2008">Google
- Summer of Code 2008</a> (mentor: Michael Barton)
- and <a href="https://grasswiki.osgeo.org/wiki/WxNviz_GSoC_2010">2010</a> (mentor: Helena Mitasova)<br>
- Anna Kratochvilova, <a href="https://grasswiki.osgeo.org/wiki/WxNviz_GSoC_2011">Google
- Summer of Code 2011</a> (mentor: Martin Landa)
- <p>
- <b>The OGSF library and NVIZ engine</b>
- <p>
- NVIZ (GRASS's <i>n</i>-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.
- <p>
- 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.
- <p>
- NVIZ evolved from the earlier GRASS program <em>SG3d</em> 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.
|