如何为 Magpie 编写自定义效果:MagpieFX HLSL 效果格式完全指南

发布时间:2026/10/3 22:40:58

如何为 Magpie 编写自定义效果:MagpieFX HLSL 效果格式完全指南 如何为 Magpie 编写自定义效果MagpieFX HLSL 效果格式完全指南【免费下载链接】MagpieUnofficial experimental Magpie fork with colour-only DLSS, FSR2 and NVIDIA RTX Video integrations项目地址: https://gitcode.com/gh_mirrors/magpie27/MagpieMagpie 是一款开源的游戏画面增强工具支持 DLSS、FSR2 与 RTX Video 等色彩处理集成。它内置了一套基于 DirectX 11 计算着色器的自定义效果格式 MagpieFX——只要你了解 HLSL就能用纯文本文件为 Magpie 添加锐化、降噪、CRT 等任意画面效果。本文是一份面向新手的完整指南从效果文件结构、指令语法到参数、纹理与通道定义教你一步步写出可运行的自定义效果。为什么选择 MagpieFX 格式Magpie 的所有效果都存储在effects文件夹中本质上就是一批.hlsl文本文件。这意味着无需编译效果文件由 Magpie 在运行时自动加载和着色器编译纯文本友好用记事本就能编辑方便版本管理和分享指令式声明通过//!开头的注释指令声明参数、纹理和通道格式统一、易读官方文档 MagpieFX 是权威参考本文帮你把它的核心概念讲透。效果文件的整体结构一个完整的 MagpieFX 效果文件按以下顺序组织官方示例见 MagpieFX文件头指令//!MAGPIE EFFECT声明效果类型//!VERSION 4声明格式版本参数定义//!PARAMETER块定义用户可调的界面参数纹理定义//!TEXTURE块声明输入、输出和中间纹理采样器定义//!SAMPLER块通道定义//!PASS n块每个通道是一段 GPU 着色器代码官方内置的 Bicubic.hlsl 是一个绝佳的入门范本结构清晰且只有百余行//!MAGPIE EFFECT //!VERSION 4 #include StubDefs.hlsli //!PARAMETER //!LABEL B //!DEFAULT 0.33 //!MIN 0 //!MAX 1 //!STEP 0.01 float paramB; //!TEXTURE Texture2D INPUT; //!TEXTURE Texture2D OUTPUT; //!SAMPLER //!FILTER LINEAR SamplerState sam; //!PASS 1 //!STYLE PS //!IN INPUT //!OUT OUTPUT float4 Pass1(float2 pos) { // 双三次插值逻辑…… } 建议直接克隆仓库后打开 src/Effects/ 目录里面有 FXAA、SMAA、CRT 等几十个现成效果可作参考。参数定义让效果拥有可调滑块每个//!PARAMETER块声明一个参数必须包含DEFAULT、MIN、MAX、STEP四项并用LABEL指定界面上显示的名称//!PARAMETER //!LABEL Sharpness //!GROUP Detail //!DEFAULT 0.1 //!MIN 0.01 //!MAX 5 //!STEP 0.01 float sharpness;几个实用技巧GROUP参数分组相同非空名称的参数会被归入同一个界面列列顺序按分组首次出现顺序排列。例如把多个细节相关参数都归入Detail组界面更整洁LABEL支持换行字面量\n会显示为换行适合较长标签参数在通道中像普通变量一样使用如paramB在 Bicubic.hlsl 中直接参与权重计算纹理定义INPUT 与 OUTPUT 是特殊关键字纹理通过//!TEXTURE声明其中INPUT和OUTPUT是特殊关键字//!TEXTURE Texture2D INPUT; //!TEXTURE //!WIDTH INPUT_WIDTH * 2 //!HEIGHT INPUT_HEIGHT * 2 Texture2D OUTPUT;关键规则来自 MagpieFX 文档INPUT不能作为任何通道的输出OUTPUT不能作为通道的输入只有最后一个通道可以写OUTPUT且最后一个通道只能写OUTPUTOUTPUT的WIDTH/HEIGHT决定此效果的输出尺寸不指定则支持任意输出尺寸尺寸计算可用预定义常量INPUT_WIDTH、INPUT_HEIGHT、OUTPUT_WIDTH、OUTPUT_HEIGHT中间纹理可以指定FORMAT如R8G8B8A8_UNORM和偏移尺寸还支持从文件加载纹理BMP、PNG、JPG、DDS//!TEXTURE //!SOURCE test.png Texture2D testTex;通道定义效果的真正计算逻辑每个//!PASS n块是一个 GPU 通道。以双通道效果为例//!PASS 1 //!DESC First Pass //!STYLE PS //!IN INPUT //!OUT tex1 MF4 Pass1(float2 pos) { return MF4(1, 1, 1, 1); } //!PASS 2 //!IN INPUT, tex1 //!OUT OUTPUT //!BLOCK_SIZE 16, 16 //!NUM_THREADS 64, 1, 1 void Pass2(uint2 blockStart, uint3 threadId) { OUTPUT[blockStart] MF4(1, 1, 1, 1); }两种通道风格指令作用入口签名//!STYLE PS像素着色器风格默认 CSMF4 PassN(float2 pos)pos 为归一化坐标//!STYLE CS默认计算着色器风格void PassN(uint2 blockStart, uint3 threadId)//!IN声明通道输入纹理可多个//!OUT声明输出PS 风格下可指定多个输出实现多渲染目标MRT最多 8 个BLOCK_SIZE和NUM_THREADS控制每次 dispatch 的处理区域与并行线程数预定义函数与宏省掉样板代码MagpieFX 内置了一批辅助函数完整列表见 MagpieFX 文档无需自己实现GetInputSize()/GetOutputSize()获取输入/输出纹理尺寸GetInputPt()/GetOutputPt()获取每个像素的坐标步长GetScale()获取输出相对输入的缩放比Rmp8x8(id)8x8 坐标 swizzle 映射提升纹理缓存命中率MulAdd(x, y, a)比mul(x, y) a更快的融合运算机器学习类效果如 Anime4K常用需先声明//!USE MulAdd预定义类型MF、MF2、MF4等会随 FP16 能力自动切换为float或min16float别名写效果时优先用MF4而不是裸float4可以免费获得半精度支持。若需声明 FP16 能力在文件头加//!CAPABILITY FP16即可是否生效取决于用户配置。让效果被正确识别细节清单写完效果后检查以下几点避免踩坑文件头两行不可少//!MAGPIE EFFECT和//!VERSION 4否则不会被识别为效果最后一个通道必须且只能输出到OUTPUT减少 IDE 报错加上#include StubDefs.hlsli可选但能显著改善编辑器体验该文件提供了预定义函数的桩定义见 StubDefs.hlsli排序名称可用//!SORT_NAME test1指定效果在列表中的排序名否则按文件名排序放入 effects 文件夹把.hlsl文件放进 Magpie 安装目录下的effects文件夹可参考内置效果的存放方式见 Effects.vcxproj 的部署规则重启后在「效果组」→「添加效果器」中即可看到它学习路线建议先读懂 Bicubic.hlsl参数 单通道 PS 风格最简完整闭环再看 Deband.hlsl 与 CRT 着色器src/Effects/CRT/体验中间纹理和BLOCK_SIZE用法进阶参考 Anime4K/ 系列多通道 MulAdd FP16 的组合拳查阅 内置效果介绍 了解每个内置效果的输出尺寸与参数含义掌握以上格式后你已可以着手自己的第一个 MagpieFX 效果。更多细节请以官方 MagpieFX 文档 为准。【免费下载链接】MagpieUnofficial experimental Magpie fork with colour-only DLSS, FSR2 and NVIDIA RTX Video integrations项目地址: https://gitcode.com/gh_mirrors/magpie27/Magpie创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/3 22:40:58

