160 likes | 174 Views
Clustering Vertices of 3D Animated Meshes. Abdullah Bulbul. Introduction. 2/16. 3D meshes are made of vertices Complex 3D meshes Huge number of vertices Cluster the vertices Data reduction Developments in IR Adapt IR findings to Computer Graphics. Progress Indicator. Stanford Bunny:
E N D
Clustering Vertices of 3D Animated Meshes Abdullah Bulbul
Introduction 2/16 • 3D meshes are made of vertices • Complex 3D meshes • Huge number of vertices • Cluster the vertices • Data reduction • Developments in IR • Adapt IR findings to Computer Graphics Progress Indicator Stanford Bunny: ~350.000 vertices Armadillo: ~3.400.000 vertices
Motivation (1/3) 3/16 • A little history... • Our aim was finding the points that are looked at • Used eye tracker • Accuracy: 0.5 degree, 20 pixels of error • Vertex based calculations: accuracy not sufficient • Which vertex is looked at? • Many candidates Users look at
Motivation (2/3) 4/16 • Solution • No per-vertex calculation • Region based calculations • Cluster vertices to form these regions
Motivation (3/3) 5/16 • Data reduction: • Operate only for cluster representatives • Perceptible regions: • A vertex is so small (millions of vertices) • Selecting a vertex does not make sense • Instead, select a cluster
Background (1/2) 6/16 • Clustering in IR • Incremental Algorithms • Can (1993) - Incremental clustering for dynamic informationprocessing • Charikar et al. (1997) - Incremental clustering and dynamic information retrieval • Single Pass • Multi Pass • Graph Theoretical • Partitioning • Overlapping • Hierarchical
Background (2/2) 7/16 • 3D mesh decomposition • Katz et al. (2003) - Hierarchical mesh decompositionusing fuzzy clustering and cuts • Berretti et al. (2009) - 3D meshdecomposition using reeb graphs
Approach 8/16 • Data to use – properties of vertices • Position: x, y, z • Velocity • Color: RGB or HSV • Curvature • No binary term vectors • Properties have continuous values (not 0 - 1) Velocity map Curvature map
Approach 9/16 • Adapt and try several algorithms • Seed oriented single-pass algorithms • Randomly select cluster heads • Artificial selection of cluster heads • Homogenous distribution • C3M - Select leading documents • Not simple • Requires binary term-vectors • Heuristic approaches • Incremental approaches • C2ICM
Seed oriented approaches 10/16 • Random selection of cluster heads • Randomly select several vertices to be cluster heads • Assign each vertex to the most similar cluster head • Similarity: Euclidean distance • Not so good: non-connected components in same cluster • Non-homogeneous cluster sizes
Seed oriented approaches 11/16 • Artificial selection of cluster heads • Most similar cluster heads are as different as possible • Again: Assign each vertex to the most similar cluster head • Similarity: Euclidean distance • Not so good: non-connected components in same cluster • Nearly homogeneous cluster sizes
Seed oriented approaches 12/16 • C3M • We need binary term vectors • How to convert continuous values to binary ones • Idea: • Divide space into equal sized intervals each corresponding to a term • The term into which a property falls becomes 1 other become 0 • For example, assume x values are in the range: 0 to 99 • Divide to 10 intervals: 0-9, 10-19, ... , 90-99 • If xi is 29, term vector: 0010 0000 00 • And xj is 30, term vector: 0001 0000 00 • No good
A Heuristic Approach 13/16 • Start with a vertex • Look at each neigbor • If number of vertices in the cluster < a threshold • Add the neighbor to this cluster • Otherwise, start a new cluster • Solves the aformentioned problem of connectivity • Non-connected vertices cannot be put into the same cluster • Not implemented yet
Incremental Approaches 14/16 • Vertex properties change through the animation • Cluster structure needs to be maintained • New clusters may be necessary • C2ICM • Cannot be used as it is • Maintenance related issues can be adapted
Conclusion 15/16 • Clustering vertices of 3D animated meshes • Several approaches are implemented • What remains • Implement heuristic approach • Develop the incremental approach • Use all properties • Curvature can be used as a constraint
End of Presentation 16/16 Questions? Thank you