有任何上古卷轴的问题,请直接到MOD社区发帖求助

Oblivion Graphics Extender Core 安装与调整

Oblivion Graphics Extender 介绍更新项目第二步,完善 Oblivion Graphics Extender Core 的介绍,方便OBGE玩家使用最新版的OBGEv3。
这次的内容难度太大了,各种专业词汇,各种不懂,如果翻译错误,请轻拍。

介绍 · Introduction

OBGEv3 Core包括以下三种类型:

  • Standard:默认类型,涵盖所有的功能,包括原版shader替换;
  • Retro:不包括原版shader替换,功能上与OBGEv2较相似;
  • Developers:基于Standard的基础上又增加了许多特殊的函数,但这是给开发者使用的。

Developers 在本站点不介绍,如果有兴趣的可自行研究。
OBGEv3 与 需要旧版OBGE(OBGE或者OBGEv2)才能运行的模组 兼容

安装 · Installation

OBGEv3的资源可以在前面的文章里下载。
安装 OBGE 前你必须先安装以上内容:

请再次检查两个文件是否都安装了,以免出现问题。
这篇文章介绍的内容仅为OBGEv3 Core部分,也就是说并不包括Shader的介绍,如果你对Core已经了解了,或者只想了解Shader的,可以阅读 Oblivion Graphics Extender Standalone Effect 安装与介绍
另外,虽然是OBGEv3,但是部分内容与OBGEv2会重叠,所以使用OBGEv2的也可以看看,不过就作者而言,他是建议你别再使用v2了。

除了必须先安装上面提到的OBSE和DirectX,安装OBGEv3前,你还必须先卸载旧版的OBGE,所谓的旧版OBGE即:

  • OBGE
  • OBGEv2 Core
  • OBGEv2 Shaders
  • OBGEv2任何WIP版本(包括DepthTest.dll)。

下载OBGEv3 Core时一共有两种版本:BAIN压缩包以及EXE安装程序。原则上,安装MOD时我们是不推荐使用exe安装,但是因为OBGE的复杂性,所以这次我们强烈建议用户使用exe安装。
(手动安装或者使用OMOD安装都是不建议……虽然有分享BAIN压缩包,但是官方也不推荐使用BAIN安装。)
关于BAIN与EXE比较明显的不同在于:EXE会根据玩家的系统配置生成OBGE.ini,这个是BAIN压缩包做不到的,也是建议使用EXE而不是BAIN的原因之一。
所以,要安装OBGEv3 Core,请直接运行OBGE_v31rc4.exe
安装过程中有三个选项:

  • The standard extender:也就是上面所说的 Standard
  • The enhanced extender:也就是上面所说的 Developers
  • The reduced extender:也就是上面所说的 Retro

请根据自己的需要选择。

特别提醒,OBGEv3的插件名字为 OBGEv2.dll ,不是 OBGEv3.dll 。(这么做是为了与之前的模组兼容)

安装完OBGEv3后,第一次加载游戏时会有一定时间的延迟(低端电脑上时间会很明显)。游戏甚至会出现无响应的状态,这是OBGE正在应用shader,你只要耐心等待就对了。(当然,安装OBGE后与安装OBGE前相比,如果加载时间超过1分钟的话,估计就是失败了,你可以尝试修改standard为reduced,修改为reduced还是不行的你可以放弃OBGE了)。

OBGEv3 Core 会另外安装两个批处理文件到你的Data\Shaders目录内:

  • backup.bat:用来备份当前的所有shader;
  • flushcache.bat:用来删除OBGE因编译产生的文件,任何时候只要你修改了OBGE安装包,你都需要运行此文件,比如安装、卸载了Shader模块(并不是指Standalone Effect,详细见之前的文章)。

卸载 · Uninstallation

直接卸载OBGE可能会导致坏档、死档,所以务必按照操作执行:

  • 打开 我的文档\My Games\Oblivion\OBGE.ini,设置 bSaveData=0
  • 读取存档后后保存新档;
  • 卸载 OBGEv3 ,以后读档时则读取上面创建的新档。

卸载OBGE的方法是使用之前安装时创建的卸载程序,你可以在开始菜单里面找到。
或者也可以直接在游戏目录中找到,名字一般为uninst000.exe或者uninst001.exe、uninst002.exe,具体是哪个你得自己判断……

