以下的“我”均指該模組作者Acutus。
在原版遊戲裡,天氣由隨機數決定。不論是晴,雨,有毒塵埃,沙塵暴,不過只是一次擲骰子。
但是,如果我告訴你,在你的地圖上有一團潮溼的空氣上升,遇上高空冷氣團,因此化作雨落下,並且澆灌了地上的植物和土壤?
如果我告訴你,沙塵暴來自一個附近的真實的沙漠,乾燥的風把它的沙塵捲起吹到你這裡?
如果我告訴你,熱帶的海邊總是受到颶風侵襲,而在毀滅之中的寧靜的風眼卻讓殖民者紛紛走出門外,抬頭仰望?
如果我告訴你,太空應該是沒有任何氣壓的,船體破開一個洞,艙內空氣就會從缺口狂瀉而出,撕開一個大裂口,將人與物品抽吸出去,而沒穿宇航服的人,血液迅速沸騰?

如果我告訴你,房間的熱量無法瞬間平均,它隨風傳播,熱空氣理應上升膨脹,冷空氣理應下降收縮?
如果我告訴你,一個完整的,包含如此多物理量耦合的流體力學求解器,加上八層的模擬全球氣候模擬,依然能在你的電腦上跑出500tps?
這就是大氣層重構。
本地大氣
每一格都有一份空氣。它從高壓流向低壓,繞過牆壁、穿過門,混合熱量與水汽,甚至,因為科里奧利力而些微旋轉。本地地圖新增10個圖層,顯示風、風場流線、氣壓、地面溫度、體感溫度、溼度、氧氣含量、土壤含水量,以及建築或屋頂在下一秒內損壞的機率。
氣壓
氣壓是驅動氣流的主要動力。本地地圖有一個環境氣壓,取決於該地的海拔與氣候系統在這一地帶的狀態。
你可以建造空氣壓縮機,抽吸空氣併產出壓縮氣瓶。密閉的房間中的氣壓會降低。同理,在其中釋放氣瓶,氣壓就會上升。在氣壓不同的兩個房間之間開門,空氣會衝過去。

爆炸會產生向外擴散並且反彈的衝擊波,摧毀人的聽覺。
氣壓差會導致牆壁和屋頂受力。小心,牆、門和屋頂會被過高的氣壓壓壞!
風
風繞著建築流動,在縫隙里加速,在障礙物後產生湍流和經典的卡門渦街。植物隨風向與風力搖曳。

強風會讓人站不穩,吹飛物品和殖民者,造成傷害,掀掉屋頂,甚至吹倒脆弱的牆!

毒氣,腐爛臭氣,致盲煙霧等氣體會以不同的速度隨風飄走擴散,因此戰鬥時根據風選擇位置也很重要。

你可以建造風扇來製造人為的風,以幫助空氣迴圈,甚至建造噴氣發動機,噴射超強的風來阻擋和摧毀敵人!

溼度
水蒸汽也會影響空氣的性質。溼度代表水蒸氣的分壓相對於最高水蒸氣分壓的比例。
水的蒸發與凝結會吞吐熱量,因此在急劇洩壓的情況下你有可能見到水霧短暫地形成,這是由於氣壓和溫度的同時下降導致最高水蒸氣分壓降低,多餘的水析出。
潮溼的空氣讓食物腐壞得更快,乾燥的環境則讓它們儲存得更久。植物需要一定的水分或溼度才能生長,人也是一樣,記得準備好充足的水源。
你可以建造加溼器和除溼機來改變溼度。


溫度
熱空氣膨脹上浮,冷空氣收縮下沉。由於這是個水平的2d遊戲,則體現為:空地上的熱空氣上浮,造成區域性低壓區,周圍空氣湧入;密閉房間裡的熱空氣(如屋內起火)提高氣壓,直到衝破房門。

地面也會儲存熱量,因此在無風的殖民地,你有可能見到,白天旱地受熱更快,風從湖面吹向陸地;夜晚湖水保有更多熱量,風從陸地吹向水面。
熱量現在隨風傳播。若想更高效地抬升和降低屋內溫度,也許原版的加熱器和空調不大夠,你同時也需要風扇來幫助熱量混合。

有了風和溼度的資料,現在決定殖民者是否中暑的便不再是單純的溫度,而是體感溫度。乾燥的風使人感到更涼快。

氧氣
人需要氧氣才能生存,但是過濃的氧氣也會使人中毒。
火會消耗氧氣,在密閉房間裡,它們會自我窒息,而富氧空氣中火蔓延得更快。
深洞和遠古遺蹟裡是陳舊稀薄的空氣。記得戴上氧氣面罩。面罩,真空服,海軍裝甲之類的服裝可以提供內環境,將殖民者與危險的環境隔離開。


