SCIInstitute / Cleaver

A MultiMaterial Tetrahedral Meshing Library and Application
https://cleaver.readthedocs.io
Other
41 stars 18 forks source link

User suggestions. #33

Closed brigb123 closed 8 years ago

brigb123 commented 8 years ago

1) The tetgen implementation in SCIRun 5 provided by Moriz runs with no errors. The resulting surfaces of the mesh are rather "voxelized" (not smooth, see attached). I tried to include smoothing (as described in the tutorial file in point 2.5) but the tetgen fails because of self intersecting facets, which is expected as described in your help (http://scirundocwiki.sci.utah.edu/SCIRunDocs/index.php/CIBC:Documentation:SCIRun:Reference:SCIRun:FairMesh). That's a known limitation of tetgen.

2) Biomesh alone (third method) is too slow (still running).

3) Cleaver + biomesh seems to be the best world (method number 4) in terms of quality elements, smooth surfaces and speed. I created the Sizing fileds using biomesh3d with the -s1:4 switch (as described in the tutorial). However, I couldn't make cleaver run in windows: in the verbose mode, and after "Creating Octree Mesh ..." the program terminates with no reason and no output. So, I installed and compiled cleaver in a Virtual Machine with ubuntu 64 bits. I generated the sizing field with the Cleaver-gui and exported it as nrrd file. Then, in SCIRun I changed it by adding 1, 2, 3, 4, 5, and 10 units (as described in point 4.7.c). It works with plus3, plus4, plus5, and plus10. When adding one or 2, or even using the original unmodified Volume-sizing-field, cleaver crashes (just a "Killed" mesage on prompt) I assume it is because of memory requirements.

So, a couple of questions:

a) In point 4.4.b it says that "more info available if needed" in order to combine sizing fields. I would like to know how to combine the individual tissue sizing fields in SciRun to control them independently. So far, I've been only changing the full already combined and cleaver generated "volume sizing field".

b) The gray matter surfaces are still not as smooth as I would like (see "dents" in attached figures) and there is not much variation between "volume sizing field +5" and "volume sizing field +3" (see attached). Are these two effects expected? With lower sizing fields, is it expected that the GM surface gets smoother? Or is it already determined by the segmentation?

zaracay commented 8 years ago

question a).

I've written up an appendix to the tutorial that I sent out earlier and have attached it to the email (as well as copied the text into the email below). This appendix should address your first question regarding combining multiple sizing fields. To expedite your implementation of the Appendix, I've also attached an example SCIRun network that combined 7 sizing fields.

Next, question b).

Smoothness of the final mesh is not determined by the sizing field. The sizing field defines how coarse or refined your final mesh will be, but the mesh surfaces will conform to the original inputs you used to define your volumes. So if your input volumes are coarse, the final mesh will be course. To create smooth meshes, you will need to pass the original segmentation file through BioMesh3D and use the tight.nrrd outputs. In the tutorial, it states that you should use tight-corrected.nrrd outputs. This may be wrong, if I remember right, the tight.nrrd files are the final output of the BioMesh tightening step.

CombineAndAdjustSizingFields.srn.zip

Meshing Methods and Instructions.txt

brigb123 commented 8 years ago

itk can help with this. see 9e06250dfcc886edfbf063feefdeef32f56d9510 and defer to #35