丁 D2DX:從 25fps 到 60fps+ 的完整指南)
暗黑2 寬屏補(bǔ)丁 D2DX從 25fps 到 60fps 的完整指南【免費(fèi)下載鏈接】d2dxD2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions.項(xiàng)目地址: https://gitcode.com/gh_mirrors/d2/d2dx雙擊 Game.exe舊機(jī)器上 25fps 鎖死16:9 屏幕兩邊黑一片裝上 D2DX視野鋪滿屏幕幀率站上 60fps。這個(gè)暗黑2 寬屏補(bǔ)丁叫 D2DX它把原版走的 Glide3dfx 老顯卡圖形接口調(diào)用翻譯成 DirectX 11在現(xiàn)代顯卡上重新渲染。三分鐘跑起來(lái) 整個(gè)過(guò)程是一條命令流git clone https://gitcode.com/gh_mirrors/d2/d2dx拿到源碼用 Visual Studio 2019 或更高版本打開src/d2dx.sln編譯 x86 版得到glide3x.dll把它拷進(jìn)《暗黑破壞神2》目錄與Game.exe同級(jí)再執(zhí)行Game.exe -3dfx啟動(dòng)D2DX 自動(dòng)接管渲染。如果系統(tǒng)提示缺少運(yùn)行庫(kù)去微軟官網(wǎng)裝一份 Visual C 運(yùn)行庫(kù)x86 版。進(jìn)游戲后按 ALTEnter 隨時(shí)切換窗口與全屏ALTTab 切出是即時(shí)的——原版游戲里這基本想都不敢想。效果長(zhǎng)什么樣寬屏、60fps、抗鋸齒裝好之后第一眼是視野。原版 800×600 的畫面被重新擺放到 16:9 上場(chǎng)景不是簡(jiǎn)單拉寬畫面鋪滿 1920×1080UI 的血球和技能欄位置原封不動(dòng)沒(méi)有黑邊。地牢視野同樣變寬原本藏在黑邊里的怪物和掉落物都進(jìn)了畫面。幀率上的變化更微妙——投射物連續(xù)飛行、怪物不再跳幀這就是 60fps 的手感抗鋸齒開不開同場(chǎng)景對(duì)比最直接上圖 FXAA 開啟、下圖關(guān)閉看左上角那塊飛行的投射物和石板接縫下圖是明顯的階梯感上圖干凈利落。FXAA 在這里是克制的后處理只平滑精靈、墻體和部分地面這類指定邊緣不碰文字和 UI。高幀率為什么不鬼畜運(yùn)動(dòng)預(yù)測(cè)說(shuō)人話直接把幀率抬到 60 容易難的是邏輯跟不跟得上。原版邏輯每秒只更新 25 次硬插渲染幀只會(huì)讓單位瞬移、判定錯(cuò)位。D2DX 的解法是自己補(bǔ)中間幀邏輯層像一本每秒翻 25 頁(yè)的連環(huán)畫渲染層則根據(jù)上一幀記錄的速度把每個(gè)單位、投射物、天氣粒子外推到兩頁(yè)之間的位置。源碼里這件事拆成三個(gè)模塊src/d2dx/UnitMotionPredictor.h管單位src/d2dx/WeatherMotionPredictor.h管天氣特效src/d2dx/TextMotionPredictor.h管懸浮文本。每個(gè)單位記錄的核心數(shù)據(jù)長(zhǎng)這樣struct UnitMotion final { uint32_t lastUsedFrame 0; // 最近一次使用該數(shù)據(jù)的幀號(hào) Offset lastPos { 0, 0 }; // 上一幀位置 Offset velocity { 0, 0 }; // 速度矢量預(yù)測(cè)的核心輸入 Offset predictedPos { 0, 0 }; // 外推出的中間幀位置 Offset correctedPos { 0, 0 }; // 與真實(shí)邏輯校正后的位置 };流程很直白先用 velocity 外推出 predictedPos真實(shí)邏輯幀一到再校正回 correctedPos你只看見平滑運(yùn)動(dòng)看不見瞬移。CPU 側(cè)還有個(gè)細(xì)節(jié)原版每幀反復(fù)上傳大量小貼圖D2DX 把它們拼進(jìn) DirectX 11 圖集把許多小貼圖打包成一張大圖按訪問(wèn)熱度淘汰哈希查找走 SSE2 指令開銷低到基本無(wú)感。d2dx.cfg 怎么調(diào) ?把項(xiàng)目根目錄的d2dx-defaults.cfg復(fù)制一份改名為d2dx.cfg放進(jìn)游戲目錄最常用的四項(xiàng)[window] scale2 # 窗口縮放因子1-3數(shù)字越大窗口越大 position[-1,-1] # [-1,-1] 表示居中 [game] filtering0 # 0銳利 1雙線性 2Catmull-Rom size[-1,-1] # [-1,-1] 讓 D2DX 自動(dòng)選分辨率 [optouts] nomotionpredictionfalse # true 則關(guān)閉高幀率filtering決定畫面放大到現(xiàn)代分辨率后的觀感filtering算法觀感0高質(zhì)量/整數(shù)縮放銳利、保留像素顆粒懷舊黨1雙線性柔和、輕微發(fā)虛低配機(jī)器2Catmull-Rom邊緣平滑大屏追畫質(zhì)其余像noaa關(guān)抗鋸齒、nowide退回 4:3 視野、frameless去標(biāo)題欄默認(rèn)值都很合理不動(dòng)即可。遇到問(wèn)題先查這里 先看版本完整功能支持 1.09d、1.13c、1.13d、1.14d高幀率 寬屏 分辨率切換全開1.10f 和 1.12 沒(méi)有分辨率切換其他版本啟動(dòng)會(huì)警告、容易顯示異常。硬件門檻Windows 7 SP1 及以上推薦 Win10延遲最低、CPU 支持 SSE2、顯卡支持 DirectX 10.1。最高頻的報(bào)錯(cuò)是 Diablo II is unable to proceed. Unsupported graphics mode.——多半是暴雪官網(wǎng)下載版它默認(rèn)的圖形模式與 D2DX 不兼容按文檔處理后再掛載光盤版和正版 LoD 一般不會(huì)踩。第三方 mod 需要 XP 兼容模式時(shí)在配置里設(shè)nocompatmodefixtrue放行Basemod、Project Diablo 2 等主流整合有專門兼容處理。還有疑問(wèn)就先翻游戲目錄下的d2dx_log.txt錯(cuò)誤和調(diào)試細(xì)節(jié)都記在那。項(xiàng)目目前處于 0.99.529 階段近期剛補(bǔ)上 1.09d 的運(yùn)動(dòng)預(yù)測(cè)、菜單 FPS 解鎖和關(guān)閉垂直同步時(shí)的偽影修復(fù)后續(xù)更新圍繞內(nèi)存占用、加載性能與運(yùn)動(dòng)預(yù)測(cè)覆蓋度。把老游戲重新點(diǎn)亮D2DX 的全部?jī)r(jià)值是一句話讓一款 20 多年前的游戲在今天的主流硬件上擁有寬屏視野、穩(wěn)定 60fps 和原封不動(dòng)的像素畫風(fēng)??揭粋€(gè) dll、加一個(gè)-3dfx今晚就能進(jìn)游戲。D2DX 為免費(fèi)開源項(xiàng)目請(qǐng)確保你持有合法的《暗黑破壞神2》游戲副本?!久赓M(fèi)下載鏈接】d2dxD2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions.項(xiàng)目地址: https://gitcode.com/gh_mirrors/d2/d2dx創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考