OBS ShaderFilter Plus 使用教程
1. 项目介绍
OBS ShaderFilter Plus 是一个为 Open Broadcaster Software (OBS) 开发的插件,它允许用户通过手动创建的 GLSL/HLSL 着色器来为源添加效果。该插件利用 GPU 执行着色器程序,这些程序可以应用于每个像素,为视频源添加自定义的视觉效果。
2. 项目快速启动
安装
-
从 Releases 页面 下载适用于您操作系统的最新二进制文件。
- Windows 用户下载以
_windows_x64.dll
结尾的文件。 - Linux 用户下载以
_linux_x64.so
结尾的文件。
- Windows 用户下载以
-
将下载的文件放置到 OBS 插件目录中:
- 在 Windows 上,目录通常是
C:\Program Files\obs-studio\obs-plugins\64bit
。 - 在 Linux 上,目录通常是
/usr/lib/obs-plugins
。
- 在 Windows 上,目录通常是
使用
-
在 OBS 中,右键点击您想要添加效果的源,选择“滤镜”,然后添加“ShaderFilter Plus”。
-
通过点击“浏览”按钮选择包含着色器源代码的文件。
-
通过着色器特定的用户界面来自定义着色器的行为。
3. 应用案例和最佳实践
创建简单的着色器
一个着色器的基本结构非常简单,至少需要一个如下所示的 render
函数:
float4 render(float2 uv) {
// 采样源纹理并返回其颜色以显示
return image.Sample(builtin_texture_sampler, uv);
}
使用内置变量
每个通过该插件加载的着色器都可以访问以下内置统一变量:
uniform texture2d image;
// 源纹理(我们正在过滤的图像)uniform int builtin_frame;
// 当前帧数uniform float builtin_framerate;
// 当前输出帧率uniform float builtin_elapsed_time;
// 当前经过的时间uniform float builtin_elapsed_time_previous;
// 上一个帧的经过时间uniform float builtin_elapsed_time_since_shown;
// 自源显示以来经过的时间uniform float builtin_elapsed_time_since_shown_previous;
// 上一个帧自源显示以来经过的时间uniform float builtin_elapsed_time_since_enabled;
// 自滤镜显示以来经过的时间uniform float builtin_elapsed_time_since_enabled_previous;
// 上一个帧自滤镜显示以来经过的时间uniform int2 builtin_uv_size;
// 源尺寸uniform sampler_state builtin_texture_sampler { ... };
// 具有线性过滤的纹理采样器
定义自定义属性
在着色器源代码中可以使用 #pragma shaderfilter
宏来定义属性,例如:
#pragma shaderfilter set my_color__description "我的颜色"
#pragma shaderfilter set my_color__default 7FFF00FF
uniform float4 my_color;
4. 典型生态项目
OBS ShaderFilter Plus 插件可以作为 OBS 生态系统的一部分,与其他插件和工具配合使用,例如:
- OBS Studio:主流的开源直播和录制软件。
- OBS VirtualCam:将 OBS 输出作为虚拟摄像头使用。
- OBS Multiinstances:允许运行多个 OBS 实例。
通过这些项目的结合使用,可以构建出强大的直播和视频处理工作流。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考