十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

obs-shaderfilter参数注解系统完全教程:用slider/select/group打造友好控制面板

obs-shaderfilter参数注解系统完全教程:用slider/select/group打造友好控制面板 obs-shaderfilter参数注解系统完全教程用slider/select/group打造友好控制面板【免费下载链接】obs-shaderfilterOBS Studio filter for applying an arbitrary shader to a source.项目地址: https://gitcode.com/gh_mirrors/ob/obs-shaderfilterobs-shaderfilter是一款强大的OBS Studio插件它允许你给任意视频源套用自写的着色器滤镜。很多新手在写完第一个着色器后都会遇到同一个问题参数只能靠手动改代码使用起来非常不方便。而obs-shaderfilter参数注解系统正是解决这个痛点的关键——它能在OBS属性面板里自动生成滑块、下拉菜单和分组折叠等控件让你的着色器滤镜拥有专业级的友好控制面板。本文将从零开始手把手教你用注解系统为着色器添加交互控件。参数注解系统是什么为什么能提升OBS滤镜体验在obs-shaderfilter中你在着色器里声明的uniform变量会自动出现在滤镜属性面板里。但默认情况下OBS只会把它们显示为普通输入框参数一多就会变得杂乱难用。参数注解系统Annotation System的出现改变了这一切。它通过一套简单的注解语法告诉OBS这个参数应该显示成什么控件。你只需要在uniform变量声明时用尖括号 包住一组注解就能把参数变成滑块slider、下拉选择select或分组group从而实现更友好的OBS滤镜参数控制面板。这套系统在插件2.0版本引入基础注解2.1版本起支持分组功能。快速上手用slider滑块注解调出平滑参数控制滑块是最常用的控件类型。以项目中自带的暗角着色器为例它的核心参数写法如下uniform float innerRadius string label inner radius; string widget_type slider; float minimum 0.0; float maximum 5.0; float step 0.001; 0.9;这段注解的意思是把innerRadius参数显示为名为inner radius的滑块取值范围0.0到5.0每次拖动最小变化0.001。使用时OBS属性面板就会出现一个可拖动的滑条观众和主播都能直观调节画面效果。再看闪烁着色器里的速度参数uniform float speed string label Speed; string widget_type slider; float minimum 0.0; float maximum 100.0; float step 0.01; 0.5;可以看到slider滑块注解的语法非常固定核心就是widget_type slider加minimum、maximum、step三个范围注解。按照这个模板你可以快速为任何浮点数参数加上滑块控制。用select下拉选择注解替代繁琐的数字输入当参数只有几个固定选项时比如切换显示模式、选择配色方案下拉菜单比滑块更合适。select注解的写法要配合option_编号_value和option_编号_label使用。参考霓虹数字时钟着色器uniform int timeMode string label Time mode; string widget_type select; int option_0_value 0; string option_0_label Time; int option_1_value 1; string option_1_label Enable duration; int option_2_value 2; string option_2_label Active duration; int option_3_value 3; string option_3_label Show duration; 0;在这段代码中option_0_value与option_0_label成对出现value是实际传给着色器的数值label是面板上显示的文字。用户从下拉菜单里选择Active duration着色器内部拿到的就是数值2。下拉选择注解非常适合模式切换类参数能彻底杜绝用户输入非法数值的问题。用group分组注解整理复杂参数告别杂乱面板当你的着色器参数超过10个时面板就会变得又长又乱。这时用group分组注解按功能分区效果立竿见影。分组功能在2.1版本中提供项目中动态蒙版着色器是绝佳范例——它把大量参数分成了Red Channel、Green Channel、Blue Channel、Alpha Channel四个组uniform float red_base_value string label Base Value; string widget_type slider; string group Red Channel; float minimum -100.0; float maximum 100.0; float step 0.01; 1.0;只需在注解中加一行string group Red Channel;OBS就会把这些参数收进Red Channel分组里。用户点击分组标题即可展开或折叠整个OBS滤镜参数面板瞬间变得条理清晰、专业感十足。更多实用注解label别名、tooltip提示与info说明除了slider、select、group参数注解系统还提供几个提升易用性的细节注解label别名注解自定义参数在面板上显示的名字。不写label时OBS会把变量名里的下划线替换为空格显示例如Variable_Name显示为 Variable Name。写了label则完全以别名显示更简洁。tooltip提示注解为参数添加悬停说明文字鼠标放上去即可看到使用方法对手写string tooltip 用法说明;即可。info说明文本把widget_type设为info时参数会变成不可编辑的说明文字。许多示例shader都用它来写使用提示例如彩虹着色器uniform string Notes string widget_type info; Spread is wideness of color and is limited between .25 and 10.;参数类型与默认值你需要知道的小知识注解系统支持 int、float、bool、string、texture2d 和 float4 共六种参数类型其中 float4 会被OBS识别为颜色选择器texture2d 则用于添加纹理输入。设置默认值直接跟在后面赋值即可如 0.5;。唯一需要注意的是 float4 颜色必须用花括号写法uniform float4 mycolor { 0.75, 0.75, 0.75, 1.0};另外建议你下载项目后重点研究这两个文件filter_template.shader像素着色器模板和 filter_template.effect完整效果模板它们结构清晰非常适合作为自己开发着色器滤镜的起点。更多组合用法可以翻阅 dynamic-mask.shader、vignetting.shader、blink.shader 等示例照着改就能很快上手。总结三步打造专业控制面板回顾一下用obs-shaderfilter参数注解系统打造友好控制面板只需三步第一为每个uniform参数加上widget_type注解确定它是slider滑块还是select下拉第二用minimum、maximum、step或option_编号注解细化取值范围与选项第三用group分组注解整理同类参数。掌握这套注解语法后你的OBS着色器滤镜就能从只能改代码进化成人人可调的专业效果直播和视频创作效率直接翻倍。【免费下载链接】obs-shaderfilterOBS Studio filter for applying an arbitrary shader to a source.项目地址: https://gitcode.com/gh_mirrors/ob/obs-shaderfilter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表