琵琶行论坛

 找回密码
 注册
每日签到论坛FTP使用教学领取红包(开放!)论坛FTP搜索引擎
查看: 4045|回复: 50

[讨论] 给使用retroarch的伙计推荐shade和参数调整说明(新增纹理缩放)

[复制链接]

该用户从未签到

发表于 2021-1-30 10:48:37 | 显示全部楼层 |阅读模式
本帖最后由 cyrixsun 于 2021-3-7 14:05 编辑

官网论坛的帖子 https://forums.libretro.com/t/hs ... and-updates/25512/1
从19年末开始项目,还在更新中,国内的各个论坛和视频网站好像从来没有人介绍过。
严格来说应该算是overlay,整合了几个深受喜爱的crt滤镜(包括Royale、Guest-Venom、Guest-Sm)、点阵滤镜,还整合了MDAPT和ScaleFX,增加了很多调整选项,所以画面表现是不俗的。最特殊的是给游戏画面外围加了一圈可以实时反射游戏内容的边框,立体感极强。
MDAPT:全称merge dithering and pseudo transparency,是可以改善老游戏半透明效果的算法,在retroarch着色器目录下的dithering目录就有,由sp00kyFox实现。原帖给了MD索尼克中瀑布的效果图,我这里再给个对比图便于比较。第一图是原始的,第二图是开了MDAPT的。
Sonic The Hedgehog (W) (REV00) [!]-210307-135636.png
Sonic The Hedgehog (W) (REV00) [!]-210307-135553.png
ScaleFX:2D图像的平滑缩放算法,等效xBRZ甚至更好,有了它就不用再想念着xBRZ了,在retroarch着色器目录下的scalefx目录就有,也是由Sp00kyFox实现的。在本套shader中,通过改变几个参数,可以关闭扫描线效果,开启任意放大倍数的ScaleFX,生成非常好的2d平滑画面,满足不同人对画面的需求。下面的参数调整里会详细说明。

我请人帮忙搬运了滤镜包 https://www.ppxclub.com/forum.ph ... 3488&extra=page%3D1
使用前提:
1、retroarch 1.9版
2、设置--驱动--视频中,驱动必须选glcore(opengl)或vulcan。作者推荐用vulkan,性能更好。我自己是把vulkan设为全局有效,但是对某些核心专门指定用glcore,例如beetle psx hw,也是没问题的。
3、设置--视频--缩放中,关闭“整数缩放”,“高宽比”选显示器的实际比例(比如16:9)。不用担心游戏画面变形,该着色器接管后会正确处理的。
-------------------------------------------------------------------------------------
该滤镜有一套专用的4K超清框体包,感兴趣的请自行下载。
帖子地址 https://forums.libretro.com/t/du ... k-and-updates/28146
下载地址 https://github.com/Duimon/HSM-Reflection-Shader-Graphics

-----------------------------------------------------------------
放一张作者给的预设文件说明,不过稍有点过时了。
Base部分是功能最全、运算量最大的。可以看到有著名的royale crt滤镜;guest-dr-venom、guest-sm也是流行的crt滤镜。我目前用的是guest-dr-venom,也推荐用这个。
Glass部分是玻璃特效,在屏幕空白部分加上毛玻璃,可以朦胧映射更多的游戏画面,非常炫。

13f057f4d0f0d1284345325006d89731ecf67855.png

--------------------------------------------------------------------------------


下面介绍几个和画面有关的参数调整。在“着色器参数”里设置。设置好后别忘了保存为该核心的预设或该游戏的预设。
[ROTATE]  Rotate CRT Tube
旋转游戏画面。
当使用FBneo核心玩街机的纵版游戏时(比如1942),先在FBneo的选项里开启vertical mode,然后再打开本开关,这样操作才能显示正确的纵版缩放画面。

