Jump to content

Voronoi fracture pre-deform help


Recommended Posts

How to work with some different kind of the standard Voronoi look?

I want to predefine my mesh like this guy (24sec) :

https://vimeo.com/65805544

But how does he do this? en how to invert that after the voronoi sop?

I know the way it works for wood splinters by using the transform sop.

But this one is some kind of noise. Anyone? dont know how he achieve that and revert it later.

simple example file?

  • Like 1
Link to comment
Share on other sites

store point P in attrib.

add 3d noise to point P using vopsop (it seems frequency of the noise was 2-3 times lower in Y than in X and Z in provided video).

fracture (you'll need enough details esp. in inside part of the geo).

set point P to saved before noise.

Edited by bloomendale
Link to comment
Share on other sites

store point P in attrib.

add 3d noise to point P using vopsop (it seems frequency of the noise was 2-3 times lower in Y than in X and Z in provided video).

fracture (you'll need enough details esp. in inside part of the geo).

set point P to saved before noise.

I know some part of it but still cant do it.

can you please add an example applied to a simple box?

Link to comment
Share on other sites

Make your own asset.

all this rayfire stuff is simple in terms of scripting.

to mimic proboolean (csg operations) you can use cookie sop (it will fail sometimes though proboolean does too).

for every piece cut it in half with noise plane (with some random offsets and rotations). to get regular pattern you need to repeat this step for every new piece so get 2 pieces from 1 first piece then 4 from 2 and so on.

to get irregular you can choose what pieces to cut by random threshold for example.

Link to comment
Share on other sites

Hi, I'm by no means an expert, but you most likely won't be able to get non overlapping edges if you deform before voronoi sop, then apply rest p. It depends on how far you push it, Doing it after the voronoi sop, is the best option if you need clean geometry. To get extra edges to work with on the inside, turn on interior detail, leave the strength as is or set it to 0, then use vops to add noise.

Here's a scene that kinda gets it going. I'm lazy and isolated the perimeter points manually, but I'm sure someone knows a better way... ;)

Also, I just multiplied the noise by a vector to keep it from going in the X dir. figuring the normals in there would make all sides equal.

Edited by nFrame
Link to comment
Share on other sites

just merge a 3 dimensional pointraster to Your object that You want to shatter, store the restposition, then deform it with nonuniform scale and noise, shatter it with interior detail as You want, but only on the mesh not the pointraster, restore the restpose on the outer primitives. as the inter points of the mesh, make a pointcloud lookup for the inner geometry to get the rest from the pointraster, as the inner gemetry does not have a valid rest vector

You should end with something like this

Edited by sanostol
Link to comment
Share on other sites

just merge a 3 dimensional pointraster to Your object that You want to shatter, store the restposition, then deform it with nonuniform scale and noise, shatter it with interior detail as You want, but only on the mesh not the pointraster, restore the restpose on the outer primitives. as the inter points of the mesh, make a pointcloud lookup for the inner geometry to get the rest from the pointraster, as the inner gemetry does not have a valid rest vector

How do you fuse inner and outer parts? even with high point counts (in raster) and filtering rest pos in lookup you end up with approximation and border points of inner geo don't fit to border points of outside geo:

m_20130517-oj4c-31kb.jpg

I'm fusing with closest point but it doesn't give me clean geometry (and i don't see those artifacts in your video)

thanks in advance.

Link to comment
Share on other sites

You can use the depth attribute on the shattered geometry to blend to You outside rest attribute, it does exist on the inner parts but as distance to shell gets greater it is not that usefull anymore, but at the outside borders it gives You the exact point position to close the gaps

Link to comment
Share on other sites

1) truly speaking i don't see how scalar (without direction) attrib "depth" can be used to modify position of the border points in the inside geo.

2) border points of inside geo have depth == 0.

For every border point of the inside geo i can store the closest primuv on the outside geo and then get the exact position after revert to rest pos. Just thought you have simpler solution.

Link to comment
Share on other sites

just use depth as mask to standard noise function or in other words to modulate amplitude of the noise so the more in depth you are the bigger the noise, you can of course modify it to have 0 noise near the shell, then quickly ramp up the noise amplitude to some value over small depth and keep the same amplitude for the deeper points as well to avoid huge amplitudes in the center

Link to comment
Share on other sites

the scalar depth attribute is used for blending between the original rest vector found on the geometry and the rest found on the pointraster with a pointcloud lookup function. depth == 0, means full rest of the geometry, and as You go deeper into the geometry You blend in the rest stored on the raster. I have to search for the original file of the clip, and upload it. it is quite simple.

Found it:

mmShatter.hip

Edited by sanostol
Link to comment
Share on other sites

just use depth as mask to standard noise function or in other words to modulate amplitude of the noise so the more in depth you are the bigger the noise, you can of course modify it to have 0 noise near the shell, then quickly ramp up the noise amplitude to some value over small depth and keep the same amplitude for the deeper points as well to avoid huge amplitudes in the center

i don't get it, sorry. What you suggested is to use sdf to modulate noise over inner geo when you already has this geo and use noise on it.

but you don't have inner parts in your initial geo when you're using noise to deform it.

You deform your initial geo, fracture with voroni, get inner geo (only at this point) and need to guess where it would be if it was from the very beginning. For this sanostol suggests to use bunch of points and store rest pos on them to revert the noise deformation.

but this "raster" has...mmm... raster so you'll get some error.

Link to comment
Share on other sites

I added the file, it's simpler to look at than to describe :)

thanks!

what i don't understand is how rest pos computed for inside points (by fracture voronoi asset)??

so you can just use it without your raster points.

i mean when you store your rest pos for initial geo and then fracture it with voronoi you get two sets of new points - from inside primitives and new points from cuts on outside primitives. latter get their rest attrib by interpolating from points of this primitive. But how rest attrib computed for inner points??

Edited by bloomendale
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...