Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Golevka committed May 13, 2012
1 parent c6fd281 commit 73c1af8
Show file tree
Hide file tree
Showing 170 changed files with 3,529,277 additions and 0 deletions.
22 changes: 22 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
default:
make clean; make all

all:
cd modelviz; make; make clean
cd corrstool; make; make clean
# cd adjtool; make; make clean
cd corres_resolve; make; make clean
cd dtrans; make; make clean

cp ./modelviz/run ./bin/modelviz
cp ./corrstool/run ./bin/corrstool
# cp ./adjtool/run ./bin/adjtool
cp ./corres_resolve/run ./bin/corres_resolve
cp ./dtrans/run ./bin/dtrans

clean:
rm \
./bin/modelviz \
./bin/corrstool \
./bin/corres_resolve \
./bin/dtrans
58 changes: 58 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
This is an implementation of Deformation Transfer algorithm in ANSI C, which
could transfer the deformation of one triangle mesh to another. Check this
paper (people.csail.mit.edu/.../deftransfer/Sumner2004DTF.pdf) for detailed
explaination of this algorithm and here
(http://people.csail.mit.edu/sumner/research/deftransfer/) for demonstrations
and mesh data.


*COMPILE

You need CHOLMOD (http://www.cise.ufl.edu/research/sparse/cholmod/) and UMFPACK
(http://www.cise.ufl.edu/research/sparse/umfpack/) to compile it, throw the
header files and libs to the ./external folder if you've compiled them on your
own, or just try the precompiled version in this repository.

After these libs has been set properly, type `make` to build them all.


*TRY A SHAKEDOWN RUN:

Run sample_run.sh in bin directory, the resulting deformed target model would
be shown by our corrstool. The calculation takes about one minutes or so
(resolving corresponence and deforming 10 models).

You can read the comments in sample_run.sh to see how to apply these tools to
your own .OBJ models.


*USAGE OF CORRSTOOL:

Correspondence phase: You need to pick up a small set of marker points to
specify the semantic correspondence between the source model and the target
model, we provided a tool here (corrstool), you can launch it using

./corrstool source_model target_model

for example, running this command in bin directory

./corrstool horse_ref.obj camel_ref.obj

which would open a window showing the source model at the left panel and target
model at the right panel, drag your mouse with left mouse button pressed to
view the model in a different angle (it would change the view angle of the two
panels simutanously), and drag with right mouse button pressed to zoom the view.

You can move the cursor to somewhere in the model you want to mark and press
"P" to mark this point, after having specifed marker points on both models,
press "A" to "commit" this point pair to correspondence list, if you hit "A" by
mistake, just hit "U" (undo) to recover from that.

The points you picked up may not right on where your cursor pointed to, this is
because of marker points can ONLY appear on vertices of the mesh model, you can
view models in wired mode by pressing "M", and press it again to get back to
solid mode. If you want to switch to another point on the same piece of triangle,
just hit "C" many times until you get what you want.

After all marker points has been specified, press "W" to write the
correspondence to a .cons file (default.cons by default).
Loading

0 comments on commit 73c1af8

Please sign in to comment.