Today I finally got my fracture stuff implemented. Currently, it is extremely slow and not optimized, but I finally implemented an approximate fracture plane. Basically, I take each node and calculate the separation tensor described in Obrien.
I think take the points within the element, and get a vector from the node to those points ( Ni - Ncurrent where Ni != Ncurrent ). I think take the dot product with the eigenvector (seperation vector) and if the absolute value is greater than 0 for 2 or more nodes in the element, then that element gets assigned to one side of the fracture plane. 5 or 6 hours later, I got all of the memory leaks worked out. Basically, after this is done, new nodes are created, old nodes may be deleted, and the node's tetrahedron index values are changed, so I have to go through the nodes and delete all the unused nodes (if they are no longer part of the mesh) and update all of the elements' index values into this vector of nodes (for each of the 4 nodes).
Also, I looked at Ogre, Openscenegraph, and Bullet. I'm going to experiment with Ogre and Openscenegraph, but Bullet seems to be a good physics library so I might see if I can extend it with the fracture stuff.
I also got all the LOP tests for work. I finally managed to fix and issue with the grid. So now it goes through each cell, takes the neighbors and uses the neighbors in its calculations.
Preliminary results: The points approximate the thin surface of each object, but they are not equally spaced out as in the paper. More experimenting will be done to see if this is an issue with my code (more than likely not) or just an artifact of using the original uniformly sampled dataset to project itself onto itself (in the paper, they use a "blanket" of regular samples to project these points causing them to not clump). The only thing I'm worried about is the clumping in general.
Tomorrow I'm going to continue to experiment with fracture. I will also read some more papers and try to flesh out sketch of thesis proposal / previous works.
Todo next: Clean up code and rewrite to be more modular
No comments:
Post a Comment