网络抖动缓冲区-如何将缓冲的包映射到客户端当前时间

时间:2018-09-20 08:22:35

标签: client-server delay jitter

在客户端上读取软件包时,我想以稳定的速度执行它们。假设服务器以50毫秒的间隔发送软件包,然后我希望软件包也以50毫秒的间隔在客户端执行。

据我了解,您无法在收到软件包时执行它们。由于来自服务器的延迟可能会波动,因此会引起抖动。相反,您希望将这些程序包缓冲在延迟缓冲区中,并以设置的延迟执行它们。

Source Multiplayer Networking - Entity Interpolation

通过对软件包(图像中的快照)进行编号,可以很容易地对其进行缓冲。如果我以错误的顺序收到包裹,我仍然知道哪个包裹适合缓冲区中的哪个插槽,或者如果包裹丢失,很容易发现。

我的问题是-我如何知道如何将延迟缓冲区映射到当前客户端时间?

说这将是一部缓冲的电影,我可以将“当前阅读时间” 设置为我认为我会及时收到包裹的位置,这样我就不必停下来缓冲。我可以在缓冲区上设置一个任意点,然后以固定的时间间隔步进(与发送速率相同)。这不是我真正想要的,我想说的是我要在客户端当前时间之后100毫秒运行它,但是我不知道如何将包与当前渲染或客户端时间相关联。我如何知道缓冲区上的哪个时间点对应于100毫秒的时间延迟?

0 个答案:

没有答案