[Opensim-dev] Viewers Avatar Hover and Shape Hover

Cinder Roxley cinder at alchemyviewer.org
Tue Sep 24 16:53:09 UTC 2019


Your assertion appears to be correct given the history of the code. Legacy
baking was removed completely from the canonical Second Life codebase. It
was added back into V3 based viewers to support OpenSim. However, this was
years before The Avatar Hover Height cap was added, and it is likely the
baking code was never modified to compensate for the change.

When I get home this evening, I will review this for Alchemy and provide a
patch too Firestorm if necessary.


On September 24, 2019 at 11:44:13 AM, Leal Duarte (ajlduarte at sapo.pt) wrote:

Hi,

    Avatar Hover and Shape hover (parameter ID 11001) should be a
viewer side effect only.

    Most current viewers process them and store the result internally
on a old variable mAvatarOffset

    Then on llagent.cpp,   LLAgent::sendAgentSetAppearance() (or
identical function) they add that to the avatar body size calculated
from the skeleton information.

    This a problem, since 0.9.0.0, at least, that body size is used to
define the avatar size on its physics representation.

    Adding mAvatarOffset will turn it also a undesired physical change.

    If memory serves me well mAvatarOffset pre-dates hover offsets, and
was used only for small offsets, needed by avatar havok engine.

the code on some viewers reads: (from alchemy source)

    void LLAgent::sendAgentSetAppearance()

{

...

    // correct for the collision tolerance (to make it look like the
    // agent is actually walking on the ground/object)
    // NOTE -- when we start correcting all of the other Havok geometry
    // to compensate for the COLLISION_TOLERANCE ugliness we will have
    // to tweak this number again
    const LLVector3 body_size = gAgentAvatarp->mBodySize +
gAgentAvatarp->mAvatarOffset;
    msg->addVector3Fast(_PREHASH_Size, body_size);

...

last lines should be

...

const LLVector3 body_size = gAgentAvatarp->mBodySize;

msg->addVector3Fast(_PREHASH_Size, body_size);

...

possible just

...

msg->addVector3Fast(_PREHASH_Size, gAgentAvatarp->mBodySize);

...


    This code path is only used on non SSA regions , guess now only
OpenSim ones.


Regards;

Ubit (Leal Duarte)


_______________________________________________
Opensim-dev mailing list
Opensim-dev at opensimulator.org
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev


More information about the Opensim-dev mailing list