如何为 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),仅供参考

相关新闻

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

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

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

2026/10/3 22:41:11 阅读更多 →
EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模

EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模

EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模关键词:EtherCAT、DC 分布式时钟、ESC、0x0918、0x0110 DL Status、ModelSim、Verilog testbench、行为级建模、线型拓扑 适用人群:正在做 EtherCAT 主站 FPGA 实现、需要…

2026/10/5 9:23:01 阅读更多 →
不烧显卡!MiniMind-O如何在纯CPU上实现快速实时语音推理

不烧显卡!MiniMind-O如何在纯CPU上实现快速实时语音推理

不烧显卡!MiniMind-O如何在纯CPU上实现快速实时语音推理 【免费下载链接】minimind-o 🎙️ A 0.1B Omni model trained from scratch, capable of listening, speaking, and seeing! 项目地址: https://gitcode.com/gh_mirrors/mi/minimind-o Min…

2026/10/3 22:40:09 阅读更多 →

最新新闻

软考 系统架构设计师历年真题集萃(6)

软考 系统架构设计师历年真题集萃(6)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(5) 第10题 ( )是关于需求管理正确的说法。 A. 为达到过程能力成熟度模型第二级,组织机构必须具有3个关键过程域 B. 需求的稳定性不属于需求属性 C. 需求变更的管理过程遵循变更分析和成本计算、问题分析和变更…

2026/10/5 10:07:44 阅读更多 →
【亲测免费】 探索游戏保存数据备份的利器:Ludusavi

【亲测免费】 探索游戏保存数据备份的利器:Ludusavi

探索游戏保存数据备份的利器:Ludusavi 【免费下载链接】ludusavi Backup tool for PC game saves 项目地址: https://gitcode.com/GitHub_Trending/lu/ludusavi Ludusavi 是一个用Rust语言编写的跨平台游戏存档备份工具,它能够帮助你在多个游戏平台…

2026/10/5 10:07:44 阅读更多 →
docker-selenium 浏览器镜像标签体系实战:从 tag_and_push_browser_images.sh 读懂 Chrome 112 镜像的完整发布记录

docker-selenium 浏览器镜像标签体系实战:从 tag_and_push_browser_images.sh 读懂 Chrome 112 镜像的完整发布记录

测试后端云原生容器编排可观测性 【免费下载链接】docker-selenium Provides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Container Platform, making it easier to perform browser automation at scale 项目地址: https://gitcode.…

2026/10/5 10:07:44 阅读更多 →
软考 系统架构设计师历年真题集萃(7)

软考 系统架构设计师历年真题集萃(7)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(6) 上一回在讲习题的时候引出来软件能力成熟度,由于内容较多,因此并未讲完,本回把剩余知识讲完。 软件能力成熟度模型 软件能力成熟度模型(Capability Maturity Model,CMM)是一个概念模型。模型框架和表示是刚…

2026/10/5 10:07:44 阅读更多 →
CLRS 15.4 习题精讲:最长公共子序列(LCS)与最长递增子序列(LIS)的动态规划算法

CLRS 15.4 习题精讲:最长公共子序列(LCS)与最长递增子序列(LIS)的动态规划算法

文档教程示例工程 【免费下载链接】CLRS :notebook:Solutions to Introduction to Algorithms 项目地址: https://gitcode.com/gh_mirrors/cl/CLRS 点击查看 免费下载 本文围绕《算法导论》(Introduction to Algorithms)第 15.4 节"最长…

2026/10/5 10:07:44 阅读更多 →
双目相机选型与标定指南:从参数对比到工程避坑

双目相机选型与标定指南:从参数对比到工程避坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 10:06:44 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →