Home Technical Talk

Variable mesh density, controlled by a bitmap?

polycounter lvl 6
Offline / Send Message
Stenrik polycounter lvl 6

I have a dense (200x200) editable poly plane, UV mapped.  I need it to have a non-uniform density in tris, based on a bitmap. 

My native software is 3DS Max, so methods within that are ideal, but I am open to using other software/paid plugins - whatever is needed to get the job done.

I would like to something like Max's Multires or ProOptimizer, but with the ability to control the density (polygon size) with a black and white map. Where white = maximum polygon density and black = minimum, within a range I set.  What would be the best way to go about doing this?

Replies

  • Michael Knubben
    It's been a while since I used Max, but does ProOptimizer take Vertex colour or weight as an input? Because there are definitely ways to bake a bitmap to vertex colour, and vertex colour to weight seems like a nobrainer as well.

    If that doesn't work, Houdini's practically made for stuff like what you're describing.
  • Eric Chadwick
    Do you need to animate it? Or are you ok with a calculation delay on each adjustment?

    I would try adding density, rather than removing.

    Vol Select can use a bitmap as the selection mask, and grays become soft selection.

    You might be able to add a Quadify modifier on top, not sure if it respects incoming selections.

    There are a number of other subdivision/tesselation modifiers to try. 
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    proOptimizer will take vertex selections as a guide  - I can't remember how graduated the effect is though. 

    zbrush can decimate based on a mask

    Eric's suggestions will likely work well if you layer a few selections and tesselate modifiers

    Houdini is probably your best bet though
  • Stenrik
    Offline / Send Message
    Stenrik polycounter lvl 6
    (Mispost prematurely sent, redone below.)
  • Stenrik
    Offline / Send Message
    Stenrik polycounter lvl 6

    It's been a while since I used Max, but does ProOptimizer take Vertex colour or weight as an input? Because there are definitely ways to bake a bitmap to vertex colour, and vertex colour to weight seems like a nobrainer as well.
    Michael Knubben:  I have already baked out vertex color.  I just tried the "volume select map" idea.



    However, when trying MultiRes, I was unable to find a way to control the density with this selection.  ProOptimizer allowed me to check "Keep Vertex Colors" and "Keep VC Boundaries" which yeilded this when I reduced vertices, but definitely not what I want...



    Houdini is a "when" not "if" at this point, but I'm in enough of a time pinch right now that I don't have time to dive into it just yet.

    Do you need to animate it? Or are you ok with a calculation delay on each adjustment?
    I do not need to animate it.  I am OK with a calculation delay on each adjustment. 
     I would try adding density, rather than removing.
    Hmm, yeah, I was defaulting to "remove" because I need the topology to be rather random.  Seemed like decimation was a good way to go for that.  Voronoi tessellation is the only thing I have experience with.

    You might be able to add a Quadify modifier on top, not sure if it respects incoming selections.
    Tried this, it just replaced the whole thing with an even quad.

    There are a number of other subdivision/tesselation modifiers to try.
    Will do!  I'm about to head out on a trip for a couple days but will report how I managed to solve this when I get back.  One avenue that seems promising is shattering plugins, too.

    I did get good *some* results with Tesselate modifier!  However, it's too "uniform" - I need something that is more of a shatter effect.

    When I get more time to experiment with this after tomorrow night, I am going to look into fracturing plugins.  RayFire looks promising.

    I will also give Zbrush a spin then, too.  :-)
  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    If it's a shatter effect you're after then Rayfire is the best option in Max. It even has a Shatter modifier. There are also several free options on Scriptspot, such as Voronoi Fracture, Mirror Shatter, Advanced Fragment, and my favourite of the freebies is VoroFrag. This is as close as you'll get to the Rayfire Shatter mod, and it's a modifier so it's procedural. Bonus. ;)


  • Stenrik
    Offline / Send Message
    Stenrik polycounter lvl 6
    If it's a shatter effect you're after then Rayfire is the best option in Max. It even has a Shatter modifier. There are also several free options on Scriptspot, such as Voronoi Fracture, Mirror Shatter, Advanced Fragment, and my favourite of the freebies is VoroFrag. This is as close as you'll get to the Rayfire Shatter mod, and it's a modifier so it's procedural. Bonus. ;)


     I tried installing Vorofrag, but Max wouldn't launch because it's stopped being updated.  It is critical that I can tie the tragmentation density to a bitmap, which Fracture Voronoi doesn't allow.  I also wasn't able to find the option in Rayfire Shatter, although I DID get it working with Rayfire Voronoi.  That was the only one I saw the ability to tie to bitmap.  (The script is creating a bunch of overlapping vertices, but I can fix them by welding.)


  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    Sorry, I thought you'd since abandoned the bitmap route and just wanted a physical geo shatter solution.
  • Stenrik
    Offline / Send Message
    Stenrik polycounter lvl 6
    No problem, your suggestions are appreciated all the same.  Especially since I don't know whether I've found the best tool for this need, after all.

    Because right now I'm having trouble getting a good clean 2D mesh from Rayfire Voronoi. 

    It appears that the plugin is treating my plane like a 3D object when it fragments it.  This is creating many duplicate vertices, which is messing up my PLY export/point cloud conversion process down the line.  I have attempted to weld the duplicate verts to no success.  While that can reduce SOME vertices, it won't reduce all of them.  Overlapping verts on the different fragments are also causing "rats nest" errors on export.

    I'm surprised that there is no "2D plane" option for Rayfire.  (It appears there is a checkbox for it on radial fracture, but that one doesn't work for my needs.)


  • musashidan
    Offline / Send Message
    musashidan high dynamic range
    I haven't got Rayfire installed at the moment, but you could try fracturing a solid mesh and then delete all geo except the top planar faces. Possibly the geo needs to be manifold.

    I completely forgot to mention Tyflow. :) This is still in beta stage and free to download. I just set up a scene with a 2D plane to mimic your desired result and it should be perfect for you. No need for a 200x200 plane as it uses a point cloud. It accepts texture input and is really easy to set up. Have fun!! :)


Sign In or Register to comment.