着色器 Shaders 是什么 RetroArch 图像渲染的杀手级功能
Shader 是什么
Shader(着色器)是在游戏画面渲染到屏幕之前,对每一帧图像进行二次处理的图形滤镜。它可以让你在现代显示器上复刻复古 CRT 电视的扫描线和色彩、让像素风游戏更锐利、或叠加各种创意效果。
RetroArch 是最早一批大规模使用 Shader 的模拟器程序之一(2010 年),至今仍保持领先——支持最多 16 个 Shader Pass(叠加 16 层效果)和最多 128 个参数可调。

Shader 能做什么
| 效果类型 | 说明 | 适用场景 |
|---|---|---|
| CRT 扫描线模拟 | 复刻老式 CRT 电视的扫描线、圆角、色彩特性 | 复古游戏视觉还原 |
| 锐化 / 反锯齿 | 让像素风游戏更锐利或平滑边缘 | LCD 上显示像素游戏 |
| 分辨率缩放 | 智能放大低分辨率图像 | 像素艺术游戏 |
| Handheld Border | 给 Game Boy / GBA / DS 模拟画面加上游戏机外壳 | 掌机游戏体验 |
| 色彩校正 | 调整色温、饱和度、亮度 | 匹配怀旧感 |
| 创意效果 | 边缘发光、辉光、复古滤镜等 | 个人风格 |
三种 Shader 语言
RetroArch 支持三种 Shader 格式,按后端渲染器自动选择:
| 语言 | 后端 | 状态 | 推荐性 |
|---|---|---|---|
| Slang | Vulkan / D3D10-12 / Metal / OpenGL Core / WiiU | 活跃维护 | 推荐,功能最全、参数最丰富 |
| GLSL | OpenGL(移动端 / 旧设备) | 维护中 | OpenGL 设备上用 |
| Cg | 旧版 OpenGL | 已废弃 | 新安装不再推荐 |
Online Updater 里分别有 Update Slang Shaders / Update GLSL Shaders / Update Cg Shaders 三条下载入口。如果你不确定选哪个,先更 Slang——这是现代设备上的首选。
预设(Preset)vs 单个 Shader
一个 Shader 文件是一种单一的图像操作。但实际使用时,往往需要叠加多层效果——比如先锐化、再扫描线、再色彩校正。
多个 Shader 叠加后保存成预设文件(.slangp / .glslp)。RetroArch 内置了大量预设,按效果分类放在 Online Updater 下载的 Shader 包里。
加载 Shader 时实际上是在加载一个预设——不是单个 Shader 文件。
Shader 可以 Override
和视频比例一样,Shader 也可以按 Core / 按游戏保存:
- 全局 Shader:Settings → Video → Shaders → Load Shader Preset
- Core Override:Quick Menu → Shaders → Load Shader Preset → Overrides → Save Core Override
- Game Override:Quick Menu → Shaders → Load Shader Preset → Overrides → Save Game Override
举例:PS1 Core 默认用 CRT 扫描线 Shader,GBA Core 默认用锐化 Shader——分别在各自 Core 下调好后 Save Core Override。
Shader 对性能的影响
Shader 叠加越多、参数越复杂,GPU 负担越大。叠加 4 层以上效果在低端设备上可能导致帧率下降。
如果游戏开启 Shader 后卡顿:
- 减少 Shader Pass 数量(从 4 层减到 2 层)
- 换成更轻量的预设(有些预设专门为低性能设备优化)
- 关掉 Shader 看原始画面(原始画面也不差,只是没有 CRT 氛围)
HDR Shader 支持
RetroArch 的 Vulkan 后端支持 HDR Shader——如果你的显示器支持 HDR,可以让 RetroArch 输出 HDR 格式的游戏画面。但这需要游戏本身或 Shader 预设专门为 HDR 设计,普通 CRT 模拟 Shader 效果不变。