From 33da8e058fdb9eec8bccc820b3b79993b505fc61 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Fri, 5 Apr 2024 23:44:46 -0400 Subject: rerender videos and update readme --- README.md | 11 ++++++++--- readme-videos/bunny-conc.gif | Bin 13272617 -> 18474904 bytes readme-videos/bunny-norm.gif | Bin 10736071 -> 18446640 bytes src/arap.cpp | 8 ++++---- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 8642ed7..8f1fb63 100644 --- a/README.md +++ b/README.md @@ -92,9 +92,14 @@ For this project, we ask that you demonstrate to us that your program achieves t For the solving algorithm, I divided the dimensions and parallelized my code using the QTFramework to concurrently calculate the estimated positions. See line 286 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. +For this case, it appears the concurrent implementation is faster by 2 seconds (9sec vs 11sec). | Program Specification | Video | |:------------------------------------------------------------------|:------------------------------------| -| Modifying Peter at 1000 iterations with no concurrent framework. | ![](./readme-videos/bunny-conc.gif) | -| Modifying Peter at 1000 iterations using QTConcurrent map-reduce. | ![](./readme-videos/bunny-norm.gif) | +| Modifying Bunny at 1000 iterations with no concurrent framework. | ![](./readme-videos/bunny-conc.gif) | +| Modifying Bunny at 1000 iterations using QTConcurrent map-reduce. | ![](./readme-videos/bunny-norm.gif) | + +### Citations/references +- https://igl.ethz.ch/projects/deformation-survey/deformation_survey.pdf for how to handle deformed triangles +- https://github.com/cheind for how to create a space matrix efficiently using triplets +- github co-pilot was enabled in my clion ide for code suggestions \ No newline at end of file diff --git a/readme-videos/bunny-conc.gif b/readme-videos/bunny-conc.gif index 459c927..388c3c0 100644 Binary files a/readme-videos/bunny-conc.gif and b/readme-videos/bunny-conc.gif differ diff --git a/readme-videos/bunny-norm.gif b/readme-videos/bunny-norm.gif index 4774bbb..697a7b3 100644 Binary files a/readme-videos/bunny-norm.gif and b/readme-videos/bunny-norm.gif differ diff --git a/src/arap.cpp b/src/arap.cpp index 0dcaefd..92ea21d 100644 --- a/src/arap.cpp +++ b/src/arap.cpp @@ -17,8 +17,8 @@ ARAP::ARAP() {} void ARAP::init(Eigen::Vector3f &coeffMin, Eigen::Vector3f &coeffMax) { - m_num_iterations = 5; - m_mesh_path = "meshes/peter.obj"; + m_num_iterations = 1000; + m_mesh_path = "meshes/bunny.obj"; vector vertices; vector triangles; @@ -46,8 +46,8 @@ void ARAP::move(int vertex, Vector3f targetPosition) std::vector new_vertices = m_shape.getVertices(); const std::unordered_set& anchors = m_shape.getAnchors(); - std::cout << "anchors size" << anchors.size() << std::endl; - std::cout << "targetPosition" << targetPosition << std::endl; +// std::cout << "anchors size" << anchors.size() << std::endl; +// std::cout << "targetPosition" << targetPosition << std::endl; // TODO: implement ARAP here new_vertices[vertex] = targetPosition; -- cgit v1.2.3-70-g09d2