CRT 扫描线效果实战 复刻老式电视的复古感
为什么要模拟 CRT
老式 CRT 电视(显像管电视)的画面特点:
- 扫描线:画面由水平扫描线组成,有自然的间隙
- 非线性失真:画面有轻微的桶形畸变(边缘向外凸)
- 色彩特性:颜色不如现代 LCD 鲜艳,但有自然的色调偏移
- 像素感:像素不是方形的,扫描线间隙让画面更柔和
现代 LCD 显示器把这些特性全部抹掉了——像素完美方正、颜色鲜艳锐利,但也失去了复古游戏当年在 CRT 上的那种"暖感"和"氛围"。CRT Shader 就是在现代 LCD 上模拟这些特性。

三个常用 CRT 预设详解
crt-geom
最流行的 CRT 预设之一,模拟经典 CRT 电视的几何特性:
- 有弧度:画面轻微向外凸,模拟 CRT 显象管的物理弧度
- 扫描线:密度可调,颜色偏黑、间隙明显
- 色彩:稍显昏暗,不像 LCD 那么鲜艳
适合大多数复古游戏,特别是动作类、平台跳跃类游戏。
crt-lottes
Timothy Lottes 设计的业界标杆 CRT 预设:
- 最细腻:色彩还原和扫描线模拟精度最高
- 性能需求较高:需要现代 GPU 支持
- 有"亮度增强":扫描线间隙不是全黑,而是保留了一点微弱亮度,画面不会太暗
追求最高品质的首选。
crt-pi
为树莓派这类低性能 ARM 设备设计的轻量 CRT 预设:
- 计算量最小:即使在 ARM11 处理器上也能 60fps 跑满
- 效果最简:扫描线模拟,没有几何失真
- 效果够好:虽然简单,但扫描线感足够
中低端设备首选。
参数微调技巧
加载一个 CRT 预设后,Quick Menu → Shaders → Preview Shader Parameters 可以实时调参数。常见参数:
| 参数 | 作用 | 推荐值 |
|---|---|---|
| Scanline Density | 扫描线密度 | 80-95(太高画面太暗) |
| Mask Type | 荫罩类型(模拟 RGB 荧光粉排列) | Slot Mask 较经典,Aperture 较柔和 |
| Beam Width | 电子束宽度 | 0.5-0.8 |
| Brightness | 整体亮度补偿 | 稍亮一点抵消扫描线间隙带来的暗化 |
| Contrast | 对比度 | 和亮度平衡 |
| Saturation | 色彩饱和度 | 稍降一点模拟 CRT 色彩感 |
| Curvature | 画面弧度 | 0.02-0.05(不要太大,太夸张反而假) |
快速上手
给你一个现成的推荐组合,直接能用:
- 进 PS1 或 FC 游戏
- Quick Menu → Shaders → Load Shader Preset
- 选 Slang Shaders → crt → crt-lottes.slangp
- 觉得画面太暗?调 Brightness +10%
- 觉得扫描线太密/太疏?调 Scanline Density 到 90
- Save Core Override——下次进这个 Core 的任何游戏自动应用
注意事项
- 分辨率影响效果:原始低分辨率游戏(FC 240p)用 CRT Shader 效果最好;高分辨率主机(PS2)用 CRT Shader 效果一般
- LCD 类型:IPS 屏和 VA 屏效果不同,IPS 更接近 CRT 的柔和感
- HDR 显示器:CRT Shader 不直接利用 HDR,但整体画面感不受影响
- 运动模糊:RetroArch 有 BlurBusters 的 Beam Racing Simulator Shader,可以大幅减少现代 LCD 上复古游戏的运动模糊——搜索 beam racing 相关预设试试