Changed default av_capsule_tilted to false in OpenSim master

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Changed default av_capsule_tilted to false in OpenSim master

justincc
Hi folks,

There was a bit of discussion last week in the OpenSim dev's office hour and on
irc that changing av_capsule_tilted = false in OpenSim.ini.example would be a
good idea in the master branch for avatar related physics for ODE.

I've now done this in a88a463b5021.  The results do appear to be better - my
avatar doesn't suffer so much from bendy leg syndrome or that sinking feeling.
You may want to try changing it yourself in OpenSim.ini if you haven't already
done so.

The same effect doesn't appear to apply to 0.6.7-post-fixes - avatar posture is
okay there with the 'true' setting.  But feedback through experimentation would
be welcome (on the whole I would prefer not to see this kind of change in a
'release' version though).

I'm a physics messenger here rather than a physics expert.  So if someone in the
core knows this is a bad idea please just change it back.

--
justincc
Justin Clark-Casey
http://justincc.org
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: Changed default av_capsule_tilted to false in OpenSim master

nlin-2
Hi,

2009/11/10, Justin Clark-Casey <[hidden email]>:
> There was a bit of discussion last week in the OpenSim dev's office hour and on
> irc that changing av_capsule_tilted = false in OpenSim.ini.example would be a
> good idea in the master branch for avatar related physics for ODE.

The av_capsule_tilted=false should generally be safe. Please let me
mention some general things to watch out for. These shouldn't be a
problem now, but were problems that I encountered and hopefully fixed:
1) Avatar falling through terrain
2) Extremely rapid changes of direction and movement could conceivably
cause the avatar capsule to become unstable.

Note that these items are refer to poor behavior in terms of the
physics engine itself (visualized with drawstuff), as opposed to ways
that poor behavior might manifest itself in the viewer (such as
bendy-knees).

Regarding 1, terrain collisions, reducing the avatar tilt seems to
increase the tendency of the avatar to fall through the terrain - this
has something to do with the ODE terrain collider, which I wasn't able
to fully debug - anyone wanting to give it a shot, let me know. As a
workaround, currently a small, experimentally-determined tilt is
maintained (even with tilt=false) to prevent falling through the
terrain. This isn't ideal, but seems to work well enough.

Regarding 2, rapid changing of avatar direction: The tilt rotates with
the avatar, snapped in 90-degree increments to one of  four directions
(NE,NW,SE,SW), so that the direction of the tilt always is opposite
the direction of movement. In other words, if your avatar is moving
forwards, the avatar is leaning slightly backwards. The reason the
tilt is rotated with the avatar is to reduce/remove
direction-dependent behavior, such as being only able to climb over
prims from a certain direction. The reason the tilt rotation is
snapped to 90-degree increments, instead of smoothly rotating with the
avatar, is to prevent extremely rapid changes in tilt orientation,
which is done by setting ODE motor stops. If you change ODE motor
stops too rapidly, the avatar capsule may "explode" and go flying
several hundred meters into the air. Conceivably, if your avatar
walked directly straddling a line facing northeast and constantly did
a zig-zag motion above and below the NE line, this could cause the
avatar orientation to change rapidly enough to cause avatar
instability. In practice I doubt that this will be an issue. (Still,
would be interesting to write a bot to try to provoke this behavior.)

More generally, however, this dynamically rotating tilt is not ideal.
I think there are 2 avatar physics issues that need further
investigation:

1. Removing the tilt completely instead of just reducing it. Currently
not workable because the terrain collider then allows the avatar
capsule to fall through sometimes. Fixing this would allow complete
consistency (direction-independence) in avatar physics behavior, close
avatar interactions like hugging, and no need for changing the motor
stops while the avatar is moving, reducing risk of explosion.

2. Allowing flexible height of steps that the avatar can step over.
Currently the bottom-most hemisphere of the avatar capsule always
drags against the terrain or any objects it collides with. This has
the limitation that the height of obstacles that can successfully be
stepped over cannot be directly tuned, as it depends indirectly on the
size of the hemisphere and the specifics of collision handling (things
like ERP, CFM, bounce). Ideally we would want to be able to directly
tune the height of "steppable" objects in OpenSim.ini, or perhaps have
this be different per avatar (dependent e.g. on the avatar height).
But it looks like we would probably have to implement a new avatar
physics mechanism to handle this flexibly: something like a floating
capsule, capsule+sphere, or using mesh collisions instead of primitive
capsules.

-nlin
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: Changed default av_capsule_tilted to false inOpenSim master

Zane Legion
Thanks for the explanation nlin. For me (on 0.6.7-post-fixes), tilted=false
solved the bendy knee issue and the feet partially underground issue,
although everyone now seems to float slightly above the ground.

