Skip to content

Commit d069e04

Browse files
committed
Merge branch 'master' into animated-active-connections
2 parents 040a229 + 2b0fdb1 commit d069e04

93 files changed

Lines changed: 1504 additions & 371 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/create-dmg-bg.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ roundrect="roundrectangle -60,-11 60,11, 3,3"
1818
arrow="'M247.795861,184.47071 L290.200287,218.009412 C293.232498,220.407661 293.746425,224.809919 291.348175,227.84213 C291.011358,228.267982 290.626139,228.653201 290.200287,228.990018 L247.795497,262.529007 C244.763287,264.927257 240.361029,264.413331 237.962779,261.38112 C236.985055,260.144941 236.453122,258.614978 236.453082,257.038881 L236.452673,245.04637 C236.452575,241.180419 233.318555,238.046509 229.452604,238.046546 L161.141914,238.047178 C157.356462,238.047215 154.272786,235.042462 154.145907,231.287896 L154.141845,231.047178 L154.141845,215.952251 C154.141845,212.086285 157.275948,208.952289 161.141914,208.952251 L229.453446,208.951443 C233.319412,208.951405 236.453377,205.81741 236.453377,201.951443 L236.453446,189.961013 C236.453446,186.095019 239.587453,182.961013 243.453446,182.961013 C245.029604,182.961013 246.559635,183.492948 247.795861,184.47071 Z'"
1919
arrow_pos="180,100"
2020

21-
magick $IMAGE_PATH \
21+
convert $IMAGE_PATH \
2222
-resize x330 \
2323
-gravity center -crop 540x+0+0 \
2424
-evaluate multiply "$bg_opacity" \
@@ -27,4 +27,4 @@ magick $IMAGE_PATH \
2727
-fill white -draw "fill-opacity $rect_opacity translate $rect_pos_a $roundrect" \
2828
-fill white -draw "fill-opacity $rect_opacity translate $rect_pos_b $roundrect" \
2929
\( -size 800x800 xc:none -fill black -draw "translate $arrow_pos path $arrow" -scale 300x -blur 0x$arrow_shadow_blur \) -composite \
30-
\( -size 800x800 xc:none -fill white -draw "translate $arrow_pos path $arrow" -scale 300x \) -composite $BG_OUT_PATH
30+
\( -size 800x800 xc:none -fill white -draw "translate $arrow_pos path $arrow" -scale 300x \) -composite $BG_OUT_PATH

.github/workflows/dev-desktop-builds.yml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ on:
1919
default: "true"
2020

2121
env:
22-
GODOT_VERSION: 4.6.1
22+
GODOT_VERSION: 4.6.2
2323
GODOT_SUB: stable
24-
GODOT_DOWNLOAD_DIR: https://github.com/godotengine/godot-builds/releases/download/4.6.1-stable
24+
GODOT_DOWNLOAD_DIR: https://github.com/godotengine/godot-builds/releases/download/4.6.2-stable
2525
EXPORT_NAME: material_maker
2626
MM_RELEASE: 1_6
2727

