[Custom Build] Blender Fracture Modifier

always save as you go so you have multiple recent versions. Also there should be a *.blend1 file backup you could use.

Use the + button in the save window to auto increment or use your own system of file naming. I use blabla 1a, 1b, 1c, 2a…every big milestone is a number and just small progress save points are the letters…

Firstly, thanks for all previous help!

Now, I have a slight visual issue with the ‘Bind’ tool using the BCB and FM.

As the interior concrete structure falls, there is a slight lag with the glass exterior, as can be seen in the images. Is there any way to remedy this? I tried scaling the the concrete shards but it started to look like floating islands.

Thanks!

(Edit: I should note the glass exterior is one single joined object with Fracture applied)

This is a bug/limitation that is hard to solve within Blender 2.79 but Scorpion81 has committed a fix that should improve the bind behavior a bit. Bound shards now shouldn’t be delayed anymore but free shards connected to bound shards via constraints might still have a visible lag. This will be tackled for 2.8.

Here is an updated build: http://graphicall.org/1148

1 Like

New linux dev build:

– PACKAGE-INFORMATION –
Branch: fracture_modifier
Revision: 74d4e4c
Submodules: locale 1bbc9bd addons 2609a10 tools 7695e14
OS: GNU/Linux, Architecture: x86_64, GLIBC: 2.19
Builddate: Fr 11. Jan 18:37:06 UTC 2019
Filesize: 104882364 byte
Sha256sum: 05ea783a760d9816b4e9434847f93f1c533e66a2abdb1121d9755a39814c66c9
URL: https://www.jensverwiebe.de/Blender/blender_fracture_modifier_linux64_latest.tar.xz

CHANGES SINCE 982720c:

-support up to cuda 10 aka rtx 2xxx
-pull animated bind update calls out of loop
-fix attempt for previous rotation fix with bound objects
-fix for bound object lagging behind one frame
-hopefully proper rotation fix for animated mesh bind
-backport of master fix for https://developer.blender.org/T56969
-transform fix for external centroid-based constraints
-small fix for minimum mass and UI float display precision changes
-fixes for dynamic fracture
-crash fix for compound collision + expose constraint rules ui for compound mode
-disabled a verbose print when using many objects

Cheers … Jens

EDIT: small change in build, new upload

Okay, amazing! Thanks

Edit: The ‘Bind’ update is working… Thank you!

I’ve been trying out the E-Cycles builds, and the creator said they might be able to do a 2.79 version of it; how do i get my fracture sims into a stock 2.79 format? i tried baking the sim, thinking the data would be enough rather than the actual Fracture engine which obviously doesn’t work, but Blender’s just closing immediately when i try to load it.

Hmm you could either convert the simulation to keyframed objects with the “Convert to Keyframed Objects” button or you could export it to alembic (with this, even topology changes like autohide / automerge will be also taken into account, as in written to the alembic file).
But note, you need to keep a backup of the FM simulation file in case you need to change the sim or re-simulate it.(so you can re-export).
I assume you just want to render out the finished results now. And the keyframed objects and alembic result files should be also useable with 2.8 too.
It is a bit tedious maybe to repeatedly re-export, but off hand there is no good other way to go atm.

Edit, if you choose the alembic path, you will need to append the materials from the FM file into the blend where you did the alembic import to. Alembic only stores the material numbers per face, but does not handle the materials itself as far as i could see.