Fastjson 漏洞 · 04 · 绕过军备竞赛:1.2.25 → 1.2.83

这一篇是本系列的核心:从"默认能打"到"越来越难打",每一个补丁改了什么、攻击者怎么绕、为什么最终必须放弃 1.x 的 autoType 模型。所有结论都对应配套靶场的实测矩阵(lab/fastjson-lab/verify-output.txt)引…

2026/10/3 23:21:00

PostgreSQL空间排查指南:从表大小到WAL与死元组

某天凌晨,监控告警把值班手机震到发烫:磁盘使用率飙到93%,业务日志里全是“could not extend file”的报错。第一反应是赶紧找出哪张表在疯涨,但用psql敲了几条SQL之后发现,统计出来的库大小加起来只有磁盘占用的一半不…

2026/10/3 23:20:59

QGIS快速标注按钮:从字段选择到出图全流程解析

做GIS的应该都有过这种经历:领导说“把图斑名字标出来”,常规操作是先打开图层属性,翻到“标注”选项卡,勾上“标注该图层”,再选字段、调字体、调位置,一套流程下来时间没少花。后来我用QGIS时&#xff0c…

2026/10/3 23:20:59

Bibliometrix安装配置全攻略:从R环境搭建到Biblioshiny可视化分析

第一次用Bibliometrix做文献计量分析的时候,我差点被安装这关劝退。倒不是这个R包本身多难装,而是网上教程大多只丢一句install.packages("bibliometrix"),然后就默认你能跑通。真到自己动手,R版本不匹配、依赖包编译失…

2026/10/3 23:20:59

Android Intent传值避坑指南:正确获取参数的5种方式与常见问题

避坑指南:正确获取Intent传递的值,这几种方式我全给你捋明白了 做Android开发,谁还没跟Intent打过交道?启动Activity、传参数、接收返回值、处理外部链接调起,几乎每个页面跳转背后都有Intent在默默干活。我早期写项目…

2026/10/3 23:15:59

JavaScript数组方法实战:从map到reduce的高频用法与易错点

每个人的备赛与参赛经验,就是在这些最基本的知识点上拉开了差距。我给自己定的目标是:每个高频方法不假思索就能写对。 2. 遍历、筛选、映射:比赛中出场率最高的三个方法 2.1 map:数据清洗和列表渲染的头号工具 map的作用一句话…

2026/10/2 8:16:46

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/2 18:20:53

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 15:02:19

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 0:04:31

国内大学生必备的AI写作辅助软件是哪款?

国内高校学生在论文写作过程中,越来越依赖AI辅助工具提升效率,主流方案以本土化全流程工具为核心,结合通用大模型与专业插件,覆盖选题构思、框架搭建、初稿撰写、查重降重、格式调整等关键环节,本文将深入解析当前主流…

2026/10/3 0:04:31

Codex接入Jev模型完整指南:配置方法、本地部署与踩坑排查

最近不少人在讨论 Codex 搭配 Jev 这套玩法,我一开始没太当回事,直到自己把 Jev 接进 Codex跑了几轮编码任务之后,才明白那些说“直接起飞”的人是怎么想的。Codex 作为工具本身已经够能打了,但模型固定、上下文策略固定&#xff…

2026/10/3 0:04:31

GitHub 热门: NVIDIA/Model-Optimizer

👋 Hi,我擅长 AI 大模型应用落地、意识解码与 AI 开发工具链 。 💡 创业路上,用技术换时间,一起把 AI 变成生产力 🚀 >GitHub 热门: NVIDIA/Model-Optimizer 凌晨两点,你刚把跑通了的 Qwen3.…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