自定义着色器问题
Custom Shaders(自定义着色器)
同义词: User Shaders, Unity Shaders, Shader Support
Resonite 目前不支持任何形式的自定义着色器(Custom Shaders)。
这包括但不限于:
- Poiyomi's Shader
- 任何其他基于 Unity 的着色器
- 其他外部编写的自定义着色器
不支持的原因
目前无法支持自定义着色器的原因有很多:
- 渲染系统尚不稳定: Resonite 正致力于将渲染器从 Unity
迁移到自研的Sauce引擎。迁移到自研引擎。这意味着许多图形决策、功能和限制目前仍处于不确定状态,可能会随时发生变化。根据通往新渲染器的道路 - 第一阶段 - 需求 ·黄狗工作室/Resonite问题 ·讨论#5831的相关讨论, - 无法支持 Unity 专属着色器: 由于我们正在脱离 Unity 环境,Resonite 永远无法直接支持 Unity 的自定义着色器。
- 安全性(Safety): 自定义着色器在其他平台上经常引发安全担忧,Resonite 也不例外。例如:
- 导致显卡崩溃或驱动重置的着色器。
- 恶意着色器(如剧烈闪烁、刺耳噪音、破坏性视觉干扰)。
- 向下兼容性(Backwards Compatibility): Resonite 以强大的向下兼容性为傲——几年前制作的物品至今仍能正常工作。任何形式的自定义着色器系统都必须能够适应这种长期的技术承诺。
未来规划
针对自定义着色器的长期计划是结合 Sauce 渲染引擎与 ProtoFlux,在 Resonite 内部实现一套基于节点的着色器系统。
届时,你将能够直接使用 ProtoFlux 节点来创建、连接和管理着色器逻辑。
进度追踪
如果你想了解实现自定义着色器所需的开发进度,可以关注以下 GitHub 议题:
当前的替代方案
虽然缺乏自定义着色器支持可能会让部分用户望而却步,但通过合理的配置、知识和时间投入,你依然可以获得与主流第三方着色器非常相似的视觉效果。
建议: 尝试实验 Resonite 现有的着色器和技术来实现类似的外观表现。
- 动画效果:通常用户想要自定义着色器是为了实现纹理动画或特效。在 Resonite 中,你可以通过材质叠加(Material Layering)或者使用 Flux 来驱动材质参数(如 Offset、Color)来实现。
- 特殊视觉效果:利用 Resonite 的内置材质库,结合粒子系统和动态参数控制,往往能复刻出大部分常见的二次元或特效着色效果。