您的位置: 單機 > 攻略 > 圖文攻略 > 攻略詳情

[反恐精英]ex_interp參數(shù)中文最詳解釋

時間:2005-10-28 15:40:44
  • 來源:Pacifichawk
  • 作者:不死鳥
  • 編輯:ChunTian
0

已知:

1. ex_interp設置為0即為一個開關,作用是ex_interp開始根據(jù)你的cl_updaterate數(shù)值進行全自動調校,我們可以認為,此時的ex_interp實際值即為valve的推薦值,也是理論上最適合的值。

2.cl_updaterate 的概念為每秒從服務器接受的數(shù)據(jù)包數(shù)量。這個數(shù)值能否正常發(fā)揮其作用,取決于2個方面,一個是服務器的FPS是否大于你的cl_updaterate數(shù)值,一個是服務器端是否設置了sv_maxupdaterate 大于或等于你的cl_updaterate數(shù)值。

3.ex_interp的實際數(shù)值決定了插值運算的強度,ex_interp越小,在你看到一個人的完整運動軌跡之中,由插值運算所產生的比例越小。

4.ex_interp的數(shù)值(0.1,0.01等)實際上可加上一個單位s,其實0.1就代表0.1秒。

我們來對比一下兩種情況下cl_updaterate和ex_interp的關系。

當cl_updaterate 為100時 ,ex_Interp最佳值為0.01 即0.01s=10ms

當cl_updaterate 為10時, ex_interp最佳值為0.1即0.1s=100ms

我們可以注意到,第一種情況,100X10=1000ms,第二種情況10X100=1000ms。

而1000ms=1秒。你可以試一下別的數(shù)值,最后的乘積一定也是1000ms。

注意到cl_updaterate為每秒從服務器接受的數(shù)據(jù)包數(shù)量。

所以我們可以這么解釋,當客戶端每接收到一個數(shù)據(jù)包之后,可以確定一次你的對手的真實位置。自你接收到第一個數(shù)據(jù)包開始xxms之內,你看到的對手運動軌跡為插值計算所得,這個xx=ex_interp的數(shù)值。舉例說明,當clupdaterate 為100時,每隔1/100=10ms你接收到一個數(shù)據(jù)包,所以ex_interp 設置為10ms為最合適的數(shù)值;因為剛好10ms之后你又能收到第二個數(shù)據(jù)包,從而完美的實現(xiàn)銜接過程。同理cl_updaterate為10時,ex_interp=0.1就是最佳的數(shù)值。

現(xiàn)在我們來用目前爭議最大的wNv和Fnatic的戰(zhàn)斗過程來舉例:

Fnatic 的設置:

cl_updaterate=100,ex_interp=0.01=10ms

