Revision: 54513
          http://brlcad.svn.sourceforge.net/brlcad/?rev=54513&view=rev
Author:   n_reed
Date:     2013-03-01 00:29:05 +0000 (Fri, 01 Mar 2013)
Log Message:
-----------
add some dev notes on libvds

Added Paths:
-----------
    brlcad/trunk/src/other/libvds/notes.txt

Added: brlcad/trunk/src/other/libvds/notes.txt
===================================================================
--- brlcad/trunk/src/other/libvds/notes.txt                             (rev 0)
+++ brlcad/trunk/src/other/libvds/notes.txt     2013-03-01 00:29:05 UTC (rev 
54513)
@@ -0,0 +1,24 @@
+This is just an unofficial overview of the basics of what libvds is/does and 
how to use it. It is not guaranteed to be complete or accurate!
+
+VDSlib supports view-dependent hierarchical dynamic simplification. The input 
vertices are grouped into the cells of a recursive octree spatial subdivision. 
The resulting tree is a collection of nodes, each with at most eight children. 
The single vertex to which a cell collapses, by default, is the average of all 
vertices in the cell (as an example, this could be changed to be one of the 
actual vertices based on some notion of importance).
+
+1) Specify the input mesh.
+
+Call vdsBeginVertexTree() and vdsBeginGeometry(), then create one node per 
vertex using vdsAddNode(). Specify triangles as three indices corresponding to 
the leaf nodes. VDSlib initially maintains all this information in global 
state. You finish by calling vdsEndGeometry(), which returns a list of all the 
leaf nodes that were created.
+
+2) Build the vertex tree.
+
+Call clusterOctree() to cluster nodes to form the vertex tree using 
vdsClusterNodes(). Then finish by calling vdsEndVertexTree(), which returns the 
root node of the tree.
+
+vdsEndVertexTree() does several things:
+- assigns ids to all the nodes
+- sets the root as the sole boundary node, and sets all other nodes to inactive
+- moves the data for each triangle from the global state to the subtris array 
of the deepest node (smallest cell) containing at least two of its vertices
+
+3) Adjust the tree.
+
+Use vdsAdjustTreeTopDown() to fold/unfold nodes. When a node is unfolded, its 
subtris become visible. Each subtri is added to the vistris list of the deepest 
node (smallest cell) at or above VDS_CULLDEPTH which contains all three of its 
vertices.
+
+4) Draw the tree.
+
+Use vdsRenderTree to walk the entire tree. The set of triangles in all the 
non-NULL vistris lists form the active triangle set. Calling 
vdsUpdateTriProxies() on each vdsTri in a node's vistris list calculates the 
proxy node corresponding to each corner (the deepest active/unfolded node that 
contains the corner).


Property changes on: brlcad/trunk/src/other/libvds/notes.txt
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to