@@ -94,24 +94,24 @@ jobs:
9494
tar zcvf ${EXPORT_NAME}_${MM_RELEASE}_linux.tar.gz ${EXPORT_NAME}_${MM_RELEASE}_linux
9595
- name: Upload Documentation 🚀
9696
if: ${{ github.event.inputs.gen_doc == 'true' }}
97-
uses: actions/upload-artifact@v4
97+
uses: actions/upload-artifact@v6
9898
with:
9999
name: documentation
100100
path: ./material_maker/doc/_build/html
101101
- name: Upload Windows Artifact 🚀
102-
uses: actions/upload-artifact@v4
102+
uses: actions/upload-artifact@v6
103103
with:
104104
name: windows_snapshot
105105
path: build/${{ env.EXPORT_NAME }}_${{ env.MM_RELEASE }}_windows.zip
106106
- name: Upload Linux Artifact 🚀
107-
uses: actions/upload-artifact@v4
107+
uses: actions/upload-artifact@v6
108108
with:
109109
name: linux_snapshot
110110
path: build/${{ env.EXPORT_NAME }}_${{ env.MM_RELEASE }}_linux.tar.gz
111111
export-mac:
112112
name: Mac Export 🍎
113113
needs: export_windows_linux
114-
runs-on: macos-latest
114+
runs-on: macos-26
115115
steps:
116116
- name: Checkout 🛎️
117117
uses: actions/checkout@v1
@@ -171,11 +171,9 @@ jobs:
171171
unzip -a ./build/mac/material_maker.zip -d ./build/mac
172172
chmod +x "./build/mac/Material Maker.app/Contents/MacOS/Material Maker"
173173
rm ./build/mac/material_maker.zip
174-
- name: Fix application icon 🖼
175-
run: sips -s format icns "./build/mac/Material Maker.app/Contents/Resources/icon.icns" --out "./build/mac/Material Maker.app/Contents/Resources/icon.icns"
176174
- name: Get documentation 🚀
177175
if: ${{ github.event.inputs.gen_doc == 'true' }}
178-
uses: actions/download-artifact@v4
176+
uses: actions/download-artifact@v8
179177
with:
180178
name: documentation
181179
path: doc
@@ -198,7 +196,7 @@ jobs:
198196
codesign -s "Rodolphe Suescun" --force --options runtime --timestamp --deep "./build/mac/Material Maker.app"
199197
- name: Create DMG archive 🔧
200198
run: |
201-
brew update && brew install imagemagick
199+
brew update && brew install imagemagick@6
202200
cp ./.github/workflows/create-dmg-bg.sh .
203201
chmod +x create-dmg-bg.sh
204202
./create-dmg-bg.sh ./splash_screen/backgrounds/pavel_oliva_vintage_luggage.png ./bg.png
@@ -216,7 +214,7 @@ jobs:
216214
xcrun notarytool submit ./build/mac/material_maker_${{ env.MM_RELEASE }}.dmg --apple-id $APPLE_ID --password $NOTARYTOOL_APP_PASSWORD --team-id $APPLE_TEAM_ID --wait
217215
xcrun stapler staple ./build/mac/material_maker_${{ env.MM_RELEASE }}.dmg
218216
- name: Upload Mac OSX Artifact 🚀
219-
uses: actions/upload-artifact@v4
217+
uses: actions/upload-artifact@v6
220218
with:
221219
name: macos_snapshot
222220
path: ./build/mac/material_maker_${{ env.MM_RELEASE }}.dmg

CHANGELOG.md

Lines changed: 45 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,53 @@
11
# Material Maker 1.6
22

3-
Mar 8, 2026, ~16h
4-
53
## General
64

75
- Allowed closing named parameter dialog via window button (contributed by williamchange)
8-
- Updated graph navigation to retain subgraph offsets (contributed by williamchange)
96
- Implemented vertical tabs in the Preferences dialog (contributed by williamchange)
10-
- Modified the "Update library item" action to keep the thumbnail (contributed by williamchange)
11-
- Implemented node grabbing via G key (contributed by williamchange)
127
- Improved debug console link navigation (contributed by williamchange)
13-
- Show top-level section labels in the Library panel in bold (contributed by williamchange)
14-
- Added drag and drop support for image parameter (contributed by williamchange)
15-
- Improved export node to support $ variables (contributed by williamchange)
168
- Enabled tab rearrangement for projects panel (contributed by williamchange)
17-
- Improved $node to use node title in 2D export (contributed by williamchange)
9+
- Made tab styles more consistent (contributed by williamchange)
1810
- Updated icons to use SVG when possible (contributed by williamchange)
1911
- Configured default FileDialog path to user's home directory (contributed by williamchange)
12+
- Added documentation for user interface shortcuts (contributed by williamchange)
13+
- Added a menu item to show examples folder (contributed by williamchange)
14+
- Added documentation for user interface shortcuts (contributed by williamchange)
15+
16+
### Graph view
17+
18+
- Updated graph navigation to retain subgraph offsets (contributed by williamchange)
19+
- Added circuit/metro style (diagonal) connections (contributed by williamchange)
20+
- Implemented node grabbing via G key (contributed by williamchange)
21+
- Added drag and drop support for image parameter (contributed by williamchange)
22+
- Made the close/minimize node buttons optional (contributed by williamchange)
23+
- Improved node interaction when zoomed out (contributed by williamchange)
24+
- Added port previews for group input nodes (contributed by williamchange)
25+
- Improved remote parameters rearrangement (contributed by williamchange)
26+
- Added edge scrolling when dragging connection (contributed by williamchange)
27+
28+
### Library
29+
30+
- Show top-level section labels in the Library panel in bold (contributed by williamchange)
31+
- Modified the "Update library item" action to keep the thumbnail (contributed by williamchange)
32+
33+
### 2D Preview
34+
35+
- Improved $node to use node title in 2D export (contributed by williamchange)
36+
- Updated 2D preview to gizmos during transform until LMB is released (contributed by williamchange)
37+
38+
### 3D Preview
39+
40+
- Added alternative inputs for graph panning/camera orbiting (contributed by williamchange)
2041

