**************************************************************** STREAMING COMPUTATION OF 3D DELAUNAY TRIANGULATIONS **************************************************************** This document describes the binaries for streaming *3D* Delaunay triangulation. There is another README_2D.txt that describes how to use this software for Delaunay triangulation in 2D. The binaries are in the .\bin directory. The source code is in the .\tools directory. The source code makes use of the library SPlib that is in the .\lib and .\libD directories. Corresponding include and source files are in the .\inc and .\src folders. The concept of "spatial finalization" is implemented in form of an adaptive octree whose cells are declared "finalized" if no downstream points fall into them. Only the x, y, and z coordinates of the input points are considered. Other scalar values are currently ignored. ****************************************************************** A QUICK GUIDE FOR GETTING YOUR HANDS DIRTY ****************************************************************** open a command shell and go into the .\bin directory and then just copy and paste the following into the command line: spfinalize -i ..\data\spx_z.txt.gz -o ..\data\spx_z.spb -level 2 -space ... then run ... sp_viewer -i ..\data\spx_z.spb -steps 2000 ... and press

and then run the streaming delaunay visualizer ... sp_viewer -i ..\data\spx_z.spb -del3 -steps 1000 ... and press

or for producing an actual output mesh run ... spdelaunay3d -i ..\data\spx_z.spb -o ..\data\spx_z.svb ... and to look at the output run ... sv_viewer -i ..\data\spx_z.svb -every 50 ... and press

or try some PIPELINING again ... spfinalize -i ..\data\spx_z.txt.gz -ospb -level 2 -space | spdelaunay3d -ispb -osvb | sv_viewer -isvb -every 50 ... and press

. for a bigger (pre-finalized) model try ... sp_viewer -i ..\data\torso_t.spb -del3 -steps 100 .. and ... spdelaunay3d -i ..\data\torso_t.spb -osvb | sv_viewer -isvb -every 50 ... or to store the mesh ... spdelaunay3d -i ..\data\torso_t.spb -o ..\data\torso_t.svb that you can look at with ... sv_viewer -i ..\data\torso_t.svb ... and press

. \*********************************************\ \*** spfinalize.exe ***\ \*********************************************\ usage: spfinalize -h takes a point cloud as input and spatially finalizes it in two or three passes. we can also read *.obj files, *.ply files and *.sm[abc] files (optionally gzipped) but use only their vertex data, which is treated as a 2D input with z being the height. we can write *.spa (Streaming Point Ascii) and *.spb (Streaming Point Binary) files. The binary representaion is much more IO-efficient!!! without the option '-space' the finalizer creates a 2D finalized point cloud based that is used by our streaming 2D delaunay triangulator. \*********************************************\ \*** sp_viewer.exe ***\ \*********************************************\ usage: sp_viewer -h visualizes a streaming 3D point cloud and its spatial finalization octtree. option '-del3' will visualize the state of streaming delaunay tetrahedralization press 'p' to play\stop press 's' to single step toggle render mode with 'u' - unfinalized space 'a' - active tetrahedra 'i' - infinite tetrahedra (only their finite triangle is drawn) toggle interaction mode with change point size with -\= change line width with _\+ scale elevation values with [\] move pointer above a triangle and press 'm'. shows you the circumsphere and the octcell of the grid that it intersects (if computed already). move pointer above a octcell and press 'n'. highlights this octcell and one circumsphere that intersects it (if there is one) press 'q' or to quit the memory requirements are proportional to the maximal number of tetrahedra and vertices that are allocated concurrently (the actual number is output to stdout in the end) and the maximal number of octree cells in the octree that is used to maintain and query the finalized space. if given a non-streaming point cloud nothing can get finalized and the memory requirements are much higher (e.g. like a standard delaunay tetrahedralizator). \*********************************************\ \*** spdelaunay3d.exe ***\ \*********************************************\ usage: spdelaunay3d -h computes a delaunay triangulation of the input point cloud and outputs a streaming mesh. for this to be efficient, the input cloud should be spatially finalized. if the point cloud is not spatially finalized then we can not operate in a streaming manner and incrementally build up the entire delaunay mesh in memory. currently the streaming output mesh is not perfect, because not all vertices are getting finalized (all those vertices that are incident to an infinite triangle). \*********************************************\ \*** sv_viewer.exe ***\ \*********************************************\ usage: sv_viewer -h sv_viewer mesh.sva -every 1000 sv_viewer mesh.svb allows to visualize the meshes you created. the '-every ' option specifies that the viewer shows a visualization step every tetrahedra. the default is 10,000.