Report 13 : Time to write

Categories Dissertation

Has the deadline of my dissertation come in may I started the writing stage including state of art, experimentations… That’s why I didn’t publish update currently :/

I will try to work in parallel on the fracture plugin to publish it on github …
Coffee time !

Report 12 : Multi-threading

Categories Dissertation

After a lot of profiling I found the major problem comes from the fracture block the main game thread. In order to fix that I made a complete refactoring ( precedent post ) which allow me to made a multi-threaded architecture using the UE4 threading system(FRunnable) 🙂 !

Now the game thread send fracture task to the fracture thread and watch for result.

Next time: fast real time convex approximation and partial fracture 🙂

Report 11 : Back from vacation !

Categories Dissertation

Recently back from vacation, I just finished the complete refactoring of the main fracture function giving now better performance 🙂 (See video below).

The new procedure is UObject-free so I can start working on mutli-threading and partial fracture will be easier to implement !

Report 10 : Cleanup code, partial fracture on the road

Categories Dissertation

Last week I past most of my time cleanup code and think about a stack system which will execute the fracture task on other thread in order to remove the render freeze 🙂 I will add this after the partial fracture ( Under construction) and the run-time mesh component test (Also to improve perfs ) .

dd54f56a-e864-4b63-af25-60c4143c912dTwo options added for partial fracture: the radius of impact and a Boolean to active it


32ca1f8d-8a86-4816-9b07-d3b14bcf60c3First tests of partial fracture !

I am also looking for a new method to compute the volumetric decomposition of the object to improve perf, I will talk about in a future post 😉

Report 9 : Iterative fracture, Pattern caching

Categories Dissertation

Today I add the recursive fracture which simply consist to be able to break a fragment from an already broken object 🙂
I also avoid the pattern generation at each fire and done it once at the begin of the game. Finally I shoot the first video of the run-time fracture(see below) ! 🙂

For the next time I will clean code and try to add a basic partial fracture system 🙂

Report 8 : First fracture

Categories Dissertation

After a lot of fighting and code refactoring, I finally apply a correct physic on each fragment ! The lag come from the Fracture pattern generation step(which is really expensive ), not from the fragment formation. 🙂

First fracture !

ue4editor_2016-12-04_14-08-21From another point of view 🙂

ue4editor_2016-12-05_00-45-32 UV conservation 

So next step will consist to cache the fracture pattern before the beginning of the game !

Report 7 : Fragment generation improvement

Categories Dissertation

Last days I add a cleaning step into the fragment procedure which consist to clean all co-planar facet of each voronoi facet before use them compute fracture fragments. Now I have clean fragments following each cells (in green below) without wrong face face normal’s. 🙂

ue4editor_2016-11-28_18-50-07 Fragment formation following the user generated voronoi cells

Actually I’m fighting with the Unreal physic system to make all fragment move…

Me trying to setup UE4 physic for the fragments tonight… 

Report 6 : User defined pattern, First fracture attempts

Categories Dissertation

Last day I made some big jump in my initial prototype road map  ! 🙂

Firstly, I developed the user defined pattern which allow the artist to draw his own fracture pattern based on a voronoi diagram  in Unreal. As you can see below, you can move, add or remove control point in real time. The blue lines draw the intermediate Delaunay triangulation which allow to compute without more calculation the dual Voronoi Diagram (in green).


2016-11-22_00-50-04Real time pattern edition interface in Unreal

ue4editor_2016-11-22_00-53-01New option for the fracture pattern

After developing the improved pattern generation, I started to wrote the most important procedure: the fracture. Below are the first results…No as expected but fun 🙂



ue4editor_2016-11-19_19-18-24First test of real time fracture ! 🙂

 The new generated fragments are not totaly following the fracture pattern, and there are also some problems with the new normal computed on the fly…I will investigate on it 🙂

Log 5 : Blueprint node,normal computation, Cell clipping…

Categories Dissertation

Hi there,

Last days I figured out some problematic bugs like the plane representation conflict between UE4 and CGAL. Now I successfully extract the plane normal from each voronoi cell facet which allow me to begin the development of the main fracture routine witch is the fragment construction !

ue4editor_2016-11-15_22-12-33The plane representation for debug

After computing the plane equation inside CGAL ( Based on this example), I make a blueprint library inside the fracture plugin to manage and debug all future BP function in real-time.



Some BP in the new blueprint lib…

Finally I start to wrote the fragment generation procedure I order to cut the target object following the fracture pattern. Here are some test in WIP…

ue4editor_2016-11-19_19-20-37 ue4editor_2016-11-19_19-18-45
irst attempt to generate the fracture fragments a runtime

Report 4 : Code refactoring, convex hull computation, plane equation

Categories Dissertation

I spend the last weekend fixing a dynamic linking bug in the CGAL plugin which prevented me from computing the convex hull of the voronoi cells… My mistake was loading the GMP and MPRF Dll’s as DelayedDLL and not in the startup module function while the module loading.

Me Sunday night…

After fixing that issue, I continued the fracture plugin development by refactor the voronoi region detection,  computing the convex hull of each cell then the plane equation of each cells plane.

b06c7d4b-1eb9-4b98-8462-ca136aac6febThe voronoi region convex hulls in wire-frame…

aa3073b9-d060-40af-a429-1229ed877ae5One voronoi region convex hulls in wire-frame…

Tomorrow : display and make plane inside UE4 in order to play with slice function. The problem it that CGAL and UE4 don’t have the same plane construction equation… To be continued 🙂