Hi Julio!
I assume you got your system going and are now back on the dev track
So, back to the topic on hand - have you had a chance to put together a tornado/coriolis demo?
Thanks!
Moderators: Sascha Willems, walaber
misho wrote:Hi Julio,
I'm hoping you'll have time to put together a Tornado example this weekend
Along the same lines, if you remember, a while ago we also spoke about implementing a method for applying a force to a body on a point other than its centre of gravity, something similar to a method already in Newton Dynamics:
- Code: Select all
void NewtonBodyAddImpulse( const NewtonBody* bodyPtr, const dFloat* pointDeltaVeloc, const dFloat* pointPosit)
This function forces a point on a body to achieve the specified instantaneous velocity. pointDeltaVeloc is the desired increase in velocity at point pointPosit.
Any chance you can take a look into implementing this as well?
thanks,
Misho
Julio Jerez wrote:Oh yes, Misho, I am so sorry about that.
let us do this I am about to close newton 3.14 and start 3.15 which will focus on three things.
1-It will recreate all project and all project will have the double config (done)
2-parallel solver for many cores CPUs
3-I will add the smart self balancing character
4-complete the particle system
5-eleborate more the vehicle system.
The part that I stop there demo was gravity tornado demo was because has no complete the particle system, I can of course do this with rigid bodies, but it will no be too impressive because rigid body are too expensive for that.
here is where the lien 2 of the list is important, because I will refactored the solver to use a new algorithm base on least constrained acceleration that allowed for joint set be resolve in parallel without having to reorganize then in batches, so that will let me do the demo with rigid bodies even if I do no have the particle.
Her is where I will use the tornado demos to show up the improvements.
is that ok?
void NewtonBodyAddImpulse( const NewtonBody* bodyPtr, const dFloat* pointDeltaVeloc, const dFloat* pointPosit)
void NewtonBodyAddForceAtPoint( const NewtonBody* bodyPtr, const dFloat* pointForce, const dFloat* pointPosit)
misho wrote:So basically something like:
Code: Select all
void NewtonBodyAddForceAtPoint( const NewtonBody* bodyPtr, const dFloat* pointForce, const dFloat* pointPosit)
Wouldn't that be simple to add?
JoeJ wrote:I don't think GPUs will or should die soon. Whenever you can parallelize a inner loop they are so much better than a CPU. CPU Simd can't compete with this. We would need a drastic change in CPU architecture with much more registers, an additional small cache level to serve as LDS, and high latency but large bandwidth access to memory.
JoeJ wrote:See at the bottom: http://newtondynamics.com/wiki/index.ph ... _engine%3F
Say you have an helicopter in real life, every one knows that to push the helicopter forward we need thrusters on each side
AddGlobalForce (Force, Point)
{
R = Point / BodyMatrix.Position;
Torque = CrossProduct (R, Force);
NewtonAddForce (Force)
NewtonAddTorque (Torque)
}
misho wrote:....However, I remember Julio specifically saying that is NOT how it should be done, and that he will implement it "correctly". I also remember you (JoeJ) arguing with Julio that this IS the correct and only way to implement it.
Julio Jerez wrote:if I said that, I was wrong, there are different way to do the same, and as long as you get the same torque and the same force it all you be fine.
I forgot about that heli help, do no worry about the helic, it is just a sample of how to apply forces at a point.
Users browsing this forum: No registered users and 4 guests