兼容与已知问题 · Incompatibilities & Known Issues

OBGE是个非常复杂的模组,它的系统很大程度上取决于你的系统配置。所以有些不兼容的问题必须先说下,你应该尽量避免。同时,还有一些已知的bug未解决。详细信息如下:

Anti-aliasing

这是大部分比较感兴趣的问题,而且一直都有人在研究,这边先说下官方的解释,这以后你再去参考其他人的建议:
OBGEv3与Oblivion本身的AA功能不兼容;
OBGEv3与ATI/AMD提供的AA设置不兼容;
OBGEv3与Nvidia提供的AA设置不兼容。
所以,使用OBGEv3之前,你需要关闭Oblivion的AA设置,关闭显卡的AA设置。
OBGEv3本身已经包含了很多可供选择的AA项目了。
上面是官方的解答,但是网上有显卡开启AA并与OBGEv3兼容的文章,你可以自行搜索。

Surface Format Optimisation

ATI/AMD的Surface Format Optimisation,又称Catalyst AI(知道中文名字的麻烦在下面回复我完善下文章内容)。
OBGEv3与此项这是不兼容,所以记得关掉。

Forced Anisotropic Filtering

OBGEv3玩家开启ATI的强制AF会导致游戏变卡。所以记得关掉。OBGEv3本身已经了AF功能了。
OBGEv3的AF主要由OBGE.ini中的 iSamplerAnisotropy 与 fSamplerLODBias 参数控制。iSamplerAnisotropy 用来控制强制,可以使用的数值有 2, 4, 8 或者 16(具体参照底部OBGE.ini介绍)。

部分动作模组

OBGEv3与部分动作模组使用会导致动作变慢,移除相关不兼容模组可以解决此问题。已知的冲突是 Deadly Reflex 6, 里面的 第一人称视角下看到第三人称动作(3rd Person Animations In 1st Person View,指的应该就是1st Person Legs) 动作会与 OBGEv3 冲突。

OBGE.ini

运行游戏后会在 我的文档\My Games\Oblivion 下生成配置文件 OBGE.ini。你可以通过修改 OBGE.ini 来控制 OBGEv3 的工作……后面安装standalone effect 的话,你会发现,有时候只要修改 OBGE.ini 某个参数的设定,某些shader就可能会失效,也可能会又生效了,所以 OBGE.ini 其实挺重要的,虽然一直都被大家忽略了。

你必须先运行游戏并且正常退出游戏后才能得到有效的 OBGE.ini,EXE安装时生成的 OBGE.ini 只是粗略的……强制退出游戏(比如从任务管理器终止进程)也是无效的。

下面是 OBGE.ini 默认的设置,绿色部分为介绍、说明。

[Serialization]
bSaveData=1			# 保存游戏时是否记录开启的shader
bLoadData=1			# 加载上一次存档时保存的shader

[PluginInterOp]
bEnableInterOp=0		# 此设置当前没任何作用

[Shaders]
bUseShaderOverride=1		# 是否允许替换原版的shader
bSaveShaderOverride=1		# 是否保存即时编译的结果,方便以后使用
sShaderOverrideDirectory=data\shaders\override\
bCompileSources=1		# JIT-compile source files, if this isn't
				# enabled it's necessary to # installed deployed binaries.
bOptimize=1			# 编译时是否开启优化,可以节省一两个指令。
bMaximumSM=0			# 是否升级shader到设备支持的最大模式
bUpgradeSM1X=0			# 是否升级 1.X shader 到 2.0 以满足 DirectX 9c 的需求
				# 因为 DirectX 9c 已废弃 1.X shader
bRuntimeSources=1
bUseLegacyCompiler=1

[Effects]
bNoShadersInMenus=0		# 打开菜单栏是是否关闭shader系统
bUseEffectList=1
sEffectListFile=data\shaders\shaderlist.txt
sEffectDirectory=data\shaders\
bUseLegacyCompiler=0		# 是否使用旧版的 Microsoft's HLSL 编译工具。
				# 此选项在一些老式显卡能提升速度。
				# 如果开启此项目导致游戏跳出的,可以复制Extras目录
				# 内的d3dx9_31.dll到游戏目录(Oblivion.exe 附近)