2142
## Nodes
2243

44+
- Added controlled variations and related nodes
45+
- Implemented portal nodes (contributed by williamchange)
46+
- Added a variadic Color Pick node (contributed by myaaaaaaaaa)
47+
- Added a basic glTF exporter for static PBR materials (contributed by myaaaaaaaaa)
2348
- Added lacunarity for FBM noise node (contributed by williamchange)
49+
- Added gabor noise for FBM noise node (contributed by williamchange)
50+
- Improved export node to support $ variables (contributed by williamchange)
2451

2552
## Bug Fixes
2653

@@ -31,10 +58,19 @@ Mar 8, 2026, ~16h
3158
- Reintroduced AO export for Blender export target (contributed by williamchange)
3259
- Placed graph UI (hierarchy and subgraph controls) above nodes (contributed by williamchange)
3360
- Updated reroute/preview2d bg checker to match defaults (contributed by williamchange)
61+
- Fixed console meta navigation on multiple clicks (contributed by williamchange)
62+
- Fixed group parameters using default values from linked widgets (contributed by williamchange)
63+
- Fixed hierarchy/subgraph UI position (contributed by williamchange)
64+
- Fixed crash when opening named parameter editor (contributed by williamchange)
65+
- Fixed zoom in/out buttons conflicting with node align (contributed by williamchange)
66+
- Added check to prevent self-referencing in float parameter editor (contributed by williamchange)
67+
- Fixed lattice, pixels, polygon views not centering (contributed by williamchange)
68+
- Fixed default lattice point positions (contributed by williamchange)
3469

3570
# Material Maker 1.5p1
3671

3772
## Bug Fixes
73+
3874
- Fixed problem when exporting materials on command line in Export node
3975
- Fixed folder picker not showing set path in 2D export (contributed by williamchange)
4076
- Fixed small FloatEdit sizes in pixel editor (contributed by williamchange)

MaterialMakerLG.icon/.gdignore

Whitespace-only changes.

MaterialMakerLG.icon/Assets/mm.svg

Lines changed: 1 addition & 0 deletions
Loading

