ITADN

[Feature Request] 材质包系统支持自定义 Shader 以实现逐 Note 特效

#775Closedkafuu 创建于 2026-04-18
enhancementmight-be-breaking
K
kafuucommented
## [Feature Request] 材质包系统支持自定义 Shader 以实现逐 Note 特效 ### 问题描述 目前的渲染架构中,`Effect` 系统主要基于全屏后处理。虽然能实现优秀的全局滤镜,但难以实现**基于单个音符**的视觉表现,例如: * 每一个音符独立的顶点变换(如 3D 旋转、摆动、甚至像水波纹一样的扭曲)。 * 针对特定音符材质的特殊片元效果(如流光、溶解、自定义遮罩)。 ### 建议方案 建议在**材质包系统**中增加对**自定义 Shader** 的支持。 1. **配置扩展**:在材质包的 `info.yml` 或配置文件中,允许用户定义 `note_shader` 路径。 2. **渲染管线介入**:允许加载并切换到用户自定义的材质(Material),而不是强制使用默认渲染器。 3. **参数注入**:在绘制时,将 `uTime` 或音符相关的坐标信息传入顶点着色器。 ### 预期应用场景 * **动态皮肤**:音符可以带有水波纹、像素化或动态呼吸灯效果,且不影响判定线和背景。 * **3D 演出**:通过 Vertex Shader 实现音符在 Z 轴的位移或旋转,增强视觉深度。 ### 不影响 Gameplay 该功能仅作用于**渲染层**,与核心判定逻辑解耦: * **逻辑与表现分离**:Shader 的变换完全发生在 GPU 渲染阶段,不改变 CPU 中音符的判定位置、时间轴或物理坐标。 * **判定公平性**:即便音符通过 Vertex Shader 产生了视觉上的扭曲或位移,其逻辑判定点依然保持在原生坐标。这确保了特效在提升表现力的同时,不会对玩家的打歌体验和判定结果产生任何实质性影响。
关闭于 2026-04-24 2 条评论