Hollowing out your ZBrush model

Discussion in 'Software and Applications' started by lensman, Jan 1, 2010.

  1. lensman
    lensman Well-Known Member
    As you probably know when you upload models for printing to Shapeways you need to hollow out your model in order to cut down on costs. I was having a hard time figuring out how to do this in ZBrush when suddenly the answer hit me: Extract a new sub-tool... details below:

    I used this technique on my chopstick holder that I designed here http://www.shapeways.com/model/77861/chopstick_holder.html

    In the image below you can see a simple cube that I made.
    - Using ZBrush masking tools I masked a circle on the surface (made MUCH larger than it needed to be for this example only).
    - I then reverted the masked to be unmasked and vice versa.
    -Next I went to the subtools and hit Extract (there are skin thickness options you can explore here also).
    - I deleted the original tool but you really don't need to do this, I suppose.
    - As you can see, the model is now hollow...

    It is my understanding that Shapeways needs at least one hole in the model where unused material can be removed (someone correct me on this if I'm wrong). For my chopstick holder design I made two quite small holes on the bottom. For a design where there is no 'hidden' side I don't know what the option would be. And how small the hole can be I also don't know. Maybe someone from Shapeways can answer that...

    Hope that helps. Any questions, please ask here or PM me.


    Attached Files:

  2. shanec102
    shanec102 New Member
    I have been successful in using the extract sub tool to get a hollowed out model. but...

    1. When i do a more complex model I can not get the wall thickness to be thick enough. The wall thickness will also not be uniform. some parts could be .02 and others will be 1.00.
    2. It puffs out my model... I loose all the details. Looks like a marshmallow version of the original.

    I have been searching for solutions to making inner walls and have found people exporting to meshlab and blender. Does anyone have another solution for zbrush? ... As i am trying to learn those other programs, but am having trouble.
  3. lensman
    lensman Well-Known Member
    Yeah, I know what you mean, Shane, my method above doesn't work with detailed models. What I do now (the limited time I've done this) is to bring the model into another programme, make a smaller version of it, add a "pipe" (actually a solid pipe, really) onto it at a point that will be hidden, then union these two pieces and put back into the middle of the original model. Now do a difference boolean and subtract the middle model. You should now have your model, hollowed, with a small hole leading to the outside.

    This hole can be absolutely miniscule and is not needed to actually extract the material from - it just has to be there in order for Shapeways to recognise that there is a hollow interior.

    Of course this method is not foolproof, either, depending on the complexities of the model design - a soccer ball or an octopus, for example. Sometimes I just hollow out a section of the model.

    Hope that helps.

  4. shanec102
    shanec102 New Member
    Thank you for getting back to me Glenn,
    Do you have any suggestions for a program to export to? I have access to meshlab, netfabb, and blender.(all free) Otherwise I will have to buy another program. 3dmax is what I have read will work, but that is way to expensive.

    Also - I have been searching on zbrush forums and have found some answers but have not tried them. Even those people say it is still easier to export the model.

    If you have any links to tutorials on how to do the steps you described that would be much appreciated.
    Last edited: Jan 9, 2011
  5. lensman
    lensman Well-Known Member
    Hi Shane, I use Rhino. Since prog's are expensive I would suggest downloading a trial version first to see if you like it. There are many members here who use Blender; personally I HATE the programme and consider its ease of use to be that of sitting a kindergartner at NASA's controls and telling him/her to launch the Shuttle!

    Most 3D programmes in which you can model will work. I don't believe meshlab and netfabb will let you model in this way.

    I'm not sure if you grasp the basic premise or not, you didn't say... Try to imagine a golf ball with a pencil glued on it so that it sticks straight out. Now put this object inside a solid tennis ball so that the pencil exits the ball surface. Now magically delete this object from the tennis ball. You are left with a ball that has a hole leading into a hollow inside the ball. Phew! Sorry if I made that too simplistic for you..

    In theory you should be able to do this within zBrush since it now supports Booleans, of a sorts. Try extracting one sub-tool from another.

  6. shanec102
    shanec102 New Member
    Hi understand the concept. i have found tutorials for that process:

    I come from an art background and actually bought zbrush to avoid learning blender. I surely can not afford rhino or 3dmax or maya... at the moment. I will search for 'subtraction' in zbrush. If i can not find it I will start the blender tutorials...rrrr... To be frank, blender looks like somebody threw up a bunch of letter and numbers. To all software designers --- Less is more----

    Problem with being a noob is that I get lost unless i can find the specific tutorial to teach me how to subtract in the specific software with pictures.

    Below is a message that i found describing the blender process that i will attempt to follow:

    I use Blender and have used several different methodologies to accomplish the 'hollowing' of a model.

    First off; before you try to hollow out your model, always make sure of the following:
    (All commands are for Blender)

    1) Your mesh is manifold. [CTRL+ALT+SHIFT+M]
    2) Your normals are properly oriented. [CTRL+N]
    3) That you apply any scale and rotation [CTRL-A]

    Method 1
    Blender has a built in Python script called 'Solidify Selection' and there is another that you can down load called 'Solidify mesh' that both create an inner wall relative to the outer surface based on input from you. I use this every once in a while as the results can be sketchy.

    Method 2
    Another approach I have employed in Blender is Extruding the entire surface, and then scaling relitive to the Normals.
    [E] [Extrude Regon] [ESC] and then [ALT+S]
    This is slightly different than normal scaling and I have had fairly good results with it.

    Method 3
    In a few cases where the complexity of the mesh was rather intense, I have simply made a copy of the entire mesh [Shift+D], and then scaled it down. or [ALT+S] and then actually edited the 'Inner' mesh to remove portions that were too thin and any portions of the mesh that intersect. (Overlap). then rebuld the mesh into a single model [CTRL+J] and finally, re-orient the normals with [CTRL+N]
  7. lensman
    lensman Well-Known Member
    Yeah, no point in looking at those Blender examples for me - they mean nothing.

    zBrush do have some excellent tutorials and very helpful members in their forums if you ask someone to help re subtracting subtools with booleans.

  8. flutterbye
    flutterbye New Member
    Hi - If you know someone with Freeform Plus, Freeform or Claytools any of these apps can easily accomplish this. In FFP the Shell command will do it in one step. In FF with Create Offset Piece and Boolean you can do it in two. In the light version, Claytools, you can do it in three, by creating a copy, scalling the copy, and then a Boolean.
  9. lensman
    lensman Well-Known Member
    Flutterbye, nice to see another new member and thanks for the info on those prog's. I don't think I've heard of any of them. More prog's to check out!

    Shane: I have yet again taken a look at Blender and have to say I'm very impressed. Versions 2.5 on appear to be gravitating towards letting the user access more commands with the mouse instead of having to memorize seemingly hundreds of hotkeys. I'm not into animation but there are some great shorts out there made entirely with Blender ("Sintel" - being the latest. Make sure you have tissues at the ready!). And the built in renderer based on YafaRay is very good, too).... I have actually decided to try and make it my number one prog and use it as much as I can, instead of jumping from app to app to do this and then that, etc.

  10. stannum
    stannum Well-Known Member
    Blender built in renderer is not based of Yafaray. It's the plain old renderer, with fixes and improvements, happy mousing (the praised speed of Blender came from not having to hunt buttons -_^ ).
  11. lensman
    lensman Well-Known Member
    Yes, I see you are correct. I was getting confused with this:

    "A render engine consists of a "faceless" computer program that interacts with a host 3D application to provide specific raytracing capabilities "on demand". Blender 3D is the main host application of YafaRay."

    Blender works with YafaRay in that it exports your scene easily from one to the other.

  12. aeron203
    aeron203 New Member
    Meshlabs Uniform Mesh Resampling is a good way to generate an offset inside surface. It's a completely new implicit surface unrelated to the the original, so the details do not collapse as they do when you offset the polygons. Starting with a closed mesh you will get an inside and an outside. Delete the outer "marshmallow" surface. From there, Blender booleans can do the job. Booleans usually aren't perfect so I'm glossing over a few things but this is basically the best way to go for free hollowing of organic, high density meshes.

    It is interesting to hear that Sensable is putting more development into their software without necessarily using the haptic interface. I will try it, but it's not nearly as fun without the Phantom. :)

  13. lensman
    lensman Well-Known Member
    Thanks for that handy info. I have actually tried using that in Meshlab before with no success. I'll have to try with the settings you used.

  14. LincolnK
    LincolnK New Member
    I just tried this, and it only seemed to make some random polygons that most definitely didn't create what could be used as a hollow form. :(

    Anyone else have luck with this?

  15. aeron203
    aeron203 New Member
    If the results are sparse, try to adjust the settings. The precision is the resolution of the voxel grid. I set it to 0.5 units, and my model was in millimeters. If I was using inches or meters that number would have to be much smaller. Just be careful because the memory footprint expands rapidly with increased resolution (we all know how easy it is to drive Meshlab off a cliff).

    Also, keep in mind that this is best for organic models with details that are on very different scales, as opposed to low-poly or more mechanical shapes that are easier to offset.

    All the best hollowing algorithms in Magics, Rapidform etc, use this algorithm behind the scenes. They may be more user friendly but the results are the same.

    If anyone is having any problems with this, let me know. Just be specific or include a screenshot of the result.

  16. dizingof
    dizingof New Member
  17. aeron203
    aeron203 New Member
    The Push/Pull command in Sketchup uses polygon offsetting. I use it for geometric meshes but I do not recommend it on figurines created with Z-brush. This image illustrates the problem with offsetting highly detailed models:

    Intrude command in Wings3D.png

    For offsetting try "Intrude" in Wings3D. It's great for keeping sharp inside corners on boxy shapes, but with details smaller than the wall thickness the offset polys fly through the opposite wall and turn inside out. It's very time consuming to fix. If you take, say, low-poly videogame model and apply a UV preserving subdivision algorithm like Meshlabs Butterfly Subdivision, the model might be smooth enough to offset without tangling, but acute angles and thin walls (especially fingers) are going to be a problem in sculpted meshes.
  18. dizingof
    dizingof New Member
    I'm talking about a plugin called Joint-Push-Pull not Sketchup's native push/pull button

    When used correctly it can offset by 3 methods - each has a dedicated button for it.

    Though this plugin might crash sometimes for high poly models.

    (Meshlab's Butterfly Subdivision is no way near the quality and organic smoothness you get from the new Subdivide & Smooth plugin for Sketchup)

    It's all about testing

  19. Spacetime
    Spacetime New Member
    Hey there!

    I've seen this same way of using Meshlab but I can never get this to work?

    First I have no idea what to set the precision and offset number at?

    Second when I do hit apply it seems to only create one outside mesh?

    Third this might sound stupid but how do I delete a layer? The delete button does not work.

    Any help would be great!

  20. Vargulf
    Vargulf New Member