# Ripple Effect

 08 August 2003 nofriends_1985 New Member Student Ripple Effect Hello, I was wondering how i could get particles to collide with a surface and make a ripple effect? share quote
 08 August 2003 minos365 Veteran portfolio minos yu shanghai, China i ask this question before, he tell me use collisionU and collisionV to know where particle hit surface, and then use fluid effect to do the effect i know this first but i dont know this second share quote
 08 August 2003 nofriends_1985 New Member Student mmm... yer i know what you mean i know how to do the first part but i dont know how you can get the ripple with fluid effects... i was thinkin of somekind of soft body simulation share quote
 08 August 2003 minos365 Veteran portfolio minos yu shanghai, China if i use softbody,it need a lot of point, it too slow share quote
 08 August 2003 Duncan Expert   Duncan Brinsmead Principal Scientist Autodesk Canada Once you have the uv point on your surface you can emit into that uv position on a fluidTexture2d(applied presumably as a displacement map). To get a ripple simulation set the fluid solver to "spring mesh". In your particle runtime expression you can determine the grid index at the collision point by dividing the uv by the grid resolution uv. // assuming you have defined the variables collideU +V // if the particle collides do the following: int \$dropSize = .5; // depth of ripple to create int \$indexU = \$collideU/(float)fluidTexture2DShape1.resolutionH; int \$indexV = \$collideV/(float)fluidTexture2DShape1.resolutionW; setFluidAttr -xi \$indexU -yi \$indexV -at density -ad -fv \$dropSize fluidTexture2DShape1; The above adds in a density to the fluid texture at the particle collide location which will generate a ripple at that point. I'm assuming that your code already initializes a colldeU and V variable and that you have created a texture called fluidTexture2DShape1 that is assigned to the same surface being collided with. Duncan share quote
 08 August 2003 minos365 Veteran portfolio minos yu shanghai, China hi Duncan i try,but it dont work,i dont know what is wrong. i attach maya file,can you tell me what is wrong. thanks share quote
08 August 2003
Thanx Duncan...

hey minos365

it took me a few hours but i got it to work with the following code :

float \$colU = particleShape1.collisionU;
float \$colV = particleShape1.collisionV;
int \$dropSize;
int \$indexU;
int \$indexV;

if (\$colU > 0)
\$dropSize = 1; // depth of ripple to create
\$indexU = (float)fluidTexture2DShape1.resolutionH*\$colU;
\$indexV = (float)fluidTexture2DShape1.resolutionW*\$colV;
setFluidAttr -xi \$indexV -yi \$indexU -at density -ad -fv \$dropSize fluidTexture2DShape1;

there is probally a lot better way of writting this code but i am new to mel and this was the best i could do. One thing that you have to make sure of is that the UV of your nurbs mesh lines up with the XY or hight width of your fluid texture. I had a look at your scene file and you should lie your fluid texture on top of your nurbs mesh easier to see whats happening
Attached Images
 ripple.jpg (9.7 KB, 129 views)

 08 August 2003 minos365 Veteran portfolio minos yu shanghai, China thanks i will try share quote
 09 September 2003 stallion151 constipated CG   M Australia i think u should change those int values to float values. share quote
 09 September 2003 Duncan Expert   Duncan Brinsmead Principal Scientist Autodesk Canada Oops! Yes I meant float for dropSize (the indices are ints, however). Duncan share quote
 09 September 2003 nofriends_1985 New Member Student Duncan Duncan... thanx for all your help you sure know your stuff!!!! i couldnt think of anyway of doing it. but your fluid Effects is great and not to system hungry i was wonder if you mind if i write a tutorial on how to make ripples? share quote
 09 September 2003 Duncan Expert   Duncan Brinsmead Principal Scientist Autodesk Canada How could I possibly mind you writing a tutorial? We need more fluids tutorials! Duncan share quote
 01 January 2006 CGTalk Moderation Expert 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. share quote

 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 CGSociety Society of Digital Artists www.cgsociety.org Powered by vBulletinCopyright ©2000 - 2006, Jelsoft Enterprises Ltd.