amore12
|
分享:
x0
|
[] CS配置ex_interp詳解
此文章轉載自大陸網站~
什麼是ex_interp呢?
ex_interp的工作原理就好像這樣。
首先,Interp的含義為interpolation(譯者註:插入畫格,下同)。
也就是說基本上,它往你的主機/網路之間插入封包,這個東西的引入令使用連接狀況比較差的用戶們仍然能夠進行遊戲。
插入畫格發生的原理如下:
我們比如說有10個畫格(顯示畫格或者說封包)顯示在你的螢幕上。如果你的ex_interp設置在0.1的話,就只有4畫格是實際出現的畫格,而其他的畫格為運算得出的畫格(譯者註:guessed,這裡意譯為運算畫格,其含義為猜測,由電腦模擬運算得出。下同)。
因此,它就像這樣(RF=實際畫格,GF=運算畫格)RF GF GF RF GF GF RF GF GF RF etc.其作用就是來填補破爛的連接狀況,這樣你才能從螢幕中看到平滑而漂亮的畫面據我的瞭解,在舊一些的版本的Netcode網路代碼中(以前的1.3),LPB(低ping的混蛋)會有好的狀況,因為他幾乎能收到所有的畫格,可以看到他因為能有好的連接而有好的畫格負載,然而HPB(高ping的混蛋)會得到少一些的畫格,螢幕會看起來一頓一頓的,打遊戲也不那麼容易。
所以,如果你想把你的ex_interp設定為一個更低的值,比如說0.01。這樣你會把10個畫格中的8個改變為真實畫格。RF RF GF RF RF GF RF RF GF
這樣的形容不是很貼切,總體上也不是很精確,不過至少能基本解釋是怎麼發生的。
不過到底ex_interp是不是一個違規參數呢?
ex_interp在cs1.6里面不是違規和作弊參數。
你不再可能把ex_interp設定為違規的參數了(下面解釋),原因是由於代碼上的一些小bug,在1.5和之前版本中是一個違規參數,你可以把它設定成很低的值,甚至你的服務器連接是不允許的(假設服務器預設它為0.1,即使你有明顯地企圖也能修改!),這樣會使hitbox產生不正確的表現,造就有利於一些修改ex_interp的configger。
在1.6中,這將被修正,因此當你嘗試把ex_interp改成0.01時,你會得到一個信息,你的設置會設定為16ms或者15ms(你把net_graph設成3的時候可以看見)。這是因為你的cl_updaterate對ex_interp 0.01來說設定得太低。
不過設置為0.01是最好的,因為Half-Life/CS會將它盡可能自動設定適合你的updaterate(也是發生在對於最好的設定的情況下)
嘗試把cl_updaterate設定為60,然後把ex_interp設為0.01,你會得到一個錯誤,表現為16ms。那麼現在把cl_updaterate設為100,然後把ex_interp設為0.01。
這是允許的,而不會給出一個錯誤的信息。
我的建議是把你的cl_updaterate,cl_cmdrate和rate盡量地與你的的連接相符,即你的連接方式能夠處理得了(比如cl_updaterate 101,cl_cmdrate 101和rate 20000就不會有任何的choke或者loss,譯者註:僅在lan比較適用)。
一旦你達到了你的連接的最佳方式,不論你的cl_updaterate如何,將把你的ex_interp設為0.01,cs然後就會按照你的cl_updaterate的值而設定ex_interp而不管你把它(ex_interp)自行設定為多低。運算等式是這樣的(對你的updaterate而言進行ex_interp的限制)最低的ex_interp值=1/cl_updaterate.(譯者註:cl_updaterate是主變量,所以應該放在等式的右邊。)
另外一點,如果你想你的cs更像「街頭混戰」一樣的話,用另外的話說平滑而無頓挫感,那麼我建議你將ex_interp設定為0.1。
不過如果你想你增加你的準確度的話(子彈打在你所實際瞄準的位置),那麼就把ex_interp設定到最低值。
|