We've had linear and angular drag parameters in the RelativisticObject mechanics before, (not currently,) but these lead to a viw setter call every frame. Because optical coordinates (as seen by the player) and speculative "world" coordinates (as seen by a static, stationary observer at infinity) are both tracked and routinely converted between for mechanics, setting viw to a different value involves an expensive but necessary conversion to optical coordinates and back, and we should avoid updating viw at every frame.
Our Rindler demo definitely feels like it's missing friction, though, and it is. The difference between friction and drag, in this case, is the Unity Rigidbodydrag is calculated every frame, when not sleeping, whereas friction will initiate only when the RelativisticObject contacts another surface with friction, commonly leading to a "sleeping" state in short time, in which case no viw update will happen.
We've had linear and angular drag parameters in the
RelativisticObject
mechanics before, (not currently,) but these lead to aviw
setter call every frame. Because optical coordinates (as seen by the player) and speculative "world" coordinates (as seen by a static, stationary observer at infinity) are both tracked and routinely converted between for mechanics, settingviw
to a different value involves an expensive but necessary conversion to optical coordinates and back, and we should avoid updatingviw
at every frame.Our Rindler demo definitely feels like it's missing friction, though, and it is. The difference between friction and drag, in this case, is the Unity
Rigidbody
drag is calculated every frame, when not sleeping, whereas friction will initiate only when theRelativisticObject
contacts another surface with friction, commonly leading to a "sleeping" state in short time, in which case noviw
update will happen.