Estimating the Laplace-Beltrami Operator by Restricting 3D Functions

links description executable usage

LINKS
SGP 2009 Paper
Windows Executables
Source Code
License

CODE DESCRIPTION

EXECUTABLE ARGUMENTS

USAGE
For testing purposes, three datasets are provided.
  1. Rooster: This dataset, obtained using the NextEngine scanner, consists of 8 scans that are represented in range-grid format.
    To obtain the seamlessly textured surface, we execute:
    TextureStitcher --in rooster.ply --scans scans.txt --out out.ply --xForms xForms.txt
    To reconstruct the finer details we can subdivide the mesh in order to sample the gradient field more densely:
    TextureStitcher --in rooster.ply --scans scans.txt --out out.ply --xForms xForms.txt --subdivide 1
    We can also reduce the time required to set up and solve the linear system by using first-order elements and approximating the integrals by a discrete summation:
    TextureStitcher --in rooster.ply --scans scans.txt --out out.ply --xForms xForms.txt --subdivide 1 --primal --monteCarlo 5000000
    Finally, if we would like to prevent color-bleeding due to the missing gradients at the bottom of the model, we can add in a soft constraint on the values:
    TextureStitcher --in rooster.ply --scans scans.txt --out out.ply --xForms xForms.txt --subdivide 1 --primal --monteCarlo 5000000 --vWeight 0.01
    A visualization of the results can be seen in the images below. (The left-most image shows the results obtained when the colors are obtained by directly copying the color values from the nearest scan.)
  2. Male04: This dataset, obtained courtesy of Cyberware scanner, consists of 4 scans that are represented as triangle meshes with color values associated to each vertex.
    To obtain the seamlessly textured surface, we execute:
    TextureStitcher --in male04.base.ply --scans male04.scans.txt --out out.ply --useKD --depth 10 --primal --monteCarlo 5000000
    To correct for the loss of gradients near the sleeve that result in color-bleed through to the arm, we introduce a soft constraint on the values:
    TextureStitcher --in male04.base.ply --scans male04.scans.txt --out out.ply --useKD --depth 10 --primal --monteCarlo 5000000 --vWeight 0.01
    A visualization of the results can be seen in the images below. (The left-most image shows the results obtained when the colors are obtained by directly copying the color values from the nearest scan.)
  3. Pleo: This dataset of the pleo robot, obtained using a Minolta Vivid 910 scanner, and generously contributed by Mario Botsch, consists of 20 scans that are represented as triangle meshes with color values associated to each vertex.
    To obtain seamlessly textured surfaces with varying interpolation weights, we execute:
    TextureStitcher --in Pleo.base.ply --scans Pleo.scans.txt --out out.ply --useKD --depth 10 --primal --monteCarlo 5000000 --subdivide 1 --vWeight <10/0.1/0.001/0.00001>
    A visualization of the results can be seen in the images below.
    --vWeight 10 --vWeight 0.1 --vWeight 0.001 --vWeight 0.00001

HOME