bRenderHalfScreen=0		# 是否仅渲染屏幕右边部分的内容。
				# 此项目用来比较渲染前后的差别。
bOptimize=1			# 编译时是否开启优化,可以节省一两个指令。
bPurgeOnNewGame=0		# 存档加载后是否重新编译shader。
				# 给那些不使用Shader开发工具的话即使查看编辑后的效果
bTailEffects=0			# 是否放置效果列表在流水线的底部,也就是说在HDR/Blur
				# 后面生效。能够提高性能,是OBGEv2的工作模式。

[General]
bEnabled=1			# 开启为0将关闭插件的作用但是可以使用控制台命令
				# (虽然实际上没有效果)
bEnabledDW=1			# 是否使用Shader开发工具
				# 如果使用的话,在窗口模式下启动
				# 游戏开发工具会自动弹出。
				# 全屏模式下,Shader开发工具无效

[DepthBuffer]
bUseDepthBuffer=1		# 是否开启depth buffer的读取
bUseRAWZfix=0			# 开启对使用RAWZ depth buffer格式的显卡的修复

[ScreenBuffers]
iBufferTexturesNumBits=0	# 此选项可以控制shader没帧缓冲的
				# 位宽深度(bit depth of the frame buffers)
				# 不同的显存位宽深度能够提升部分shader的准确度以及流畅性。
				# 可用的数值为:正整数或者负整数,表示你想要的显存位宽深度
				# 正值表示fp-bitdepth,负值表示int-bitdepth。
				# 如果你的显卡不支持特定数值的显存位宽深度,这边会自动尝试
				# 下一个最低值。部分OBGEv2玩家反应降低此数值可以解决
				# 输入lag的问题。
iBufferZDepthNumBits=0
iBufferRawZDepthNumBits=0
iReflectionMapSize=0		# 反射贴图(Reflection Map)的大小。
				# 整数表示大小为 给定数值x给定数值
				# 0.0到1.0的数值则表示大小为 游戏分辨率x给定数值
				# 0表示使用游戏当前宽度
iWaterDisplacementSize=0	# 水面置换图(displacement maps)的大小
iWaterHeightmapSize=0		# 水面高度图(height maps)的大小
iAutoGenerateMipMaps=2		# 自动生成rendertarget的纹理贴图
				# 部分效果需要此选项来加速
				# 同时在降低每个高度增加的LOD的情况下可以正确生成
				# Reflection Map。数值表示filter方式,1表示点,2表示线

[Textures]
bPurgeOnNewGame=0
iSamplerAnisotropy=4		# 如果数值超过1,这边可以开启Anisotropic filtering
fSamplerLODBias=-1.0		# 如果开启AF的话,是否应用 LOD-bias 
bDeGamma=0			# 是否对所有已加载的材质应用反向伽玛修正x^-2.2
				# (不包括rendertarget)。
bReGamma=0			# 在最后的rendertarget是否重新应用伽玛修正x^2.2。
icedream

About icedream

其实我知道的东西很少,只是翻译了一些东西,悲催的是翻译过后很快就忘了。

,

4 Responses to Oblivion Graphics Extender Core 安装与调整

  1. Martin J Potter 2012 年 11 月 2 日 at 上午 1:16 #

    为了学习这个知识,到处找相关文章,哎,真不容易,博主也不容易,在此也要感谢一下博主了。

    • icedream 2012 年 11 月 2 日 at 上午 9:07 #

      @Martin J Potter: 谢谢,因为想要翻译得好一点。

  2. muyefyte 2013 年 8 月 28 日 at 下午 11:52 #

    现阶段是上V2好还是V3呢?

    V3感觉BUG多多。。。。。。。

  3. 奶瓶 2013 年 11 月 25 日 at 下午 8:50 #

    。你好蓝大,我是入坑的新人,。装OBGE之前认真读完了说明,关闭了N卡的效果,同时游戏中的HDR效果也开启了,安装完成后进主选单正常,但是读档后左上角出现加载各种。当每次加载到:STM:Initializing(貌似意思是初始化?),就马上黑屏了,但是Tab键的物品状态地图都完全正常,物品状态右边的人物也显示正常。ESC也能用,呃,画面上除了3个状态条以及方向条都是黑的,人物能正常行走,走到另一个地图也是黑屏的,网上查了很多实在没办法来求助大大了。