___HSM MEGA BEZEL__ V.202X-XX-XX-0 - Debug ON
[ASPECT]  Type
[ASPECT]  Explicit Aspect Ratio
[SCALING]  Int Scale Mode
对核心处理完后传来的一帧图像进行二次拉伸,在横向和纵向上分别拉伸,达到匹配选定的宽高比类型的目的。
拉伸的原则由[SCALING]  Int Scale Mode决定。模式0(默认的),非整数倍拉伸,比如纵向放大6.5倍 同时横向放大7.4213倍;模式1,纵向整数倍拉伸;模式2,纵向和横向都整数倍拉伸。
在进行设定的时候,打开Debug ON开关,可以在显示器上列出各项信息方便查看,包括:核心传来的图像大小、二次拉伸后的图像大小、在纵向和横向的拉伸倍数、你的显示器的分辨率等。
宽高比类型有如下七种可选:
0 - auto:默认的,程序根据核心传来的游戏图像的宽高比自动选择一种输出比例。在玩fc/sfc/md/ss/ps1游戏时,都会自动按照4:3放大输出,模拟出crt电视机相同的显示效果。但是智能程度还是不够,比如用flycast核心玩dc的刀魂2,如果开启了宽屏选项,它就判断不出来是宽屏的,还按照4:3输出,这时就得手动选择16:9了。
1 - Explicit:按照玩家手工设定的宽高比数值来处理。[ASPECT]  Explicit Aspect Ratio就是可以手工设定的宽高比数值,比如1.33就对应4:3、1.78就对应16:9。
2 - 4:3
3 - 3:2
4 - 16:9:如上面所说,有时程序判断不对正确的输出比例,就需要手动选择宽屏,主要应对宽屏hack后、wii等等宽屏画面游戏。
5 - PAR
6 - Full:将游戏图像拉伸到填满显示器的屏幕,可能导致连反射边框都没了。
以模拟psp和gba这两个比较特殊的举例。这两个掌机都是固定分辨率的液晶屏设备,游戏也是针对这样的分辨率开发的,所以我们希望把原始分辨率整数倍拉伸就好了,没有一丁点变形。
那么将[ASPECT]  Type设置成5 - PAR,将 Int Scale Mode设置成模式1,就ok了。之后在核心的选项里随意调整其处理输出的图像,比如ppsspp核心,我针对我的4K屏,将internal resolution设成了2880*1632,最后屏幕上显示的就是2880*1632的图像。

[2D CURVATURE]  2D Curvature on Long Axis
[2D CURVATURE]  2D Curvature on Short Axis
横向和纵向的曲率,不喜欢球面显示的,把这2个值设为0就是直边了。

特别提醒:有时调整扫描线参数会导致出现摩尔纹,这是球面显示造成的,所以设成直边就行了。

接下来是游戏画面效果的参数介绍。
首先要说明的是,使用该着色器,即便保持默认设置,画面也算是不错的。
①[CORE RES SAMPLING]  Scanline Dir
②[CORE RES SAMPLING]  Opposite Dir
③[SCALEFX] ScaleFx On
④[INTERLACE]  Trigger Res
⑤[SCREEN FX]  Fake 240p Scanline Opacity
③参数是ScaleFX的开关,默认是关闭,也就是不进行纹理缩放。同时联动①②参数。
①②参数设定了对核心传来的图像在横轴和纵轴的采样率/放大率,默认是1,也就是不采样/不放大,原封不动再处理。设为小数就是降采样,比如①设为0.5/②设为0.25,那么可以把核心传来的1280*960的图像采样成640*240的。设为大于1时,就是调用ScaleFX来进行纹理缩放,2x、3x、4x……。
下面用sfc的马里奥世界、ss的月下来演示一下ScaleFX的效果。
第一张都是默认参数的效果,可见都是马赛克放大+扫描线黑线。特别说明,这时的扫描线黑线是滤镜程序直接插在图像的每行之间的,所以是图像自身的一部分,区别于④⑤的那个扫描线黑线图层,作者特意强调了这点。
第二张都是③开启、①②都设为2时的效果。画面中Sampling Res这行表示图像已经是2倍平滑放大了,可以看到边界的平滑程度都是xBRZ级别的。也不再插入扫描线黑线了。至于为什么不再插入黑线,作者的意图应该是这样的。如果当初FC/SFC诞生时能够有足够强的机能,那就不必采用non-interlaced方式了,那么我们在普通crt家电中就再看不到黑线了,应该差不多也是这种2倍ScaleFx后的画面。原则上应该和用DC玩480P的感觉差不多。
Super Mario World - Super Mario Bros. 4[CHT20190816]-210226-113546.png
Super Mario World - Super Mario Bros. 4[CHT20190816]-210226-113156.png
DRACULA_X_J_HACKED_BY_YZB_20200719-210226-114301.png
DRACULA_X_J_HACKED_BY_YZB_20200719-210226-114431.png

