Soft Tear

Become a member of the CGSociety

Connect, Share, and Learn with our Large Growing CG Art Community. It's Free!

Thread Tools Display Modes
  01 January 2013
Soft Tear

Hi all

I've been asked to show blood corpuscles being damaged and tearing. No problem breaking something up when its angular and rigid (rocks etc). But this is softer and the broken items need to have soft edges. Only way I can think of at present is pretty intensive. ie create a number of pre cut cells ( low res cylinders with dipped middles) and do morphs for each part, as it breaks.

Any other suggestions?
  01 January 2013
c4d cloth dynamics have a quite sophisticated tearing function. with some tweaking you
might get something out of it, which looks like a tearing softbody.
  01 January 2013

But no idea how to make the tear happen in a particle flow with other cells
  01 January 2013
you should have mentioned the particle aspect at the beginning. so i guess you do not
need any specific close ups, but just a larger cell 'surfce' where some cells are being
cracked open by incoming hostile particles ?
  01 January 2013
You got it -
sorry, you're right, should have mentioned it.

And from what I know understand - they are also hollow? (thin membrane)

Last edited by deepshade : 01 January 2013 at 05:27 PM.
  01 January 2013
hm, ok that changes everything. you are right, cloth would be not very suited for this.
a possible way to use cloth and cloth tearing would be :

  • create a polygonobject cotaining all cells

  • add a 100% vertexmap to that object

  • create a tp setup

  • get hold of the collision event vector between you hostile particles and the cell surface.

  • create a python node

  • pass the cell surface, the vertexmap tag and the collision vector to the python node

  • in the python node you will have to write the vertexmap data - set the vertexmap
    weight arround the collsion vector to zero. vertexmaps do not have a direct interface in
    python, you will have to use c4d.VariableTag. the last time i have written a vertexmap
    that way, has been r12/13 times. you should check first, if it still works that way.
    your code would be something like that.

floatList = vertexMapTag.GetAllHighlevelData()

for index in (cellSurface.GetPointCount() - 1):
	curVertexPosition = cellSurface.GetPoint(index)
	curDistance = abs((curVertexPosition - collisionEventVector).GetLenght())
	if ( curDistance < tearingRadius):
		# here you could add some more sophisticated tearing by blending the 
		# value arroud the collision center.
		floatList[index] = 0.0   


this will result in hostile particles punching holes into the cells (with swinging membran
surfaces). you would have to make sure, that your gravity is pointing into the correct
direction, but this will allow you a fully dynamic solution using clother colider tags to
reflect the punched 'out' cell parts.

but i also think you would be better of with a hand animated version and just start
the animation with the collision event.

Last edited by littledevil : 01 January 2013 at 04:39 PM.
  01 January 2013
Very helpful of you LD

will check this out

  01 January 2013
Any reason not to use a tearing cloth sim? Red blood cells, like all cells, are essential membrane bound entities with viscous fluid contents... In other words, the surface membrane would rip open, and the contents (mostly hemoglobin molecules, but also some cytoskeletal elements) would spill out. The cells would not "break into pieces" as they are not solid, homogeneous objects...

Unless, of course, this is meant to be apoptosis (programmed cell death, called eryptosis in RBCs), in which case the cell would actively break itself apart. In this case, the pieces would be roughly spherical, and metaballs would be the perfect vehicle for creating the effect...
  01 January 2013
just two things i forgot :

1. this kind of obvious, but the vertexmap is meant to be the tearing map for the clothtag

2. the c4d destructive behaviour mess. you will have to reset the vertexmap on frame zero,
as c4d isn't non destructive on xpresso level. this means all data will remain, once they have
been set. just create a script like the example above, check for frame zero and then set all
highleveldata to 1.0
  01 January 2013
Thanks again guys

Nick - Very helpful info
  01 January 2013
Thread automatically closed

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
CGTalk Policy/Legalities
Note that as CGTalk Members, you agree to the terms and conditions of using this website.
Thread Closed share thread

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Society of Digital Artists

Powered by vBulletin
Copyright 2000 - 2006,
Jelsoft Enterprises Ltd.
Minimize Ads
Forum Jump

All times are GMT. The time now is 10:14 PM.

Powered by vBulletin
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.