Prim flag to suppress interpolation of position, scale, and rotation
tracked
rhet0rica Resident
Although interpolation and movement smoothing are generally A Good Thing, there are many situations where it is distracting and undesirable behavior because the change represented is supposed to be instantaneous. In these cases, the visibility of the motion impinges on the convincingness of the situation, leading to either a threat to the user's suspension of disbelief (for objects in-world) or a reduction in the perceived quality of the product (mainly for HUDs.)
Personally, I find this happens a lot when repositioning HUD elements that were previously off-screen; particularly annoying are cases where the final state of an element is, due to rounding errors, imperfect. But it can also happen with in-world objects that are meant to suddenly appear or move, such as a door that snaps between open and closed positions (and unintentionally tweens through a space it shouldn't), or an "instant" forcefield that actually takes a half second to stretch to the intended size.
In these situations, interpolation causes "jank," which is not in-line with the goal of presenting users with a polished, modern virtual world.
The interface for this would probably be something like: llSetPrimitiveParams([PRIM_INTERPOLATE, <TRUE/FALSE>]);
which would default to TRUE. Ideally, if a child prim has PRIM_INTERPOLATE set to FALSE, then movement applied to the entire linkset would still cause interpolation for even that child prim.
If this is inconvenient to implement on a per-prim basis, then a simpler per-object basis (maybe a new llSetStatus flag?) would also be very usable.
Log In
Lucia Nightfire
I filed a similar request under BUG-4245 - Feature Request: Prim property for blocking client-side interpolation (positioning, rotating or scaling) plus LSL constants for llGetStatus() & llSetStatus()
Spidey Linden
tracked
Issue tracked. We have no estimate when it may be implemented. Please see future updates here.