DreamShaderLang
快速开始

安装与启用

在 Unreal 项目中启用 DreamShader,并准备 DreamShaderLang 源目录。

DreamShaderLang 由 Unreal 插件 DreamShader 编译。写语言文件前,需要先让 Unreal 项目能发现插件和 DShader 源目录。

前置条件

项目要求
Unreal 项目插件放在项目 Plugins/DreamShader 下。
源文件根目录默认是项目根目录下的 DShader
文件扩展名.dsm.dsf.dsh
自动编译默认开启,保存源文件后生成或刷新资产。

基本步骤

  1. 将插件目录放入 Unreal 项目的 Plugins/DreamShader
  2. 在 Unreal Editor 中启用 DreamShader 插件。
  3. 重启 Unreal Editor。
  4. 在项目根目录创建 DShader
  5. DShader/Materials 创建第一个 .dsm 文件。
  6. 保存文件,等待插件生成 UMaterialUMaterialFunction

Project Settings

打开 Project Settings > DreamPlugin > Dream Shader 可以配置:

设置默认值说明
SourceDirectoryDShaderDreamShaderLang 源文件根目录。
GeneratedShaderDirectory可配置普通 Function 生成 helper include 的位置。
AutoCompileOnSavetrue保存 .dsm / .dsh 时自动刷新资产。
SaveDebounceSeconds0.25保存防抖时间。
VerboseLogsfalse输出详细日志。
OpenInNewWindowtrue从 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.uassetRoot 也可以写 Game/GeneratedPlugin.MyPlugin/Generated 来追加子目录。

本页目录