About joints.

Report any bugs here and we'll post fixes

Moderators: Sascha Willems, Thomas

Re: About joints.

Postby Dave Gravel » Fri Aug 31, 2018 4:01 pm

Here my video:
https://www.youtube.com/watch?v=gTca7i7wDro


I find it very fast and nice if I compare it with older newton version.
I'm not so sure how many more I get.
Sometime the collision seen to don't work, I have get a dContact solver error with the ide.
I have seen some capsules not colliding with other, Or the box not colliding when I try to broke down the stack.
I don't get the 60 stable but I find it very nice.

Edited:
Here a other video using the xbox app video recorder:
https://www.youtube.com/watch?v=XnR34k3GYoI


Without recording the results is a bit better and the simulation responding faster.
You search a nice physics solution, if you can read this message you're at the good place :wink:
OrionX3D Projects & Demos:
https://orionx3d.sytes.net
https://www.facebook.com/dave.gravel1
https://www.youtube.com/user/EvadLevarg/videos
User avatar
Dave Gravel
 
Posts: 800
Joined: Sat Apr 01, 2006 9:31 pm
Location: Quebec in Canada.

Re: About joints.

Postby Julio Jerez » Fri Aug 31, 2018 5:18 pm

ah nice, the optimization goes to the scene management, the solver will still take the same time for complex stacks.Basically its meant to help on scene with lot of objects that are not stack.
we test with stacks but that just for fun, I do no know of any app where stack are part of the design.

You can see that the slow down happens when the large stack is touch but as soon as if start to go down then the fps goes up.

Sometime the collision seen to don't work, I have get a dContact solver error with the ide.
I have seen some capsules not colliding with other, Or the box not colliding when I try to broke down the stack.


Code: Select all
void dgBroadPhase::UpdateBody(dgBody* const body, dgInt32 threadIndex)
{
   if (m_rootNode && !m_rootNode->IsLeafNode() && body->m_masterNode) {
      dgBroadPhaseBodyNode* const node = body->GetBroadPhase();
      dgBody* const body1 = node->GetBody();
      dgAssert(body1 == body);
      dgAssert(!body1->m_equilibrium);
      dgAssert(!node->GetLeft());
      dgAssert(!node->GetRight());
      dgAssert(!body1->GetCollision()->IsType(dgCollision::dgCollisionNull_RTTI));

      const dgBroadPhaseNode* const root = (m_rootNode->GetLeft() && m_rootNode->GetRight()) ? NULL : m_rootNode;
      
      for (dgBroadPhaseNode* parent = node; parent && parent->m_isSleeping; parent = parent->m_parent) {

[color=#FF4000]// this should be an atomic write, or else [/color]
         parent->m_isSleeping = 0;
      }


I will fix it tonight, I was hopping that all write where guarantee, but that is not the case if
there is also another place where I nee to make sure the value is change as intended.
I let like that to see how severe it is, because if it is rare then is can be doen incrementally, but if is happen a lot the it nee a brute force pass. It seems to be mild so I will try an incremental updated
Julio Jerez
Moderator
Moderator
 
Posts: 12249
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: About joints.

Postby Dave Gravel » Fri Aug 31, 2018 5:43 pm

This is where the ide have stop when I have get the error.
https://sites.google.com/site/evadlevarg/err.png

Yes the optimization seen to work pretty good.
Like I have say before when I don't record the cpu seen more responsive too.
I can see the diff from older newton version, and I have do many tests about stack box and large contacts count process and I can say the result and collisions sorting from newton is amazing.

Edited:
I have a personal off-topic question:
Do you think to re-enable the old custom collision system or something similar ?
To get the control over the collisions system and contact points, for custom use and custom collisions implementation.
Or it is already possible to do similar with the current engine function ?
Or it is to much complex to mix with multithreads ?

Thanks.
You search a nice physics solution, if you can read this message you're at the good place :wink:
OrionX3D Projects & Demos:
https://orionx3d.sytes.net
https://www.facebook.com/dave.gravel1
https://www.youtube.com/user/EvadLevarg/videos
User avatar
Dave Gravel
 
Posts: 800
Joined: Sat Apr 01, 2006 9:31 pm
Location: Quebec in Canada.

Re: About joints.

Postby Dave Gravel » Sat Sep 01, 2018 7:02 am

Hi Julio, here some more stack tests.
If you like to watch it.

https://www.youtube.com/watch?v=XqiYLl6JNc0
You search a nice physics solution, if you can read this message you're at the good place :wink:
OrionX3D Projects & Demos:
https://orionx3d.sytes.net
https://www.facebook.com/dave.gravel1
https://www.youtube.com/user/EvadLevarg/videos
User avatar
Dave Gravel
 
Posts: 800
Joined: Sat Apr 01, 2006 9:31 pm
Location: Quebec in Canada.

Re: About joints.

Postby Julio Jerez » Sat Sep 01, 2018 11:03 am

man that's really cool.
In one scene you have a 75 x 75 pyramid, and it state put even for a while after the ball punched a hole in it, that was the slower but very nice.
I have never even try a 50 x 50 stack for teh fear that will be unstable and I will start thinking why.

then I saw you have over 50 thousand small pyramid mayhem of destruction, and still run at interactive time. :mrgreen: :D :shock: 8) :mrgreen:

I will no fix the bugs and see what we move next, probably the vehicle.
Julio Jerez
Moderator
Moderator
 
Posts: 12249
Joined: Sun Sep 14, 2003 2:18 pm
Location: Los Angeles

Re: About joints.

Postby Dave Gravel » Sun Sep 09, 2018 12:58 pm

I have finally find the true reason why my tire overpass the joint rotation spin limit.
It is because I set my tire with NewtonBodySetLinearDamping, NewtonBodySetAngularDamping set to zero.
It make the tire become totally free to spin without limit.

The tire simulation work ok without NewtonBodySetLinearDamping, NewtonBodySetAngularDamping but the tire spin rotation is a lot more limited.

The vehicle simulation is a lot better with NewtonBodySetLinearDamping, NewtonBodySetAngularDamping set to zero.
You search a nice physics solution, if you can read this message you're at the good place :wink:
OrionX3D Projects & Demos:
https://orionx3d.sytes.net
https://www.facebook.com/dave.gravel1
https://www.youtube.com/user/EvadLevarg/videos
User avatar
Dave Gravel
 
Posts: 800
Joined: Sat Apr 01, 2006 9:31 pm
Location: Quebec in Canada.

Previous

Return to Bugs and Fixes

Who is online

Users browsing this forum: No registered users and 3 guests

cron