快速开始
安装与启用
在 Unreal 项目中启用 DreamShader,并准备 DreamShaderLang 源目录。
DreamShaderLang 由 Unreal 插件 DreamShader 编译。写语言文件前,需要先让 Unreal 项目能发现插件和 DShader 源目录。
前置条件
| 项目 | 要求 |
|---|---|
| Unreal 项目 | 插件放在项目 Plugins/DreamShader 下。 |
| 源文件根目录 | 默认是项目根目录下的 DShader。 |
| 文件扩展名 | .dsm、.dsf 和 .dsh。 |
| 自动编译 | 默认开启,保存源文件后生成或刷新资产。 |
基本步骤
- 将插件目录放入 Unreal 项目的
Plugins/DreamShader。 - 在 Unreal Editor 中启用 DreamShader 插件。
- 重启 Unreal Editor。
- 在项目根目录创建
DShader。 - 在
DShader/Materials创建第一个.dsm文件。 - 保存文件,等待插件生成
UMaterial或UMaterialFunction。
Project Settings
打开 Project Settings > DreamPlugin > Dream Shader 可以配置:
| 设置 | 默认值 | 说明 |
|---|---|---|
SourceDirectory | DShader | DreamShaderLang 源文件根目录。 |
GeneratedShaderDirectory | 可配置 | 普通 Function 生成 helper include 的位置。 |
AutoCompileOnSave | true | 保存 .dsm / .dsh 时自动刷新资产。 |
SaveDebounceSeconds | 0.25 | 保存防抖时间。 |
VerboseLogs | false | 输出详细日志。 |
OpenInNewWindow | true | 从 Unreal 打开 DreamShader VSCode workspace 时新开窗口;设为 false 时复用已有 VSCode 窗口。 |
手动重编
VSCode 扩展提供命令:
DreamShaderLang: Recompile Current Source
DreamShaderLang: Recompile All Sources对 .dsh 执行当前文件重编时,会扩展为重编依赖它的 .dsm / .dsf,而不是尝试从 .dsh 直接生成资产。.dsf 可以生成 ShaderFunction 资产,也可以被 .dsm 或其他 .dsf import。
生成位置
Shader(Name="DreamMaterials/M_Minimal") 会解析成 /Game/DreamMaterials/M_Minimal.M_Minimal。语言中的 Name 不需要写 /Game 前缀,生成器会把它作为 Root 下的相对 package path 处理。
如果要保存到项目内容插件根,可以写:
Shader(Name="DreamMaterials/M_Minimal", Root="Plugin.MyPlugin")这会生成到 /MyPlugin/DreamMaterials/M_Minimal.M_Minimal,并物理保存到 [Project]/Plugins/MyPlugin/Content/DreamMaterials/M_Minimal.uasset。Root 也可以写 Game/Generated 或 Plugin.MyPlugin/Generated 来追加子目录。