3D Modules for GRASS

Andreas,

Dear GrassUser and GrassProgrammer,

       I'm interested in developing some 3D visualisation tools embedded
       into the XGRASS environment, esp. for geological purposes.

       The code should be portable between several architectures and using
       free code (the only one, witch is copyrighted is Motif).

       I'm looking now for free 3D libs, my favourite choice would be
       PEX.

       Who has similar approaches, are there at CERL similar modules under
       development, what are Your experiences with PEX, which libraries do
       you prefer?

Thanks in advance....

In our 3D work we have been using IRIS GL primarily, with the idea
of porting programs to OpenGL as it becomes available on more
platforms. Although OpenGL will not be free, it will probably become
a common software option, like Motif, and graphics accelerators are
being developed for OpenGL on several platforms. There is also a
discussion group of programmers thinking about creating a FreeGL library
you can join by subscribing to freegl@gnu.ai.mit.edu (send mail to
freegl-request@gnu.ai.mit.edu with SUB in subject line). To my knowledge,
they haven't produced any code yet.

Last year we experimented a little with PEX and SIPP
(SImple Polygon Processor, by Jonas Yngvesson & Inge Wallin,
jonas-y@isy.liu.se, ingwa@isy.liu.se, Linkoping Institute of Technology,
Sweden). At the time, PEX didn't provide lighting capabilities; I
don't know if that has changed. SIPP requires large data structures
for each graphic object, making it cumbersome for GIS applications
involving hundreds of thousands of polygons. Terry Baker
(baker@zorro.cecer.army.mil) is the programmer who worked with SIPP.

Our current & recent projects (using GL):

1) Enhanced SG3d to accept & display true 3D data as isosurfaces,
   also allowing the user to define orthogonal cutting planes to
   view walls or cubes of data within the volume.

   The data format used was a simple 3D grid (.grid3) file with some
   header information describing region, resolution, etc. We also have
   a module to convert HDF format to our grid3. Currently, the user
   defines desired isosurface values to a module which uses the grid3
   file to create a display file (.dspf), using the "marching cubes"
   isosurface generation algorithm. Then both the grid3 and
   dspf files are used by the display program, SG3d.

   Terry Baker did much of this programming work and Helena Mitasova
   used it to demostrate 3D interpolation of dissolved inorganic
   nitrogen in Chesapeake Bay. Examples will be on display at the GRASS
   User's Conference in Reston.

2) Rewrote SG3d to use Motif for the interface, replacing the NASA
   panels interface. Also extended this program to allow viewing of
   multiple surfaces (i.e., soil horizons or other stratified phenomena)
   simultaneously. Each surface may use seperate raster maps for
   elevation, color, or a mask. And each may have various GRASS vector
   or sites maps draped over the surface. Each surface may also have
   a transparency value.

   Site files may also be displayed as 3D sites, using various marker
   objects and using the category for color. (This has been temporarily
   implemented using a site format "<easting>|<northing>|#<elevation> <cat>",
   but will be easy to change once a standard is implemented.)
   I've tried to keep the graphics-dependent routines separate from
   the rest of the program, so it might be easier to port using other
   graphics libraries. This program is still in a pre-alpha state,
   but whatever I have will be demonstrated at the GRASS Conference.

Helena Mitasova & Irina Kosinovsky have been extending the spline/tension
interpolation programs to work with N-dimension data. For more info
about that, see Helena's articles in GrassClippings or contact her at
helena@zorro.cecer.army.mil (she's away from CERL for about 6 weeks, but
will try to check her mail).

-Bill

***************************************************************************
Bill Brown e-mail: brown@zorro.cecer.army.mil
USACERL - ECS phone: (217) 352-6511 ext 7676
PO Box 9005
Champaign, IL 61826-9005
***************************************************************************