概述:什么是着色器包?
了解 MMDX12 着色器包的原理、支持的渲染管线、文件组织以及作用范围。
着色器包简介
MMDX12 着色器包(Shader Pack)允许针对各个角色模型独立替换材质的像素着色方式。无需修改软件底层的渲染管线,任何人都可以通过几个精简的文件,为模型赋予自定义卡通渲染(Cel-shading)或独特的动漫质感。
一个着色器包本质上是一个包含以下文件的文件夹:
pack.json:定义元数据、材质分类规则及可调参数的清单文件。surface.hlsl:实现唯一着色函数(PackShade)的 HLSL 代码。preview.png或preview.jpg(可选):在着色器管理器与在线展示馆中显示的预览图(推荐 16:9 比例)。README.md、LICENSE(可选):说明文档与开源许可协议。
支持的渲染管线与作用范围
着色器包与实时播放及离线视频渲染流程深度整合。
生效的管线
- 光栅化管线(Raster):常规播放模式、Studio 编辑器视口以及使用“래스터”(光栅化)渲染器的视频导出。
- 实时光线追踪管线(RT):开启光线追踪的视口以及使用“실시간 RT”(实时光追)渲染器的视频导出。
- 路径追踪与离线 GI(MMDX12 1.5.0 及以上):附带可选文件
pt_surface.hlsl的包,也会作用于路径追踪和离线 GI 渲染器(静帧与视频)。详见 PT / GI 包。没有该文件的包在这些管线中使用默认着色。
保留默认着色模式的场景
- 没有
pt_surface.hlsl的包的路径追踪与离线 GI:使用 MMD 默认着色。离线 GI 渲染器始终绘制应用默认的描边。 - 舞台(Stage)与场景道具(Prop):背景舞台和各类饰品道具不受角色着色器包影响,始终使用默认着色渲染。
- 特殊视图:Studio 编辑器中的无光照(Unlit)、线框(Wireframe)以及正交四分视图。
引擎保障的功能
着色器包仅接管角色材质的像素着色。以下底层管线特性依然由引擎统一调度并正常运行:
- 顶点蒙皮(Vertex Skinning)与骨骼变换
- MMD 特有的外描边(Edge / Outline)
- 级联阴影贴图及光线追踪阴影计算
- 所有后期特效(辉光 Bloom、景深 DoF、TAA 抗锯齿、超分辨率放大等)
着色器包存放位置
以 MMDX12 启动程序所在目录为基准,分为两个存储路径:
- 内置包:
<MMDX12 目录>/shaders/packs/<id>/- 随软件一同分发,无法在程序内部删除(如
hoyo_toon)。
- 随软件一同分发,无法在程序内部删除(如
- 已安装包:
<MMDX12 目录>/shader_packs/<id>/- 保存从在线展示馆下载、通过 zip 导入或本地新建的包。在线安装的包中还会附带
.mmdx_install.json。
- 保存从在线展示馆下载、通过 zip 导入或本地新建的包。在线安装的包中还会附带
包 ID 规则
- 仅支持小写字母
a-z、数字0-9、下划线_和连字符-,长度不超过 64 个字符。 - 内置包的 ID 拥有最高优先级,无法被用户包覆盖。
- 若检测到重复 ID,后载入的包将被标记为“重复(Duplicate)”且无法选用。