Jump to content

rbd


MENOZ

Recommended Posts

Hello.

I'm trying to understand how DOP works, and I tried to emit particles from impact.

It works fine, but I have some questions.

I attach the scene file.

1- In the RDB object I lowered the volume division so that the volume rapresentation would be a very approximative shape. If I look at the collisions it seems to respond to the shape of my object instead of penetrating through the plane surface. why this? shouldn't it use the volume rapresentation for calculate the collision? there is something that I misunderstood here?

2- If you look closely the first impact (and the succesives ones) of the geometry, you can see that the particles are emitted below the plane surface. why this?

3- in the particle locationPOP I used this expression to find the coordinates of the impact: dopfield("/obj/dopnet1","geo","Impacts", "Impacts",0,positionx)

the help says : dopfield(dop, objectSpec, subDataName, recordType, recordNum, fieldName)

for the recordNum as you can see I used the index 0, but In impact data in the details view I see that there are many others indexes, i guess they are others collision points.

Is there a way to cycle through all the collision points like using a local varible such as $ID or $PT ? Is this the way?

I hope you can help me!

rbd_particles.hipnc

Link to comment
Share on other sites

1: I don't know, I thought so as well. But my guess is it has to do with the sampling of the solver. Your geometry initially falls fairly fast, perhaps it can better detect when it is going to penetrate the surface.

2: This is definitely a sampling issue. There is a collision tolerance, but when the object (representative collision mesh) has penetrated the ground plane, there are no extra substeps being taken, so it registers a collision at that very moment.

3: Have a look at the hip file. A location pop is nothing more than a point in space. And a loop is a copy sop or a foreach.

I use the "add sop" to place a single point at the position of: dopfield("/obj/dopnet1","geo","Impacts", "Impacts",stamp("../copy1","cy",0),positionx)

Inside the copy sop I then define the amount of points with: dopnumrecords("/obj/dopnet1", "geo", "Impacts", "Impacts")

Inside the popnet I put a source down that emits from the first context. It's up to you if you want to reference extra information from dops to apply to every single point (atributeCreate between add and copy).

rbd_particles_02.hipnc

Link to comment
Share on other sites

1- In the RDB object I lowered the volume division so that the volume rapresentation would be a very approximative shape. If I look at the collisions it seems to respond to the shape of my object instead of penetrating through the plane surface. why this? shouldn't it use the volume rapresentation for calculate the collision? there is something that I misunderstood here?

The points (or edges if you choose "edges" in the surface tab) of your geo are used in collision detection in addition to the sdf.

There's a bit about that here in the docs.

Link to comment
Share on other sites

oh thank you so much!

yes, I solved the point 2 after a minute that i wrote on the forum, I didn't find that parameter :D

It's cool how you used the copy sop to get that information end stamp through the points.

But now I'm very confused: in the copySOP the "stamp inputs" is not enables, but it works anyways. WHY?? I thought that the checkbox was needed if I wanted to pass the stamp parameters on others nodes... can you explain me please?

thanks for tha advice about passing dop parameters(fields?) in Sop attributes.

mrice thanks for the clarification about collisions! I'll check the docs!

Link to comment
Share on other sites

It's cool how you used the copy sop to get that information end stamp through the points.

But now I'm very confused: in the copySOP the "stamp inputs" is not enables, but it works anyways. WHY?? I thought that the checkbox was needed if I wanted to pass the stamp parameters on others nodes... can you explain me please?

woops, stamp inputs should have been checked. The reason why it sort of works is because the other expressions are not directly linked to the copy number - probably the stamp() on the add sop actually failed to find the "cy" attribute and defaulted to 0. But in the record lookup of dops, record 0 exists, so it will return a position. You might just end up with several points being copied all on the position of record 0. So to be correct, just tick the checkbox.

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...