wNv(或者說wNv-Kin'z)的設置:

cl_updaterate =100,ex_interp=0.1=100ms

兩者都是每秒接收到100個數(shù)據(jù)包,但由于wNv的ex_interp設置為100ms,所以當kin'z接收到第一個數(shù)據(jù)包后,客戶端根據(jù)插值運算虛擬計算出了100ms內對手的可能行為。

而此時Fnatic隊員的cs客戶端只虛擬計算出了10ms內對手的可能行為。

現(xiàn)在有人會想當然的認為,這樣wNv隊員不是"提前"90ms預知對手的行為了?實際上這也是John Mellin和被其影響的相當多數(shù)外國人的想法。然而我要說這種想法是錯誤和主觀的。首先,客戶端雖然“預知”了對手未來的行為,但是操作客戶端的玩家卻無從知曉,客戶端要想反應出敵人未來100ms的情況,同樣需要花100ms的時間。其次,上面所說的情況其實根本不會產生。

我們注意到此時雙方的cl_updaterate 都為100。這意味著,在接收到第一個數(shù)據(jù)包之后10ms,客戶端將接受到第二個數(shù)據(jù)包。對fantic這一方而言,第二個數(shù)據(jù)包處于剛好銜接上的狀態(tài)。對wNv這一方而言,雖然在第一個數(shù)據(jù)包到達之后,客戶端虛擬出了未來100ms內對手的行為。但是10ms后,第二個真實反映對手位置的數(shù)據(jù)包到達了。

我們可以想象出此時程序的2種處理方式,如下:

第一,忽略多出的90ms虛擬計算數(shù)據(jù),采用到達的真實數(shù)據(jù)。

第二,忽略第二個數(shù)據(jù)包的內容,繼續(xù)采用虛擬的計算數(shù)據(jù),直到第10個數(shù)據(jù)包到來。

第二種情況是不科學的,也不可能是valve實際采用的,因為如果按第二種情況處理的話,其實cl_updaterate 10和cl_updaterate 100在ex_interp為0.1的情況下沒有任何區(qū)別。你可以去一個服務器里把cl_updaterate 改成10 ,試下你的感覺……

那么我們可以認為程序是按第一種模式運行的。

于是我可以提出我的結論:

在cs1.6中,當cl_updaterate數(shù)值足夠且網絡狀況良好的情況下,ex_interp為0.1或ex_interp為“1/cl_updaterate數(shù)值”這2種設置并沒有實際區(qū)別。采用其中任何一種設置均獲得近似相等的效果,并不存在所謂的不公平性因素。

那有人要問,為什么valve把最佳值設為"1/cl_updaterate數(shù)值"而不統(tǒng)一設定為0.1?

我想,那是一個最優(yōu)數(shù)值,使用這個數(shù)值,可以避免cpu時間被無謂的浪費要知道cpu計算數(shù)據(jù)量的不同耗費的時間也不同,在這里也存在一個"延遲",而且可能還會略微的影響FPS。所以我在結論中用了一個"近似相等"。至于影響的大小是可以完全忽略不計還是可以微微感覺的到,這就不在本文研究的范圍之內了。在平時進網絡服務器打比賽或混戰(zhàn)的時候,使用ex_interp 0.01等參數(shù)可能會導致人物一跳一跳,這是由于互連網絡連接狀況不穩(wěn)定, 如果產生了lost(丟包),choke(阻塞),那么使用ex_interp 0.01等參數(shù)就有可能出現(xiàn)插值運算結束后不能銜接上下一個數(shù)據(jù)包,這樣反映出來的效果就是人物會跳動。

最終我依然推薦平時將你的ex_interp設置為0,而cl_updaterate設置為60-100,比賽時設置為ex_Interp 0.01,cl_updaterate設置為100。

另外,有人抱怨在國內的大多數(shù)服務器中無法修改ex_interp,這里呼喚一下所有粗心的服務器架設者們,請到服務器安裝目錄下的cstrike\addons\wwcl子目錄下修改下wwcl的配置文件。具體過程:首先查看wwclconfig.cfg確定你現(xiàn)在用的wwcl模式。注意前面沒有//注釋的就是目前你采用的wwcl模式,然后修改該模式對應的config文件,以ex_interp做關鍵字查找到鎖定ex_interp的那一行將其刪除,并把brightness參數(shù)由原先鎖定的1修改為3。

而對于玩家而言,也不必過于擔心此事,如果你能習慣ex_interp=0.1,那么你就能習慣ex_interp=0.01 。

關于ex_interp,我想以上已經解釋的足夠清楚了。

友情提示:支持鍵盤左右鍵"←""→"翻頁
8.6
已有141人評分 您還未評分!
  • 類型:第一人稱射擊
  • 發(fā)行:Sierra Entertainment,Valve Corporation
  • 發(fā)售:2000-11-01
  • 開發(fā):Valve
  • 語言:簡中 | 英文
  • 平臺:PC
  • 標簽:槍戰(zhàn)經典,反恐精英系列

玩家點評 0人參與,0條評論)

收藏
違法和不良信息舉報
分享:

熱門評論

全部評論

3DM自運營游戲推薦 更多+