I'll keep a lookout for the other two issues you mention.

Zane
--------------------------------------------------
From: "nlin" <[hidden email]>
Sent: Tuesday, November 10, 2009 12:37 PM
To: <[hidden email]>
Cc: <[hidden email]>
Subject: Re: [Opensim-users] Changed default av_capsule_tilted to false
inOpenSim master

> Hi,
>
> 2009/11/10, Justin Clark-Casey <[hidden email]>:
>> There was a bit of discussion last week in the OpenSim dev's office hour
>> and on
>> irc that changing av_capsule_tilted = false in OpenSim.ini.example would
>> be a
>> good idea in the master branch for avatar related physics for ODE.
>
> The av_capsule_tilted=false should generally be safe. Please let me
> mention some general things to watch out for. These shouldn't be a
> problem now, but were problems that I encountered and hopefully fixed:
> 1) Avatar falling through terrain
> 2) Extremely rapid changes of direction and movement could conceivably
> cause the avatar capsule to become unstable.
>
> Note that these items are refer to poor behavior in terms of the
> physics engine itself (visualized with drawstuff), as opposed to ways
> that poor behavior might manifest itself in the viewer (such as
> bendy-knees).
>
> Regarding 1, terrain collisions, reducing the avatar tilt seems to
> increase the tendency of the avatar to fall through the terrain - this
> has something to do with the ODE terrain collider, which I wasn't able
> to fully debug - anyone wanting to give it a shot, let me know. As a
> workaround, currently a small, experimentally-determined tilt is
> maintained (even with tilt=false) to prevent falling through the
> terrain. This isn't ideal, but seems to work well enough.
>
> Regarding 2, rapid changing of avatar direction: The tilt rotates with
> the avatar, snapped in 90-degree increments to one of  four directions
> (NE,NW,SE,SW), so that the direction of the tilt always is opposite
> the direction of movement. In other words, if your avatar is moving
> forwards, the avatar is leaning slightly backwards. The reason the
> tilt is rotated with the avatar is to reduce/remove
> direction-dependent behavior, such as being only able to climb over
> prims from a certain direction. The reason the tilt rotation is
> snapped to 90-degree increments, instead of smoothly rotating with the
> avatar, is to prevent extremely rapid changes in tilt orientation,
> which is done by setting ODE motor stops. If you change ODE motor
> stops too rapidly, the avatar capsule may "explode" and go flying
> several hundred meters into the air. Conceivably, if your avatar
> walked directly straddling a line facing northeast and constantly did
> a zig-zag motion above and below the NE line, this could cause the
> avatar orientation to change rapidly enough to cause avatar
> instability. In practice I doubt that this will be an issue. (Still,
> would be interesting to write a bot to try to provoke this behavior.)
>
> More generally, however, this dynamically rotating tilt is not ideal.
> I think there are 2 avatar physics issues that need further
> investigation:
>
> 1. Removing the tilt completely instead of just reducing it. Currently
> not workable because the terrain collider then allows the avatar
> capsule to fall through sometimes. Fixing this would allow complete
> consistency (direction-independence) in avatar physics behavior, close
> avatar interactions like hugging, and no need for changing the motor
> stops while the avatar is moving, reducing risk of explosion.
>
> 2. Allowing flexible height of steps that the avatar can step over.
> Currently the bottom-most hemisphere of the avatar capsule always
> drags against the terrain or any objects it collides with. This has
> the limitation that the height of obstacles that can successfully be
> stepped over cannot be directly tuned, as it depends indirectly on the
> size of the hemisphere and the specifics of collision handling (things
> like ERP, CFM, bounce). Ideally we would want to be able to directly
> tune the height of "steppable" objects in OpenSim.ini, or perhaps have
> this be different per avatar (dependent e.g. on the avatar height).
> But it looks like we would probably have to implement a new avatar
> physics mechanism to handle this flexibly: something like a floating
> capsule, capsule+sphere, or using mesh collisions instead of primitive
> capsules.
>
> -nlin
> _______________________________________________
> Opensim-users mailing list
> [hidden email]
> https://lists.berlios.de/mailman/listinfo/opensim-users
>
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users
Reply | Threaded
Open this post in threaded view
|

Re: Changed default av_capsule_tilted to false inOpenSim master

justincc
Zane Legion wrote:
> Thanks for the explanation nlin. For me (on 0.6.7-post-fixes), tilted=false
> solved the bendy knee issue and the feet partially underground issue,
> although everyone now seems to float slightly above the ground.

Yes, thanks very much for the insight, Norman.

