虚幻引擎材质语言
DreamShaderLang
用 .dsm / .dsf / .dsh 源文件描述材质,DreamShader 插件在编辑器里解析它们,生成标准的 UMaterial、UMaterialFunction 与 Material Layer 资产。源文件是唯一的编辑面,资产是构建产物,随时可以丢掉重建。
Shader(Name="DreamMaterials/M_Minimal"){ Properties = { vec3 Tint = vec3(1.0, 0.2, 0.2); } Settings = { Domain = "UI"; ShadingModel = "Unlit"; } Outputs = { vec3 Color; Base.EmissiveColor = Color; } Graph = { Color = Tint; }}生成 /Game/DreamMaterials/M_Minimal
工作流
从源文件到材质资产
资产声明负责 Unreal 产物,Graph 负责节点连接,Function / GraphFunction 负责可复用的 Custom 节点逻辑。保存即编译,生成过程是幂等的。
Source
.dsm / .dsf / .dsh 描述材质、函数资产、共享 helper 和 Package 依赖。import 会在解析前把整个闭包内联成一份文本。
Compile
插件解析声明与 Graph,建立 MaterialExpression、Custom 节点和函数资产,并把诊断映射回你实际写的那一行。
Asset
生成 UMaterial、UMaterialFunction、Material Layer 与 Layer Blend。默认 backend 下材质只存在于内存里。
工具链
插件、编辑器扩展与 Package 分发
四个部分共用同一份语法和同一条诊断通道:Unreal 侧负责解析和生成,编辑器扩展负责补全与跳转,Package 负责把可复用的库分发出去。