如果你觉得少了黑线就缺了感觉,或者就是DC接传说中的1080i crt电视,那么下面就是把黑线加回来的方法,不过是“伪黑线”。
④参数是个门限值,表示当Sampling Res里图像纵轴达到多少分辨率时,在图像表面再覆盖一层扫描线黑线图层,目的是看起来更像crt电视的效果。默认值是600,随意调整。
因为是覆盖的图层,所以黑线不是图像自身的一部分,所以⑤称为fake scanline。
下面的2张图给出了效果,仍然是③开启、①②都设为4,因为纵轴分别达到了956、960,都超过了600,所以都自动覆盖了扫描线黑线图层。
当然也可以①②都设为2,把④设为400。
⑤参数则是设定扫描线黑线图层中黑线的明暗的(注意不是粗细),1为最黑,0为不可见。
Super Mario World - Super Mario Bros. 4[CHT20190816]-210226-113403.png
DRACULA_X_J_HACKED_BY_YZB_20200719-210226-114845.png

ScaleFx的另一大用处,以ppsspp为例。之前ppsspp核心(包括独立版)的xBRZ texture upscale功能一直存在失效的问题,虽然在1.11版引入了texture shader功能,但并不完美。现在,可以让ppsspp核心不做任何多余的处理,只输出480*272的原始图像,由着色器的ScaleFx来做纹理缩放,也就相当于xBRZ texture upscale,并且不会失效。下面的2张截图展示了效果。皇骑大场景变化后边缘都很平滑,少年街霸3运动人物边缘也是平滑的。采用如下的策略基本上能获得很好的画面:
如果最终输出画面是原始画面的6倍,那么在核心的选项里把内部分辨率设为3x、纹理过滤就用nearest,着色器里再设置为2倍ScaleFx。
如果最终输出画面是原始画面的8倍,那么,或者在核心的选项里把内部分辨率设为4x、着色器里再设置为2倍ScaleFx,或者在核心的选项里把内部分辨率设为2x、着色器里再设置为2倍ScaleFx、最后的2倍整数放大由着色器默认自动完成。
少年街霸3双重提升[美版]-210226-215350.png
皇家骑士团(汉化典藏版2016)-210226-221335.png

不单是2D游戏,2D背景+3D人物的游戏也适用。用duckstation核心跑FF9为例。duckstation核心选项中,内部分辨率设为3x(for 720p),TextureFilter为Nearest,MSAA都没开;着色器这边设置为2倍ScaleFx,并开启fake 240p scanline。在保持良好解析度的同时,不显油腻。后2张图是有没有开启fake 240p scanline的对比。
FF9_CD1-210227-204131.png
FF9_CD1-210227-204203.png
FF9_CD1-210227-204306.png
FF9_CD1-210227-202558.png
FF9_CD1-210227-202455.png

以及用beetle psx hw核心跑最终幻想7,设置上基本相同,无论是游戏画面还是装备文字界面,表现都不错。 最终幻想7国际版[汉化]-210228-111344.png
最终幻想7国际版[汉化]-210228-111749.png
最终幻想7国际版[汉化]-210228-112035.png


