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