视频滤镜是给原始图像加上特效后最终显示在屏幕上的效果。RA最强大的功能之一就是提供了非常多的渲染器,这些渲染器经过一系列排列组合,能组成强大的滤镜,使模拟器画面能以非常接近实机的复古效果呈现在玩家面前。这些排列组合,也是玩家们修改参数并分享的。
在RA里,滤镜有两种,一种在RA菜单,设置-视频-视频滤镜里,直接选用,退出RA后会自动保存,下次载入游戏即可生效。英文就是filters,滤镜文件都在RA的filters文件夹里,这其中还包含了音频滤镜。这种滤镜需要CPU进行处理,消耗的是CPU资源。图中Phosphor2x滤镜是模拟CRT扫描线和荧光体的滤镜,效果很不错。一旦在这里选用了某个滤镜,默认会变成全局配置,即以后用RA打开的游戏都会有这种滤镜的效果。
还有一种,滤镜文件在RA的shaders文件里,需要消耗GPU资源进行渲染。
shader就是着色器,已经被广泛应用于各种游戏中,譬如第一次启动大型游戏时,会提示机器根据你的显卡编译着色器文件,目的是进一步优化显示。着色器的工作原理不作深度解析,总之它和cpu运算不一样,它是利用gpu的众多单元同时处理的,对显示来说效率更高。RA里的着色器,也就是我们平时所说的滤镜。shader必须在载入一个游戏后,才能看到其选项并进行选择。当然,也可以将选好的滤镜保存到配置,这样下次在载入游戏后,就会自动加载这个配置里保留的滤镜了。Shaders文件夹里的滤镜,是用着色器语言编写的着色器文件,有glsl和slang两个文件夹,这是针对两种不同的视频驱动来使用的,如果你使用了vulkan驱动,就需要使用slang文件夹里的滤镜,相反,使用gl驱动,就只能到glsl文件夹里找滤镜使用,否则,即使打开了文件夹,你也看不到可以选用的滤镜文件。更改视频驱动的方法是:设置-视频-输出,在这里可以切换不同驱动。一般来说安卓掌机或电脑都使用vulkan驱动,部分老旧电脑可能需要gl驱动才能正常使用RA。
RA原版提供的滤镜相当多,在载入游戏后,呼出RA菜单,快捷菜单-着色器里,就可以选择开关视频着色器,不过,这里的开关不能统一关闭所有游戏的着色器,下次进入游戏后,仍然会默认开启着色器。
英文原版的菜单
汉化后的菜单(第四行“预设”应当显示成“插入预设”)
记住上次使用的文件夹,是指你选择一个滤镜不满意后,想手动选下一个时,会自动打开之前的那个着色器文件夹,免得一层层再进入。不过其实老版本在菜单里你即使把它打开了,下次还是不会记忆上一次的文件夹,仍需手动开启,这可能是一个bug。新版的RA我不清楚更改后下次能否生效,想确保正常使用,可以到RA文件夹下找到配置文件,retroarch.cfg,搜索video_shader_preset_save_reference_enable把值改为"true"再保存即可。选择“加载预设”,就可以逐一选择滤镜查看效果。为了方便调试,也可以使用快捷键来逐一切换滤镜,这样就不用每次都打开菜单来切换了。方法是在设置-输入-快捷键,找到“上/下一个着色器”来进行定义。着色器中的另外两个选项,一个是“插入预设”(英文原名Prepend,1.19.1版显示错误,少了“插入”两个字),一个是“附加预设”(英文原名Append),都是在当前已经选好的滤镜基础上添加新的滤镜进行更多层次的渲染,这两者区别是:插入是在当前滤镜的渲染层上方插入新的渲染,附加正好相反,是在当前渲染层下方追加新的渲染。当然,如果你想直接使用新的滤镜,只需要选载入预设就会自动用新滤镜覆盖当前的滤镜。在游戏中选用好自己喜欢的滤镜后,一样可以保存配置,以使该滤镜效果在下次载入游戏时自动产生,而不要重新手动重选。只需要点击“保存预设”进行保存。保存逻辑和RA的其他配置一样,有不同方案。保存全局预设,是把这种着色器保存到一个global.slangp或global. glslp文件中,以后无论用何种RA核心打开游戏,都会自动载入这套滤镜。保存核心预设,是指用这个模拟器打开任何游戏,无论rom是否在同一个文件夹内,如街机动作游戏和街机射击游戏分在两个不同文件夹,但都是用fbn核心的话,只会调用FinalBurn Neo.slang或FinalBurn Neo.glslp的配置。保存游戏文件夹预设,就是说我运行的该文件夹下所有的rom都参照当前运行的游戏来载入滤镜。保存游戏预设,着色器仅对当前游戏进行保存,不会影响到其他游戏。
保存预设的菜单
这几个保存逻辑的范围是逐步缩小的,但优先级却是越来越高,也就是说,当几种预设同时存在时,模拟器载入游戏之后,会优先使用个体配置,之后才考虑载入组内-该模拟器核心-通用滤镜的配置。实际上,不单单是滤镜,其他包括按键映射、屏幕尺寸、遮罩、核心DIPS等,都是按这套逻辑来进行保存预设的,虽然复杂,但也体现出RA开发者考虑了实际需求而人性化的一面。对于开发者来说,内部的加载逻辑是从全局一层层加载到个体的,只不过我们的感觉好像它只优先加载了一个个体配置而已。
当加载了某个滤镜后,就能实时显示滤镜效果,RA提供了多种滤镜,复古玩家一般还是偏爱老式CRT的那种扫描线滤镜,这种滤镜常搭配几种特效,以满足不同的爱好者,除了模拟老CRT隔行扫描带来的扫描线效果,还可以模拟不同CRT原理的效果,荧光粉漫反射的“通透感”,CRT的高饱和度,以及低分辨率下自带“模糊”令人脑补出来抗锯齿、抗马赛克效果。有时,会有人追求老式CRT球面屏的变形效果,还有更“过分”的屏幕边框上实时反射游戏光线的反光效果。渲染次数越多的滤镜,往往效果越华丽——充分体现了油多不坏菜这句俗语——广受好评的皇家CRT滤镜,可高达12层的叠加渲染,另一种球面加边框反射并模拟电视或彩监的滤镜,可高达17次渲染。B站一位视频专家“脑浆油条”分享了一套荧光线系列滤镜,也非常漂亮,个人觉得比皇家CRT还好。使用渲染次数多的滤镜虽然华丽,但代价是比较吃GPU性能,可能带来一定程度的延迟,当然如果你的机能足够,完全可以尝试这些华丽的效果。每种着色器的渲染参数,也可以根据个人喜好进行进一步的设置,方法是到“着色器参数”里一一调试数值,不过我不建议这样做,因为RA自带的滤镜已经帮大众调试到比较好的状态了,自己调试是一件很繁琐的事情,有时间精力的玩家可以自己慢慢调试。
泡泡龙皇家CRT滤镜。类似于CRT皇家/边框反射这样的滤镜,需要搭配更高分辨率大尺寸的显示器,才能表现出细节,在小屏幕下是看不清楚效果的
合金弹头展示荧光粉散射效果,人物和字体轮廓边缘很明显。
合金弹头 反射边框滤镜截图
合金弹头 反射边框滤镜和在奥丁2实机下的屏摄效果
华丽的滤镜被公认为需要在大尺寸屏幕下展现才能获得比较好的体验,所以推荐在4K大电视或4K电脑显示器下使用。而对于安卓掌机这样的小屏幕,反而不会把细节显示得很清晰,各类滤镜之间效果差别不容易辨别出来,甚至出现压缩图像引起的干扰纹或摩尔纹。所以掌机我推荐普通的CRT扫描线或荧光点3.3滤镜,渲染个1-5次就可以了,这样性价比很高,既不对性能造成很大影响,又能在掌机这块小屏幕上获得不错的复古效果。
此外,老式掌机用的都是LCD屏,具体情况又有所差别,GB用的是STN液晶屏(超级扭曲向列,绿屏),GBP用的是FSTN(薄膜补偿超扭曲向列,黑白屏),GBC、GBA、NGPC、WSC改进版用的是反射式TFT屏(薄膜场效应晶体管,彩屏),游牧民用的TN屏(扭曲向列,彩屏),这些屏幕的观感上都具有明显的差异,通过不同的滤镜都能模拟出来。遗憾的是,当我真正在RA中选择这些机种对应的滤镜来看,还原这些屏幕色彩效果的滤镜观感都比较差,尤其是GBA、PSP之类,体现在亮度晦暗,饱和度差,但它们确实是尽可能还原了当年实机的显示效果,只不过今天我们很难接受那样的画面罢了。不过,GB、GBP这块的模拟还是很好的还原了黑白屏和绿屏像素点效果,甚至连液晶响应时间长造成动态拖影的效果也还原了。在彩屏滤镜这方面,我将所有的彩屏掌机都采用了点阵效果的模拟。
GBA液晶原色(模拟实机的晦暗效果)和液晶点阵滤镜(模拟器加亮)的对比
GB绿屏液晶、GBP黑白屏液晶、GBC彩屏液晶的模拟
RA的shaders滤镜文件在PC很好找,就在Retroarch\shaders文件夹里,但在安卓,是在RA安装文件夹的隐藏目录里,有两种方式可以查看它。一种是用奥丁或者沙雕掌机自带的文件管理器(其他安卓机我不知道有没有这个查看隐藏文件夹的功能),这种方法无需root。在文件管理器中,点击左上角三道横线,左侧弹出菜单,往下滚动,可以看到RA的图标,点进去,就会自动显示RA隐藏文件夹,我们可以对shaders(滤镜)、cores(模拟器核心)进行备份,但是即使是root过的机器也并不支持删除内部文件。还有一种方法,需要root,然后使用MT之类的第三方文件管理器。以MT管理器为例,点击三道横线,选“根目录”,找到data/data/com.retroarch.aarch64/shaders目录,就能对滤镜进行备份、删改。你也可以把滤镜都转移到非隐藏的RA文件夹内使用。
目前天马整合包提供的RA安装包,是把核心和滤镜打包到apk里的,所以一般玩家倒也不用折腾。RA原版自带的滤镜是非常多的,加上大光圈和B站高手“脑浆油条”制作的,高达一千多种,但其中有实用价值的并不多,我将其精简到205个,并逐一翻译,在名字上标注了渲染次数,这样你可以根据机能和需求更直观进行选择。
不喜欢滤镜的人,也可以关闭它。但是RA不提供在菜单中统一关闭的方法。关闭滤镜有两个方法。第一种方法需要编辑RA的配置文件,PC下直接到Retroarch文件夹,安卓到内部共享存储空间\Android\data\com.retroarch.aarch64\files,找到retroarch.cfg打开,查找到auto_shaders_enable = "true",把值改成“false”保存就行。第二种方法,可以在游戏中进行,打开着色器菜单,载入预设,选择双线插值或邻近插值之一(具体看个人喜好),应用更改后,保存为全局预设,这样打开任何游戏就相当于没有开滤镜的效果。第二种方式更加适用于掌机。
滤镜就说到这里。把遮罩和滤镜这两样玩透了之后,就可以算是RA的中级玩家了,普通玩家对于模拟器效果的追求基本到头了。
下面贴一些遮罩搭配滤镜的效果,使用的滤镜是个人比较喜欢的“CRT 海里安 多通道 2次渲染”或者脑浆油条的“荧光点3.3”系列。
视频演示:
精简并汉化的滤镜最新版包含
B站脑浆油条制作的CRT荧光点3.3和CRT荧光扫描线1.0
bezel反射及环境光滤镜
搭配全部遮罩打包下载
链接:
https://pan.baidu.com/s/1ewFBBTEWwDhPTeDAKUPD2Q?pwd=zf8k
解压:跳坑者联盟
参考资料
https://docs.libretro.com/guides/shaders/
https://www.retroarch.com/?page=shaders