wjakob / instant-meshes

Interactive field-aligned mesh generator
Other
5.09k stars 591 forks source link

InstantMeshes way slower on linux #113

Open ghost opened 4 years ago

ghost commented 4 years ago

I've been evaluating the use of instantMeshes and while testing on my local machine vs my machine at work, I've noticed that the computation time was about 50-100 times slower on Linux, is that expected or is there something I'm missing?

Optimizing position field - 75 ms vs 5s for example

Local machine : win10 - 4 cores - 3.8 Ghz

Running in batch mode:
   Input file             = myfile.obj
   Output file            = test.obj
   Rotation symmetry type = 4
   Position symmetry type = 4
   Crease angle threshold = disabled
   Extrinsic mode         = enabled
   Align to boundaries    = no
   kNN points             = 10 (only applies to point clouds)
   Fully deterministic    = no
   Output mode            = pure quad mesh

Loading "myfile.obj" .. done. (V=21218, F=41486, took 617.0ms)
Computing mesh statistics .. done. (took 1.0ms)
No target vertex count/face count/scale argument provided. Setting to the default of 1/16 * input vertex count.
Output mesh goals (approximate)
   Vertex count           = 1326
   Face count             = 1326
   Edge length            = 0.0229005
Input mesh is too coarse for the desired output edge length (max input mesh edge length=0.037104), subdividing ..
Building a directed edge data structure .. done. (959 boundary vertices, took 3.0ms)
Subdividing mesh .. done. (split 8566 edges, took 9.0ms, new V=29784, F=58356, took 9.0ms)
Building a directed edge data structure .. done. (1221 boundary vertices, took 5.0ms)
Generating adjacency matrix .. done. (took 1.0ms)
Computing vertex normals .. done. (took 3.0ms)
Computing dual vertex areas .. done. (took 4.0ms)
Processing level 0 ..
    Coloring .. done. (7 colors, took 2.0ms)
