Image:David M. Mount and Sunil Arya;
Images from simplistic implementation of the Octree algorithm in Maya. Primarily as an exercise to understand its API and class derivation within it.
"Binary space partitioning (BSP) is a method for recursively subdividing a space into convex sets by hyperplanes. This subdivision gives rise to a representation of the scene by means of a tree data structure known as a BSP tree."
Wikipedia Accessed Aug 2007
"An octree is a tree data structure in which each internal node has up to eight children. Octrees are most often used to partition a three dimensional space by recursively subdividing it into eight octants."
wikipedia Accessed Aug 2007
Approximate Nearest Neighbour
"Computing exact nearest neighbors in dimensions much higher than 8 seems to be a very difficult task. Few methods seem to be significantly better than a brute-force computation of all distances. However, it has been shown that by computing nearest neighbors approximately, it is possible to achieve significantly faster running times (on the order of 10's to 100's) often with a relatively small actual errors. ...."
David M. Mount and Sunil Arya
Even accounting for the amateur nature of our attempt, it would appear that the above holds true in 3 dimensions as well ie. an octree algorithm provides a significant advantage over brute calculation of distances only when the point distribution is sparse, point sets are large (above 50000) and some tolerances are allowed in terms of measurement.
Tuesday, January 15, 2008, 03:31 PM - Maya.c++.api., Maya Embedded Language, utilities, programming interestsvideo is in real-time
Posted by Administrator
Posted by Administrator
A quick screen grab from WIP.Shows a prototype 'node' for Maya that can take MEL inputs and produce openGL entities.
The in-built blind data editor(polyColorBlindData MEL command) provides a handy interface to visualize information embedded within a mesh. The attempt is to build a similar node that can visualize more generic blind-data. It is a simple wrapper around the easy access that the maya API provides to incorporate openGL in its view ports.
Currently it can take input surfaces and meshes, vector (point and color) arrays. Output modes are points, and lines. The intention is to support quads and line strings as well.
This might help some of our previous tools to work in interactive modes, by obviating the need to make 'intermediate geometry'. Standard uses could include visualizing surface curvature, 'input sites' on a surface, closest-fit planes, point clouds etc.