>
> I'll keep a lookout for the other two issues you mention.
>
> Zane
> --------------------------------------------------
> From: "nlin" <[hidden email]>
> Sent: Tuesday, November 10, 2009 12:37 PM
> To: <[hidden email]>
> Cc: <[hidden email]>
> Subject: Re: [Opensim-users] Changed default av_capsule_tilted to false
> inOpenSim master
>
>> Hi,
>>
>> 2009/11/10, Justin Clark-Casey <[hidden email]>:
>>> There was a bit of discussion last week in the OpenSim dev's office hour
>>> and on
>>> irc that changing av_capsule_tilted = false in OpenSim.ini.example would
>>> be a
>>> good idea in the master branch for avatar related physics for ODE.
>> The av_capsule_tilted=false should generally be safe. Please let me
>> mention some general things to watch out for. These shouldn't be a
>> problem now, but were problems that I encountered and hopefully fixed:
>> 1) Avatar falling through terrain
>> 2) Extremely rapid changes of direction and movement could conceivably
>> cause the avatar capsule to become unstable.
>>
>> Note that these items are refer to poor behavior in terms of the
>> physics engine itself (visualized with drawstuff), as opposed to ways
>> that poor behavior might manifest itself in the viewer (such as
>> bendy-knees).
>>
>> Regarding 1, terrain collisions, reducing the avatar tilt seems to
>> increase the tendency of the avatar to fall through the terrain - this
>> has something to do with the ODE terrain collider, which I wasn't able
>> to fully debug - anyone wanting to give it a shot, let me know. As a
>> workaround, currently a small, experimentally-determined tilt is
>> maintained (even with tilt=false) to prevent falling through the
>> terrain. This isn't ideal, but seems to work well enough.
>>
>> Regarding 2, rapid changing of avatar direction: The tilt rotates with
>> the avatar, snapped in 90-degree increments to one of  four directions
>> (NE,NW,SE,SW), so that the direction of the tilt always is opposite
>> the direction of movement. In other words, if your avatar is moving
>> forwards, the avatar is leaning slightly backwards. The reason the
>> tilt is rotated with the avatar is to reduce/remove
>> direction-dependent behavior, such as being only able to climb over
>> prims from a certain direction. The reason the tilt rotation is
>> snapped to 90-degree increments, instead of smoothly rotating with the
>> avatar, is to prevent extremely rapid changes in tilt orientation,
>> which is done by setting ODE motor stops. If you change ODE motor
>> stops too rapidly, the avatar capsule may "explode" and go flying
>> several hundred meters into the air. Conceivably, if your avatar
>> walked directly straddling a line facing northeast and constantly did
>> a zig-zag motion above and below the NE line, this could cause the
>> avatar orientation to change rapidly enough to cause avatar
>> instability. In practice I doubt that this will be an issue. (Still,
>> would be interesting to write a bot to try to provoke this behavior.)
>>
>> More generally, however, this dynamically rotating tilt is not ideal.
>> I think there are 2 avatar physics issues that need further
>> investigation:
>>
>> 1. Removing the tilt completely instead of just reducing it. Currently
>> not workable because the terrain collider then allows the avatar
>> capsule to fall through sometimes. Fixing this would allow complete
>> consistency (direction-independence) in avatar physics behavior, close
>> avatar interactions like hugging, and no need for changing the motor
>> stops while the avatar is moving, reducing risk of explosion.
>>
>> 2. Allowing flexible height of steps that the avatar can step over.
>> Currently the bottom-most hemisphere of the avatar capsule always
>> drags against the terrain or any objects it collides with. This has
>> the limitation that the height of obstacles that can successfully be
>> stepped over cannot be directly tuned, as it depends indirectly on the
>> size of the hemisphere and the specifics of collision handling (things
>> like ERP, CFM, bounce). Ideally we would want to be able to directly
>> tune the height of "steppable" objects in OpenSim.ini, or perhaps have
>> this be different per avatar (dependent e.g. on the avatar height).
>> But it looks like we would probably have to implement a new avatar
>> physics mechanism to handle this flexibly: something like a floating
>> capsule, capsule+sphere, or using mesh collisions instead of primitive
>> capsules.
>>
>> -nlin
>> _______________________________________________
>> Opensim-users mailing list
>> [hidden email]
>> https://lists.berlios.de/mailman/listinfo/opensim-users
>>
> _______________________________________________
> Opensim-users mailing list
> [hidden email]
> https://lists.berlios.de/mailman/listinfo/opensim-users
>


--
justincc
Justin Clark-Casey
http://justincc.org
_______________________________________________
Opensim-users mailing list
[hidden email]
https://lists.berlios.de/mailman/listinfo/opensim-users