Building multiresolution hierarchy ..
  Collapsing .. done. (29784 -> 16546 vertices, took 10.0ms)
    Coloring .. done. (7 colors, took 1.0ms)
  Collapsing .. done. (16546 -> 9017 vertices, took 6.0ms)
    Coloring .. done. (7 colors, took 0.0ms)
  Collapsing .. done. (9017 -> 4927 vertices, took 3.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (4927 -> 2697 vertices, took 2.0ms)
    Coloring .. done. (7 colors, took 0.0ms)
  Collapsing .. done. (2697 -> 1475 vertices, took 1.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (1475 -> 815 vertices, took 1.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (815 -> 444 vertices, took 0.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (444 -> 254 vertices, took 0.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (254 -> 141 vertices, took 0.0ms)
    Coloring .. done. (5 colors, took 0.0ms)
  Collapsing .. done. (141 -> 79 vertices, took 0.0ms)
    Coloring .. done. (5 colors, took 0.0ms)
  Collapsing .. done. (79 -> 45 vertices, took 0.0ms)
    Coloring .. done. (4 colors, took 0.0ms)
  Collapsing .. done. (45 -> 25 vertices, took 0.0ms)
    Coloring .. done. (4 colors, took 0.0ms)
  Collapsing .. done. (25 -> 15 vertices, took 0.0ms)
    Coloring .. done. (4 colors, took 0.0ms)
  Collapsing .. done. (15 -> 9 vertices, took 0.0ms)
    Coloring .. done. (3 colors, took 0.0ms)
  Collapsing .. done. (9 -> 5 vertices, took 0.0ms)
    Coloring .. done. (3 colors, took 0.0ms)
  Collapsing .. done. (5 -> 3 vertices, took 0.0ms)
    Coloring .. done. (2 colors, took 0.0ms)
  Collapsing .. done. (3 -> 2 vertices, took 0.0ms)
    Coloring .. done. (2 colors, took 0.0ms)
  Collapsing .. done. (2 -> 1 vertices, took 0.0ms)
    Coloring .. done. (1 colors, took 0.0ms)
Hierarchy construction took 73.0ms.
Setting to random solution .. done. (took 2.0ms)
Constructing Bounding Volume Hierarchy .. done. (SAH cost = 34.9337, nodes = 37481, took 32.0ms)
Compressing BVH node storage to 32.11% of its original size .. done. (took 4.0ms)
Preprocessing is done. (total time excluding file I/O: 176.0ms)
Optimizing orientation field .. Propagating updated solution.. done. (took 0.0ms)
done. (took 75.0ms)
Orientation field has 6 singularities.
Optimizing position field .. done. (took 339.0ms)
Step 1: Classifying 176287 edges .. done. (took 17.0ms)
Step 2: Collapsing 61745 edges .. done. (ignored 108 conflicting edges, took 35.0ms)
Step 3: Assigning vertices .. done. (1506 vertices, took 5.0ms)
Step 3a: Removing spurious vertices .. done. (removed 63 vertices, took 2.0ms)
Step 4: Assigning positions to vertices .. done. (took 4.0ms)
Step 5: Snapping and removing unnecessary edges ... done. (snapped 30 vertices, removed 14 edges, took 9.0ms)
Step 6: Orienting edges .. done. (took 2.0ms)
Step 7: Extracting faces .. done. (1248 faces, took 1.0ms)
Step 8: Filling holes .. Not trying to fill a hole of degree 346
Not trying to fill a hole of degree 9
Not trying to fill a hole of degree 9
done. (1 holes, took 4.0ms)
Intermediate mesh statistics: degree 3: 30 faces, degree 4: 1191 faces, degree 5: 26 faces, degree 6: 2 faces
Step 9: Regular subdivision into pure quad mesh .. done. (took 5.0ms)
Step 10: Running 2 smoothing & reprojection steps .... done. (took 26.0ms)
Step 12: Reordering mesh for efficient access .. done. (took 22.0ms)
Extraction is done. (total time: 141.0ms)
Writing "test.obj" (V=5364, F=5000) .. done. (took 232.0ms)

Work machine : centOS 6 - 20 cores - 2.2 Ghz

Running in batch mode:
   Input file             = myfile.obj
   Output file            = /var/tmp/test.obj
   Rotation symmetry type = 4
   Position symmetry type = 4
   Crease angle threshold = disabled
   Extrinsic mode         = enabled
   Align to boundaries    = no
   kNN points             = 10 (only applies to point clouds)
   Fully deterministic    = no
   Output mode            = pure quad mesh

Loading "myfile.obj" .. done. (V=21218, F=41486, took 367.0ms)
Computing mesh statistics .. done. (took 27.0ms)
No target vertex count/face count/scale argument provided. Setting to the default of 1/16 * input vertex count.
Output mesh goals (approximate)
   Vertex count           = 1326
   Face count             = 1326
   Edge length            = 0.0229005
Input mesh is too coarse for the desired output edge length (max input mesh edge length=0.037104), subdividing ..
Building a directed edge data structure .. done. (959 boundary vertices, took 10.0ms)
Subdividing mesh .. done. (split 8566 edges, took 153.0ms, new V=29784, F=58356, took 153.0ms)
Building a directed edge data structure .. done. (1221 boundary vertices, took 14.0ms)
Generating adjacency matrix .. done. (took 4.0ms)
Computing vertex normals .. done. (took 64.0ms)
Computing dual vertex areas .. done. (took 82.0ms)
Processing level 0 ..
    Coloring .. done. (7 colors, took 6.0ms)
Building multiresolution hierarchy ..
  Collapsing .. done. (29784 -> 16546 vertices, took 44.0ms)
    Coloring .. done. (7 colors, took 3.0ms)
  Collapsing .. done. (16546 -> 9017 vertices, took 27.0ms)
    Coloring .. done. (7 colors, took 2.0ms)
  Collapsing .. done. (9017 -> 4927 vertices, took 18.0ms)
    Coloring .. done. (7 colors, took 1.0ms)
  Collapsing .. done. (4927 -> 2698 vertices, took 12.0ms)
    Coloring .. done. (7 colors, took 1.0ms)
  Collapsing .. done. (2698 -> 1475 vertices, took 10.0ms)
    Coloring .. done. (7 colors, took 1.0ms)
  Collapsing .. done. (1475 -> 815 vertices, took 9.0ms)
    Coloring .. done. (6 colors, took 1.0ms)
  Collapsing .. done. (815 -> 444 vertices, took 6.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (444 -> 254 vertices, took 3.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (254 -> 141 vertices, took 1.0ms)
    Coloring .. done. (6 colors, took 0.0ms)
  Collapsing .. done. (141 -> 79 vertices, took 1.0ms)
    Coloring .. done. (5 colors, took 0.0ms)
  Collapsing .. done. (79 -> 45 vertices, took 0.0ms)
    Coloring .. done. (4 colors, took 0.0ms)
  Collapsing .. done. (45 -> 25 vertices, took 0.0ms)
    Coloring .. done. (4 colors, took 0.0ms)
  Collapsing .. done. (25 -> 15 vertices, took 0.0ms)
    Coloring .. done. (4 colors, took 0.0ms)
  Collapsing .. done. (15 -> 9 vertices, took 0.0ms)
    Coloring .. done. (3 colors, took 0.0ms)
  Collapsing .. done. (9 -> 5 vertices, took 0.0ms)
    Coloring .. done. (3 colors, took 0.0ms)
  Collapsing .. done. (5 -> 3 vertices, took 0.0ms)
    Coloring .. done. (2 colors, took 0.0ms)
  Collapsing .. done. (3 -> 2 vertices, took 0.0ms)
    Coloring .. done. (2 colors, took 0.0ms)
  Collapsing .. done. (2 -> 1 vertices, took 0.0ms)
    Coloring .. done. (1 colors, took 0.0ms)
Hierarchy construction took 152.0ms.
Setting to random solution .. done. (took 22.0ms)
Constructing Bounding Volume Hierarchy .. done. (SAH cost = 34.9337, nodes = 37481, took 601.0ms)
Compressing BVH node storage to 32.11% of its original size .. done. (took 39.0ms)
Preprocessing is done. (total time excluding file I/O: 1.3s)
Optimizing orientation field .. Propagating updated solution.. done. (took 48.0ms)
done. (took 5.6s)
Orientation field has 6 singularities.
Optimizing position field .. done. (took 33.4s)
Step 1: Classifying 176288 edges .. done. (took 410.0ms)
Step 2: Collapsing 61812 edges .. done. (ignored 94 conflicting edges, took 39.0ms)
Step 3: Assigning vertices .. done. (1503 vertices, took 6.0ms)
Step 3a: Removing spurious vertices .. done. (removed 70 vertices, took 0.0ms)
Step 4: Assigning positions to vertices .. done. (took 6.0ms)
Step 5: Snapping and removing unnecessary edges ... done. (snapped 13 vertices, removed 6 edges, took 111.0ms)
Step 6: Orienting edges .. done. (took 11.0ms)
Step 7: Extracting faces .. done. (1247 faces, took 6.0ms)
Step 8: Filling holes .. Not trying to fill a hole of degree 358
Not trying to fill a hole of degree 12
Not trying to fill a hole of degree 10
done. (0 holes, took 0.0ms)
Intermediate mesh statistics: degree 3: 34 faces, degree 4: 1199 faces, degree 5: 12 faces, degree 7: 2 faces
Step 9: Regular subdivision into pure quad mesh .. done. (took 18.0ms)
Step 10: Running 2 smoothing & reprojection steps .... done. (took 202.0ms)
Step 12: Reordering mesh for efficient access .. done. (took 213.0ms)
Extraction is done. (total time: 1.0s)
Writing "/var/tmp/test.obj" (V=5356, F=4976) .. done. (took 38.0ms)