• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-2429
Type: Meta Issue Meta Issue
Status: Open Open
Priority: Critical Critical
Assignee: Unassigned
Reporter: Aeron Kohime
Votes: 14
Watchers: 6
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

Havok4 Physical Collision Problems

Created: 29/May/08 06:41 PM   Updated: 03/Mar/09 07:13 PM
Component/s: Physics
Affects Version/s: 1.22.4 Server
Fix Version/s: None

Issue Links:
Relates


 Description  « Hide
In attempt to clean up and bring the attention to the problems, I am making a meta-issue sectioning off all the problems with Havok 4 collisions.

Reproduce basic physics failure.

1. Create a prim.
2. Resize the prim to 10x10x0.1
3. Rotate so that the thin side is facing you.
4. Fly towards and collide with the object.
5. 1 in 10 times you will pass entirely through the object.

This happens mainly when physical objects interact with static objects (objects that are physical but don't have physics turned on). This is very bad for secondlife militaries to just generally flying around your house when its laggy. Flying through the wall of your house and ending up outside is very annoying.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Aeron Kohime added a comment - 29/May/08 06:59 PM
I realize there we're problems with havok1, such as objects passing through others, but not at such slow speeds.

If you have any more issues to add relating to this, please add them.


Christophe003 Carter added a comment - 02/Jul/08 04:06 AM
Objects require a much lower velocity to act like phantom against , especially thin walls – much lower velocity then in havok1. And that is disturbing. — affects 1.22.4

Catten Carter added a comment - 02/Jul/08 05:44 PM
From what I can tell, its even more obvious on openspace sims.

Another example is to create a prim and use the collision event to tell you when you hit it (or fly through it using volume detect). I've noticed on our opensim that collision will be triggered up to 4-5 seconds after impact.


Maggie Darwin added a comment - 08/Jul/08 11:27 AM
The current rage for reselling Openspaces sims to people who don't understand what they are buying and who expect things to behave exactly as they do on mainland and private island sims is going to have severe repercussions down the road.

Escort DeFarge added a comment - 10/Jul/08 04:48 PM
I've upped this to critical as I've recently start falling through prim floors throughout SL. This issue thus affects the enjoyment of every resident from newb to oldie.

Cappy Frantisek added a comment - 10/Aug/08 08:48 PM - edited
Havok4 is really bad I can attest:

1. create large prim, 10x10x10
2. try to walk into, or fly and land on
3. you will collide and not interpenetrate
4. drag prim over your avatar position
5. you will interpenetrate the prim!

With Havok1 you would be "pushed" outside the object. You now remain inside. You can still leave the prim but it's not what I expected to happen.

edited to include following repo:

1. create a prim 5.0 x 5.0 x 1.0
2. try to interpenetrate, you can't
3. drag prim so you do interpenetrate
4. it will try to move you outside, when it can't it quits

Not good for all those collision scripted prims I think!


Aeron Kohime added a comment - 29/Aug/08 05:49 AM
In havok 4, prims seem to be more of a spungy bubble then havok 1's solid walls. You can force your way in and get stuck, forcing your way out again is harder then forcing your way in. Relatively slow physical objects pass through unmoving ones with ease, not even issuing a collision event on scripts. Meaning we need the physics engine to 'interpolate' prim positions, so scripts get what they need, and avatars stop ghosting through walls.

Is there a resistance/friction variable in the physics engine somewhere you can increase? Maybe one and a half to twice as much as we have now, that would be great. Unassisted flying avatars should not be able to 'drill' themselves into the interior of prims under any circumstances.

Also another error:
When you suddenly interpolate an object, such as when it is moved over you, you will be forced out the nearest side, this is good, unless the nearest side happens to be next to thin prim ground, in which case you will forced through the ground and end up below it. This happens in a number of areas. The thinner prim of the ground has a lesser 'get out' force and the larger object wins, forcing you underground instead of forcing you out a side into open space (the perferred).


Aeron Kohime added a comment - 29/Aug/08 05:53 AM
linking "Physical Objects fail to collide with Avatar at any appreciable Velocity"

Phillip Vought added a comment - 08/Dec/08 12:08 PM
This should be fixed in 1.25, retest and confirm after deployment?

Aeron Kohime added a comment - 03/Mar/09 03:47 PM
Still problems with collisions, htye have improved, but still at higher velocities you get stuck inside primitives, and objects pass through other objects and an object that collides with another object can 'collide' with an object behind that object even though it would of been stopped by the object in front.

Aeron Kohime added a comment - 03/Mar/09 03:48 PM
Also in lag you can fall through floors of elevators or other relatively slow moving physical objects. Not fixed.

Chalice Yao added a comment - 03/Mar/09 04:15 PM
A note:

The 'bug' of small objects passing through other objects at high speed will probably not be fixed.

This is not a bug per se, but the type of physics SL had even since Havok 1.
This is because SL does not use interpolated physics. Interpolated means that the physics engine takes the speed of each object, and calculates if it would hit other objects in the next frames, causing objects of any size and speed to do proper collisions.

This, however, is very very CPU intensive. SL Havok 4, according to Andrew Linden if I recall, even has a switch to enable this on a simulator, however it is turned off for all of them, due to the aformentioned CPU cost. Since SL simulators do not use any kind of hardware physics acceleration, this is bound to stay for a long time.

The way physics work right now is as follows:
A server have 45 frames per second. That means if an object moves at, say, 100m a second, it moves 100/45 = 2.2m per frame. It moves further per frame if the sim drops below the 45 frames per second limit due to performance stress.
Let's assume 45. if the object, in its motion, ends up directly in front of an object in one frame, it will be 2.2m further in the next. If it does not collide with the object in each of those frames, it will pass through. Think of the objects not fluidly moving, but changing positions by (meters per second)/45 every step. It's simple math.


Aeron Kohime added a comment - 03/Mar/09 07:13 PM
I understand the math, and the interpolation (probably using line mass interpolation, not brute force) probably adds up. Havok1 however did not have the issue of objects registering a collision on objects further along its path of movement if they had already been blocked by another object (obviously only if physical). This doesn't seem like much of a problem, but in damage enabled areas or in many of the non damage combat systems (that use collisions) it makes most shields or similar content completely useless.