diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 33 |
1 files changed, 32 insertions, 1 deletions
@@ -50,8 +50,27 @@ This sums to **95 points**. To score **100 points** (or more!), you’ll need to Your README **(5 points)** should describe: 1. How to run your program, such as how to load a specific mesh; and + +To run my program, you use the basic clion run configuration. Use release mode for best performance. + +There are two parameters you must modify: 1) the number of iterations and 2) the mesh to load. +Both are modifiable on the first two lines in the arap.cpp's init function. +Use an integer for the num iterations and a string to the path for the mesh. + 2. _Briefly_, all the features your code implements, including any known bugs. - - E.g.: "I implemented ARAP ... and affine progressive meshes ... however, my program doesn't work in these specific cases: ..." + +I implemented the basics of arap under the move() function. The order of the overall implementation is as follows: +- When the number of anchors changes: + - Estimate pprime from p. + - Compute the cotan weights. + - Define the constraints map. + - Compute the L matrix. +- For the number of iterations: + - Estimate the rotation matrices. + - Estimate the positions. +- Update the mesh vertices. + +The number of iterations is statically defined as a parameter. You should also have all the [example videos](#example-videos) described in the next section embedded in your README. @@ -67,3 +86,15 @@ For this project, we ask that you demonstrate to us that your program achieves t | You should be able to make the armadillo wave. |  | | Attempting to deform `tetrahedron.obj` should not cause it to collapse or behave erratically. |  | | Attempting to deform a (large) mesh like `bunny.obj` or `peter.obj` should not cause your code to crash. |  | + +### Extra Feature: Parallelization + +For the solving algorithm, I divided the dimensions and parallelized my code using the QTFramework to concurrently calculate the estimated positions. +See line 280 in arap.c for the implementation. +The video below shows both implementations (concurrent and normal) when deforming bunny.obj, a large mesh, at 1000 iterations. +It appears the concurrent implementation is faster by only about a second. + +| Program Specification | Video | +|:------------------------------------------------------------------|:------------------------------------| +| Modifying Peter at 1000 iterations with no concurrent framework. |  | +| Modifying Peter at 1000 iterations using QTConcurrent map-reduce. |  | |