MaterialMakerLG.icon/icon.json

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
{
2+
"fill" : {
3+
"automatic-gradient" : "srgb:1.00000,1.00000,1.00000,1.00000"
4+
},
5+
"groups" : [
6+
{
7+
"blur-material-specializations" : [
8+
{
9+
"value" : null
10+
},
11+
{
12+
"appearance" : "dark",
13+
"value" : null
14+
}
15+
],
16+
"hidden-specializations" : [
17+
{
18+
"idiom" : "macOS",
19+
"value" : false
20+
}
21+
],
22+
"layers" : [
23+
{
24+
"image-name" : "mm.svg",
25+
"name" : "mm"
26+
}
27+
],
28+
"lighting-specializations" : [
29+
{
30+
"appearance" : "dark",
31+
"value" : "individual"
32+
}
33+
],
34+
"position-specializations" : [
35+
{
36+
"idiom" : "macOS",
37+
"value" : {
38+
"scale" : 1,
39+
"translation-in-points" : [
40+
0,
41+
0
42+
]
43+
}
44+
}
45+
],
46+
"shadow-specializations" : [
47+
{
48+
"value" : {
49+
"kind" : "layer-color",
50+
"opacity" : 0.8
51+
}
52+
},
53+
{
54+
"appearance" : "dark",
55+
"value" : {
56+
"kind" : "neutral",
57+
"opacity" : 0.8
58+
}
59+
},
60+
{
61+
"appearance" : "tinted",
62+
"value" : {
63+
"kind" : "layer-color",
64+
"opacity" : 0.8
65+
}
66+
}
67+
],
68+
"specular-specializations" : [
69+
{
70+
"appearance" : "dark",
71+
"value" : true
72+
}
73+
],
74+
"translucency-specializations" : [
75+
{
76+
"value" : {
77+
"enabled" : true,
78+
"value" : 0.5
79+
}
80+
},
81+
{
82+
"appearance" : "dark",
83+
"value" : {
84+
"enabled" : true,
85+
"value" : 0.5
86+
}
87+
},
88+
{
89+
"appearance" : "tinted",
90+
"value" : {
91+
"enabled" : true,
92+
"value" : 0.5
93+
}
94+
}
95+
]
96+
}
97+
],
98+
"supported-platforms" : {
99+
"squares" : [
100+
"macOS"
101+
]
102+
}
103+
}

addons/gut/gui/EditorRadioButton.tres

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[gd_resource type="Theme" load_steps=3 format=3 uid="uid://dssgvu257o1si"]
1+
[gd_resource type="Theme" format=3 uid="uid://dssgvu257o1si"]
22

33
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_u716c"]
44
bg_color = Color(0.43137255, 0.8784314, 0.6156863, 0.5254902)

addons/material_maker/engine/multi_renderer.gd

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ func generate_shader(src_code : MMGenBase.ShaderCode) -> String:
7272
shader_code += "\nuniform float variation = 0.0;\n"
7373
shader_code += "\nvoid fragment() {\n"
7474
shader_code += "float _seed_variation_ = variation;\n"
75+
shader_code += "vec4 _controlled_variation_ = vec4(0.0);\n"
7576
shader_code += "vec2 uv = mm_chunk_offset+mm_chunk_size*UV;\n"
7677
if src_code.code != "":
7778
shader_code += src_code.code

addons/material_maker/engine/nodes/buffer_compute.tres

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const float seed_variation = 0.0;
2727
2828
void main() {
2929
float _seed_variation_ = seed_variation;
30+
vec4 _controlled_variation_ = vec4(0.0);
3031
vec2 pixel = gl_GlobalInvocationID.xy+vec2(0.5, 0.5+mm_chunk_y);
3132
vec2 image_size = imageSize(OUTPUT_TEXTURE);
3233
vec2 uv = pixel/image_size;

addons/material_maker/engine/nodes/gen_base.gd

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,22 @@ static func find_matching_parenthesis(string : String, i : int, op : String = '(
635635
i = max_p if min_p < 0 else min_p
636636
return i
637637

638+
static func split_parameters(string : String) -> Array[String]:
639+
if string[0] != "(" or find_matching_parenthesis(string, 0) != string.length()-1:
640+
print("bad")
641+
return []
642+
string = string.substr(1, string.length()-2)
643+
var parameters : Array[String] = []
644+
var p : String = ""
645+
for s in string.split(","):
646+
if p != "":
647+
p += ","
648+
p += s
649+
if p.count("(") == p.count(")") and p.count("[") == p.count("]"):
650+
parameters.append(p.strip_edges())
651+
p = ""
652+
return parameters
653+
638654
static var re_line_comment : RegEx = RegEx.create_from_string("//.*")
639655

640656
static func remove_comments(s : String) -> String:

0 commit comments

Comments
 (0)