全球大氣
你可以在空地上建造一個多普勒氣象雷達,當它執行時,你就能在世界地圖上檢視氣候圖層。
一個完全由流體求解形成的大氣模型在你的顯示卡上執行。從地面到16000m高度,共分為八層,每層都有氣壓,風(強度與流線),溼度,溫度,雲層。
除此以外,還有洋流,海拔,地表溫度,氣象系統,降水量,經緯線等圖層可供檢視。總計54個顯示圖層。

本地地圖的天氣已經所有的環境預設量都和氣象系統在這個地圖格上的資料直接相關。
全球氣候的計算預先計算,快取起來(最多23幀),再逐幀播放給玩家。實際的計算頭比當前時間超前數小時。當你暫停時,氣候不會停止運算。
你還可以在多普勒氣象雷達附近建造多元分析儀,以檢視快取中的氣候模擬幀,作為一種天氣預報。

接下來請一起欣賞我們美麗的星球。
天氣系統圖層:鋒面、熱帶氣旋、雷暴、龍捲風風險區,以及沙塵、毒物、等等大氣層氣體

颱風吸積附近的沙塵暴

超強颱風


氣候操縱設施對區域性氣候的影響

黑幕發生器

海冰隨季節凍結和融化。你可以在上面定居,但它未必長久。
高空西風急流與行星波

在RimEarth真實比例地球上進行模擬,成功復刻西伯利亞高壓,黑潮暖流


最高氣溫,全海洋的星球上失控的溫室效應

最低氣溫的雪球地球

效能
我知道你們最關心的是效能。這種實時流體模擬,看上去就像要燒掉你們的電腦。大可放心。
以我自己的電腦為例(13th gen i7, rtx 4060 laptop, 16gb ram/vram):
本地地圖的模擬引擎跑在CPU上,由Burst compile驅動的(這也就是為什麼一時半會難以相容1.7的新引擎)可壓縮場RBSOR求解器,最大限度最佳化了資料吞吐和平行計算管線,
一幀大約需要6~9ms,在3tick/幀的設定下,單地圖可以跑上500tps;
全球氣候模擬引擎,由Silk路由至外部WebGPU計算庫驅動的不可壓縮場SSPRK3求解器,平均8-10秒一幀,並不佔用遊戲本體效能,
且提前計算並快取,因此只要不長時間720tps執行,並不會遇到卡頓。建立世界或在AO環境下第一次進入存檔時可能需要等待3-5分鐘,以進行該星球大氣層的適應性演算。
當然,我不得不承認,相對於其他大多數模組來說,它仍然很重。在開發工程的半年中,我用盡了一切辦法除錯物理效果,最佳化計算效率,也許最終適配上1.7後,我若是還有精力,能把這半年以來的思路,試錯和調整整理成一篇文章,也是不辜負我披星戴月的努力了。
另外,在此特別感謝英格蘭雷丁大學的Hilary Weller女士。她的好幾篇文章,(尤其是 Controlling the Computational Modes of the Arbitrarily Structured C Grid)在開發過程中給了我巨大的幫助。
特別感謝 Performance fish 的作者 Bradson,我參考了他的程式碼寫出了氣體系統,和他的交流也給了我許多想法。
相容性
原版DLC
該模組並不依賴任何dlc,但是你可以加上所有五個dlc,他們中有些機制也十分巧妙地相容進大氣層重構中了。
Dubs Bad Hygiene
本模組的水可以無縫相容進Dubs Bad Hygiene的水系統,小人口渴時會去水槽取水,淋浴和泡澡也會讓室內變得溼熱。
Combat Extended
相容。適配了CE中的環境風速與相關判定,並且燃燒黑煙也會隨風飄蕩了。
舊存檔
本模組可以中途加入。舊的非100%覆蓋的世界會自動填充剩餘的海洋,並且在第一次進入存檔時計算5幀大氣,以適配新地形。
常見問題
更難了嗎?是這樣的,我不得不說。但是全新的機制也給了你很多解決問題的方法。
小人死太快了,能關掉口渴嗎?可以,在模組設定裡就可以關掉。
風會把東西吹出地圖嗎?可以設定是否吹出地圖。吹出地圖的東西有機率在臨近地圖找到,小人也有機率自己回來。
需要懂氣象學嗎?模組 44 條內建教程會講解每個機制。但是我還是建議你懂一些,這樣玩起來更加直觀,也可以產生更多小巧思。
1.7?唉!泰南在1.7用的全新引擎,導致了兩個問題:第一,本地引擎依賴的Burst Compile沒法用了,所以我得花點時間在新引擎裡面找替代方案;第二,聽說新引擎支援多執行緒呼叫shader,這對全球引擎是個利好,我興許可以拆掉一些繞路的手段,也許效能可以得到進一步提升。