尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
如何为 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),仅供参考
RELATED

相关推荐

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:42:28
EtherCAT DC 分布式时钟同步的 ModelSim 仿真:从帧模板到从站行为建模

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

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

📅 2026/10/3 22:42:28
没有Redis、Kafka和Docker:Antfarm如何用YAML+SQLite+cron编排多智能体系统

没有Redis、Kafka和Docker:Antfarm如何用YAML+SQLite+cron编排多智能体系统

没有Redis、Kafka和Docker:Antfarm如何用YAMLSQLitecron编排多智能体系统 【免费下载链接】antfarm Build your agent team in OpenClaw with one command. 项目地址: https://gitcode.com/gh_mirrors/antf/antfarm Antfarm 是一款零基础设施的多智能体编排工…

📅 2026/10/3 22:42:28
MORE NEWS

更多资讯

📰

ANSYS Fluent残差震荡的本质与四阶收敛优化策略

1. 项目概述:为什么残差震荡不是“报错”,而是流场在“说话”在ANSYS Fluent里跑完一个算例,盯着残差曲线看了半小时——入口压力残差从1e-3跳到1e-2,又跌回1e-4,像心电图一样上下抖动,收敛容差设的是1e-6&…

📰

rpy2中文编码问题实战指南:Python调用R的避坑手册

1. 为什么非得在 Python 里调用 R?——不是炫技,是真有硬需求我第一次被逼着把 R 塞进 Python 项目,是在做一份客户定制的生物信息分析报告时。客户明确要求:统计模型必须用 R 的lme4包做混合效应建模(因为期刊审稿人只…

📰

Spring Boot异步操作实战:@Async、线程池与CompletableFuture避坑指南

先说一个我实际遇到的线上问题:一个报表导出接口,原来在方法里同步做“查数据、生成Excel、上传OSS、发邮件通知”,用户点一次按钮要等十几秒才看到响应,高峰期Tomcat线程被这种长任务占得死死的,整个应用都跟着变慢。…

📰

Spring Boot 自动装配与 Starter 机制详解:从原理到自定义实战

先直接说结论:Spring Boot 自动装配和 Starter 机制,是理解整个框架的钥匙,也是让 Spring Boot 从“配置繁琐”走向“开箱即用”的核心设计。这篇文章我会从一个真实项目里“去掉模板代码”的需求讲起,拆解自动装配的原理链条&…

📰

时间序列大模型隐式推理引导技术解析

1. 这不是“给模型加个提示词”那么简单:时间序列大模型的隐式推理引导到底在解决什么问题?“Latent Inference-Time Guidance of Time Series Foundation Models”——这个标题乍看像一串学术黑话,但拆开来看,它直指当前时间序列…

📰

Hindsight Agent记忆机制:基于MCP与Docker的LLM长期记忆实战

1. 从“hindsight”说起:为什么我们需要给Agent装上“后视镜” 第一次看到“hindsight”这个词,我脑子里蹦出来的不是词典释义,而是自己踩过的一个坑。去年做一套基于LLM的客服工单自动分类系统,模型在测试集上准确率能到92%&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