如果走同一個隊列,把特效拆出來單獨排隊,優先算模型,特效往后排。”
梁永琪掛了電話之后走回機房。
走廊到機房的這段路不長,她走了幾步就到了門口。
李軒還坐在主控機前面,屏幕上那個八百的數字還在閃爍。
她把陳浩的方案轉述了一遍。
李軒聽完之后沒有立刻回應,他把手從椅子扶手上收回來,重新搭上鍵盤,手指在參數表上翻了幾頁,找到了特效渲染模塊的配置項。
“特效計算和模型計算分離。”他說,手指在鍵盤上敲了起來,速度比剛才快了一截,“特效走單獨的渲染隊列,每一幀先算模型,模型算完了有余力再算特效。
玩家關掉其他人的特效之后,特效隊列里只剩下自己和隊友的數據,計算量降到原來的十分之一都不到。
模型隊列不變,所有人的人物模型全部保留。”
他一邊敲一邊說,聲音比剛才亮了一些:“特效隊列如果來不及算就直接丟掉,丟掉的只是光影效果,人物模型不受影響。
玩家看到的是一個人站在那里但沒有技能光效,這比看不到人要好得多。
而且特效丟掉的時候不會影響位置同步,因為位置數據掛在模型上面,模型沒丟,位置就不會錯。”
他沒有再抬頭。
梁永琪站在他身后看了一會兒,屏幕上代碼行一行一行地往下滾,李軒的手指在鍵盤上跳得很快,偶爾停下來刪掉幾行又重新敲進去。
她看了一會兒,然后退出了機房。
那天晚上李軒沒有離開公司。
技術組的三個人陪著他一起熬,機房的燈一直亮著,屏幕上的代碼行一行一行地滾動。
凌晨兩點多的時候有人出去買了一趟泡面,回來的時候拎了五碗,每碗的蓋子都掀開了,熱氣從碗口升起來,在機房的冷氣里凝成一片白霧。
李軒一只手端著面碗一只手敲鍵盤,面吃了一半就擱在桌角,湯涼了也沒再碰。
旁邊技術組的一個小伙子吃著面湊過來看了一眼他的屏幕,問了一句這個調度邏輯是不是要重寫,李軒嘴里含著半口面含含糊糊地應了一聲,手指沒停。
凌晨三點十七分,他把最后一行渲染優先級的調度代碼敲完,按了回車。
屏幕上開始跑測試。
測試場景是長安大街,預先加載了一千八百個角色模型,所有角色的特效全部按照“僅顯示隊友”的規則進行了裁剪。
渲染幀率從測試開始的第一秒就穩定在一個數值上,上下浮動不超過三幀。
他盯著那個數字看了十幾秒,然后伸手把旁邊那臺測試機上的畫面拖到了大屏幕上。
長安大街上擠著上千個角色,人物模型全部完整顯示,每一個角色都在動,走路的、擺攤的、跑動的、站著聊天的,密密麻麻的人頭從屏幕的近景一直排到遠景。
畫面沒有卡頓,角色的移動流暢,幀數穩定在三十幀以上。
【跪求禮物,免費的為愛發電也行!】</p>