# Cacks

Member

445

179 Neutral

• Rank
Member

• Role
Programmer
• Interests
Design
Programming

## Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

1. ## Angular Friction

@Randy Gaul, I've been experimenting with your suggestion. I can get 2 normals by using the collision's reference face. I am getting linear movement due to angular momentum but the momentum doesn't decrease correctly. The linear movement of objects sliding on surfaces is impeded, the backward impulses are too large. @Dirk Gregorius, I don't understand the equations. For linear friction I can get the current normal of the collision. For tangent normals I can get these using the collision's reference face. What is circular clamping & warm starting?
2. ## Angular Friction

@Randy Gaul, I had a quick go using the normal response with 1 tangent; didn't work out, I will investigate further, cheers
3. ## Angular Friction

Checked up Coloumb friction, I've implemented linear friction using this approach already I have Erin Catto's Iterative Dynamics paper you guys mentioned before I can see the 2 Friction Constraints equations but don't understand them yet
4. ## Angular Friction

@Dirk Gregorius, the constraints based methods seem complicated or am I making a mountain out of a molehill?
5. ## Angular Friction

Hi, how do I calculate angular friction between my polyhedra? I have contact points My engine doesn't incorporate angular friction so spinning objects don't move linearly if they spin on surfaces & angular momentum doesn't decrease, cheers
6. ## Combine 2 Physics objects

@Scouting Ninja my main reference book is 'Essential Mathematics for Games and Interactive Applications' + information from the internet I considered using 'Bullet SDK' for my physics but the documentation was lacking so I decided to build my own physics engine
7. ## Combine 2 Physics objects

I think I found an answer: I physically separate the objects based on penetration depth It seems to work ok atm I'm not using Unity, I'm writing it in C++
8. ## Combine 2 Physics objects

@JoeJ Its a 3d game, angled view, polyhedra as bounding volumes, impulse collision response, collision manifolds, 3d physics but I lock rotations about the Y axis, the movement is realistic but the graphics is not
9. ## Combine 2 Physics objects

@JoeJ, I have to do it in the physics engine I need the player to rotate & bounce if the stick hits the walls or the stick pushes the puck through the walls
10. ## Combine 2 Physics objects

I am making a hockey like game So far in my Physics Engine I use 1 polyhedron to describe my physics objects I have the players' bodies working ok but now I have to add the sticks What technique should I use to combine these 2 objects in my physics engine?
11. ## Moving characters

Hi, I create Normalised Device Coordinates (NDCs) from my mouse input. I want to use these coords to move my characters If I convert these coords to Force my characters will accelerated infinitely & they won't have max velocities What do I convert my NDCs to to achieve this? cheers
12. ## Updating Orientation with Angular Velocity

I've tried simulating angular friction by defining an angular deceleration but my code is giving odd results My math must be wrong? Vector3<float> newAngMo(obj->getAngularMomentum() + obj->getTorque() * seconds); Vector3<float> newAngVel(obj->getInverseInertiaTensor().transform(newAngMo)); if (newAngVel.isNotZeroVector()) { Vector3<float> frictionDecel(-newAngVel.normalisedVersion() * Math<float>::PI); Vector3<float> frictionTorque(Movement::torque(obj->getInertiaTensor(), frictionDecel)); Vector3<float> frictionAngMo(frictionTorque * seconds); Vector3<float> postFrictionAngMo(newAngMo + frictionAngMo); Vector3<float> postFrictionAngVel(obj->getInverseInertiaTensor().transform(postFrictionAngMo)); if (postFrictionAngVel.isZeroVector() || newAngVel.normalisedVersion().dotProduct(postFrictionAngVel.normalisedVersion()) < 0.0f) { newAngMo = Vector3<float>(); newAngVel = Vector3<float>(); } else { newAngMo = postFrictionAngMo; newAngVel = postFrictionAngVel; } } obj->setAngularMomentum(newAngMo); obj->setAngularVelocity(newAngVel);
13. ## Updating Orientation with Angular Velocity

@Fulcrum.013, angular_velo﻿city = inverse_inertia_tensor * angular_momentum
14. ## Updating Orientation with Angular Velocity

@alvaro, something like this would be sufficient but I'd rather define the angular deceleration, times it by the inertia tensor & that would give torque I could minus torque * dt from the angular momentum then get the angular velocity
15. ## Updating Orientation with Angular Velocity

@Dirk Gregorius, how do others handle rotational friction? My objects are locked to rotate around the Y axis but they are spinning like crazy & won't stop