[模拟器相关]我又来安利这个CRT滤镜了

  • L
    Lunamos
    上次安利过一回,然而并没有详细说明各种设置相关联的东西是什么,而且新浪图床惨剧了。
    https://www.saraba1st.com/2b/thread-1795355-1-1.html

    这次还是主要介绍CRT_Royale这个滤镜,以及为何这是目前模拟CRT的几乎唯一选择,并且较为详细地介绍了各种参数的调整会造成的影响。泥潭编辑多图有点麻烦不知为何经常失败,文章发在TG和Bilibili上了,有兴趣可以看一下:《[多图]介绍游戏模拟器里各种常用滤镜的原理和效果,以及9102年了该如何正确模拟CRT!
    TG:https://club.tgfcer.com/thread-7657428-1-2.html
    Bilibili:https://www.bilibili.com/read/cv3065212

    忘记当时用了外链图床……那么原文也直接放在这里吧(只关于CRT滤镜的部分):

    CRT滤镜

    首先请把所有其它CRT滤镜扔掉,只留下一个:CRT-Royale(除非硬件跑不了,再考虑其他)。该滤镜使用了大量pass进行了CRT的模拟。如果PC性能够强的话,延时方面的影响也很小。CRT-Royale十分复杂和强大,对GPU有一定的要求。如果用intel的GPU的话(集显)需要进行修改,改版也在RetroArch里提供了。用来显示CRT_royale滤镜的屏幕至少需要2K以上的分辨率,4K甚至8K屏幕的模拟效果更加真实。是的你没看错,要模拟CRT,最低要求是2K分辨率,4K更佳

    我们知道CRT中的磷光体(或荧光体)是产生冷发光现象的物质,受到阴极射线(电子束)激活发光。它发出的光线具有一定的特征,与现代LED的像素光线有较大的区别。CRT滤镜的关键就是通过大量现代LED像素去模拟磷光体的发光特征,从而模拟CRT的显示效果。而在这方面做得最好的就是此滤镜了。(CRT虽然没有直接的像素的概念,只有荧光粉或者荧光条。不过电子束的信息改变是离散的,因此我们可以将离散电子束信息改变周期内扫过的空间等价为像素的概念)。

    在RetroArch的桌面UI里打开CRT-royale的设置界面,我们可以看到很多相关设置,涉及到一些重要的调整项。如果你对Shader语言略有了解,也可以直接打开Shader文件进行调整,只是没有界面中方便。根据每个人接触到的不同型号和不同厂家生产的CRT,你所喜爱的CRT参数必然有所不同,玩家可以自行调整到喜欢的设置选项。

    首先看看效果(网络图片有压缩,要观看大体效果还是自己4K全屏运行模拟器比较靠谱。看图片也要看大图,小图自带AA,把所有特征都抹掉了):



    对比没开滤镜的游戏:


    影响最终效果的选项很多。下面我们来解释一些影响较大的参数:

    Halation and Diffusion
    Halation是被荧光体直接反射的光线,而Diffusion是光线穿过CRT玻璃时产生的散射荧光。这两项参数的权重可以进行调整。


    Bloom
    如果点亮的荧光体发光过强影响到了电视上的其他面积,使整个画面变得过亮,就是一种bloom的效果。特别好的CRT会控制bloom,但由于这是大量中低端电视可能产生的效果,因此也需要忠实模拟。


    Beam
    这项参数控制了实际进行扫描的电子束的各项维度。不知为何一直有人认为scanline是黑线:scanline是扫描到的线,而没扫描到的地方才是黑线。除了可以调整Beam本身的大小以外,这里也可以调整高斯模糊函数的各个参数。根据不同的参数选择可能产生不同型号电视或街机的效果:


    Convergence
    彩色电视电子枪发射的三束射线对荧光粉的轰击是否足够整齐:好的CRT比如彩监是非常整齐的,但许多消费者级别的CRT这方面的表现就很一般了,根据每个人童年不同质量的CRT可以仔细微调。


    MASK
    这项控制的是荧光体的排列方式。滤镜提供了三种排列:0.0 (Aperture Grille), 1.0 (Slot Mask), 和 2.0 (Dot Mask)。这三种排列如下:

    每一种排列都对应不同厂家的电视效果,可以分别予以调整。同时,MASK也有大量参数可以进行调整。比如使用的荧光体个数可以调整CRT显示的粒度。


    和其它滤镜相比也是高下立判。如果你觉得没有高下立判,就调整参数让它高下立判!


    不同的制式和不同的输入会有一定程度的图像失真,没关系,这些失真可以用额外的pass来模拟。比如电视机的composite输入导致的色彩失真效果,加NTSC的色彩映射的效果如下:





    再传两个其他游戏的图,还是那句话,要在自己的屏幕上运行模拟器动态才能比较明显看到效果。





    Q&A
    Q:我在用xxx模拟器(比如PS2……),这个模拟器好像不支持CRT_Royale,怎么办呢?或我不喜欢RetroArch,不用这个的话怎么自由使用滤镜?

    首先当然是看RetroArch能否支持你使用的模拟器后端(也就是是否包含在Libretro里)。一般来说只要使用RetroArch,事情就解决了。

    如果RetroArch不支持,或者不喜欢使用这个前端,另一个办法是用ReShade,但需要改写一下Shader的源文件。只能有志者去改了。其他一些可用的滤镜见这里:
    https://github.com/Matsilagi/reshade-retroarch-shaders
    再有就是通过OBS之类录屏软件间接执行shader,可以参考这里:
    https://obsproject.com/forum/res ... er-v1-0-update.775/

    具体我就没时间研究了,有愿意尝试的可以试着跳坑。

    一个典型例子是PS2,现在只能采取上面这些间接的办法。要直接使用,要么改一下CRT_Royale让PCSX2能编译(应该不算特别难但暂时没人去做),要么等PCSX2的Core做出来,或者看Play!的Core什么时候发布。
    制作PCSX2的Libretro Core的悬赏:
    https://github.com/libretro/RetroArch/issues/6867
    libretro近期会发布Play!的Core,有兴趣也可以关注一下:
    https://www.libretro.com/index.p ... ng-a-libretro-core/


    Q:使用这些滤镜延时大不大?
    一般来说这类滤镜由于只是处理一遍图像,因此所需的性能不多,Lag很小。CRT-Royale因为有14个pass,如果增加其他效果的话pass更高,对性能还是有一定需求的,但很多人的测试是GTX750以上性能方面就基本不是问题了。如果明显感觉到Lag当然还是关掉滤镜比较好。

    Q: LZ能不能提供你使用的滤镜?
    因为每个人的显示设备不同,所以还是自行调整比较好(至少gamma要调好)。
    RetroArch已经有一些多pass的预设,比如crt-royale-tvout+image-adjustment等等,直接用效果也不错。如果对扫描线很执着,也可以直接用cgp/crt-royale-kurozumi(国外论坛很多人喜欢这个滤镜,有兴趣不妨试试看效果)。

    Q:为什么我加载一些滤镜没有效果?
    可能是RetroArch的bug,有些后端运行的时候不支持编译某种类型的shader。试试其他语言(比如CG、GLSL换着试试)的相应滤镜。

    Q:球面效果和CRT皮肤是怎么弄的?
    球面效果在CRT_Royale的geom选项那里设置,可以设置球面的半径,以及设置观众距离球面的距离等等参数。
    至于那个CRT皮肤,是我直接放在OBS里的一张边框图片而已,营造一些怀旧氛围。模拟器设置里也有一些边框可以选择。

    Q:搞这个干啥反正比不上CRT
    手机照相或许被单反秒杀,不代表手机照相没意义。至少有一定怀旧需求的朋友还是需要一些利用现代硬件模拟古旧硬件的简单方法。虽然总体应该不如成色好的CRT,但如果使用的4KLED显示器质量还行的话,效果也不赖,具体可以自行实验一下。
  • 空罐子
    效果很好,可惜我不用RetroArch,现在在用的模拟器是PCSX2,Dolphin,ePSXe
  • s
    sorayang
    我讨厌CRT滤镜的一大原因是把真机PS2接到一台彩电上后那个效果让我惊呆了,怎么能那么屎。

    虽然我也是在家里CRT纯平上玩过MD、SFC、PS的,但这个古我是复不来了,没有这种情怀。
  • m
    melvin95
    真实中年养老论坛

    - 发自忧郁深沉的Stage1st UWP非官方客户端
  • L
    Lunamos
    PS2当然还是CRT的画面最漂亮,之前有人翻译My Life for Gaming的PS2最佳方案的视频可以看看:
  • 月黑杀人夜
    那是因为旧彩电技术落伍了分辨率跟不上

    -- 来自 有消息提醒的 Stage1官方 Android客户端
  • 厨具战士
    显像管那种鲜艳独特的发色液晶电视永远也模拟不出来吧。液晶没有红光蓝光绿光,只有背光,什么都发白。
  • s
    sorayang
    应该不是这个原因。

    因为我最开始看到PS2实机画面就是在外面的机房,也是大尺寸CRT,当时觉得画面很好的,

    后来我自己买了台PS2实机是很久以后了。
  • L
    Lunamos
    背光LCD(CCFL)的确比较吃力,但也有自发光的LED,质量好点的4K LED多个像素模拟一个CRT像素能做到惟妙惟肖。
  • s
    sorayang
    CRT的荧光也是白光,显示色彩也是靠的三原色滤光片。你不会以为荧光就直接发三原色了吧...
  • v
    v13
    有空试试
  • 厨具战士
    显像管靠的不是三色荧光粉吗?

    度娘:
    彩色显像管荧光屏上的三种荧光粉在电子束轰击下分别发出红、绿、蓝三种基色光。

    荧光屏由涂有近100万组由R、G、B三基色组成的荧光粉点(色素)的球面状屏面和距离它15mm,上有近似1/3荧光点数量小孔的球面薄金属钢板(荫罩板)组成。电子束经过会聚才能通过小孔打到相应的各自荧光点上,不会出现染色和混色现象,使我们看到的是一幅彩**像。
  • s
    sorayang
    对,我记错了。
  • 彩虹肥宅
    说起来有人收集现阶段最好的模拟器(pc端)吗?
  • 莫夜戎
  • s
    safelzy
    有没有高清滤镜?这个人物画面不错,整体构图感觉雾蒙蒙的
  • 厨具战士
    请教,我已经安装好了retroarch模拟器,在哪里开启这个CRT-Royale呢?我在desktop menu的option里找到了一个视频滤镜选项,但是打开一看里面都是后缀filt的文件,不是shader文件夹里的内容。
  • 汪达
    那你应该用模拟器的抗锯齿功能
  • L
    Lunamos
    Win版的话,Show Desktop Menu->加载Core和游戏->View->Shaders->Load->Load Shader Preset
    打开RetroArch/shaders/shaders_XXX/crt/crt-royale.XXX
    RetroArch支持CG\GLSL\slang三种shader语言。

    如果没有shaders文件夹,就update一下,或者在这里下载(CG的):
    https://github.com/libretro/common-shaders
  • a
    atomicink
    木有4k显示器,有心无力1080p显示器用哪个crt滤镜呢
  • 那由
    现在比较看好Lakka L4T在NS上面的表现,甚至有点心动想搞一台专门跑lakka
  • 牙晓
    Retroarch一直用的crt-nes mini这个shader,占用小,加上街机overlay边框可以找回点感觉,现在换这个试试。会不会很吃显卡。psmini破解我也用的crt nes mini没有拖慢,其它的都卡菜单,游戏成幻灯片
  • アーシェス
    研究一下模拟器的启动选项,做个快捷方式,指定默认游戏,关闭模拟器菜单界面,假装自己在玩原生游戏(
  • L
    Lunamos
    1080P也可以用这个,只是效果会差些。另外就是可以用一些单PASS的CRT滤镜,比如CRT_Apertures, CRT_Lottes,效果已经比一般粗暴75%扫描线之类滤镜好一个档次了。
  • s
    stmule
    amoled了解一下?
  • a
    atomicink
    用了下感觉不错,就是这retroarch不稳定,全屏切换都容易闪退
  • G
    GOUKI1981
    安卓端除了ra其他模拟器似乎不能用这个滤镜?滤镜文件能否转换?
  • L
    Lunamos
    转换有一定难度。其他应该也有能用的模拟器,只是RetroArch用起来最方便。另外Android机器用这个可能机能方面比较捉襟见肘,可以考虑退而求其次用之前提到的CRT_Apertures, CRT_Lottes。
  • 波卡帕马
    还是喜欢这种,好像叫lotte,你说的那个也试过了,但是觉得PS之后的才合适
  • b
    bivbiv
    简直非常合我胃口,丢个染色球,下班回家再慢慢看