Pete OpenGL2 Shader 画面增强 · 让 PS1 游戏看起来像 PS2
什么是 Shader
Shader 是一段 GPU 小程序,在模拟器渲染完游戏画面之后、显示到屏幕之前再做一次图像处理——比如叠加 CRT 扫描线效果、锐化边缘、加 Bloom 光晕等。
Pete OpenGL2 Core 的 Configure 面板里有 Shader 选项卡(或 Post-Processing 选项卡),可以加载 .cg / .glsl 格式的 shader 文件。
常用 Shader 效果一览
| Shader | 效果 | 适合 |
|---|---|---|
| CRT Scanlines | 模拟老式阴极射线管显示器的扫描线 + 弧度 | 追求复古感、2D 游戏 |
| xBR / xBRZ | AI 边缘锐化放大,像素画边缘更平滑 | 2D 像素游戏(SOTN、KOF) |
| HQ2x / HQ4x | 经典锐化算法,比 Bilinear 更清晰 | 所有类型 |
| ScaleHQ | 另一种锐化,比 HQ4x 计算量小 | 低性能电脑 |
| Bloom | 高光光晕效果 | 3D 游戏的魔法、爆炸特效 |
| Motion Blur | 运动模糊 | 高速游戏(赛车、射击) |
| Sepia / Vignette | 怀旧色偏 + 暗角 | 剧情向 RPG、恐怖游戏 |
怎么启用 Shader
- Config → Video → Pete OpenGL2 → Configure
- 找到 Shader 选项卡
- 勾选 Enable Shader 或 Post-Processing
- 点 Browse 或 Load → 选择 shader 文件(.cg 或 .glsl)
- OK 保存,游戏里即时生效
Shader 从哪来
- 官方 shader 包:Pete OpenGL2 社区通常附带一组预置 shader(在安装包里)
- RetroArch shader 仓库:libretro 维护了几千个 shader,Pete 兼容其中大部分
- GitHub:搜索 "PSX shader" 或 "ePSXe shader"
把下载的 shader 文件(.cg / .glsl)丢到 shaders/ 目录(Pete 插件约定的目录,没有就自己创建),下次 Configure 时能直接看到。
性能开销
| Shader | GPU 开销 | 说明 |
|---|---|---|
| CRT Scanlines | 低(约 5%) | 只是做一层 RGB 通道偏移 |
| HQ2x / xBR | 中(15~30%) | 需要多次采样和边缘检测 |
| Bloom | 高(30~60%) | 需要后处理链,多次渲染 |
| Motion Blur | 中(10~20%) | 每帧需要混合上几帧 |
内部分辨率已经占了主要开销——如果 3x 内部分辨率跑满 60fps,再叠加一个 Bloom shader 可能降到 30fps。这种情况要么降低内部分辨率,要么换更轻量的 shader(CRT Scanlines 或 HQ2x)。
不推荐的做法
- 叠太多层 shader——Pete OpenGL2 通常只能同时加载 1 个 shader,效果叠加需要支持多通道的高级设置(容易崩溃)
- CRT Shader + 内部分辨率 4x 以上——CRT 模拟的是低分辨率显示器,内部分辨率拉太高反而效果不伦不类
- 2D 像素游戏用 Bloom——Bloom 效果是给 3D 游戏的高光做的,2D 游戏加 Bloom 只会让像素边缘模糊
推荐组合
| 游戏类型 | 内部分辨率 | 纹理过滤 | Shader |
|---|---|---|---|
| RPG(FF、DQ) | 2x~3x | Bilinear | HQ2x 或 Sepia |
| 2D 像素(SOTN、KOF) | 2x | Nearest | xBR 或 CRT Scanlines |
| 3D 动作(MGS、Dino) | 2x~3x | Trilinear + AF | Bloom(可选) |
| 竞速(GT、Ridge Racer) | 3x~4x | Trilinear + AF | Motion Blur(可选) |
| 恐怖(Silent Hill) | 2x~3x | Bilinear | Sepia + Vignette |