i’ve hit the Convert to Keyframed Objects, given it the range, and saved it as a new file. i try to open it in 2.79 and it closes immediately. opening from the CMD prompt to try and get a en error message, i get
Error: EXCEPTION_ACCESS_VIOLATION
had a look in my Blender folder, was some old folders from 2.77 etc so i deleted those, did a Repair install on Blender 2.79b and just get the same error.
not sure i want to go down the Alembic route, that will mean redoing materials for all my objects etc, doesn’t seem a very good workflow.
EDIT
Tried opening in the E-Cycles 2.8 version, the CMD window gives a lot more stuff than just the one line i got for 2.79. SOme of the stuff is about add-ons not being upgraded to 2.8, then when it gets to the point of loading the keyframed file i get a whole lot of
Dependency cycle detected:
** ‘OBwallNEW.001.GEOMETRY_UBEREVAL()’ depends on 'OBwallNEW.001.TRANSFORM_FINAL(**
)’ through 'Particle Eval’
** ‘OBwallNEW.001.TRANSFORM_FINAL()’ depends on 'OBwallNEW.001.TRANSFORM_OBJECT_U**
BEREVAL()’ through 'Temp Ubereval’
** ‘OBwallNEW.001.TRANSFORM_OBJECT_UBEREVAL()’ depends on 'OBwallNEW.001.RIGIDBOD**
Y_TRANSFORM_COPY()’ through 'RBO Sync -> Uber (Temp)'
** ‘OBwallNEW.001.RIGIDBODY_TRANSFORM_COPY()’ depends on 'SCScene.RIGIDBODY_SIM()**
’ through 'Rigidbody Sim Eval -> RBO Sync’
** ‘SCScene.RIGIDBODY_SIM()’ depends on ‘SCScene.RIGIDBODY_REBUILD()’ through 'Ri**
gidbody [Init -> SimStep]'
** ‘SCScene.RIGIDBODY_REBUILD()’ depends on ‘OBwallNEW.001.GEOMETRY_UBEREVAL()’ t**
hrough 'Object Geom Eval -> Rigidbody Rebuild’
Dependency cycle detected:
** ‘OBwallNEW.001.PARTICLE_SYSTEM_DONE()’ depends on 'OBwallNEW.001.PARTICLE_SYST**
EM_EVAL(SMOKE_PSystem)’ through 'PSys -> Done’
** ‘OBwallNEW.001.PARTICLE_SYSTEM_EVAL(SMOKE_PSystem)’ depends on 'OBground-Fract**
ure.TRANSFORM_FINAL()’ through 'Particle Collision’
** ‘OBground-Fracture.TRANSFORM_FINAL()’ depends on 'OBground-Fracture.TRANSFORM_**
OBJECT_UBEREVAL()’ through 'Temp Ubereval’
then
Detected 4 dependency cycles
loadTile: No noise tile 'C:\Users\KILLER~1\AppData\Local\Temp\blender_a05372\noi
se.wavelets’ found.
Generating new 3d noise tile size=128^3
saveTile: Noise tile file 'C:\Users\KILLER~1\AppData\Local\Temp\blender_a05372\n
oise.wavelets’ saved.
Generating new 3d noise done
Error : EXCEPTION_ACCESS_VIOLATION
Address : 0x0000000140326AA6
Module : E:\Release\blender.exe

well i exported the keyframed-objects version as Alembic and it opens in 2.79, but the views are all messed up, the camera is there but i can’t seem to see through it in Camera View, and all the materials are gone. there are no slots, so not only would i have to import all the materials again, i’d have to go through all the objects and re texture/reassign everything - so i must be missing some setting? cos that’s the most pointless export every, otherwise.

hrm, maybe i should have tested the object to keyframe approach myself, especially the results in 2.8. Sounds like some depsgraph crap going on there with particles depending on rigidbody and vice versa. Especially that thing with the debris particles is tricky anyway, since object to keyframe has its own set of limitations (no variable topology, particles not responding to dynamic vertexgroups like in FM build)…
And very important, you need to delete the FM object manually after doing a convert to keyframes. I think because this is ALSO saved you cannot open the result in official 2.79b (due to crash). Hrm, maybe i should have added an option to auto-delete the FM object after export…
Additionally, you need to cache or bake the sim first before trying to export to keyframed objects.

But what about just baking the sim and hitting “Export to alembic” directly ? (Do not convert to keyframes before).

This may seem look stuck for a while while the export runs. Grrr, why is the “Object Options” -> “Face Sets” option disabled by default ? that would indeed export the assignments too, but for some reason the order is messed up after import.

Instead it seems to be sorted alphabetically. The slots have dummy materials assigned (with their original names), you need to append the materials from the original blend and put the appended materials onto the slots (so the order matches with the dummy material names)

Furthermore, if you exported the whole scene including cameras, you will need to set your imported camera as active scene camera again.

You can also try to use .mdd or .pc2 pointcache formats to export your simulation, I’m using it often for larger simulations as it is quite robust and allows for faster loading of the .blend and offers even faster frame seeking than FM itself. You just need to export the initial fractured mesh together with the pointcache.

Steps:

  • Export FM bake to .mdd
  • Apply FM at frame 1 and save under new .blend
  • Append the applied FM object to your project file where you want to use it
  • Add Mesh Cache modifier and point it to your .mdd file
    Done.

There is only one limitation, this won’t work for changing topologies, i.e. Automerge and Dynamic Fracture will produce problems.