下面介绍模拟crt电视显示风格的参数,也就是对荫罩板的模拟。
在介绍参数前先简单普及一下概念,便于对参数的理解。
crt电视的荫罩板大体上有荫罩式(Shadow Mask)和荫栅式(Aperture Grille)两大类。
荫罩式又有点状、沟槽状(slot mask)之分;荫栅式就是特丽珑(Trinitron)/钻石珑了。
点状荫罩式都是中低端电视机采用的,老式的球面屏都是,是最普通的;沟槽状荫罩式要高级些;特丽珑当然是王座了。放两张网上找来的图方便后面说明,从左到右就分别是点状、沟槽状、荫栅式的结构模型。
shadowMask.jpg Trinitron.jpg
现在再来介绍参数。
①[MASK]Type:0是CGWG,1-4是Lottes,5和6是特丽珑,7是slot mask。默认是7。
②[SLOT MASK]Size:1值适合1080p显示器,2值适合4K显示器。观感不明显。
③[SLOT MASK]Strength:调节画面整体的strength。默认0,调太高了画面就花了。
④[SLOT MASK]Width:调节沟槽孔的宽度。作者说2/3适合1080p显示器,4/5/6适合4K显示器。
⑤[SLOT MASK]Height:调节沟槽孔的高度。作者说2x1适合1080p显示器,4x1适合4K显示器。
⑥[MASK]5-7 cutoff:设定how soon black appears between pixels for colors that are close to the R, G, or B primaries。
⑦[MASK]4-6 Strength Dark:调节横向上每个荧光点之间黑色间隙的宽窄。数值越小,黑色间隙越宽越显黑,荧光点就越窄,画面整体颗粒感就越强。
⑧[MASK]4-6 Strength Light:调节横向上每个荧光点的宽窄。数值越大,荧光点就越宽,颗粒感就越弱。
⑨[MASK]PVM Like Colors:模拟类似PVM/BVM的色彩。调节起来没看出啥区别。
①参数显然就是选择模拟的风格了。0/1/2/3/4都是模拟点状,观感差,适合忆苦思甜。7是模拟沟槽状,作为默认设置,观感ok,同时关联②③④⑤进一步调节。5是finer version的特丽珑,横向上的每个荧光点的间距小、分离度不高,说是适用于1080p显示器;6是more coarse version的特丽珑,横向上的每个荧光点的间距较大、颗粒感强,说是适用于4K显示器。
②③④⑤这几个参数是当①参数设为7时有效的。
⑥参数是当①参数设为5/6/7时有效的,我不太懂原理所以不好翻译,似乎是说像素在“显现颜色-->变黑-->显现颜色-->变黑”这个过程中转黑的速度该多快。总之是数值越大越快。
⑦⑧参数应该是写错了,不是4-6,而是1-6,也就是①参数设为1/2/3/4/5/6/7时都有效。

--------------------------------------------------------------------------------

上两张用flycast核心玩dc游戏的4K截图(核心设置内部分辨率为1280*960)。
一个是cvs2,开启Fake 240p Scanline;一个是3d的刀魂,在核心选项开启宽屏,着色器参数按照上面说明的手工设置为16:9,并关闭了Fake 240p Scanline。
Capcom vs. SNK 2 - Millionaire Fighting 2001 (Japan)-210225-193110.png
Soul_Calibur (U)-210225-185831.png



















评分

6

查看全部评分

该用户从未签到

 楼主| 发表于 2021-2-23 15:35:14 | 显示全部楼层
ArcTheLad 发表于 2021-2-23 14:16
这滤镜还是复杂,按大佬的说法改了下,发现框架是出来了,但是之前默认的那个也在,如图。。是不是还有其他 ...

默认的反射边框是滤镜参数调节的,需要调的参数如下
[BEZEL]  Width:上下两条反射边框的宽度,调成0就没了
[BEZEL]  Height:左右两条反射边框的宽度,调成0就没了
[FRAME]   Thickness:反射边框外圈的那层黑框的宽度,调成0就没了
还有,想要nds的纯平效果,还可以把画面弧度去掉,我在主贴里写了改哪个参数。

另外,双屏时,两个屏的间距是可调的,参数如下
[SPLIT SCREEN]  Split Thickness:调整双屏间距
以及你这里需要把双屏作为整体向上移动,参数如下
[POSITION OFFSET Y]:在垂直方向移动游戏画面

最后,看你这个画面比例,应该还是横屏的吧。NDS的这个4K Vertical机框图分辨率是2160 * 3840的,是纵屏时用的;横屏用的话,缩小后的比例与滤镜就匹配不好了。这是我调整后的纵向效果,感觉还不错。当然我用的电视,没法竖起来,所以是横屏截图。
PuYoPuYo7-210223-150223.png

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

该用户从未签到

 楼主| 发表于 2021-2-22 20:02:30 | 显示全部楼层
ArcTheLad 发表于 2021-2-22 18:08
模拟nds,下了4k框架图片,也改了retroarch主目录下的config目录下的melonDS目录下melonDS.slangp这个文件 ...

我试了一下,找到了问题的原则。
你的滤镜应该是选用了hsm__MEGABEZEL__00__SPLITS-SCREEN__GUEST-DrVENOM,这时用我这个方法确实是不行的。
你需要编辑一下hsm__MEGABEZEL__00__SPLITS-SCREEN__GUEST-DrVENOM.slangp这个文件,它有一行是
BackgroundImage = ../bezel/shaders/HyperspaceMadness/textures/BackgroundImage_Carbon_3840x2160.png
把=后面的改成自己的图片路径就可以了。当然这不是图片作者建议的方法,我下面会说明。

