Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

To avoid camera jitter for moving objects, send all positions in the same Internet paquet #123

Open
Yichard opened this issue May 31, 2021 · 1 comment

Comments

@Yichard
Copy link

Yichard commented May 31, 2021

This issue marred my attempts to make trains with carriages, since 2015. The follower scripts worked, but the carriages were seen "frying" behind the loc, and I had to renounce. There also is a camera jitter when we are sitting on a vehicle and trying to click at something on the dashboard. It persist even with camera eye and camera lookat set.

The explanation comes from the random nature of Internet communication. For a single object, even when sent in a constant rate, positions are received at random times by the viewer, and the object jitters and can even be seem to jerk backward. There is not much we can do to that, as it would require a new Internet protocol with constant and minimum delays.

However in the case of several objects (the driver's camera counting as one object), there is a simple fix: send all positions in the same Internet paquet. That wont avoid the overall jitter, but at least the objects (and camera) will look fixed relative to each other. The overal jitter will remain, but it is less visible.

At this point, all depends on what paquets organisation the viewer is expecting. If there is, in short, one paquet per object, it will not work.

@zauberparacelsus
Copy link
Contributor

I will note that there is a limit on how much data can be sent in a single packet. But sending updates for multiple objects (esp. those part of a linkset) consolidated into a smaller number of packets would be doable.

IIRC, this or something like it is already supported in Second Life's protocols, and I think there was talk of implementing support for it in InWorldz prior to its closure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants