diff --git a/addons/procedural_material/library.gd b/addons/procedural_material/library.gd index 5766e1e..17d8d27 100644 --- a/addons/procedural_material/library.gd +++ b/addons/procedural_material/library.gd @@ -57,7 +57,11 @@ func add_item(item, item_name, item_parent = null): if new_item == null: new_item = create_item(item_parent) new_item.set_text(0, item_name) - new_item.set_metadata(0, item) + new_item.collapsed = true + if item.has("type"): + new_item.set_metadata(0, item) + if item.has("collapsed"): + new_item.collapsed = item.collapsed return new_item else: var prefix = item_name.left(slash_position) @@ -71,6 +75,7 @@ func add_item(item, item_name, item_parent = null): c = c.get_next() if new_parent == null: new_parent = create_item(item_parent) + new_parent.collapsed = true new_parent.set_text(0, prefix) return add_item(item, suffix, new_parent) diff --git a/addons/procedural_material/library/base.json b/addons/procedural_material/library/base.json index d4a9d13..9d4e0d1 100644 --- a/addons/procedural_material/library/base.json +++ b/addons/procedural_material/library/base.json @@ -1,8 +1,11 @@ {"lib":[ { - "tree_item":"Generators/Uniform", - "type":"uniform", - "color":{"type":"Color", "r":1, "g":1, "b":1, "a":1} + "tree_item":"Generators", + "collapsed":false + }, + { + "tree_item":"Filters", + "collapsed":false }, { "tree_item":"Generators/Image", @@ -80,5 +83,44 @@ "tree_item":"Filters/Warp", "type":"warp", "amount":0.5 + }, + { + "tree_item": "Generators/Pattern/Checkerboard", + "type": "pattern", + "icon": "checkerboard", + "mix": 4, + "x_scale": 4, + "x_wave": 2, + "y_scale": 4, + "y_wave": 2 + }, + { + "tree_item": "Generators/Bricks/Tiles", + "type": "bricks", + "icon": "tiles", + "bevel": 0.05, + "columns": 4, + "mortar": 0.05, + "row_offset": 0, + "rows": 4 + }, + { + "tree_item": "Filters/Colorize/Invert", + "type": "colorize", + "icon": "invert", + "gradient": [ + { + "b": 1, + "g": 1, + "pos": 0, + "r": 1 + }, + { + "b": 0, + "g": 0, + "pos": 1, + "r": 0 + } + ] } ]} \ No newline at end of file diff --git a/addons/procedural_material/library/base/checkerboard.png b/addons/procedural_material/library/base/checkerboard.png new file mode 100644 index 0000000..3e8f454 Binary files /dev/null and b/addons/procedural_material/library/base/checkerboard.png differ diff --git a/addons/procedural_material/library/base/invert.png b/addons/procedural_material/library/base/invert.png new file mode 100644 index 0000000..9a0b786 Binary files /dev/null and b/addons/procedural_material/library/base/invert.png differ diff --git a/addons/procedural_material/library/base/tiles.png b/addons/procedural_material/library/base/tiles.png new file mode 100644 index 0000000..6dcbd18 Binary files /dev/null and b/addons/procedural_material/library/base/tiles.png differ diff --git a/addons/procedural_material/main_window.gd b/addons/procedural_material/main_window.gd index ff070b1..352fe56 100644 --- a/addons/procedural_material/main_window.gd +++ b/addons/procedural_material/main_window.gd @@ -14,13 +14,15 @@ const MENU = [ { menu="File" }, { menu="File", command="close_material", description="Close material" }, { menu="File", command="quit", shortcut="Control+Q", description="Quit" }, - { menu="Tools", command="save_icons", description="Save icons for selected nodes" }, { menu="Tools", command="add_to_user_library", description="Add selected node to user library" }, { menu="Tools", command="save_user_library", description="Save user library" }, + { menu="Help", command="bug_report", description="Report a bug" }, + { menu="Help" }, { menu="Help", command="about", description="About" } ] func _ready(): + OS.set_window_title(ProjectSettings.get_setting("application/config/name")+" v"+ProjectSettings.get_setting("application/config/release")) for m in $VBoxContainer/Menu.get_children(): create_menu(m.get_popup(), m.name) new_material() @@ -107,12 +109,9 @@ func export_material(): if graph_edit != null: graph_edit.export_textures(1024) -func save_icons(): - var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() - if graph_edit != null and graph_edit is GraphEdit: - for n in graph_edit.get_children(): - if n is GraphNode and n.selected: - graph_edit.export_texture(n, "res://addons/procedural_material/library/icons/"+n.name+".png", 64) +func quit(): + get_tree().quit() + func add_to_user_library(): var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() @@ -141,8 +140,13 @@ func save_user_library(): print("Saving user library") $VBoxContainer/HBoxContainer/VBoxContainer/Library.save_library("user://library/user.json") -func quit(): - get_tree().quit() +func bug_report(): + OS.shell_open("https://github.com/RodZill4/godot-procedural-textures/issues") + +func about(): + var about_box = preload("res://addons/procedural_material/widgets/about.tscn").instance() + add_child(about_box) + about_box.popup_centered() func _on_PopupMenu_id_pressed(id): var node_type = null diff --git a/addons/procedural_material/main_window.tscn b/addons/procedural_material/main_window.tscn index f3e47ee..73fd352 100644 --- a/addons/procedural_material/main_window.tscn +++ b/addons/procedural_material/main_window.tscn @@ -4,7 +4,7 @@ [ext_resource path="res://addons/procedural_material/library.gd" type="Script" id=2] [ext_resource path="res://addons/procedural_material/preview.tscn" type="PackedScene" id=3] -[node name="MainWindow" type="Panel" index="0"] +[node name="MainWindow" type="Panel"] anchor_left = 0.0 anchor_top = 0.0 diff --git a/addons/procedural_material/widgets/about.gd b/addons/procedural_material/widgets/about.gd new file mode 100644 index 0000000..5518e71 --- /dev/null +++ b/addons/procedural_material/widgets/about.gd @@ -0,0 +1,9 @@ +extends WindowDialog + + +func _ready(): + $VBoxContainer/VBoxContainer1/ApplicationName.text = ProjectSettings.get_setting("application/config/name")+" v"+ProjectSettings.get_setting("application/config/release") + pass + +func open_url(url): + OS.shell_open(url) diff --git a/addons/procedural_material/widgets/about.tscn b/addons/procedural_material/widgets/about.tscn new file mode 100644 index 0000000..162e41e --- /dev/null +++ b/addons/procedural_material/widgets/about.tscn @@ -0,0 +1,338 @@ +[gd_scene load_steps=8 format=2] + +[ext_resource path="res://addons/procedural_material/widgets/about.gd" type="Script" id=1] +[ext_resource path="res://icon.png" type="Texture" id=2] +[ext_resource path="res://addons/procedural_material/widgets/icon.png" type="Texture" id=3] +[ext_resource path="res://addons/procedural_material/widgets/facebook.png" type="Texture" id=4] +[ext_resource path="res://addons/procedural_material/widgets/twitter.png" type="Texture" id=5] +[ext_resource path="res://addons/procedural_material/widgets/youtube.png" type="Texture" id=6] +[ext_resource path="res://addons/procedural_material/widgets/github.png" type="Texture" id=7] + +[node name="About" type="WindowDialog" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 152.0 +margin_bottom = 191.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +popup_exclusive = false +window_title = "About..." +resizable = false +script = ExtResource( 1 ) +_sections_unfolded = [ "Anchor", "custom_styles" ] + +[node name="VBoxContainer" type="VBoxContainer" parent="." index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 1 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +alignment = 0 + +[node name="VBoxContainer1" type="VBoxContainer" parent="VBoxContainer" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 41.0 +margin_right = 110.0 +margin_bottom = 82.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 1 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 4 +size_flags_vertical = 2 +alignment = 0 +_sections_unfolded = [ "Size Flags" ] + +[node name="TextureRect" type="TextureRect" parent="VBoxContainer/VBoxContainer1" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 69.0 +margin_bottom = 64.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 1 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +texture = ExtResource( 2 ) +stretch_mode = 4 + +[node name="ApplicationName" type="Label" parent="VBoxContainer/VBoxContainer1" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 68.0 +margin_right = 69.0 +margin_bottom = 82.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 2 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 4 +text = "APP_NAME" +align = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 +_sections_unfolded = [ "Rect", "custom_fonts" ] + +[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 15.0 +margin_top = 95.0 +margin_right = 136.0 +margin_bottom = 127.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 1 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 4 +size_flags_vertical = 6 +alignment = 0 +_sections_unfolded = [ "Size Flags" ] + +[node name="Godot" type="TextureButton" parent="VBoxContainer/HBoxContainer2" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 32.0 +margin_bottom = 32.0 +rect_min_size = Vector2( 32, 32 ) +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +texture_normal = ExtResource( 3 ) +expand = true +stretch_mode = 4 +_sections_unfolded = [ "Rect", "Textures" ] + +[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer2" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 36.0 +margin_right = 121.0 +margin_bottom = 31.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 2 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 4 +text = "Based on +Godot Engine" +align = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="VBoxContainer3" type="VBoxContainer" parent="VBoxContainer" index="2"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 22.0 +margin_top = 149.0 +margin_right = 130.0 +margin_bottom = 191.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 1 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 4 +size_flags_vertical = 10 +alignment = 0 +_sections_unfolded = [ "Anchor", "Size Flags" ] + +[node name="RodzLabs" type="Label" parent="VBoxContainer/VBoxContainer3" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 108.0 +margin_bottom = 14.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 2 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 4 +text = "Rodz Labs" +align = 1 +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/VBoxContainer3" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 18.0 +margin_right = 108.0 +margin_bottom = 42.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 1 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 4 +size_flags_vertical = 1 +alignment = 0 +_sections_unfolded = [ "Size Flags" ] + +[node name="Facebook" type="TextureButton" parent="VBoxContainer/VBoxContainer3/HBoxContainer" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_right = 24.0 +margin_bottom = 24.0 +rect_min_size = Vector2( 24, 24 ) +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +texture_normal = ExtResource( 4 ) +expand = true +stretch_mode = 4 +_sections_unfolded = [ "Size Flags", "Textures" ] + +[node name="Twitter" type="TextureButton" parent="VBoxContainer/VBoxContainer3/HBoxContainer" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 28.0 +margin_right = 52.0 +margin_bottom = 24.0 +rect_min_size = Vector2( 24, 24 ) +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +texture_normal = ExtResource( 5 ) +expand = true +stretch_mode = 4 +_sections_unfolded = [ "Textures" ] + +[node name="Youtube" type="TextureButton" parent="VBoxContainer/VBoxContainer3/HBoxContainer" index="2"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 56.0 +margin_right = 80.0 +margin_bottom = 24.0 +rect_min_size = Vector2( 24, 24 ) +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +texture_normal = ExtResource( 6 ) +expand = true +stretch_mode = 4 +_sections_unfolded = [ "Textures" ] + +[node name="Github" type="TextureButton" parent="VBoxContainer/VBoxContainer3/HBoxContainer" index="3"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 84.0 +margin_right = 108.0 +margin_bottom = 24.0 +rect_min_size = Vector2( 24, 24 ) +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +focus_mode = 2 +mouse_filter = 0 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 1 +size_flags_vertical = 1 +toggle_mode = false +enabled_focus_mode = 2 +shortcut = null +group = null +texture_normal = ExtResource( 7 ) +expand = true +stretch_mode = 4 +_sections_unfolded = [ "Textures" ] + +[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Godot" to="." method="open_url" binds= [ "https://godotengine.org/" ]] + +[connection signal="pressed" from="VBoxContainer/VBoxContainer3/HBoxContainer/Facebook" to="." method="open_url" binds= [ "https://www.facebook.com/RodzLabs" ]] + +[connection signal="pressed" from="VBoxContainer/VBoxContainer3/HBoxContainer/Twitter" to="." method="open_url" binds= [ "https://twitter.com/R0dZill4" ]] + +[connection signal="pressed" from="VBoxContainer/VBoxContainer3/HBoxContainer/Youtube" to="." method="open_url" binds= [ "https://www.youtube.com/channel/UCTDByv9i3ul_qQ98zUYlNAQ" ]] + +[connection signal="pressed" from="VBoxContainer/VBoxContainer3/HBoxContainer/Github" to="." method="open_url" binds= [ "https://github.com/RodZill4" ]] + + diff --git a/addons/procedural_material/widgets/facebook.png b/addons/procedural_material/widgets/facebook.png new file mode 100644 index 0000000..893ea71 Binary files /dev/null and b/addons/procedural_material/widgets/facebook.png differ diff --git a/addons/procedural_material/widgets/github.png b/addons/procedural_material/widgets/github.png new file mode 100644 index 0000000..d097812 Binary files /dev/null and b/addons/procedural_material/widgets/github.png differ diff --git a/addons/procedural_material/widgets/icon.png b/addons/procedural_material/widgets/icon.png new file mode 100644 index 0000000..c019ef6 Binary files /dev/null and b/addons/procedural_material/widgets/icon.png differ diff --git a/addons/procedural_material/widgets/twitter.png b/addons/procedural_material/widgets/twitter.png new file mode 100644 index 0000000..2296647 Binary files /dev/null and b/addons/procedural_material/widgets/twitter.png differ diff --git a/addons/procedural_material/widgets/youtube.png b/addons/procedural_material/widgets/youtube.png new file mode 100644 index 0000000..58257fc Binary files /dev/null and b/addons/procedural_material/widgets/youtube.png differ diff --git a/examples/bricks.ptex b/examples/bricks.ptex index d9f6643..c45dd77 100644 --- a/examples/bricks.ptex +++ b/examples/bricks.ptex @@ -1 +1 @@ -{"connections":[{"from":"Perlin","from_port":0,"to":"Warp","to_port":1},{"from":"Warp","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"blend_0","to_port":2},{"from":"colorize_1","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":1},{"from":"blend_0","from_port":0,"to":"Material","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_2","from_port":0,"to":"colorize_4","to_port":0},{"from":"colorize_4","from_port":0,"to":"Material","to_port":2},{"from":"Bricks","from_port":0,"to":"Warp","to_port":0},{"from":"blend_1","from_port":0,"to":"colorize_1","to_port":0},{"from":"Bricks","from_port":1,"to":"blend_1","to_port":1},{"from":"Warp","from_port":0,"to":"blend_2","to_port":0},{"from":"Perlin","from_port":0,"to":"blend_2","to_port":1},{"from":"blend_2","from_port":0,"to":"colorize_3","to_port":0},{"from":"blend_2","from_port":0,"to":"colorize_6","to_port":0},{"from":"colorize_6","from_port":0,"to":"normal_map_0","to_port":0},{"from":"Perlin","from_port":0,"to":"blend_1","to_port":0},{"from":"Perlin","from_port":0,"to":"colorize_0","to_port":0},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1},{"from":"colorize_3","from_port":0,"to":"Material","to_port":5}],"nodes":[{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":1,"r":1}],"name":"colorize_0","node_position":{"x":560.943665,"y":50},"type":"colorize"},{"gradient":[{"b":0.0016,"g":0.0016,"pos":0,"r":0.307292},{"b":0,"g":0.180135,"pos":0.2,"r":0.606771},{"b":0,"g":0,"pos":0.363636,"r":0.3125},{"b":0,"g":0.19869,"pos":0.563636,"r":0.669271},{"b":0.019368,"g":0.060224,"pos":0.763636,"r":0.309896},{"b":0,"g":0.180135,"pos":1,"r":0.606771}],"name":"colorize_1","node_position":{"x":562.943665,"y":-65},"type":"colorize"},{"bevel":0.2,"columns":3,"mortar":0.05,"name":"Bricks","node_position":{"x":118,"y":-22},"row_offset":0.5,"rows":6,"type":"bricks"},{"amount":0.04,"name":"Warp","node_position":{"x":384,"y":10.75},"type":"warp"},{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"ao_light_affect":1,"depth_scale":0,"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":1081,"y":208},"normal_scale":1,"roughness":1,"type":"material"},{"amount":0.5,"blend_type":0,"name":"blend_2","node_position":{"x":536,"y":331},"type":"blend"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0.463542,"g":0.463542,"pos":1,"r":0.463542}],"name":"colorize_4","node_position":{"x":708,"y":224},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":836.943726,"y":-71},"type":"blend"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":892,"y":179},"type":"uniform"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":913,"y":278},"type":"normal_map"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":0.1,"r":1}],"name":"colorize_2","node_position":{"x":544.943665,"y":159},"type":"colorize"},{"amount":0.5,"blend_type":6,"name":"blend_1","node_position":{"x":349,"y":215},"type":"blend"},{"iterations":6,"name":"Perlin","node_position":{"x":115,"y":194},"persistence":0.85,"scale_x":4,"scale_y":4,"type":"perlin"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_6","node_position":{"x":743,"y":291},"type":"colorize"},{"gradient":[{"b":0.677083,"g":0.677083,"pos":0.254545,"r":0.677083},{"b":1,"g":1,"pos":0.536364,"r":1}],"name":"colorize_3","node_position":{"x":753,"y":364},"type":"colorize"}]} \ No newline at end of file +{"connections":[{"from":"Perlin","from_port":0,"to":"Warp","to_port":1},{"from":"Warp","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"blend_0","to_port":2},{"from":"colorize_1","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":1},{"from":"blend_0","from_port":0,"to":"Material","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_2","from_port":0,"to":"colorize_4","to_port":0},{"from":"colorize_4","from_port":0,"to":"Material","to_port":2},{"from":"Bricks","from_port":0,"to":"Warp","to_port":0},{"from":"blend_1","from_port":0,"to":"colorize_1","to_port":0},{"from":"Bricks","from_port":1,"to":"blend_1","to_port":1},{"from":"Warp","from_port":0,"to":"blend_2","to_port":0},{"from":"Perlin","from_port":0,"to":"blend_2","to_port":1},{"from":"blend_2","from_port":0,"to":"colorize_3","to_port":0},{"from":"blend_2","from_port":0,"to":"colorize_6","to_port":0},{"from":"colorize_6","from_port":0,"to":"normal_map_0","to_port":0},{"from":"Perlin","from_port":0,"to":"blend_1","to_port":0},{"from":"Perlin","from_port":0,"to":"colorize_0","to_port":0},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1},{"from":"colorize_3","from_port":0,"to":"Material","to_port":5}],"nodes":[{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":1,"r":1}],"name":"colorize_0","node_position":{"x":560.943665,"y":50},"type":"colorize"},{"gradient":[{"b":0.0016,"g":0.0016,"pos":0,"r":0.307292},{"b":0,"g":0.180135,"pos":0.2,"r":0.606771},{"b":0,"g":0,"pos":0.354545,"r":0.3125},{"b":0,"g":0.19869,"pos":0.554545,"r":0.669271},{"b":0.019368,"g":0.060224,"pos":0.754545,"r":0.309896},{"b":0,"g":0.180135,"pos":1,"r":0.606771}],"name":"colorize_1","node_position":{"x":562.943665,"y":-65},"type":"colorize"},{"bevel":0.2,"columns":3,"mortar":0.05,"name":"Bricks","node_position":{"x":118,"y":-22},"row_offset":0.5,"rows":6,"type":"bricks"},{"amount":0.04,"name":"Warp","node_position":{"x":384,"y":10.75},"type":"warp"},{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"ao_light_affect":1,"depth_scale":0,"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":1081,"y":208},"normal_scale":1,"roughness":1,"type":"material"},{"amount":0.5,"blend_type":0,"name":"blend_2","node_position":{"x":536,"y":331},"type":"blend"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0.463542,"g":0.463542,"pos":1,"r":0.463542}],"name":"colorize_4","node_position":{"x":708,"y":224},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":836.943726,"y":-71},"type":"blend"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":892,"y":179},"type":"uniform"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":913,"y":278},"type":"normal_map"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":0.1,"r":1}],"name":"colorize_2","node_position":{"x":544.943665,"y":159},"type":"colorize"},{"amount":0.5,"blend_type":6,"name":"blend_1","node_position":{"x":349,"y":215},"type":"blend"},{"iterations":6,"name":"Perlin","node_position":{"x":115,"y":194},"persistence":0.85,"scale_x":4,"scale_y":4,"type":"perlin"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_6","node_position":{"x":743,"y":291},"type":"colorize"},{"gradient":[{"b":0.510417,"g":0.510417,"pos":0.245455,"r":0.510417},{"b":1,"g":1,"pos":0.536364,"r":1}],"name":"colorize_3","node_position":{"x":753,"y":364},"type":"colorize"}]} \ No newline at end of file diff --git a/examples/wooden_floor.ptex b/examples/wooden_floor.ptex index cca3041..4ee85a5 100644 --- a/examples/wooden_floor.ptex +++ b/examples/wooden_floor.ptex @@ -1 +1 @@ -{"connections":[{"from":"bricks_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":0},{"from":"perlin_0","from_port":0,"to":"blend_0","to_port":1},{"from":"blend_0","from_port":0,"to":"Material","to_port":0},{"from":"blend_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_1","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"blend_0","from_port":0,"to":"Material","to_port":2},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1}],"nodes":[{"name":"Material","node_position":{"x":1036,"y":14},"type":"material"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":891,"y":82.25},"type":"normal_map"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_1","node_position":{"x":726,"y":100.25},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":660,"y":-20.75},"type":"blend"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.213623,"g":0.391325,"pos":0.145455,"r":0.651042}],"name":"colorize_0","node_position":{"x":478,"y":-5.75},"type":"colorize"},{"bevel":0,"columns":1,"mortar":0.05,"name":"bricks_0","node_position":{"x":281,"y":-2.75},"row_offset":0.5,"rows":9,"type":"bricks"},{"iterations":7,"name":"perlin_0","node_position":{"x":391,"y":157.25},"persistence":0.75,"scale_x":4,"scale_y":20,"type":"perlin"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":891,"y":-34},"type":"uniform"}]} \ No newline at end of file +{"connections":[{"from":"bricks_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":0},{"from":"perlin_0","from_port":0,"to":"blend_0","to_port":1},{"from":"blend_0","from_port":0,"to":"Material","to_port":0},{"from":"blend_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_1","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"blend_0","from_port":0,"to":"Material","to_port":2},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1},{"from":"blend_0","from_port":0,"to":"transform_0","to_port":0}],"nodes":[{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"ao_light_affect":1,"depth_scale":1,"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":1036,"y":14},"normal_scale":1,"roughness":1,"type":"material"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":891,"y":-34},"type":"uniform"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.213623,"g":0.391325,"pos":0.145455,"r":0.651042}],"name":"colorize_0","node_position":{"x":524,"y":-100.75},"type":"colorize"},{"bevel":0,"columns":2,"mortar":0.05,"name":"bricks_0","node_position":{"x":334,"y":-13.75},"row_offset":0,"rows":10,"type":"bricks"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":1064,"y":275.25},"type":"normal_map"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":535,"y":2.25},"type":"blend"},{"iterations":7,"name":"perlin_0","node_position":{"x":327,"y":145.25},"persistence":0.75,"scale_x":4,"scale_y":20,"type":"perlin"},{"name":"transform_0","node_position":{"x":527,"y":115},"repeat":true,"rotate":90,"scale_x":1,"scale_y":1,"translate_x":0,"translate_y":0,"type":"transform"},{"mix":4,"name":"pattern_0","node_position":{"x":515,"y":294},"type":"pattern","x_scale":1,"x_wave":2,"y_scale":1,"y_wave":2},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_1","node_position":{"x":885,"y":288.25},"type":"colorize"}]} \ No newline at end of file diff --git a/project.godot b/project.godot index f71d532..8d33400 100644 --- a/project.godot +++ b/project.godot @@ -10,11 +10,12 @@ config_version=3 [application] -config/name="Material Maker" +config/name="Material Lab" run/main_scene="res://addons/procedural_material/main_window.tscn" config/use_custom_user_dir=true config/custom_user_dir_name="material_maker" config/icon="res://icon.png" +config/release="0.2" [display]