"": 200,
"": "",
"": "“那就開始吧。”
走進教室,沈一把昨天記錄的項目修改意見拿了出來。
學習小組沒有固定主題,誰手裡有問題,誰就先拿出來。
“有個問題,你們再幫我看看。”王雲赫接過本子,把負責物體運動和碰撞響應的幾組公式列在了一起。單獨算一塊隕石怎麼運動,或者兩塊隕石碰撞後速度怎麼變化,結果都沒有問題。
林滿怡連計算過程中用到的單位也檢查了一遍,同樣沒找到問題所在。
“會不會是我們漏掉了什麼?”
“碰撞前後我們都重新算過好幾次了。”王雲赫撓了撓頭,“總不能一放進遊戲,它就開始亂跑了吧?”
聽到王雲赫這樣說,李薇提議道:“要不去微機室試試看?既然算出來都是對的,那就檢查一下運行過程有沒有出錯。”
王雲赫眼睛一亮,“對啊!”
幾人找到微機室時,張立秋還在給設備做清潔,聽完來意,大手一揮就分配了兩台剛更新過配置的電腦。
遊戲啟動,沈一和王雲赫兩人直接把商船開進隕石帶,複現起當時的運行環境。
果然!
幾塊擠在一起的隕石突然往外一彈,其中一塊橫著撞向商船,屏幕四周的碰撞提示連著閃了幾下。
“就是這裡!”
王雲赫說話的空隙,沈一已經打開了後台。普通日誌隻能看出哪一刻出了異常,具體為什麼還得再往裡查。
他給碰撞模塊補了幾項輸出,把每一步的接觸數量、穿透深度和約束求解後的殘餘誤差都記了下來。
本章節來源於𝑜𝑜𝑝.𝑡𝑤
再次出現異常時,幾組數值果然同時跳了起來。
“不是單個碰撞算錯了!”沈一指著日誌,“程序每往前走一步,就要把碰到的物體重新算一遍。兩塊隕石還好,換成幾塊一起擠,算完這一對又會影響旁邊那一對。”
他點了點迭代次數那一欄:“現在的程序算到上限就繼續往下走,物體還沒完全分開,後麵便一直拿著這個錯誤狀態往下算,最後就彈成這樣。”
王雲赫湊近看了看,“那多算幾遍?”
“能改善,但得看電腦撐不撐得住。”
沈一把迭代次數往上調了一檔,異常減輕了一些,碰撞密集時的計算耗時卻也跟著漲了上去。
孫文曉看著那幾行誤差記錄,忽然伸手把草稿紙拿了過來。
“要不把每一步分小一點?”
他先畫了幾個相互接觸的圓,又把旁邊代表時間的一條線分成幾段。
“現在是走完這麼長一段,才發現它們已經擠進去了。要是中間多算幾次,重疊應該就沒這麼深。”
說完,他又在下麵補了一個誤差判據,把物體之間殘留的穿透深度按各自尺寸作了歸一化。
“超過這個範圍,就退回這一步開始的時候,分成兩步重新算。”
沈一拿起草稿紙看了下去。方法不算陌生,隻是他們一開始急著把遊戲跑起來,沒把這部分做細。
孫文曉把紙往前推了推,指尖還壓著自己剛寫的判據。
“可以試試。”
沈一坐回電腦前,讓物理更新按固定的時間間隔推進,再給碰撞密集、誤差明顯的部分增加子步處理。孫文曉提出的判據也加了進去。
誤差過大時,先恢複這一步開始前保存的狀態,再用更小的步長重新計算。
這次程序花的時間比剛才多了些,幾塊隕石卻沒有再突然往外亂躥。屏幕上,它們碰撞、分開,各自沿著新的方向運動,商船終於能夠從間隙裡正常穿過去。
“成了!”王雲赫摟住孫文曉的肩膀,“你小子有點東西啊!”
“但這個辦法也有限製……”孫文曉勉強笑了笑,掙脫他的胳膊,指向沈一剛加進去的那段處理。
“碰撞太密,這一步就得一直往下分。分得越細,算的次數越多。”
沈一點頭,給子步細分設了上限。超過預算就留下警告記錄,同時把場景裡參與碰撞的隕石數量控製下來。
兩台電腦能穩定跑到什麼範圍,暫時有數了。更密集的碰撞還得繼續優化求解器,不能隻靠多套幾層判斷。
“先把當前這個規模跑穩。”沈一把本子合上,“後麵的再想辦法。”
王雲赫點點頭,手卻已經重新握上了鼠標。
“那我再試試。”
“我也來。”
見狀,沈一隻好找張老師又開了一台電腦,處理剩下的修改內容。
“你這裡怎麼還是舊圖?”林滿怡站在沈一身後,一眼就看見了商船界麵上的問題,伸手指了指。
“我後來把這塊改過了,推進器和貨艙的位置都重新排了一下。”
”?張一哪“
”。你給找我“
。去上了換圖的好做經已把著對核人兩
。調再頭回備準,來下記便怡滿林,擠得顯卻裡戲遊到放,行還著看獨單方地些有
。來出摘裡輪一這從先,的動及不來晚今下剩,了修病毛小的上作操處幾把手順也一沈
。住收版一這的用要拔選內校把先:遍一了排新重項改待把他
。筆一了賺地實打實也卻,多算不然雖益收的來出算結,點終了到送貨把安平經已薇李,邊一另
。諷嘲帶略,話說沒,赫雲王的邊旁在站眼一了看她
”。了掉不跑就人上碰真,行不備裝個這你“,來起嚷嚷,住不掛上臉得看被赫雲王
”。啊上碰沒次這我可“
”?呢次下“
”。唄路條換次下“
。果效的要想他是正這,擇選同不出做裡則規套一同在都人個每。來下了慢作動的裡手一沈,論爭的人兩著聽
”。來下記得記都議建麼什有,題問麼什到遇“,巴下揚了揚一沈”。玩著顧光別們你“
”!把一下的緊趕,了道知了道知“
。局一了開又,來上了換曉文孫把就,回沒也頭赫雲王
。線航入駛慢慢後然,製控礎基了楚清弄才鐘分幾好了花,作操悉熟不還始開剛曉文孫
。問赫雲王”?樣麼怎“
”。的思意有挺“
”!吧說就我“
。校學開離,包書好拾收室教回,別道秋立張向地鬨鬨吵吵人幾,腦電掉關
”?嗎想想再能我末周,限上個那的說才剛你“:道問,一沈住叫然忽曉文孫,時別分
”。通溝便方,友好個一加倆咱?嗎鵝企有你,了對“,他給遞來出抽紙稿草把一沈”。能然當“
進夾紙把曉文孫