如果滤镜不选hsm__MEGABEZEL__00__SPLITS-SCREEN__GUEST-DrVENOM,而是其它的单屏滤镜(比如hsm__MEGABEZEL__0__LCD-GRID),那么我的方法还是行的,只不过这时游戏的两屏画面由melonds控制的,是连在一起的,中间没有隔断。
以上是两屏水平排列的情况。我想你不会用垂直排列吧,那就要旋转显示器了。

其实我们平时在模拟器里保存针对某个核心的着色器预设文件时,在“保存”页面有一个“简单预设”的开关是打开的,这时像melonDS.slangp这个文件的内容就是
#reference ":/shaders/shaders_slang/bezel/hsm__MEGABEZEL__00__SPLITS-SCREEN__GUEST-DrVENOM.slangp"

如果把“简单预设”的开关关闭,melonDS.slangp文件的内容就是原始hsm__MEGABEZEL__00__SPLITS-SCREEN__GUEST-DrVENOM.slangp的复制,你再打开melonDS.slangp文件看看就知道该怎么改了,而这才是图片作者推荐的方法。我那个方法是取巧了,因为操作起来方便,不用作太多说明,没想到会出问题。

是否能从模拟器设置里选择,你可以试一下,如果匹配不好可能会覆盖游戏画面的。不过我是不用框架的,所以不太清楚

点评

谢谢大佬提供详细解决方法,我再去研究下  发表于 2021-2-22 22:43
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

 楼主| 发表于 2021-2-9 20:06:59 | 显示全部楼层
232582 发表于 2021-2-8 13:44
这个模拟器真折腾人...我还是用单独的模拟器好一些..

如果你那一天pc接4k电视了,一定要用这套试试看

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

该用户从未签到

发表于 2021-1-30 11:05:17 | 显示全部楼层
这个滤镜使用fbn核心的时候不支持纵版游戏,显示比例无法调整的合适,横版没问题,不知道楼主有办法没?
回复 支持 反对

使用道具 举报

签到天数: 550 天

[LV.9]以坛为家II

发表于 2021-1-30 11:06:48 | 显示全部楼层
厉害!
回复

使用道具 举报

签到天数: 87 天

[LV.6]常住居民II

发表于 2021-1-30 11:09:23 | 显示全部楼层
这个可以有!
回复 支持 反对

使用道具 举报

签到天数: 72 天

[LV.6]常住居民II

发表于 2021-1-30 11:18:16 | 显示全部楼层
这扫描线也太粗了吧
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2021-1-30 11:22:11 | 显示全部楼层
愤怒的小鱼 发表于 2021-1-30 11:05
这个滤镜使用fbn核心的时候不支持纵版游戏,显示比例无法调整的合适,横版没问题,不知道楼主有办法没? ...

先在fbn的选项设置里开启vertical mode,然后在着色器设置里开启Rotate CRT Tube,就OK了
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2021-1-30 11:33:43 | 显示全部楼层
fuckkonami 发表于 2021-1-30 11:18
这扫描线也太粗了吧

画面上的横竖纹是截图的原因,游戏运行时看根本没有或者很轻微
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2021-1-30 12:47:01 | 显示全部楼层
这个东西幻想过,终于真的有了
回复 支持 反对

使用道具 举报

签到天数: 91 天

[LV.6]常住居民II

发表于 2021-1-30 13:38:17 | 显示全部楼层
大屏幕玩老点阵游戏,要么柔化,要么扫描线,这套crt可以啊,只能用在全能模拟器上么
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-1-30 14:11:10 | 显示全部楼层
cyrixsun 发表于 2021-1-30 11:22
先在fbn的选项设置里开启vertical mode,然后在着色器设置里开启Rotate CRT Tube,就OK了
...

多谢楼主,解决问题了
回复 支持 反对

使用道具 举报

签到天数: 17 天

[LV.4]偶尔看看III

发表于 2021-1-30 14:20:34 | 显示全部楼层
这个看起来不错 得试试
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2021-1-30 16:45:22 | 显示全部楼层
牛皮,感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|琵琶行论坛 ( 赣ICP备12000882号 )

GMT+8, 2021-3-7 16:32 , Processed in 0.043346 second(s), 11 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表