DreamShaderLang
DreamShader 插件

插件概览

DreamShader 插件的目标、能力和与 DreamShaderLang 的关系。

DreamShader 是一个 Unreal Engine 材质生成插件。它提供 DreamShaderLang 源语言,让材质、材质函数和共享 helper 可以像代码一样维护,并生成标准 Unreal UMaterialUMaterialFunction 资产。

插件仓库:

https://github.com/TypeDreamMoon/DreamShader

解决什么问题

传统 Unreal 材质图在复杂项目里容易出现这些问题:

问题DreamShader 的处理方式
节点图难以版本管理使用 .dsm / .dsh 文本源文件。
重复连接节点FunctionNamespace 和 Package 复用逻辑。
材质函数分发麻烦ShaderFunction 生成 UMaterialFunction
共享函数修改后难以追踪影响通过 import graph 刷新依赖 .dsh.dsm
生成资产难以追溯来源在资产 metadata 中记录源文件和 hash。

核心能力

能力说明
.dsm / .dsh 文件模型材质实现和共享头文件分离。
Shader生成或更新 UMaterial
ShaderFunction生成或更新 UMaterialFunction
Graph用文本描述 Unreal 材质节点和连接关系。
Function编写 HLSL 风格 Custom 节点 helper。
Namespace组织共享 helper,降低命名冲突。
SelfContained / Inline把 helper 依赖嵌入 Custom 节点。
Package通过 GitHub 分发 .dsh 共享库。
VSCode 支持高亮、补全、跳转、诊断和编译命令。

语言与插件的分工

部分负责
DreamShaderLang描述材质资产、Graph、helper、导入关系和 Package 依赖。
DreamShader 插件解析源文件、生成 Unreal 节点、写入资产、保存 metadata。
VSCode 扩展提供编辑器语言服务和 Package 工作流入口。
Package Store Index提供可发现的社区 Package 列表。

产物

源声明Unreal 产物
Shader(Name="...")UMaterial
ShaderFunction(Name="...")UMaterialFunction
FunctionCustom 节点代码和生成 helper include。
.dsh不直接生成资产,作为共享依赖参与 .dsm 编译。

适合场景

场景是否适合
大量风格一致的 UI / Surface 材质适合。
需要版本管理材质逻辑适合。
团队共享材质函数库适合。
临时做一个简单节点图可以,但手动材质编辑器也足够。
完整替代所有 HLSL shader pipeline不适合,DreamShader 目标是 Unreal 材质资产生成。

On this page