欢迎光临散文网 会员登陆 & 注册

关于csgo的cl_interp和cl_interp_ratio参数的说明

2022-04-16 01:04 作者:Sp1ke_C  | 我要投稿

鉴于有很多人还不明白这两个参数的原理,关于这两个参数的理解和解释并不太准确,所以发个专栏说明一下。

首先贴一个链接,关于这两个参数以及其他的一些参数(如net_graph栏的各个参数)的详细说明见https://pastebin.com/2bBFijFY该链接。

简而言之,这两个参数实际上都是用来控制插值时间(有关插值时间和延迟补偿的概念请参考BV1tE411L7YF。但不同的是,cl_interp是以秒为单位的,cl_interp_ratio是以帧为单位的。csgo的默认设置为interp 0.03125和ratio 2,在64tick下,ratio 2转换为时间度量应该是1/64*2=0.03125,也就是说两个参数默认设置是等价的,均使插值时间为0.03125s。但当两个参数设置不等价时怎么办?比如interp设置为0.03125,ratio则为1,此时ratio 1转换为时间度量应该是1/64=0.015625s,明显为0.03125的一半,即只延后1帧。csgo的做法是使用一个max(cl_interp, cl_interp_ratio)函数(均转换成时间度量)去选择两者中较大的,也就是说两个参数中只有大的那个值会生效。那么前面的例子中,插值时间应该由cl_interp 0.03125来控制,在64tick下还是延后两帧。

需要说明的是interp的范围为0.0078125-0.031。当interp设置为0时取下限0.0078,刚好对应128tick下1帧的时间;interp为1时取上限。当cl_interp设置为0时,可以保证任意情况下起作用的都是cl_interp_ratio参数。实际上ratio这个参数就是恰恰是设计来替换interp的,以帧数来设置也更合理方便一些。

综上所述,这两个参数的通用调法应该是cl_interp 0和cl_interp_ratio 1或2(视个人网络而定),通常情况下推荐使用2。如此一来我们就不需要根据服务器的tick数调来调去,也能达到统一延后两帧的效果。

关于csgo的cl_interp和cl_interp_ratio参数的说明的评论 (共 条)

分享到微博请遵守国家法律