游戏精英
- 贡献度
- 1539
- 金元
- 20884
- 积分
- 8274
- 精华
- 3
- 注册时间
- 2006-12-10
|
舊帖
2010.2.26 更新
- 新增Purge Cell Buffers v1.0
- 新增Animation Fixer v1.2
- 修正部份文字內容
2010.5.1 更新
- 修正部份文字內容
- 新增PyFFI 步驟
1-2樓 遊戲設定 & Oblivion.ini 優化
2樓 相關知識 & 前期準備
3-6樓 減少遊戲停頓 & 避免CTD
7樓 材質 & 多邊形縮減
8樓 其他
1. 遊戲設定 & Oblivion.ini 優化
==============================================================
參考資料
Oblivion 效能計畫
效能 & 優化
防止CTD 的50個步驟
Oblivion Tweak Guide
Wiki JPoblivion.ini
==============================================================
Oblivion.ini 優化
首先進入遊戲, 按Esc 鍵 -> Options, 將遊戲設定調整好, 然後離開遊戲, 此時會自動生成Oblivion.ini
遊戲內的設定可參考:湮滅優化終極指南 (TLF, 需註冊)
帖子內缺少了幾張圖, 可在TweakGuides 取得:
Texture Size
Tree Fade
Object Fade
Int. Shadows (100%)
Int. Shadows (50%)
Int. Shadows (25%)
Int. Shadows (0%)
Shadow Filtering
Oblivion.ini 文件位於:My DocumentsMy GamesOblivion
備用文件位於:Bethesda SoftworksXXXOblivionOblivion_default.ini
用記事本打開Oblivion.ini, 開始優化數值
各數值的效果不一、因為各人的機器配置不同, 請自行試驗
推薦數值 (括弧內是預設值):
1) uGridstoLoad=5 (5) 數值必須是奇數
2) uInterior Cell Buffer=3~5* (3)
uExterior Cell Buffer=(uGrid + 1)^2* (36)
iPreloadSizeLimit=? (26214400*)
若內存1GB, 推薦設定
uInterior Cell Buffer=6
uExterior Cell Buffer=72
iPreloadSizeLimit=52428800
若內存2GB, 推薦設定
uInterior Cell Buffer=12
uExterior Cell Buffer=144
iPreloadSizeLimit=104857600
Arthmoor 在7F 做了說明:
http://www.bethsoft.com/bgsforums/index.php?showtopic=1079152
bUseHardDriveCache=1 (0)
改成1的話遊戲會使用硬碟緩存, 會稍微增加遊戲讀取速度, 但實際上所有遊戲的
檔案本來就是在硬碟上執行、而不在遊戲光碟, 所以此參數無作用
uInterior Cell Buffer=3~5 (3) 修改此參數會擾亂遊戲對記憶體的分配, 不建議修改
uExterior Cell Buffer=(uGrid + 1)^2 (36) 修改此參數會擾亂遊戲對記憶體的分配, 不建議修改
iPreloadSizeLimit=? (26214400) 修改此參數會擾亂遊戲對記憶體的分配, 不建議修改
Jaga Telesin 的解釋:
iPreLoadSizeLimit 的預設值 - 26214400 可作為1個基數
(+1) 原版Oblivion + 30個以下的 (小型) 模組
(+1) OOO, Fran's, Warcry (非FCOM)
(+1) MMM (非FCOM)
(+2) FCOM
(+1) QTP1 (或者相近大小的材質包)
(+2) QTP2 (或者相近大小的材質包)
(+3~4) QTP3 (或者相近大小的材質包)
例如, 你安裝了Oblivion & 一些小模組 + OOO + MMM =1+1+1=3
iPreLoadSizeLimit 建議加大3倍=26214400x3=78643200
又, 一般來說這個值可以上下浮動1倍, 所以也可以加大2倍就好
26214400x2=52428800, 自己嘗試看看哪個倍數適合你
無論機器上的記憶體多大 , 也不需要把iPreLoadSizeLimit 設定高於1GB
例如你安裝了Oblivion & 一些小模組 + FCOM + QTP3, 倍數為1+2+3=6
26214400x6=157286400, 也才用到153MB 而已 (這邊不是指vram)
* 如果你的Vram 足夠承受遊戲材質的話, 似乎沒有加大uExterior Cell Buffer 的必要
uInterior Cell Buffer 設定在3~5 已經是理想值了, 1 個interior cell 包含了到下一個
門 (讀取畫面) 之前的所有物件, 之所以要設定成3 是因為actor 通常會在鄰近的區域
活動, 大部分的店舖有地下室 & 1樓 & 2樓, 大部分的地城, 一層裡頭可能通往兩三個
區域 (oblivion gate 屬於exterior cell)
當你由門進入exterior cell (像是IC 內) 時, 會額外讀取門另一邊的 exterior cell, 但
進入interior cell 時卻不會讀取另一邊的cell, 這也是interior cell buffer 不需加大的原因
如果你從1個exterior cell 走進另1個exterior cell, buffer 會自動清空; 比較可能遇到的
麻煩是, 如果進入一個超大的interior cell (例如地城之類的), 那麼buffer 將不會清空,
直到你進入一個城市或者oblivion gate
所以如果你覺得有效就改吧, 在下沒有改... 3) bUse Joystick=0 (1) 關閉搖桿功能
4) iMaxImpactSoundCount=16 或24 (32) 決定音效最大通道的選項, 以8為單位遞減
bDSoundHWAcceleration=0 (1) 取消音效的硬體加速, 如果遇到音效異常可以設定成0 試試
5) iMinGrassSize=100 (80) 數值越大草越稀疏, 低端機器可以設定成120、130~200
6) iShadowMapResolution=1024 (256)
256 會造成N 卡用戶遊戲鎖定或黑屏, 安裝UOP 時也會建議將這個值改成1024
7) iThreads=1 (3)
iNumHavokThreads=1 (1)
bUseMultiThreadedFaceGen=1 (0)
(除了上面3個, 其他有 "thread" 字樣的數值都要設定成0, 以減少停頓現象)
iOpenMPLevel=32 (10)
關於線程優化 (針對多核心CPU) 有另一種設定方式: (根據Wiki JP)
bUseThreadedBlood=1 (0)
bUseThreadedMorpher=1 (0)
bUseThreadedTempEffects=1 (0)
bUseThreadedParticleSystem=1 (0)
bBackgroundPathin=1 (0)
iNumHavokThreads=5 (1)
iThreads=9 (3)
iOpenMPLevel=10 (10) 修改此數值已知無效, 但許多人習慣改成20或30
MadGizmo 的說法是:
http://forums.guru3d.com/showthread.php?t=302303
iThreads=1
設為1會減少停頓、設為16在他的機器上表現更佳, 修改此數值只對C2D、C2Q、AMD 雙核有效
對AMD 4核無效
iThreads=16
iOpenMPLevel=32
將iOpenMPLevel 設為32 可增加穩定性, 但若你設定iThreads=1, 請保留iOpenMPLevel 為預設值
根據下文 ianpatt 的說法:
http://www.bethsoft.com/bgsforums/index.php?showtopic=1071130
bUseThreadedBlood 無用, 甚至在運行遊戲時都不會讀入
bUseThreadedMorpher 運行遊戲時會讀入, 但不使用在任何東西
bUseThreadedTempEffects 運行遊戲時會讀入, 但不使用在任何東西
bUseThreadedParticleSystem 運行遊戲時會讀入, 但不使用在任何東西
bUseMultiThreadedTrees 運行遊戲時會讀入, 但不使用在任何東西
bUseMultiThreadedFaceGen 會做一些事情 (可能在背景生成NPC 頭部的meshes
以及當人開始戴頭盔的再變形)
iNumHavokThreads Is passed to Havok and probably does what it sounds like.
iThreads 運行遊戲時會讀入, 但不使用在任何東西
iOpenMPLevel 運行遊戲時會讀入, 但不使用在任何東西
結論是:以上參數是xbox 360 專用, 在pc 上完全無效
所以現在有4種推薦設定了...在下是相信ianpatt 的理論 8) iPostProcessMilliseconds=32 (5)
數值增加會減少停頓、數值減少則會減少 "讀取時的停頓"
某網友說超過16 就看不出差異
9) bBackgroundLoadLipFiles=1 (0)
bLoadBackgroundFaceGen=1 (0) 跟bUseMultiThreadedFaceGen 綁定, 一起設定成1或0
bBackgroundCellLoads=1 (1)
bLoadHelmetsInBackground=1 (1)
bBackgroundPathing=1 (1)
bUseBackgroundPathing=1 (1) tweakguides 有此參數設定, Wiki JP 沒有
* 以上幾個參數都跟背景讀取有關, 可改善fps、減少停頓, 不過可能會稍微增加切換區域時的讀取時間
10) bSaveonWait=0 (1) 等待時不自動存檔
bSaveonRest=0 (1) 休息時不自動存檔
bSaveonTravel=0 (1) 快速旅行時不自動存檔
bSaveonInteriorExteriorSwitch=0 (1) 進入或離開建築物時不自動存檔
bAllowScriptedAutosave=0 (1) 關閉遊戲開始導覽時的自動存檔
* 這裡我只改了3、4、5、6、10
更新到v1.2 之後, 修改下列參數後可能沒有優化:
1) bPreEmptivelyUnloadCells=1 (0)
卸載用不到的Cell 數據, 對內存低於1GB 的機器有幫助
很多模組有類似功能, 例如:Streamline, 可考慮安裝該類模組來處理
2) bSelectivePurgeUnusedOnFastTravel=1 (0)
移除Fast Travel 到另一地點時多餘的數據, 對低內存的機器有幫助
很多模組有類似功能, 例如:Streamline, 可考慮安裝該類模組來處理
3) bDoSpecularPass=0 (1)
移除物體上的閃爍效果, 但在某些區域可能導致CTD, 例如Weynon Priory、
Skingrad Castle Courtyard, 或是造成某些地區的濃霧 (天氣) 效果失效
可改用Specular Fix 1.1 來處理
fSpecualrStartMax=? (1000.0000)
降低此數值可減少鏡面光照效果的最大距離、改善fps, 而不必關閉bDoSpecularPass
4) bUseRefractionShader=0 (1) 關閉閃爍、隱形的效果 (Chameleon 法術、Obvilion Gate 的反光...)
5) iMaxDecalsPerFrame=0 (10) 畫面上的血漬數量
fDecalLifetime=0 (10) 血漬在畫面上的出現時間, 以秒為單位
fMinBloodDamage=1.0000 需達到多少傷害才會流血, 增加數值會提高流血的難度 (變相增加fps)
6) iNumBolts=3 (7) 數值越大, 施展閃電魔法時的Bolt 越多
* 建議只改5 & 6
其他有用參數:
bFull Screen=1 (0) 以全屏 (0) 或者視窗 (1) 啟動遊戲
iSize W=1280 畫面的寬度 (僅在視窗模式下起作用)
iSize H=1024 畫面的高度 (僅在視窗模式下起作用)
iLocation X=50 (0) 預設的視窗位置在最左上角, 此參數讓視窗往右移動xxx 畫素
iLocation Y=50 (0) 預設的視窗位置在最左上角, 此參數讓視窗往下移動xxx 畫素
bUseWaterDepth=0 (1) 設為0, 水面將會變得完全不透明 (在水上完全看不到水下的東西)
可以解決一些因為修改uGridsToLoad 值, 導致視覺異常的問題
並改善fps, 雖說會減少一點真實性
uDepthRange=125 (125) 控制從水面上往下看時, 水的可見深度, 數值越高水越清澈
但設定太高會出現一些異常、減少些許fps
uNumDepthGrids=6 (3) 控制水中可見度, 數值越高水越透明, 設定太高會導致一些異常, 但如果設為1, 可以解決
uGridsToLoad 值高於5出現的異常並改善fps
* 若有更動到uNumDepthGrids, 請設定bUseWaterDepth=0, 否則水面會消失
bUseWaterLOD = 1 (1) 設定為0會導致水面變得完全透明、顯現出底下的陸塊, 沒事別亂改
bAllowScreenShot=1 (0) 打開Print Screen 鍵的擷圖功能
SScreenShotBaseName=ScreenShot (ScreenShot) 擷圖時圖檔檔名的前綴
iScreenShotIndex=3 (3) 擷圖時圖檔檔名後綴的初始編號
SMainMenuMovie= 關閉主選單下的動畫
SMainMenuMovieIntro= 關閉每次啟動遊戲時, 載入的介紹動畫
SIntroSequence= 關閉每次啟動遊戲時, 載入的介紹動畫
fDlgFocus=4.5000 (2.1000) 與NPC 對話時的鏡頭放大程度, 數值越小距離拉的越近, 可設定範圍是2-5
推薦改成4.0000 ~ 5.0000 (鏡頭不變)
bHealthBarShowing=1 (0) NPC 頭上會顯示半圓形血條, 如果你有安裝其他血條模組, 請勿修改此數值
bAllowHavokGrabTheLiving=1 (0) 允許拖動屍體
bLocalMapShader=0 (1) 讓遊戲裡的小地圖變成彩色
bBorderRegionsEnabled=0 (1) 移除世界周圍的無形屏障
bInstantLevelUp=1 (0) 達到條件時, 無需睡覺直接升級
bMusicEnabled=0 (1) 關閉音樂
bSoundEnabled=0 (1) 關閉音效
iDebugTextLeftRightOffset=10 調整debug 模式, 畫面上文字訊息的左右位置
iDebugTextTopBottomOffset=10 調整debug 模式, 畫面上文字訊息的上下位置
iDebugText=12 (12) 在遊戲中使用TDT 指令所產生的debug 文字訊息的詳細度
fGlobalTimeMultiplier=1.0000 遊戲中時間流逝的速度, 數字越大時間過得越快
fLODLandVerticalBias=-200.0000 (0.0000)
適用於Oldblivion 使用者, 如果發現Shader 異常, 可以從-50、-100 開始遞減試驗
對效能有幫助:
bUseEyeEnvMapping=0 (1) 禁用角色眼睛上的環境映射, 眼睛會變得較不自然、不受週遭環境的影響
bDisableHeadTracking=0 (1) 禁用角色的頭部會跟著其他NPC 轉動的特性
bFaceGenTexturing=0 (1) 移除角色臉上的Face Generator 材質, 看起來更加光滑 (少了皺紋...)
bFaceMipMaps=0 (1) 稍微減少臉部細節, 改善fps
bPrecipitation=0 (1) 關閉雨天效果
fGrassWindMagnitudeMax=0.0000 (125.0000) 草隨風擺動的幅度最大值
fGrassWindMagnitudeMin=0.0000 (5.0000) 草隨風擺動的幅度最小值
bDoCanopyShadowPass=0 (1) 移除所有樹的陰影
iActorShadowIntMax=0 (10) 室內影子可能出現的最大數量, 調低可改善fps
iActorShadowExtMax=0 (10) 室外影子可能出現的最大數量, 調低可改善fps
bDisplayLODLand=0 (1) 關閉陸地的LOD
bDisplayLODBuildings=0 (1) 關閉建築物的LOD
bDisplayLODTrees=0 (1) 關閉樹木的LOD
bEnableTrees=0 (1) 直接拿掉所有的樹木
bDrawShaderGrass=0 (1) 直接拿掉所有的草
* 以上5個參數建議別動
fBlurAmmount=0.1000 (0.5 或0.9) 降低被攻擊時、畫面的動態模糊數值, 能稍微提昇fps
fLODMultLandscape=1.0000
fLODMultTrees=2.0000
fLODMultActors=7.0000
fLODMultItems=7.0000
fLODMultObjects=7.0000
設定各物件開始變得模糊的距離, 減少此數值可改善fps
fLightLOD2=? (1500.0000) 控制可看見火炬、路燈等光源的距離
fLightLOD1=? (1000.0000) 控制可看見光源開始衰減的距離, 此數值需小於fLightLOD2
* 減少數值可改善fps; 設定高於4500 會導致畫面異常、出現巨大
的色斑、水中也會出現一樣的顏色反射
* 這裡我只改了:
bUseEyeEnvMapping
bFaceGenTexturing
fGrassWindMagnitudeMax
fGrassWindMagnitudeMin
bDoCanopyShadowPass
iActorShadowIntMax
iActorShadowExtMax |
|