Skip to content

Commit 43b6dd5

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents d41a87e + db09587 commit 43b6dd5

22 files changed

Lines changed: 2544 additions & 1973 deletions

README.md

Lines changed: 54 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,27 @@
44

55
DreamShader is an Unreal Engine plugin for authoring materials and material functions with text source files. It introduces `DreamShaderLang`, a compact DSL that turns `.dsm`, `.dsf`, and `.dsh` files into Unreal `UMaterial`, `UMaterialFunction`, Material Layer, and Material Layer Blend assets.
66

7-
> Current version: `1.3.6`.
8-
>
9-
> DreamShader is actively developed. The core authoring workflow is usable, but you should keep all `.dsm` / `.dsf` / `.dsh` files in source control.
10-
>
11-
> The plugin is currently developed against Unreal Engine `5.7`. Other engine versions have not been fully tested.
7+
8+
9+
**Tip**
10+
11+
12+
13+
> Current version: `1.3.6`.
14+
>
15+
>
16+
> DreamShader is still under active development, but the core workflow is already available. It is recommended to include all `.dsm` / `.dsf` / `.dsh` source files in version control.
17+
>
18+
>
19+
> This plugin is currently developed based on Unreal Engine `5.7`. Other versions have not been fully tested yet.
20+
21+
22+
23+
24+
25+
> Currently, the decompiler can pass some of the large-scale material/material function tests of Lyra, but it is still not stable. Please use it with caution. Small materials are basically supported normally. If you have any issues, please submit them as Issues.
26+
27+
1228

