Latest Threads |
Broken scripts with updat...
Forum: Obi Rope
Last Post: hariedo
Yesterday, 10:35 AM
» Replies: 0
» Views: 38
|
Garment explodes on Andro...
Forum: Obi Cloth
Last Post: CptnFabulous
19-12-2024, 07:16 AM
» Replies: 4
» Views: 663
|
Calculating and Reproduci...
Forum: Obi Fluid
Last Post: ZacharyP
18-12-2024, 05:49 PM
» Replies: 2
» Views: 760
|
Null Reference, actor not...
Forum: Obi Rope
Last Post: josemendez
13-12-2024, 12:39 PM
» Replies: 1
» Views: 159
|
Issue with Grasping ObiRo...
Forum: Obi Rope
Last Post: josemendez
12-12-2024, 12:00 PM
» Replies: 5
» Views: 454
|
Changing extruded rendere...
Forum: Obi Rope
Last Post: aderae
10-12-2024, 07:35 PM
» Replies: 2
» Views: 240
|
Baking a rope is causing ...
Forum: Obi Rope
Last Post: josemendez
10-12-2024, 11:06 AM
» Replies: 6
» Views: 650
|
Barrier belt - changing l...
Forum: Obi Rope
Last Post: josemendez
10-12-2024, 10:42 AM
» Replies: 1
» Views: 214
|
Path editor gizmo's appea...
Forum: Obi Rope
Last Post: josemendez
10-12-2024, 09:50 AM
» Replies: 1
» Views: 212
|
Problems when using multi...
Forum: Obi Cloth
Last Post: Cat3Man
09-12-2024, 03:17 AM
» Replies: 2
» Views: 288
|
|
|
Trying to render bubbly foam |
Posted by: Barliesque - 17-07-2024, 12:11 AM - Forum: Obi Fluid
- Replies (3)
|
|
I'm working on creating an effect where sudsy white foam pours down from the ceiling to the floor. Here's a look at what I've got so far:
It's pretty close to what I'm after, but there are a couple of things yet I need to be able to control:
- The total number of particles per emitter seems to be restricted to 1000, making it problematic for the foam to pour down continuously rather than in bursts.
- I'd also like to be able to adjust the shininess of the liquid renderer. The Obi Fluid Renderer doesn't seem to do anything--I can remove it entirely, and everything stays the same.
|
|
|
Question About Collision Impulse |
Posted by: wenhao_zheng - 16-07-2024, 08:24 AM - Forum: Obi Softbody
- Replies (5)
|
|
Hi!
Under your guidance, I was able to clamp the soft body with the rigid body. This effect is very good and meets our needs.
In our further requirements, we hope to use ArticulationBody to replace Rigidbody. In fact, ArticulationBody does not seem to be compatible with Obi.
Therefore, I hope to simulate the reaction force of the soft body in physical collision, so as to manually apply the reaction force to ArticulationBody.
In the collision-related documents, it is mentioned that developers can obtain the impulse of the collision.
For the above purpose, I collected this impulse information in the collision callback.
In my previous attempt, I directly used the impulse as the reaction force of the collision, but it seems that this is not the case.
I would like to ask if there is a way to convert the collision impulse into a reaction force.
Sorry, my physics is not very good. Thank you for your help.
|
|
|
Burst not installed? |
Posted by: Barliesque - 16-07-2024, 01:16 AM - Forum: Obi Fluid
- Replies (6)
|
|
I'm getting pretty poor performance, which I'm guessing is due to Burst apparently not being active.
The BurstCollisionWorld script is disabled because OBI_BURST is undefined. I see that the Obi asmdef defines it, as long as the installed version of Burst is at least 1.2.3-verified. Burst 1.8.12 is installed in the project, so I don't understand what the issue is. Any help would be greatly appreciated!
|
|
|
Bug of particle sleep |
Posted by: GuoliZheng - 12-07-2024, 06:02 AM - Forum: Obi Fluid
- Replies (2)
|
|
Dear Developers,
I have encountered a bug related to particle sleeping, which has caused significant issues in my application scenario. As demonstrated in the video, I initially set the sleep threshold value to 0.5. When particles are emitted at a low height, they correctly enter a sleep state. However, when the emission height is increased, the particles fall to the ground and exhibit slow creeping movements. At this point, I have to increase the sleep threshold to 10 to get them to sleep. The higher the velocity the particles experience during activity, the harder it is for them to sleep, which seems unreasonable.
My particles have a relatively small radius of 0.01m. However, this issue also occurs with larger particles, such as those with radii of 0.03m, 0.05m, and 0.08m. Could you please explain why this happens and how it can be resolved? The burst solver back end also shows this issue, although to a lesser extent.
I look forward to your response.
Best regards,
bug video:↓
https://www.bilibili.com/video/BV1kebHec...782833d31a
|
|
|
Usage of particle position variables |
Posted by: wenhao_zheng - 11-07-2024, 03:12 PM - Forum: Obi Softbody
- Replies (3)
|
|
hi!
①
I see multiple variables about particle coordinates in IkSolver. They are: positions, restPositions, prevPosition, startPosition.
What is the specific update time for them?
②
In my case,I used two rigid bodies to try to lift the soft body.
Since I can't lift the soft body directly through friction, my design is to use collision detection to update the positions of the particles on the contact surface, so that the outer wall of the soft body is lifted by the rigid body.
For example, as shown in the following code, when OnObiCollision, the y component change of the rigid body is provided to the colliding particles. Although this implementation can make the soft body shake slightly, it still cannot be lifted completely.
If my code implementation is correct, I don't quite understand this problem. In my code, shouldn't the contact surface of the soft body be completely at the same height as the rigid body?
Code: public void OnObiCollision(ObiSolver solver, ObiNativeContactList contacts)
{
collisionnParticleSolverIndexes.Clear();
leftCollisionParticleSolverIndexes.Clear();
rightCollisionParticleSolverIndexes.Clear();
for (int index = 0; index < contacts.count; index++)
{
Oni.Contact contact = contacts[index];
int particleIndexInSolver = solver.simplices[contact.bodyA];
ObiColliderBase collider = colliderWorld.colliderHandles[contact.bodyB].owner;
if (collider.transform == leftClaw)
{
leftCollisionParticleSolverIndexes.Add(particleIndexInSolver);
}
else if (collider.transform == rightClaw)
{
rightCollisionParticleSolverIndexes.Add(particleIndexInSolver);
}
}
isBind = leftCollisionParticleSolverIndexes.Count + rightCollisionParticleSolverIndexes.Count > 400;
if (isBind)
{
float leftClawHeightOffset = leftClaw.transform.position.y - leftClawHeightBuffer;
float rightClawHeightOffset = rightClaw.transform.position.y - rightClawHeightBuffer;
for (int index = 0; index < leftCollisionParticleSolverIndexes.Count; index++)
{
int particleIndex = leftCollisionParticleSolverIndexes[index];
solver.positions[particleIndex] = solver.startPositions[particleIndex] + new Vector4(0, leftClawHeightOffset, 0);
solver.velocities[particleIndex] = Vector4.zero;
solver.angularVelocities[particleIndex] = Vector4.zero;
solver.externalForces[particleIndex] = Vector4.zero;
solver.externalTorques[particleIndex] = Vector4.zero;
}
for (int index = 0; index < rightCollisionParticleSolverIndexes.Count; index++)
{
int particleIndex = rightCollisionParticleSolverIndexes[index];
solver.positions[particleIndex] = solver.startPositions[particleIndex] + new Vector4(0, rightClawHeightOffset, 0);
solver.velocities[particleIndex] = Vector4.zero;
solver.angularVelocities[particleIndex] = Vector4.zero;
solver.externalForces[particleIndex] = Vector4.zero;
solver.externalTorques[particleIndex] = Vector4.zero;
}
}
leftClawHeightBuffer = leftClaw.transform.position.y;
rightClawHeightBuffer = rightClaw.transform.position.y;
}
By the way, in addition to modifying the positions of the contact surface particles during the collision callback, I also tried to provide the particles with additional upward velocity. But I always feel that the particles on the contact surface seem to be given a downward momentum at some point in some way I don't know.
While retaining gravity, I hope to find a way to present the effect of the soft body being stably fixed in the air by external forces. To be honest, the effect I expected is like ObiParticleAttachment, but due to some project reasons, I can't use ObiParticleAttachment.
|
|
|
|