![]()
1996年發售的N64,顯存只有4MB。今天一位開發者往里面塞了一個無縫開放世界,站在地圖一角能望見地平線盡頭的山脈——渲染距離比肩2011年的《上古卷軸5:天際》。
James Lambert的演示視頻在復古游戲圈炸開了鍋。不是模擬器,不是超頻魔改,是原原本本的N64主機。玩家操控的角色騎著噴氣摩托穿越荒漠,零加載畫面,零黑屏過渡。
「Z-fighting」:老硬件的絕癥,被他用數學治好了
N64的Z-buffer(深度緩沖器)只有15位,約32000個可用數值。Lambert發現,90%被浪費在近處物體上——就像用整棟樓的門牌號,只給一樓住戶編號。
他的解法叫「對數深度緩沖」。把遠處的精度摳出來,重新分配給中遠景。代價是近處偶爾出現閃爍(Z-fighting),但站在沙丘上眺望五公里外的廢墟時,你能看清輪廓而非馬賽克。
這相當于給近視患者配了副漸進多焦點眼鏡。近處模糊點,遠處突然能讀了。
4MB顯存的分配戰爭
N64的內存架構堪稱殘酷。系統總內存4MB,擴展卡加到8MB。現代游戲一張4K貼圖就超這個數。
Lambert的團隊做了三件事:地形用程序化生成而非預存,遠處物體降級為色塊,天空盒(Skybox)壓縮到極限。噴氣摩托的尾焰粒子效果?能省則省。
「我們不是在優化,是在談判。」Lambert在視頻里打了個比方,「每一幀都在跟硬件簽對賭協議。」
結果是:視野距離(Draw Distance)達到N64原生游戲的數十倍。作為參照,《塞爾達傳說:時之笛》的迷霧遮罩距離,大概只有這個演示的十分之一。
為什么是現在?
開源工具鏈的成熟讓 homebrew(自制軟件)開發門檻驟降。Lambert用Modern SDK重寫底層,繞過了任天堂官方開發包的諸多限制。
更關鍵的是認知迭代。三十年前的開發者被硬件規格嚇住,今天的獨立開發者把限制條件當謎題來解。Lambert本人是職業游戲引擎程序員,白天寫Unity,晚上用C給MIPS架構處理器寫匯編。
這種「跨時空」的技術反哺正在形成小氣候。去年有開發者給Game Boy Color做了實時光追著色器,前陣子Palmer Luckey的FPGA克隆N64項目估值沖向10億美元。
復古硬件的極限到底在哪?
演示結尾,鏡頭緩緩拉升,展示完整地圖的衛星視角。Lambert沒說話,彈幕里飄過一條:「我的Switch玩《寶可夢朱紫》還會掉幀,這合理嗎?」
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.