1329
For bug reports and feature requests, open an [issue](https://github.com/TypeDreamMoon/DreamShader/issues/new). For faster Chinese-language support, you can also join the [QQ group 466585194](https://qm.qq.com/q/X9uCLjVcY).
1430

@@ -29,21 +45,21 @@ For bug reports and feature requests, open an [issue](https://github.com/TypeDre
2945

3046
## Source Model
3147

32-
| Item | Purpose |
33-
| --- | --- |
34-
| `.dsm` | Material implementation file. Usually contains `Shader`, `ShaderFunction`, `ShaderLayer`, `ShaderLayerBlend`, or `VirtualFunction` blocks. |
35-
| `.dsf` | Dream Shader Function file. Generates reusable `ShaderFunction` assets that can be imported by `.dsm` files. |
36-
| `.dsh` | Shared header file. Usually contains `import`, `Function`, `GraphFunction`, `Namespace`, and `VirtualFunction` declarations. |
37-
| `Shader` | Generates an Unreal `UMaterial`. |
38-
| `ShaderFunction` | Generates an Unreal `UMaterialFunction`. |
39-
| `ShaderLayer` | Generates a native `UMaterialFunctionMaterialLayer`. |
40-
| `ShaderLayerBlend` | Generates a native `UMaterialFunctionMaterialLayerBlend`. |
41-
| `VirtualFunction` | Describes an existing Unreal `UMaterialFunction` so it can be called from `Graph`. |
42-
| `Graph` | Node-oriented DSL used inside generated materials and functions. |
43-
| `Function` | Reusable HLSL-style helper. |
44-
| `GraphFunction` | Reusable Custom-node helper that can pull `UE.*` material nodes into generated Custom inputs. |
45-
| `Namespace` | Groups helpers, for example `Texture::Sample2DRGB(...)`. |
46-
| `Path(...)` | Declares Unreal asset paths for textures, object settings, or virtual functions. |
48+
| Item | Purpose |
49+
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
50+
| `.dsm` | Material implementation file. Usually contains `Shader`, `ShaderFunction`, `ShaderLayer`, `ShaderLayerBlend`, or `VirtualFunction` blocks. |
51+
| `.dsf` | Dream Shader Function file. Generates reusable `ShaderFunction` assets that can be imported by `.dsm` files. |
52+
| `.dsh` | Shared header file. Usually contains `import`, `Function`, `GraphFunction`, `Namespace`, and `VirtualFunction` declarations. |
53+
| `Shader` | Generates an Unreal `UMaterial`. |
54+
| `ShaderFunction` | Generates an Unreal `UMaterialFunction`. |
55+
| `ShaderLayer` | Generates a native `UMaterialFunctionMaterialLayer`. |
56+
| `ShaderLayerBlend` | Generates a native `UMaterialFunctionMaterialLayerBlend`. |
57+
| `VirtualFunction` | Describes an existing Unreal `UMaterialFunction` so it can be called from `Graph`. |
58+
| `Graph` | Node-oriented DSL used inside generated materials and functions. |
59+
| `Function` | Reusable HLSL-style helper. |
60+
| `GraphFunction` | Reusable Custom-node helper that can pull `UE.*` material nodes into generated Custom inputs. |
61+
| `Namespace` | Groups helpers, for example `Texture::Sample2DRGB(...)`. |
62+
| `Path(...)` | Declares Unreal asset paths for textures, object settings, or virtual functions. |
4763

4864
Recommended project layout:
4965

@@ -69,14 +85,14 @@ MyProject/
6985

7086
Project settings are available under `Project Settings > DreamPlugin > Dream Shader`.
7187

72-
| Setting | Default | Description |
73-
| --- | --- | --- |
74-
| `SourceDirectory` | `DShader` | Root directory for DreamShader source files. |
75-
| `GeneratedShaderDirectory` | `Intermediate/DreamShader/GeneratedShaders` | Output directory for generated `.ush` helper files. |
76-
| `AutoCompileOnSave` | `true` | Rebuild affected assets when `.dsm` / `.dsf` / `.dsh` files are saved. |
77-
| `SaveDebounceSeconds` | `0.25` | File-save debounce time. |
78-
| `VerboseLogs` | `false` | Print more detailed logs. |
79-
| `OpenInNewWindow` | `true` | Open the generated VSCode workspace in a new window by default. |
88+
| Setting | Default | Description |
89+
| -------------------------- | ------------------------------------------- | ---------------------------------------------------------------------- |
90+
| `SourceDirectory` | `DShader` | Root directory for DreamShader source files. |
91+
| `GeneratedShaderDirectory` | `Intermediate/DreamShader/GeneratedShaders` | Output directory for generated `.ush` helper files. |
92+
| `AutoCompileOnSave` | `true` | Rebuild affected assets when `.dsm` / `.dsf` / `.dsh` files are saved. |
93+
| `SaveDebounceSeconds` | `0.25` | File-save debounce time. |
94+
| `VerboseLogs` | `false` | Print more detailed logs. |
95+
| `OpenInNewWindow` | `true` | Open the generated VSCode workspace in a new window by default. |
8096

8197
## Decompiler Export
8298

@@ -319,14 +335,14 @@ The release archive is named `DreamShader-<Version>.zip` and contains the plugin
319335

320336
## Project Info
321337

322-
| Item | Value |
323-
| --- | --- |
324-
| Version | `1.3.6` |
325-
| Language | `DreamShaderLang` |
326-
| Author | TypeDreamMoon |
327-
| GitHub | <https://github.com/TypeDreamMoon> |
328-
| Docs | <https://lang.64hz.cn/> |
329-
| Web | <https://dev.64hz.cn> |
338+
| Item | Value |
339+
| --------- | ------------------------------------------------------ |
340+
| Version | `1.3.6` |
341+
| Language | `DreamShaderLang` |
342+
| Author | TypeDreamMoon |
343+
| GitHub | <https://github.com/TypeDreamMoon> |
344+
| Docs | <https://lang.64hz.cn/> |
345+
| Web | <https://dev.64hz.cn> |
330346
| Copyright | Copyright (c) 2026 TypeDreamMoon. All rights reserved. |
331347

332348
## Roadmap
@@ -336,3 +352,5 @@ The release archive is named `DreamShader-<Version>.zip` and contains the plugin
336352
- Full Substrate support.
337353
- Deeper Material Layer workflow support.
338354
- Deeper Moon Engine integration. Reference: <https://zhuanlan.zhihu.com/p/21979494450>
355+
356+

README.zh-CN.md

Lines changed: 45 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,24 @@
44

55
DreamShader 是一个 Unreal Engine 材质生成插件。它提供 `DreamShaderLang` 文本语言,让你用 `.dsm` / `.dsf` / `.dsh` 源文件描述材质、材质函数、Material Layer 和 Material Layer Blend,并自动生成对应的 Unreal 资产。
66

7+
8+
9+
**Tip**
10+
11+
12+
713
> 当前版本:`1.3.6`
8-
>
14+
>
915
> DreamShader 仍在持续开发中,核心工作流已经可用。建议把所有 `.dsm` / `.dsf` / `.dsh` 源文件纳入版本管理。
10-
>
16+
>
1117
> 本插件目前基于 Unreal Engine `5.7` 开发,其他版本尚未完整测试。
1218
19+
20+
21+
> 目前反编译器能通过Lyra的部分大型材质/材质函数测试 但是目前还并不稳定 请酌情使用,小型材质基本上都可以正常支持。有任何问题,请提交Issues
22+
23+
24+
1325
问题和 Bug 可以提交到 [Issues](https://github.com/TypeDreamMoon/DreamShader/issues/new)。需要更快的中文支持,也可以加入 [QQ群 466585194](https://qm.qq.com/q/X9uCLjVcY)
1426

1527
## 核心能力
@@ -29,21 +41,21 @@ DreamShader 是一个 Unreal Engine 材质生成插件。它提供 `DreamShaderL
2941

3042
## 文件模型
3143

32-
| 项目 | 用途 |
33-
| --- | --- |
34-
| `.dsm` | 材质实现文件,通常包含 `Shader``ShaderFunction``ShaderLayer``ShaderLayerBlend``VirtualFunction`|
35-
| `.dsf` | Dream Shader Function 文件,用于生成可复用 `ShaderFunction` 资产,并可被 `.dsm` 导入。 |
36-
| `.dsh` | 共享头文件,通常包含 `import``Function``GraphFunction``Namespace``VirtualFunction` 声明。 |
37-
| `Shader` | 生成 Unreal `UMaterial`|
38-
| `ShaderFunction` | 生成 Unreal `UMaterialFunction`|
39-
| `ShaderLayer` | 生成原生 `UMaterialFunctionMaterialLayer`|
40-
| `ShaderLayerBlend` | 生成原生 `UMaterialFunctionMaterialLayerBlend`|
41-
| `VirtualFunction` | 描述已有 Unreal `UMaterialFunction`,供 `Graph` 调用。 |
42-
| `Graph` | 用于生成材质节点的图 DSL。 |
43-
| `Function` | 可复用 HLSL 风格 helper。 |
44-
| `GraphFunction` | 可复用 Custom 节点 helper,可把 body 中的 `UE.*` 材质节点自动转成 Custom 输入。 |
45-
| `Namespace` | 对 helper 分组,例如 `Texture::Sample2DRGB(...)`|
46-
| `Path(...)` | 声明纹理、对象设置或虚拟函数使用的 Unreal 资产路径。 |
44+
| 项目 | 用途 |
45+
| ------------------ | ------------------------------------------------------------------------------------------- |
46+
| `.dsm` | 材质实现文件,通常包含 `Shader``ShaderFunction``ShaderLayer``ShaderLayerBlend``VirtualFunction`|
47+
| `.dsf` | Dream Shader Function 文件,用于生成可复用 `ShaderFunction` 资产,并可被 `.dsm` 导入。 |
48+
| `.dsh` | 共享头文件,通常包含 `import``Function``GraphFunction``Namespace``VirtualFunction` 声明。 |
49+
| `Shader` | 生成 Unreal `UMaterial` |
50+
| `ShaderFunction` | 生成 Unreal `UMaterialFunction` |
51+
| `ShaderLayer` | 生成原生 `UMaterialFunctionMaterialLayer` |
52+
| `ShaderLayerBlend` | 生成原生 `UMaterialFunctionMaterialLayerBlend` |
53+
| `VirtualFunction` | 描述已有 Unreal `UMaterialFunction`,供 `Graph` 调用。 |
54+
| `Graph` | 用于生成材质节点的图 DSL。 |
55+
| `Function` | 可复用 HLSL 风格 helper。 |
56+
| `GraphFunction` | 可复用 Custom 节点 helper,可把 body 中的 `UE.*` 材质节点自动转成 Custom 输入。 |
57+
| `Namespace` | 对 helper 分组,例如 `Texture::Sample2DRGB(...)` |
58+
| `Path(...)` | 声明纹理、对象设置或虚拟函数使用的 Unreal 资产路径。 |
4759

4860
推荐项目结构:
4961

@@ -69,14 +81,14 @@ MyProject/
6981

7082
配置位于 `Project Settings > DreamPlugin > Dream Shader`
7183

72-
| 设置 | 默认值 | 说明 |
73-
| --- | --- | --- |
74-
| `SourceDirectory` | `DShader` | DreamShader 源文件根目录。 |
75-
| `GeneratedShaderDirectory` | `Intermediate/DreamShader/GeneratedShaders` | 生成 `.ush` helper 文件的目录。 |
76-
| `AutoCompileOnSave` | `true` | 保存 `.dsm` / `.dsf` / `.dsh` 时刷新受影响资产。 |
77-
| `SaveDebounceSeconds` | `0.25` | 文件保存防抖时间。 |
78-
| `VerboseLogs` | `false` | 输出更详细日志。 |
79-
| `OpenInNewWindow` | `true` | 打开 DreamShader VSCode workspace 时默认使用新窗口。 |
84+
| 设置 | 默认值 | 说明 |
85+
| -------------------------- | ------------------------------------------- | ----------------------------------------- |
86+
| `SourceDirectory` | `DShader` | DreamShader 源文件根目录。 |
87+
| `GeneratedShaderDirectory` | `Intermediate/DreamShader/GeneratedShaders` | 生成 `.ush` helper 文件的目录。 |
88+
| `AutoCompileOnSave` | `true` | 保存 `.dsm` / `.dsf` / `.dsh` 时刷新受影响资产。 |
89+
| `SaveDebounceSeconds` | `0.25` | 文件保存防抖时间。 |
90+
| `VerboseLogs` | `false` | 输出更详细日志。 |
91+
| `OpenInNewWindow` | `true` | 打开 DreamShader VSCode workspace 时默认使用新窗口。 |
8092

8193
## 反编译导出
8294

@@ -319,14 +331,14 @@ git push origin v1.3.6
319331

320332
## 项目信息
321333

322-
| 项目 | 内容 |
323-
| --- | --- |
324-
| Version | `1.3.6` |
325-
| Language | `DreamShaderLang` |
326-
| Author | TypeDreamMoon |
327-
| GitHub | <https://github.com/TypeDreamMoon> |
328-
| Docs | <https://lang.64hz.cn/> |
329-
| Web | <https://dev.64hz.cn> |
334+
| 项目 | 内容 |
335+
| --------- | ------------------------------------------------------ |
336+
| Version | `1.3.6` |
337+
| Language | `DreamShaderLang` |
338+
| Author | TypeDreamMoon |
339+
| GitHub | <https://github.com/TypeDreamMoon> |
340+
| Docs | <https://lang.64hz.cn/> |
341+
| Web | <https://dev.64hz.cn> |
330342
| Copyright | Copyright (c) 2026 TypeDreamMoon. All rights reserved. |
331343

332344
## Roadmap

0 commit comments

Comments
 (0)