When i Bake All, does it not store the debris shards as separate data? after changing the wall to Keyframed Objects i can’t seem to delete the original wall w/out getting rid of the debris. the smoke seems to work fine.

Smoke, Debris and Dust work with a dynamic paint setup which creates a dynamically changing vertexgroup. But it also uses a particlesystem which responds dynamically to those vertexgroups (they are set as density vertexgroups). For that, a few changes were necessary for the particle system, which are only present in the FM build.
Even if i had implemented taking other modifiers and vertexgroups etc into account when generating keyframed objects, it would not work as expected in non FM builds because of that particle system change. (like emitting debris and dust, especially.)
The smoke modifier (flow) isnt copied as well to the keyframed objects. What you saw is probably the playback of the smoke from the smoke cache.

no worries, thanks for the reply. i didn’t know how baking worked, i thought it would bake the particles for the debris the same as the other baked physics, and thought i might have been doing something wrong.

I’m trying to cut cloth using the FM build, as if a sharp sword has passed through it, but my sword object passes through without slicing it, just pulling the cloth along and bunching it up, passing the other side unscathed.

I’ve tried to play with the tearing angle/distance but then I get the material breaking at the edges where it is pinned.

Any ideas?

I have solved this with a cluster group defining 2 clusters (halves) of the cloth and making a relatively low cluster angle between those clusters. This helps to break the connections between the clusters earlier. It may be a bit of cheating here, but otherwise it will tear off the pinned corners first, mostly.

I also wrote down a few notes inside the blend file.

With thresholds only this is a bit harder to control, imho.

swordcloth1.blend (2.0 MB)

1 Like

First time user of FM here, this is pretty cool! Got up and running last night in about an hour and had some basic destruction going on.

A few questions though:

  • I’m not able to get Dynamic to work, just Prefracture. Is there any docs or tutorials for this? The only reason I thought to go this route is I was attempting to fracture a few sub-d assets and pre-fracture completely messes up the edge flow etc. Is there a more appropriate way to only fracture at moment of impact and only in the area of the effect?

  • What’s the best workflow to achieve an effect such as this (watch first 45 seconds, exact question relates to seconds 30-32) from just a pure destruction/debris point of view: https://www.youtube.com/watch?v=g5O0U8ck2GU

Hey :slight_smile:

  • Dynamic is unfortunately kinda buggy and broken in FM 2.79. For a basic test, you could try with a cube and set the dynamic threshold down to 1 or 2, hit execute fracture once. The cube might shatter on impact on a ground. Then, with objects being smaller than the dynamically object to fracture, you could use “Limit Impact” on the dynamic FM object to attempt to limit the smaller shards to the impact area… but note that still the entire object will be shattered, only with bigger shards. But there are a lot of issues with dynamic fracture (which i hope i can fix in FM 2.8)

  • Hmm regarding subdivided / smooth assets and fracturing: You might try to enable autohide and automerge (set distances slightly above 0, but which distances are good depends a bit on the mesh etc, you will need to experiment a bit with the values. But those changes will always live update, so you see the result at once). Then you also could try with “Fix Normals” (make sure to execute fracture again after enabling that, caution… might be slow on dense meshes, may result in odd results with perform merge from automerge). Furthermore you could add an Edgesplit modifier after the FM (not a perfect solution, but as last resort)

  • The effect in the video can be achieved with “Path fracture” ( i used a curve for it). This is best done via the Fracture Helper addon delivered with the FM build (you need to “install” / enable it manually, tho, it is in the “fracture_extras” folder… It just automates a couple of clicks in that case.
    I have prepared a blend file with more detailed notes / hints about how to setup that effect here…
    chip_thru_path.blend (2.6 MB)

Whoa, awesome support! Yes, your file is nearly exactly what I ended up doing after I posted. You used a triple path though which is really nice (hadn’t thought about duplicating that to get finer grained shards) while I just used a single static mesh to generate the shard path. I’m just really glad I understood enough to do the Animated+Trigger and Animated+Triggered pairs :); though in hindsight that is pretty intuitive.

Ah! Auto hide and auto merge do help a bit. I’m not able to completely fix things up but I’ll fiddle more tomorrow and see.

About the other effect I was curious about:

I was thinking about placing (warping in 1 frame) my trigger object directly inside the triggered object to simulate the effect right on the edges. Seems to work on small scale trials. Any other suggestions to attempt something like that?

1 Like

Early tests for masonry simulation with BCB + FM

2 Likes