diff --git a/addons/procedural_material/graph_edit.gd b/addons/procedural_material/graph_edit.gd index 43a991e..18e0265 100644 --- a/addons/procedural_material/graph_edit.gd +++ b/addons/procedural_material/graph_edit.gd @@ -155,7 +155,7 @@ func do_save_file(filename): func export_textures(size = 512): if save_path != null: var prefix = save_path.left(save_path.rfind(".")) - $GraphEdit/Material.export_textures(prefix) + $Material.export_textures(prefix) func send_changed_signal(): set_need_save(true) diff --git a/addons/procedural_material/main_window.gd b/addons/procedural_material/main_window.gd index 46d1cc3..ff070b1 100644 --- a/addons/procedural_material/main_window.gd +++ b/addons/procedural_material/main_window.gd @@ -88,25 +88,36 @@ func do_load_material(filename): graph_edit.do_load_file(filename) func save_material(): - $VBoxContainer/HBoxContainer/Projects.get_current_tab_control().save_file() + var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() + if graph_edit != null: + graph_edit.save_file() func save_material_as(): - $VBoxContainer/HBoxContainer/Projects.get_current_tab_control().save_file_as() + var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() + if graph_edit != null: + graph_edit.save_file_as() func close_material(): - $VBoxContainer/HBoxContainer/Projects.get_current_tab_control().queue_free() + var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() + if graph_edit != null: + graph_edit.queue_free() + +func export_material(): + var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() + if graph_edit != null: + graph_edit.export_textures(1024) func save_icons(): - var graphedit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() - if graphedit != null and graphedit is GraphEdit: - for n in graphedit.get_children(): + 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: - graphedit.export_texture(n, "res://addons/procedural_material/library/icons/"+n.name+".png", 64) + graph_edit.export_texture(n, "res://addons/procedural_material/library/icons/"+n.name+".png", 64) func add_to_user_library(): - var graphedit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() - if graphedit != null and graphedit is GraphEdit: - for n in graphedit.get_children(): + 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: var dialog = preload("res://addons/procedural_material/widgets/line_dialog.tscn").instance() add_child(dialog) @@ -123,8 +134,8 @@ func do_add_to_user_library(name, node): data.library = "user://library/user.json" data.icon = name.right(name.rfind("/")+1).to_lower() $VBoxContainer/HBoxContainer/VBoxContainer/Library.add_item(data, name) - var graphedit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() - graphedit.export_texture(node, "user://library/user/"+data.icon+".png", 64) + var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() + graph_edit.export_texture(node, "user://library/user/"+data.icon+".png", 64) func save_user_library(): print("Saving user library") @@ -136,7 +147,9 @@ func quit(): func _on_PopupMenu_id_pressed(id): var node_type = null if MENU[id].has("command"): - call(MENU[id].command) + var command = MENU[id].command + if has_method(command): + call(command) # Preview @@ -147,18 +160,21 @@ func update_preview(): update_preview_2d() func update_preview_2d(node = null): - var graphedit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() + var graph_edit = $VBoxContainer/HBoxContainer/Projects.get_current_tab_control() var preview = $VBoxContainer/HBoxContainer/VBoxContainer/Preview if node == null: - for n in graphedit.get_children(): + for n in graph_edit.get_children(): if n is GraphNode and n.selected: node = n break if node != null: - graphedit.setup_material(preview.get_2d_material(), node.get_textures(), node.generate_shader()) + graph_edit.setup_material(preview.get_2d_material(), node.get_textures(), node.generate_shader()) func _on_Projects_tab_changed(tab): if tab != current_tab: + for c in get_incoming_connections(): + if c.method_name == "update_preview" or c.method_name == "update_preview_2d": + c.source.disconnect(c.signal_name, self, c.method_name) $VBoxContainer/HBoxContainer/Projects.get_current_tab_control().connect("graph_changed", self, "update_preview") $VBoxContainer/HBoxContainer/Projects.get_current_tab_control().connect("node_selected", self, "update_preview_2d") current_tab = tab diff --git a/addons/procedural_material/main_window.tscn b/addons/procedural_material/main_window.tscn index 73fd352..f3e47ee 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"] +[node name="MainWindow" type="Panel" index="0"] anchor_left = 0.0 anchor_top = 0.0 diff --git a/addons/procedural_material/node_base.gd b/addons/procedural_material/node_base.gd index 12fbdd8..a29c636 100644 --- a/addons/procedural_material/node_base.gd +++ b/addons/procedural_material/node_base.gd @@ -25,7 +25,9 @@ func _ready(): func initialize_properties(object_list): property_widgets = object_list for o in object_list: - if o is LineEdit: + if o == null: + print("error in node "+name) + elif o is LineEdit: set(o.name, float(o.text)) o.connect("text_changed", self, "_on_text_changed", [ o.name ]) elif o is SpinBox: diff --git a/addons/procedural_material/nodes/material.gd b/addons/procedural_material/nodes/material.gd index 2608c0b..9be1d0f 100644 --- a/addons/procedural_material/nodes/material.gd +++ b/addons/procedural_material/nodes/material.gd @@ -1,12 +1,21 @@ tool extends "res://addons/procedural_material/node_base.gd" -var texture_albedo = null -var texture_metallic = null -var texture_roughness = null -var texture_emission = null -var texture_normal_map = null -var texture_depth_map = null +var albedo_color +var metallic +var roughness +var emission_energy +var normal_scale +var ao_light_affect +var depth_scale + +var texture_albedo = null +var texture_metallic = null +var texture_roughness = null +var texture_emission = null +var texture_normal_map = null +var texture_ambient_occlusion = null +var texture_depth_map = null const TEXTURE_LIST = [ { port= 0, texture= "albedo" }, @@ -14,46 +23,51 @@ const TEXTURE_LIST = [ { port= 2, texture= "roughness" }, { port= 3, texture= "emission" }, { port= 4, texture= "normal_map" }, - { port= 5, texture= "depth_map" } + { port= 5, texture= "ambient_occlusion" }, + { port= 6, texture= "depth_map" } ] func _ready(): - pass + initialize_properties([ $Albedo/albedo_color, $Metallic/metallic, $Roughness/roughness, $Emission/emission_energy, $NormalMap/normal_scale, $AmbientOcclusion/ao_light_affect, $DepthMap/depth_scale ]) func _get_shader_code(uv): var rv = { defs="", code="", f="0.0" } var src = get_source() if src != null: rv = src.get_shader_code(uv) - rv.albedo = get_source_rgb(rv) - src = get_source(1) - if src != null: - var src_code = src.get_shader_code(uv) - rv.defs += src_code.defs - rv.code += src_code.code - rv.normal_map = get_source_rgb(src_code) return rv func _get_state_variables(): return [ ] func update_materials(material_list): + var has_textures = false for t in TEXTURE_LIST: var source = get_source(t.port) if source == null: set("texture_"+t.texture, null) else: get_parent().precalculate_texture(source, 1024, self, "store_texture", [ t.texture, material_list ]) + has_textures = true + if !has_textures: + do_update_materials(material_list) func store_texture(texture_name, material_list, texture): set("texture_"+texture_name, texture) + do_update_materials(material_list) + +func do_update_materials(material_list): for m in material_list: if m is SpatialMaterial: + m.albedo_color = albedo_color m.albedo_texture = texture_albedo + m.metallic = metallic m.metallic_texture = texture_metallic + m.roughness = roughness m.roughness_texture = texture_roughness if texture_emission != null: m.emission_enabled = true + m.emission_energy = emission_energy m.emission_texture = texture_emission else: m.emission_enabled = false @@ -62,8 +76,15 @@ func store_texture(texture_name, material_list, texture): m.normal_texture = texture_normal_map else: m.normal_enabled = false + if texture_ambient_occlusion != null: + m.ao_enabled = true + m.ao_light_affect = ao_light_affect + m.ao_texture = texture_ambient_occlusion + else: + m.ao_enabled = false if texture_depth_map != null: m.depth_enabled = true + m.depth_scale = depth_scale m.depth_texture = texture_depth_map else: m.depth_enabled = false diff --git a/addons/procedural_material/nodes/material.tscn b/addons/procedural_material/nodes/material.tscn index ecd1c2e..3bb0d4f 100644 --- a/addons/procedural_material/nodes/material.tscn +++ b/addons/procedural_material/nodes/material.tscn @@ -5,14 +5,14 @@ [sub_resource type="Theme" id=1] -[node name="Material" type="GraphNode"] +[node name="Material" type="GraphNode" index="0"] anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 -margin_right = 84.0 -margin_bottom = 43.0 +margin_right = 230.0 +margin_bottom = 199.0 rect_pivot_offset = Vector2( 0, 0 ) rect_clip_content = false mouse_filter = 1 @@ -63,133 +63,482 @@ slot/5/left_color = Color( 0.498039, 0.498039, 1, 1 ) slot/5/right_enabled = false slot/5/right_type = 0 slot/5/right_color = Color( 0.498039, 0.498039, 1, 1 ) +slot/6/left_enabled = true +slot/6/left_type = 0 +slot/6/left_color = Color( 0.494118, 0.494118, 1, 1 ) +slot/6/right_enabled = false +slot/6/right_type = 0 +slot/6/right_color = Color( 0.494118, 0.494118, 1, 1 ) script = ExtResource( 1 ) -_sections_unfolded = [ "Theme", "slot", "slot/2", "slot/3", "slot/4", "slot/5" ] +_sections_unfolded = [ "Theme", "slot" ] -[node name="Label1" type="Label" parent="." index="0"] +[node name="Albedo" type="HBoxContainer" parent="." index="0"] +editor/display_folded = true anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 margin_left = 16.0 margin_top = 24.0 -margin_right = 95.0 -margin_bottom = 38.0 +margin_right = 214.0 +margin_bottom = 44.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="Label" type="Label" parent="Albedo" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 3.0 +margin_right = 114.0 +margin_bottom = 17.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_horizontal = 3 size_flags_vertical = 4 text = "Albedo" percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +_sections_unfolded = [ "Size Flags" ] -[node name="Label2" type="Label" parent="." index="1"] +[node name="albedo_color" type="ColorPickerButton" parent="Albedo" index="1"] +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 118.0 +margin_right = 198.0 +margin_bottom = 20.0 +rect_min_size = Vector2( 80, 0 ) +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 +flat = false +align = 1 +color = Color( 1, 1, 1, 1 ) +edit_alpha = true +_sections_unfolded = [ "Rect", "Size Flags" ] + +[node name="Metallic" type="HBoxContainer" parent="." index="1"] + +editor/display_folded = true anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 margin_left = 16.0 -margin_top = 38.0 -margin_right = 95.0 -margin_bottom = 52.0 +margin_top = 44.0 +margin_right = 214.0 +margin_bottom = 68.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="Label" type="Label" parent="Metallic" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 5.0 +margin_right = 120.0 +margin_bottom = 19.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_horizontal = 3 size_flags_vertical = 4 text = "Metallic" percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +_sections_unfolded = [ "Size Flags" ] -[node name="Label3" type="Label" parent="." index="2"] +[node name="metallic" type="SpinBox" parent="Metallic" index="1"] +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 124.0 +margin_right = 198.0 +margin_bottom = 24.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 +min_value = 0.0 +max_value = 1.0 +step = 0.05 +page = 0.0 +value = 1.0 +exp_edit = false +rounded = false +editable = true +prefix = "" +suffix = "" +_sections_unfolded = [ "Rect" ] + +[node name="Roughness" type="HBoxContainer" parent="." index="2"] + +editor/display_folded = true anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 margin_left = 16.0 -margin_top = 53.0 -margin_right = 95.0 -margin_bottom = 67.0 +margin_top = 69.0 +margin_right = 214.0 +margin_bottom = 93.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="Label" type="Label" parent="Roughness" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 5.0 +margin_right = 120.0 +margin_bottom = 19.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_horizontal = 3 size_flags_vertical = 4 text = "Roughness" percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +_sections_unfolded = [ "Size Flags" ] -[node name="Label4" type="Label" parent="." index="3"] +[node name="roughness" type="SpinBox" parent="Roughness" index="1"] +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 124.0 +margin_right = 198.0 +margin_bottom = 24.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 +min_value = 0.0 +max_value = 1.0 +step = 0.05 +page = 0.0 +value = 1.0 +exp_edit = false +rounded = false +editable = true +prefix = "" +suffix = "" +_sections_unfolded = [ "Rect" ] + +[node name="Emission" type="HBoxContainer" parent="." index="3"] + +editor/display_folded = true anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 margin_left = 16.0 -margin_top = 68.0 -margin_right = 95.0 -margin_bottom = 82.0 +margin_top = 94.0 +margin_right = 214.0 +margin_bottom = 118.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="Label" type="Label" parent="Emission" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 5.0 +margin_right = 120.0 +margin_bottom = 19.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_horizontal = 3 size_flags_vertical = 4 text = "Emission" percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +_sections_unfolded = [ "Size Flags" ] -[node name="Label5" type="Label" parent="." index="4"] +[node name="emission_energy" type="SpinBox" parent="Emission" index="1"] +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 124.0 +margin_right = 198.0 +margin_bottom = 24.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 +min_value = 0.0 +max_value = 5.0 +step = 0.05 +page = 0.0 +value = 1.0 +exp_edit = false +rounded = false +editable = true +prefix = "" +suffix = "" +_sections_unfolded = [ "Rect" ] + +[node name="NormalMap" type="HBoxContainer" parent="." index="4"] + +editor/display_folded = true anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 margin_left = 16.0 -margin_top = 83.0 -margin_right = 95.0 -margin_bottom = 97.0 +margin_top = 119.0 +margin_right = 214.0 +margin_bottom = 143.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="Label" type="Label" parent="NormalMap" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 5.0 +margin_right = 120.0 +margin_bottom = 19.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_horizontal = 3 size_flags_vertical = 4 text = "Normal map" percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +_sections_unfolded = [ "Size Flags" ] -[node name="Label6" type="Label" parent="." index="5"] +[node name="normal_scale" type="SpinBox" parent="NormalMap" index="1"] +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 124.0 +margin_right = 198.0 +margin_bottom = 24.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 +min_value = 0.0 +max_value = 5.0 +step = 0.05 +page = 0.0 +value = 1.0 +exp_edit = false +rounded = false +editable = true +prefix = "" +suffix = "" +_sections_unfolded = [ "Rect" ] + +[node name="AmbientOcclusion" type="HBoxContainer" parent="." index="5"] + +editor/display_folded = true anchor_left = 0.0 anchor_top = 0.0 anchor_right = 0.0 anchor_bottom = 0.0 margin_left = 16.0 -margin_top = 98.0 -margin_right = 95.0 -margin_bottom = 112.0 +margin_top = 144.0 +margin_right = 214.0 +margin_bottom = 168.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="Label" type="Label" parent="AmbientOcclusion" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 5.0 +margin_right = 120.0 +margin_bottom = 19.0 rect_pivot_offset = Vector2( 0, 0 ) rect_clip_content = false mouse_filter = 2 mouse_default_cursor_shape = 0 +size_flags_horizontal = 3 +size_flags_vertical = 4 +text = "Ambient occlusion" +percent_visible = 1.0 +lines_skipped = 0 +max_lines_visible = -1 +_sections_unfolded = [ "Size Flags" ] + +[node name="ao_light_affect" type="SpinBox" parent="AmbientOcclusion" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 124.0 +margin_right = 198.0 +margin_bottom = 24.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 +min_value = 0.0 +max_value = 5.0 +step = 0.05 +page = 0.0 +value = 1.0 +exp_edit = false +rounded = false +editable = true +prefix = "" +suffix = "" +_sections_unfolded = [ "Rect" ] + +[node name="DepthMap" type="HBoxContainer" parent="." index="6"] + +editor/display_folded = true +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 16.0 +margin_top = 169.0 +margin_right = 214.0 +margin_bottom = 193.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="Label" type="Label" parent="DepthMap" index="0"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_top = 5.0 +margin_right = 120.0 +margin_bottom = 19.0 +rect_pivot_offset = Vector2( 0, 0 ) +rect_clip_content = false +mouse_filter = 2 +mouse_default_cursor_shape = 0 +size_flags_horizontal = 3 size_flags_vertical = 4 text = "Depth map" percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 +_sections_unfolded = [ "Size Flags" ] + +[node name="depth_scale" type="SpinBox" parent="DepthMap" index="1"] + +anchor_left = 0.0 +anchor_top = 0.0 +anchor_right = 0.0 +anchor_bottom = 0.0 +margin_left = 124.0 +margin_right = 198.0 +margin_bottom = 24.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 +min_value = 0.0 +max_value = 5.0 +step = 0.05 +page = 0.0 +value = 1.0 +exp_edit = false +rounded = false +editable = true +prefix = "" +suffix = "" +_sections_unfolded = [ "Rect" ] diff --git a/addons/procedural_material/preview.gd b/addons/procedural_material/preview.gd index a8a3ffc..85712f4 100644 --- a/addons/procedural_material/preview.gd +++ b/addons/procedural_material/preview.gd @@ -25,7 +25,7 @@ func _on_Model_item_selected(id): c.visible = (c.get_name() == model) func get_materials(): - return [ $MaterialPreview/Objects/Cube.get_surface_material(0) ] + return [ $MaterialPreview/Objects/Cube.get_surface_material(0), $MaterialPreview/Objects/Sphere.get_surface_material(0) ] func get_2d_material(): return $Preview2D.material diff --git a/addons/procedural_material/preview.tscn b/addons/procedural_material/preview.tscn index 87df1a4..465babf 100644 --- a/addons/procedural_material/preview.tscn +++ b/addons/procedural_material/preview.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://addons/procedural_material/preview.gd" type="Script" id=1] [ext_resource path="res://addons/procedural_material/panoramas/park.hdr" type="Texture" id=2] @@ -73,10 +73,15 @@ normal_enabled = false rim_enabled = false clearcoat_enabled = false anisotropy_enabled = false -ao_enabled = false +ao_enabled = true +ao_light_affect = 0.0 +ao_on_uv2 = false +ao_texture_channel = 0 depth_enabled = true -depth_scale = 0.05 -depth_deep_parallax = false +depth_scale = 0.5 +depth_deep_parallax = true +depth_min_layers = 8 +depth_max_layers = 32 subsurf_scatter_enabled = false transmission_enabled = false refraction_enabled = false @@ -91,7 +96,7 @@ uv2_triplanar = false uv2_triplanar_sharpness = 1.0 proximity_fade_enable = false distance_fade_enable = false -_sections_unfolded = [ "Depth", "Metallic" ] +_sections_unfolded = [ "Ambient Occlusion", "Depth" ] [sub_resource type="ArrayMesh" id=4] @@ -110,15 +115,83 @@ surfaces/0 = { } _sections_unfolded = [ "surface_1" ] -[sub_resource type="PanoramaSky" id=5] +[sub_resource type="SphereMesh" id=5] + +custom_aabb = AABB( 0, 0, 0, 0, 0, 0 ) +radius = 1.5 +height = 3.0 +radial_segments = 64 +rings = 32 +is_hemisphere = false + +[sub_resource type="SpatialMaterial" id=6] + +render_priority = 0 +flags_transparent = false +flags_unshaded = false +flags_vertex_lighting = false +flags_no_depth_test = false +flags_use_point_size = false +flags_world_triplanar = false +flags_fixed_size = false +flags_albedo_tex_force_srgb = false +vertex_color_use_as_albedo = false +vertex_color_is_srgb = false +params_diffuse_mode = 0 +params_specular_mode = 0 +params_blend_mode = 0 +params_cull_mode = 0 +params_depth_draw_mode = 0 +params_line_width = 1.0 +params_point_size = 1.0 +params_billboard_mode = 0 +params_grow = false +params_use_alpha_scissor = false +albedo_color = Color( 1, 1, 1, 1 ) +metallic = 1.0 +metallic_specular = 1.0 +metallic_texture_channel = 0 +roughness = 1.0 +roughness_texture_channel = 0 +emission_enabled = false +normal_enabled = false +rim_enabled = false +clearcoat_enabled = false +anisotropy_enabled = false +ao_enabled = true +ao_light_affect = 0.0 +ao_on_uv2 = false +ao_texture_channel = 0 +depth_enabled = true +depth_scale = 0.5 +depth_deep_parallax = true +depth_min_layers = 8 +depth_max_layers = 32 +subsurf_scatter_enabled = false +transmission_enabled = false +refraction_enabled = false +detail_enabled = false +uv1_scale = Vector3( -5, -5, 5 ) +uv1_offset = Vector3( 0, 0, 0 ) +uv1_triplanar = false +uv1_triplanar_sharpness = 1.0 +uv2_scale = Vector3( 1, 1, 1 ) +uv2_offset = Vector3( 0, 0, 0 ) +uv2_triplanar = false +uv2_triplanar_sharpness = 1.0 +proximity_fade_enable = false +distance_fade_enable = false +_sections_unfolded = [ "Ambient Occlusion", "Depth", "UV1" ] + +[sub_resource type="PanoramaSky" id=7] radiance_size = 2 panorama = ExtResource( 2 ) -[sub_resource type="Environment" id=6] +[sub_resource type="Environment" id=8] background_mode = 2 -background_sky = SubResource( 5 ) +background_sky = SubResource( 7 ) background_sky_custom_fov = 0.0 background_color = Color( 0, 0, 0, 1 ) background_energy = 1.0 @@ -195,15 +268,15 @@ adjustment_contrast = 1.0 adjustment_saturation = 1.0 _sections_unfolded = [ "Background" ] -[sub_resource type="Shader" id=7] +[sub_resource type="Shader" id=9] code = "shader_type canvas_item; " -[sub_resource type="ShaderMaterial" id=8] +[sub_resource type="ShaderMaterial" id=10] render_priority = 0 -shader = SubResource( 7 ) +shader = SubResource( 9 ) [node name="Preview" type="ViewportContainer"] @@ -267,7 +340,7 @@ _sections_unfolded = [ "GUI", "Render Target" ] [node name="Objects" type="Spatial" parent="MaterialPreview" index="0"] -transform = Transform( -0.376032, 0, -0.926603, 0, 1, 0, 0.926603, 0, -0.376032, 0, 0, 0 ) +transform = Transform( -0.407451, 0, -0.913223, 0, 1, 0, 0.913223, 0, -0.407451, 0, 0, 0 ) _sections_unfolded = [ "Transform" ] [node name="Cube" type="MeshInstance" parent="MaterialPreview/Objects" index="0"] @@ -303,6 +376,23 @@ skeleton = NodePath("..") material/0 = SubResource( 3 ) _sections_unfolded = [ "Geometry", "Transform", "material" ] +[node name="Sphere" type="MeshInstance" parent="MaterialPreview/Objects" index="2"] + +visible = false +layers = 1 +material_override = null +cast_shadow = 1 +extra_cull_margin = 0.0 +use_in_baked_light = false +lod_min_distance = 0.0 +lod_min_hysteresis = 0.0 +lod_max_distance = 0.0 +lod_max_hysteresis = 0.0 +mesh = SubResource( 5 ) +skeleton = NodePath("..") +material/0 = SubResource( 6 ) +_sections_unfolded = [ "Geometry", "Transform", "material" ] + [node name="OmniLight" type="OmniLight" parent="MaterialPreview" index="1"] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.04729, 1.80471, -2.51024 ) @@ -331,7 +421,7 @@ _sections_unfolded = [ "Shadow" ] transform = Transform( 1, 0, 0, 0, 0.766044, 0.642787, 0, -0.642787, 0.766044, 0, 1.83022, 2.2549 ) keep_aspect = 1 cull_mask = 1048575 -environment = SubResource( 6 ) +environment = SubResource( 8 ) h_offset = 0.0 v_offset = 0.0 doppler_tracking = 0 @@ -345,11 +435,10 @@ _sections_unfolded = [ "Transform" ] [node name="WorldEnvironment" type="WorldEnvironment" parent="MaterialPreview" index="3"] -environment = SubResource( 6 ) +environment = SubResource( 8 ) [node name="Config" type="HBoxContainer" parent="." index="2"] -editor/display_folded = true anchor_left = 0.0 anchor_top = 0.0 anchor_right = 1.0 @@ -387,7 +476,7 @@ group = null text = "Cube" flat = false align = 0 -items = [ "Cube", null, false, 0, null, "Cylinder", null, false, 1, null ] +items = [ "Cube", null, false, 0, null, "Cylinder", null, false, 1, null, "Sphere", null, false, 2, null ] selected = 0 _sections_unfolded = [ "Margin", "Rect" ] @@ -422,7 +511,7 @@ _sections_unfolded = [ "Rect" ] [node name="Preview2D" type="ColorRect" parent="." index="3"] -material = SubResource( 8 ) +material = SubResource( 10 ) anchor_left = 0.0 anchor_top = 1.0 anchor_right = 0.0 diff --git a/examples/bricks.ptex b/examples/bricks.ptex index c6ff8f9..d9f6643 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":"colorize_3","from_port":0,"to":"Material","to_port":5},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1}],"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.345455,"r":0.3125},{"b":0,"g":0.19869,"pos":0.545455,"r":0.669271},{"b":0.019368,"g":0.060224,"pos":0.736364,"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"},{"name":"Material","node_position":{"x":1081,"y":208},"type":"material"},{"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"},{"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"},{"gradient":[{"b":0.289063,"g":0.289063,"pos":0,"r":0.289063},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_3","node_position":{"x":774,"y":400},"type":"colorize"},{"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"}]} \ 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.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 diff --git a/examples/crocodile_skin.ptex b/examples/crocodile_skin.ptex index 3606cad..55d81fc 100644 --- a/examples/crocodile_skin.ptex +++ b/examples/crocodile_skin.ptex @@ -1 +1 @@ -{"connections":[{"from":"voronoi_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"voronoi_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_1","from_port":0,"to":"Material","to_port":0},{"from":"voronoi_0","from_port":0,"to":"colorize_3","to_port":0},{"from":"colorize_3","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":674,"y":164},"type":"material"},{"gradient":[{"b":0.010715,"g":0.411458,"pos":0,"r":0.22361},{"b":0,"g":1,"pos":1,"r":0.9375}],"name":"colorize_1","node_position":{"x":384,"y":137},"type":"colorize"},{"gradient":[{"b":0.505208,"g":0.505208,"pos":0,"r":0.505208},{"b":0.78125,"g":0.78125,"pos":1,"r":0.78125}],"name":"colorize_3","node_position":{"x":384,"y":258},"type":"colorize"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":413,"y":208},"type":"uniform"},{"intensity":0.4,"name":"voronoi_0","node_position":{"x":71,"y":216},"scale_x":16,"scale_y":16,"type":"voronoi"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.5,"g":0.5,"pos":0.345455,"r":0.5},{"b":1,"g":1,"pos":0.618182,"r":1}],"name":"colorize_0","node_position":{"x":300,"y":330},"type":"colorize"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":479,"y":334},"type":"normal_map"}]} \ No newline at end of file +{"connections":[{"from":"voronoi_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"voronoi_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_1","from_port":0,"to":"Material","to_port":0},{"from":"voronoi_0","from_port":0,"to":"colorize_3","to_port":0},{"from":"colorize_3","from_port":0,"to":"Material","to_port":2},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1}],"nodes":[{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":674,"y":164},"roughness":1,"type":"material"},{"gradient":[{"b":0.010715,"g":0.411458,"pos":0,"r":0.22361},{"b":0,"g":1,"pos":1,"r":0.9375}],"name":"colorize_1","node_position":{"x":384,"y":137},"type":"colorize"},{"gradient":[{"b":0.505208,"g":0.505208,"pos":0,"r":0.505208},{"b":0.78125,"g":0.78125,"pos":1,"r":0.78125}],"name":"colorize_3","node_position":{"x":384,"y":258},"type":"colorize"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":413,"y":208},"type":"uniform"},{"intensity":0.4,"name":"voronoi_0","node_position":{"x":71,"y":216},"scale_x":16,"scale_y":16,"type":"voronoi"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.5,"g":0.5,"pos":0.345455,"r":0.5},{"b":1,"g":1,"pos":0.618182,"r":1}],"name":"colorize_0","node_position":{"x":300,"y":330},"type":"colorize"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":479,"y":334},"type":"normal_map"}]} \ No newline at end of file diff --git a/examples/dry_earth.ptex b/examples/dry_earth.ptex index 4f2de30..7354ea9 100644 --- a/examples/dry_earth.ptex +++ b/examples/dry_earth.ptex @@ -1 +1 @@ -{"connections":[{"from":"perlin_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"voronoi_0","from_port":1,"to":"colorize_1","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":"colorize_1","from_port":0,"to":"warp_0","to_port":0},{"from":"perlin_1","from_port":0,"to":"warp_0","to_port":1},{"from":"warp_0","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_3","from_port":0,"to":"Material","to_port":1},{"from":"perlin_1","from_port":0,"to":"colorize_3","to_port":0},{"from":"warp_0","from_port":0,"to":"colorize_4","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_4","from_port":0,"to":"blend_1","to_port":1},{"from":"blend_1","from_port":0,"to":"normal_map_0","to_port":0},{"from":"perlin_0","from_port":0,"to":"blend_1","to_port":0},{"from":"uniform_0","from_port":0,"to":"Material","to_port":2}],"nodes":[{"intensity":0.6,"name":"voronoi_0","node_position":{"x":-165,"y":-96.75},"scale_x":4,"scale_y":4,"type":"voronoi"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":0.072727,"r":1}],"name":"colorize_1","node_position":{"x":93,"y":-117.75},"type":"colorize"},{"iterations":3,"name":"perlin_1","node_position":{"x":-144,"y":50.25},"persistence":0.5,"scale_x":4,"scale_y":4,"type":"perlin"},{"gradient":[{"b":0.200277,"g":0.378784,"pos":0.245455,"r":0.557292},{"b":0.03776,"g":0.150513,"pos":0.654545,"r":0.25}],"name":"colorize_0","node_position":{"x":338,"y":-237.75},"type":"colorize"},{"iterations":10,"name":"perlin_0","node_position":{"x":56,"y":-361.75},"persistence":0.9,"scale_x":2,"scale_y":2,"type":"perlin"},{"name":"Material","node_position":{"x":786,"y":53},"type":"material"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.171875,"g":0.171875,"pos":1,"r":0.171875}],"name":"colorize_3","node_position":{"x":465,"y":33.25},"type":"colorize"},{"amount":0.4,"blend_type":2,"name":"blend_0","node_position":{"x":541,"y":-82.75},"type":"blend"},{"amount":0.4,"name":"warp_0","node_position":{"x":264,"y":-13.75},"type":"warp"},{"color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"name":"uniform_0","node_position":{"x":490,"y":110},"type":"uniform"},{"amount":0.5,"blend_type":0,"name":"blend_1","node_position":{"x":458,"y":173.25},"type":"blend"},{"amount":0.35,"name":"normal_map_0","node_position":{"x":639,"y":147.25},"type":"normal_map"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_4","node_position":{"x":252,"y":178.25},"type":"colorize"}]} \ No newline at end of file +{"connections":[{"from":"perlin_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"voronoi_0","from_port":1,"to":"colorize_1","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":"colorize_1","from_port":0,"to":"warp_0","to_port":0},{"from":"perlin_1","from_port":0,"to":"warp_0","to_port":1},{"from":"warp_0","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_3","from_port":0,"to":"Material","to_port":1},{"from":"perlin_1","from_port":0,"to":"colorize_3","to_port":0},{"from":"warp_0","from_port":0,"to":"colorize_4","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_4","from_port":0,"to":"blend_1","to_port":1},{"from":"blend_1","from_port":0,"to":"normal_map_0","to_port":0},{"from":"perlin_0","from_port":0,"to":"blend_1","to_port":0}],"nodes":[{"intensity":0.6,"name":"voronoi_0","node_position":{"x":-165,"y":-96.75},"scale_x":4,"scale_y":4,"type":"voronoi"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":0.063636,"r":1}],"name":"colorize_1","node_position":{"x":93,"y":-117.75},"type":"colorize"},{"iterations":3,"name":"perlin_1","node_position":{"x":-144,"y":50.25},"persistence":0.5,"scale_x":4,"scale_y":4,"type":"perlin"},{"gradient":[{"b":0.200277,"g":0.378784,"pos":0.245455,"r":0.557292},{"b":0.03776,"g":0.150513,"pos":0.645455,"r":0.25}],"name":"colorize_0","node_position":{"x":338,"y":-237.75},"type":"colorize"},{"iterations":10,"name":"perlin_0","node_position":{"x":56,"y":-361.75},"persistence":0.9,"scale_x":2,"scale_y":2,"type":"perlin"},{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":786,"y":53},"roughness":1,"type":"material"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.520833,"g":0.520833,"pos":1,"r":0.520833}],"name":"colorize_3","node_position":{"x":465,"y":33.25},"type":"colorize"},{"amount":0.4,"blend_type":2,"name":"blend_0","node_position":{"x":541,"y":-82.75},"type":"blend"},{"amount":0.4,"name":"warp_0","node_position":{"x":264,"y":-13.75},"type":"warp"},{"amount":0.5,"blend_type":0,"name":"blend_1","node_position":{"x":458,"y":173.25},"type":"blend"},{"amount":0.35,"name":"normal_map_0","node_position":{"x":639,"y":147.25},"type":"normal_map"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_4","node_position":{"x":252,"y":178.25},"type":"colorize"}]} \ No newline at end of file diff --git a/examples/floor1.ptex b/examples/floor1.ptex index eeae806..fb9f695 100644 --- a/examples/floor1.ptex +++ b/examples/floor1.ptex @@ -1 +1 @@ -{"connections":[{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"pattern_0","from_port":0,"to":"transform_0","to_port":0},{"from":"transform_0","from_port":0,"to":"transform_1","to_port":0},{"from":"transform_0","from_port":0,"to":"blend_0","to_port":0},{"from":"transform_1","from_port":0,"to":"blend_0","to_port":1},{"from":"blend_0","from_port":0,"to":"transform_2","to_port":0},{"from":"transform_2","from_port":0,"to":"colorize_2","to_port":0},{"from":"bricks_0","from_port":0,"to":"blend_1","to_port":0},{"from":"colorize_2","from_port":0,"to":"blend_1","to_port":1},{"from":"blend_1","from_port":0,"to":"blend_2","to_port":0},{"from":"transform_2","from_port":0,"to":"colorize_3","to_port":0},{"from":"colorize_3","from_port":0,"to":"blend_2","to_port":1},{"from":"perlin_1","from_port":0,"to":"colorize_5","to_port":0},{"from":"perlin_1","from_port":0,"to":"colorize_6","to_port":0},{"from":"colorize_5","from_port":0,"to":"blend_3","to_port":0},{"from":"colorize_6","from_port":0,"to":"blend_3","to_port":1},{"from":"blend_1","from_port":0,"to":"blend_3","to_port":2},{"from":"blend_2","from_port":0,"to":"blend_4","to_port":1},{"from":"perlin_1","from_port":0,"to":"blend_4","to_port":0},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1},{"from":"uniform_1","from_port":0,"to":"Material","to_port":2},{"from":"blend_4","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"perlin_1","from_port":0,"to":"colorize_1","to_port":0},{"from":"blend_5","from_port":0,"to":"Material","to_port":0},{"from":"colorize_3","from_port":0,"to":"blend_5","to_port":2},{"from":"blend_3","from_port":0,"to":"blend_5","to_port":1},{"from":"colorize_1","from_port":0,"to":"blend_5","to_port":0}],"nodes":[{"name":"Material","node_position":{"x":916,"y":424},"type":"material"},{"mix":0,"name":"pattern_0","node_position":{"x":-358,"y":630},"type":"pattern","x_scale":1,"x_wave":0,"y_scale":1,"y_wave":0},{"name":"transform_0","node_position":{"x":-349,"y":730},"repeat":false,"rotate":0,"scale_x":0.5,"scale_y":1,"translate_x":0,"translate_y":0,"type":"transform"},{"name":"transform_1","node_position":{"x":-147,"y":781},"repeat":true,"rotate":90,"scale_x":1,"scale_y":1,"translate_x":0,"translate_y":0,"type":"transform"},{"amount":1,"blend_type":9,"name":"blend_0","node_position":{"x":-127,"y":673},"type":"blend"},{"name":"transform_2","node_position":{"x":49,"y":634},"repeat":true,"rotate":0,"scale_x":0.5,"scale_y":0.5,"translate_x":0,"translate_y":0,"type":"transform"},{"bevel":0.05,"columns":6,"mortar":0.05,"name":"bricks_0","node_position":{"x":-146,"y":455},"row_offset":0,"rows":6,"type":"bricks"},{"gradient":[{"b":1,"g":1,"pos":0.5,"r":1},{"b":0,"g":0,"pos":0.6,"r":0}],"name":"colorize_2","node_position":{"x":63,"y":549},"type":"colorize"},{"iterations":7,"name":"perlin_1","node_position":{"x":-146,"y":108},"persistence":0.95,"scale_x":4,"scale_y":4,"type":"perlin"},{"amount":0.65,"name":"normal_map_0","node_position":{"x":706,"y":533},"type":"normal_map"},{"color":{"a":1,"b":0.554688,"g":0.554688,"r":0.554688,"type":"Color"},"name":"uniform_1","node_position":{"x":727.308594,"y":472},"type":"uniform"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_0","node_position":{"x":630.308655,"y":598},"type":"colorize"},{"gradient":[{"b":0,"g":0.071615,"pos":0,"r":0.208333},{"b":0,"g":0.42041,"pos":0.936364,"r":0.640625}],"name":"colorize_5","node_position":{"x":95,"y":85},"type":"colorize"},{"gradient":[{"b":0.583333,"g":0.583333,"pos":0,"r":0.583333},{"b":0.244792,"g":0.244792,"pos":1,"r":0.244792}],"name":"colorize_6","node_position":{"x":95,"y":159},"type":"colorize"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0.78125},{"b":0,"g":0,"pos":1,"r":0.25}],"name":"colorize_1","node_position":{"x":101.308655,"y":249},"type":"colorize"},{"amount":1,"blend_type":9,"name":"blend_2","node_position":{"x":294,"y":514},"type":"blend"},{"amount":1,"blend_type":10,"name":"blend_1","node_position":{"x":115,"y":425},"type":"blend"},{"gradient":[{"b":0,"g":0,"pos":0.609091,"r":0},{"b":1,"g":1,"pos":0.672727,"r":1}],"name":"colorize_3","node_position":{"x":280,"y":637},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_3","node_position":{"x":294.308655,"y":144},"type":"blend"},{"amount":0.5,"blend_type":0,"name":"blend_5","node_position":{"x":490.308655,"y":309},"type":"blend"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":700.308594,"y":404},"type":"uniform"},{"amount":0.5,"blend_type":0,"name":"blend_4","node_position":{"x":489.308655,"y":477},"type":"blend"}]} \ No newline at end of file +{"connections":[{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"pattern_0","from_port":0,"to":"transform_0","to_port":0},{"from":"transform_0","from_port":0,"to":"transform_1","to_port":0},{"from":"transform_0","from_port":0,"to":"blend_0","to_port":0},{"from":"transform_1","from_port":0,"to":"blend_0","to_port":1},{"from":"blend_0","from_port":0,"to":"transform_2","to_port":0},{"from":"transform_2","from_port":0,"to":"colorize_2","to_port":0},{"from":"bricks_0","from_port":0,"to":"blend_1","to_port":0},{"from":"colorize_2","from_port":0,"to":"blend_1","to_port":1},{"from":"blend_1","from_port":0,"to":"blend_2","to_port":0},{"from":"transform_2","from_port":0,"to":"colorize_3","to_port":0},{"from":"colorize_3","from_port":0,"to":"blend_2","to_port":1},{"from":"perlin_1","from_port":0,"to":"colorize_5","to_port":0},{"from":"perlin_1","from_port":0,"to":"colorize_6","to_port":0},{"from":"colorize_5","from_port":0,"to":"blend_3","to_port":0},{"from":"colorize_6","from_port":0,"to":"blend_3","to_port":1},{"from":"blend_1","from_port":0,"to":"blend_3","to_port":2},{"from":"blend_2","from_port":0,"to":"blend_4","to_port":1},{"from":"perlin_1","from_port":0,"to":"blend_4","to_port":0},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1},{"from":"uniform_1","from_port":0,"to":"Material","to_port":2},{"from":"blend_4","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"perlin_1","from_port":0,"to":"colorize_1","to_port":0},{"from":"blend_5","from_port":0,"to":"Material","to_port":0},{"from":"colorize_3","from_port":0,"to":"blend_5","to_port":2},{"from":"blend_3","from_port":0,"to":"blend_5","to_port":1},{"from":"colorize_1","from_port":0,"to":"blend_5","to_port":0}],"nodes":[{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":916,"y":424},"roughness":1,"type":"material"},{"mix":0,"name":"pattern_0","node_position":{"x":-358,"y":630},"type":"pattern","x_scale":1,"x_wave":0,"y_scale":1,"y_wave":0},{"name":"transform_0","node_position":{"x":-349,"y":730},"repeat":false,"rotate":0,"scale_x":0.5,"scale_y":1,"translate_x":0,"translate_y":0,"type":"transform"},{"name":"transform_1","node_position":{"x":-147,"y":781},"repeat":true,"rotate":90,"scale_x":1,"scale_y":1,"translate_x":0,"translate_y":0,"type":"transform"},{"amount":1,"blend_type":9,"name":"blend_0","node_position":{"x":-127,"y":673},"type":"blend"},{"name":"transform_2","node_position":{"x":49,"y":634},"repeat":true,"rotate":0,"scale_x":0.5,"scale_y":0.5,"translate_x":0,"translate_y":0,"type":"transform"},{"bevel":0.05,"columns":6,"mortar":0.05,"name":"bricks_0","node_position":{"x":-146,"y":455},"row_offset":0,"rows":6,"type":"bricks"},{"gradient":[{"b":1,"g":1,"pos":0.5,"r":1},{"b":0,"g":0,"pos":0.6,"r":0}],"name":"colorize_2","node_position":{"x":63,"y":549},"type":"colorize"},{"iterations":7,"name":"perlin_1","node_position":{"x":-146,"y":108},"persistence":0.95,"scale_x":4,"scale_y":4,"type":"perlin"},{"amount":0.65,"name":"normal_map_0","node_position":{"x":706,"y":533},"type":"normal_map"},{"color":{"a":1,"b":0.554688,"g":0.554688,"r":0.554688,"type":"Color"},"name":"uniform_1","node_position":{"x":727.308594,"y":472},"type":"uniform"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_0","node_position":{"x":630.308655,"y":598},"type":"colorize"},{"gradient":[{"b":0,"g":0.071615,"pos":0,"r":0.208333},{"b":0,"g":0.42041,"pos":0.936364,"r":0.640625}],"name":"colorize_5","node_position":{"x":95,"y":85},"type":"colorize"},{"gradient":[{"b":0.583333,"g":0.583333,"pos":0,"r":0.583333},{"b":0.244792,"g":0.244792,"pos":1,"r":0.244792}],"name":"colorize_6","node_position":{"x":95,"y":159},"type":"colorize"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0.78125},{"b":0,"g":0,"pos":1,"r":0.25}],"name":"colorize_1","node_position":{"x":101.308655,"y":249},"type":"colorize"},{"amount":1,"blend_type":9,"name":"blend_2","node_position":{"x":294,"y":514},"type":"blend"},{"amount":1,"blend_type":10,"name":"blend_1","node_position":{"x":115,"y":425},"type":"blend"},{"gradient":[{"b":0,"g":0,"pos":0.609091,"r":0},{"b":1,"g":1,"pos":0.663636,"r":1}],"name":"colorize_3","node_position":{"x":280,"y":637},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_3","node_position":{"x":294.308655,"y":144},"type":"blend"},{"amount":0.5,"blend_type":0,"name":"blend_5","node_position":{"x":490.308655,"y":309},"type":"blend"},{"color":{"a":1,"b":0,"g":0,"r":0,"type":"Color"},"name":"uniform_0","node_position":{"x":700.308594,"y":404},"type":"uniform"},{"amount":0.5,"blend_type":0,"name":"blend_4","node_position":{"x":489.308655,"y":477},"type":"blend"}]} \ No newline at end of file diff --git a/examples/floor2.ptex b/examples/floor2.ptex index 2cfce59..5f3e2ab 100644 --- a/examples/floor2.ptex +++ b/examples/floor2.ptex @@ -1 +1 @@ -{"connections":[{"from":"perlin_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":1},{"from":"bricks_0","from_port":0,"to":"blend_0","to_port":0},{"from":"blend_0","from_port":0,"to":"Material","to_port":0},{"from":"bricks_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_1","from_port":0,"to":"Material","to_port":2},{"from":"blend_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1}],"nodes":[{"name":"Material","node_position":{"x":773,"y":290},"type":"material"},{"iterations":7,"name":"perlin_0","node_position":{"x":7,"y":263},"persistence":0.85,"scale_x":8,"scale_y":8,"type":"perlin"},{"bevel":0.01,"columns":4,"mortar":0.01,"name":"bricks_0","node_position":{"x":242,"y":382},"row_offset":0,"rows":4,"type":"bricks"},{"amount":0.2,"name":"normal_map_0","node_position":{"x":516,"y":466},"type":"normal_map"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0.484375,"g":0.484375,"pos":1,"r":0.484375}],"name":"colorize_1","node_position":{"x":510,"y":386},"type":"colorize"},{"gradient":[{"b":0.588542,"g":0.742839,"pos":0,"r":1},{"b":1,"g":1,"pos":0.663636,"r":1}],"name":"colorize_0","node_position":{"x":232,"y":286},"type":"colorize"},{"amount":1,"blend_type":2,"name":"blend_0","node_position":{"x":419,"y":186},"type":"blend"},{"color":{"a":1,"b":0.128906,"g":0.128906,"r":0.128906,"type":"Color"},"name":"uniform_0","node_position":{"x":563,"y":314},"type":"uniform"}]} \ No newline at end of file +{"connections":[{"from":"perlin_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":1},{"from":"bricks_0","from_port":0,"to":"blend_0","to_port":0},{"from":"blend_0","from_port":0,"to":"Material","to_port":0},{"from":"bricks_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_1","from_port":0,"to":"Material","to_port":2},{"from":"blend_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"uniform_0","from_port":0,"to":"Material","to_port":1}],"nodes":[{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":773,"y":290},"roughness":1,"type":"material"},{"iterations":7,"name":"perlin_0","node_position":{"x":7,"y":263},"persistence":0.85,"scale_x":8,"scale_y":8,"type":"perlin"},{"bevel":0.01,"columns":4,"mortar":0.01,"name":"bricks_0","node_position":{"x":242,"y":382},"row_offset":0,"rows":4,"type":"bricks"},{"amount":0.2,"name":"normal_map_0","node_position":{"x":516,"y":466},"type":"normal_map"},{"gradient":[{"b":1,"g":1,"pos":0,"r":1},{"b":0.484375,"g":0.484375,"pos":1,"r":0.484375}],"name":"colorize_1","node_position":{"x":510,"y":386},"type":"colorize"},{"gradient":[{"b":0.588542,"g":0.742839,"pos":0,"r":1},{"b":1,"g":1,"pos":0.654545,"r":1}],"name":"colorize_0","node_position":{"x":232,"y":286},"type":"colorize"},{"amount":1,"blend_type":2,"name":"blend_0","node_position":{"x":419,"y":186},"type":"blend"},{"color":{"a":1,"b":0.128906,"g":0.128906,"r":0.128906,"type":"Color"},"name":"uniform_0","node_position":{"x":563,"y":314},"type":"uniform"}]} \ No newline at end of file diff --git a/examples/grass_with_flowers.ptex b/examples/grass_with_flowers.ptex index 67aabaf..39443fa 100644 --- a/examples/grass_with_flowers.ptex +++ b/examples/grass_with_flowers.ptex @@ -1 +1 @@ -{"connections":[{"from":"perlin_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"voronoi_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_1","from_port":0,"to":"blend_0","to_port":2},{"from":"perlin_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_3","from_port":0,"to":"Material","to_port":1},{"from":"colorize_1","from_port":0,"to":"colorize_3","to_port":0},{"from":"colorize_3","from_port":0,"to":"Material","to_port":2},{"from":"voronoi_0","from_port":2,"to":"blend_0","to_port":1},{"from":"voronoi_0","from_port":0,"to":"colorize_2","to_port":0},{"from":"blend_0","from_port":0,"to":"blend_1","to_port":0},{"from":"blend_1","from_port":0,"to":"Material","to_port":0},{"from":"colorize_2","from_port":0,"to":"blend_1","to_port":2},{"from":"uniform_0","from_port":0,"to":"blend_1","to_port":1}],"nodes":[{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_3","node_position":{"x":655,"y":93.25},"type":"colorize"},{"gradient":[{"b":0.15682,"g":0.734375,"pos":0.445455,"r":0.247062},{"b":0.112522,"g":0.317708,"pos":0.872727,"r":0.144582}],"name":"colorize_0","node_position":{"x":335,"y":-261.75},"type":"colorize"},{"iterations":9,"name":"perlin_0","node_position":{"x":-25,"y":-27.75},"persistence":0.8,"scale_x":6,"scale_y":6,"type":"perlin"},{"intensity":1,"name":"voronoi_0","node_position":{"x":269,"y":-104.75},"scale_x":14,"scale_y":14,"type":"voronoi"},{"name":"Material","node_position":{"x":996,"y":22},"type":"material"},{"amount":0.8,"name":"normal_map_0","node_position":{"x":494,"y":258.25},"type":"normal_map"},{"gradient":[{"b":0,"g":0,"pos":0.254545,"r":0},{"b":1,"g":1,"pos":0.436364,"r":1}],"name":"colorize_1","node_position":{"x":524,"y":-26.75},"type":"colorize"},{"gradient":[{"b":0,"g":0,"pos":0.118182,"r":0},{"b":1,"g":1,"pos":0.181818,"r":1}],"name":"colorize_2","node_position":{"x":413,"y":71.25},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":643,"y":-244.75},"type":"blend"},{"amount":0.5,"blend_type":0,"name":"blend_1","node_position":{"x":826,"y":-119.75},"type":"blend"},{"color":{"a":1,"b":0,"g":0.984375,"r":1,"type":"Color"},"name":"uniform_0","node_position":{"x":690,"y":-104},"type":"uniform"}]} \ No newline at end of file +{"connections":[{"from":"perlin_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"voronoi_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_1","from_port":0,"to":"blend_0","to_port":2},{"from":"perlin_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"voronoi_0","from_port":2,"to":"blend_0","to_port":1},{"from":"voronoi_0","from_port":0,"to":"colorize_2","to_port":0},{"from":"blend_0","from_port":0,"to":"blend_1","to_port":0},{"from":"blend_1","from_port":0,"to":"Material","to_port":0},{"from":"colorize_2","from_port":0,"to":"blend_1","to_port":2},{"from":"uniform_0","from_port":0,"to":"blend_1","to_port":1},{"from":"colorize_1","from_port":0,"to":"Material","to_port":2}],"nodes":[{"gradient":[{"b":0.15682,"g":0.734375,"pos":0.445455,"r":0.247062},{"b":0.112522,"g":0.317708,"pos":0.863636,"r":0.144582}],"name":"colorize_0","node_position":{"x":335,"y":-261.75},"type":"colorize"},{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"emission_energy":0,"metallic":0,"name":"Material","node_position":{"x":996,"y":22},"roughness":1,"type":"material"},{"amount":0.8,"name":"normal_map_0","node_position":{"x":494,"y":258.25},"type":"normal_map"},{"gradient":[{"b":0,"g":0,"pos":0.245455,"r":0},{"b":1,"g":1,"pos":0.436364,"r":1}],"name":"colorize_1","node_position":{"x":524,"y":-26.75},"type":"colorize"},{"gradient":[{"b":0,"g":0,"pos":0.118182,"r":0},{"b":1,"g":1,"pos":0.172727,"r":1}],"name":"colorize_2","node_position":{"x":413,"y":71.25},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_1","node_position":{"x":826,"y":-119.75},"type":"blend"},{"color":{"a":1,"b":0,"g":0.984375,"r":1,"type":"Color"},"name":"uniform_0","node_position":{"x":690,"y":-104},"type":"uniform"},{"iterations":9,"name":"perlin_0","node_position":{"x":-25,"y":-27.75},"persistence":0.8,"scale_x":6,"scale_y":6,"type":"perlin"},{"intensity":1,"name":"voronoi_0","node_position":{"x":269,"y":-104.75},"scale_x":14,"scale_y":14,"type":"voronoi"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":643,"y":-244.75},"type":"blend"}]} \ No newline at end of file diff --git a/examples/lava.ptex b/examples/lava.ptex index 21c050b..a811dd6 100644 --- a/examples/lava.ptex +++ b/examples/lava.ptex @@ -1 +1 @@ -{"connections":[{"from":"perlin_0","from_port":0,"to":"blend_0","to_port":0},{"from":"blend_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"Material","to_port":0},{"from":"perlin_0","from_port":0,"to":"warp_0","to_port":1},{"from":"voronoi_0","from_port":0,"to":"warp_0","to_port":0},{"from":"warp_0","from_port":0,"to":"blend_0","to_port":1},{"from":"warp_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"warp_0","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"Material","to_port":2},{"from":"warp_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_1","from_port":0,"to":"Material","to_port":3},{"from":"colorize_2","from_port":0,"to":"Material","to_port":1},{"from":"colorize_3","from_port":0,"to":"Material","to_port":5},{"from":"warp_0","from_port":0,"to":"colorize_3","to_port":0}],"nodes":[{"name":"Material","node_position":{"x":956,"y":271},"type":"material"},{"gradient":[{"b":0.032597,"g":0.032597,"pos":0.054545,"r":0.032597},{"b":0.111979,"g":0.111979,"pos":0.3,"r":0.111979},{"b":0.029781,"g":0.029781,"pos":0.518182,"r":0.029781},{"b":0.069093,"g":0.069093,"pos":0.818182,"r":0.069093},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_0","node_position":{"x":666,"y":27},"type":"colorize"},{"gradient":[{"b":1,"g":1,"pos":0.272727,"r":1},{"b":0,"g":0,"pos":0.8,"r":0}],"name":"colorize_2","node_position":{"x":653,"y":140.5},"type":"colorize"},{"gradient":[{"b":0,"g":0.765625,"pos":0,"r":1},{"b":0,"g":0,"pos":0.163636,"r":1},{"b":0,"g":0,"pos":0.245455,"r":0}],"name":"colorize_1","node_position":{"x":646,"y":223},"type":"colorize"},{"amount":0.9,"name":"normal_map_0","node_position":{"x":658,"y":309.5},"type":"normal_map"},{"gradient":[{"b":0.345455,"g":0.345455,"pos":0,"r":0.345455},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_3","node_position":{"x":658,"y":404.25},"type":"colorize"},{"amount":0.45,"blend_type":1,"name":"blend_0","node_position":{"x":475,"y":-30},"type":"blend"},{"amount":0.3,"name":"warp_0","node_position":{"x":338,"y":196},"type":"warp"},{"intensity":0.55,"name":"voronoi_0","node_position":{"x":130,"y":299},"scale_x":6,"scale_y":6,"type":"voronoi"},{"iterations":8,"name":"perlin_0","node_position":{"x":190,"y":-14},"persistence":0.75,"scale_x":4,"scale_y":4,"type":"perlin"}]} \ No newline at end of file +{"connections":[{"from":"perlin_0","from_port":0,"to":"blend_0","to_port":0},{"from":"blend_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"Material","to_port":0},{"from":"perlin_0","from_port":0,"to":"warp_0","to_port":1},{"from":"voronoi_0","from_port":0,"to":"warp_0","to_port":0},{"from":"warp_0","from_port":0,"to":"blend_0","to_port":1},{"from":"warp_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"warp_0","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"Material","to_port":2},{"from":"warp_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"colorize_1","from_port":0,"to":"Material","to_port":3},{"from":"colorize_2","from_port":0,"to":"Material","to_port":1},{"from":"colorize_3","from_port":0,"to":"Material","to_port":5},{"from":"warp_0","from_port":0,"to":"colorize_3","to_port":0}],"nodes":[{"albedo_color":{"a":1,"b":1,"g":1,"r":1,"type":"Color"},"emission_energy":2,"metallic":1,"name":"Material","node_position":{"x":956,"y":271},"roughness":1,"type":"material"},{"gradient":[{"b":0.032597,"g":0.032597,"pos":0.045455,"r":0.032597},{"b":0.111979,"g":0.111979,"pos":0.3,"r":0.111979},{"b":0.029781,"g":0.029781,"pos":0.518182,"r":0.029781},{"b":0.069093,"g":0.069093,"pos":0.818182,"r":0.069093},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_0","node_position":{"x":666,"y":27},"type":"colorize"},{"gradient":[{"b":1,"g":1,"pos":0.263636,"r":1},{"b":0,"g":0,"pos":0.8,"r":0}],"name":"colorize_2","node_position":{"x":653,"y":140.5},"type":"colorize"},{"gradient":[{"b":0,"g":0.765625,"pos":0,"r":1},{"b":0,"g":0,"pos":0.154545,"r":1},{"b":0,"g":0,"pos":0.245455,"r":0}],"name":"colorize_1","node_position":{"x":646,"y":223},"type":"colorize"},{"amount":0.9,"name":"normal_map_0","node_position":{"x":658,"y":309.5},"type":"normal_map"},{"gradient":[{"b":0.345455,"g":0.345455,"pos":0,"r":0.345455},{"b":0,"g":0,"pos":1,"r":0}],"name":"colorize_3","node_position":{"x":658,"y":404.25},"type":"colorize"},{"amount":0.45,"blend_type":1,"name":"blend_0","node_position":{"x":475,"y":-30},"type":"blend"},{"amount":0.3,"name":"warp_0","node_position":{"x":338,"y":196},"type":"warp"},{"intensity":0.55,"name":"voronoi_0","node_position":{"x":130,"y":299},"scale_x":6,"scale_y":6,"type":"voronoi"},{"iterations":8,"name":"perlin_0","node_position":{"x":190,"y":-14},"persistence":0.75,"scale_x":4,"scale_y":4,"type":"perlin"}]} \ No newline at end of file diff --git a/examples/metal_pattern_2.ptex b/examples/metal_pattern_2.ptex new file mode 100644 index 0000000..d48a4d8 --- /dev/null +++ b/examples/metal_pattern_2.ptex @@ -0,0 +1 @@ +{"connections":[{"from":"pattern_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"transform_0","to_port":0},{"from":"transform_0","from_port":0,"to":"transform_1","to_port":0},{"from":"transform_1","from_port":0,"to":"transform_2","to_port":0},{"from":"transform_1","from_port":0,"to":"blend_0","to_port":1},{"from":"transform_2","from_port":0,"to":"blend_0","to_port":0},{"from":"pattern_1","from_port":0,"to":"blend_0","to_port":2},{"from":"blend_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4}],"nodes":[{"name":"transform_1","node_position":{"x":241,"y":384},"repeat":true,"rotate":0,"scale_x":0.25,"scale_y":0.125,"translate_x":0,"translate_y":0.5,"type":"transform"},{"mix":4,"name":"pattern_1","node_position":{"x":218,"y":574},"type":"pattern","x_scale":4,"x_wave":2,"y_scale":4,"y_wave":2},{"name":"transform_0","node_position":{"x":27,"y":577},"repeat":false,"rotate":0,"scale_x":1,"scale_y":1.35,"translate_x":0,"translate_y":0,"type":"transform"},{"gradient":[{"b":1,"g":1,"pos":0.309091,"r":1},{"b":0,"g":0,"pos":0.645455,"r":0}],"name":"colorize_0","node_position":{"x":43,"y":510},"type":"colorize"},{"mix":0,"name":"pattern_0","node_position":{"x":8,"y":410},"type":"pattern","x_scale":10,"x_wave":1,"y_scale":1,"y_wave":1},{"name":"transform_2","node_position":{"x":436,"y":499},"repeat":true,"rotate":90,"scale_x":1,"scale_y":1,"translate_x":0,"translate_y":0,"type":"transform"},{"albedo_color":{"a":1,"b":0.953125,"g":0.834013,"r":0.822815,"type":"Color"},"emission_energy":1,"metallic":1,"name":"Material","node_position":{"x":955,"y":197},"roughness":0.75,"type":"material"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":730,"y":341},"type":"normal_map"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":456,"y":390},"type":"blend"}]} \ No newline at end of file diff --git a/examples/rock.ptex b/examples/rock.ptex index 21c80e1..edd0164 100644 --- a/examples/rock.ptex +++ b/examples/rock.ptex @@ -1 +1 @@ -{"connections":[{"from":"voronoi_0","from_port":0,"to":"blend_0","to_port":0},{"from":"voronoi_0","from_port":1,"to":"blend_0","to_port":1},{"from":"perlin_0","from_port":0,"to":"blend_0","to_port":2},{"from":"blend_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"Material","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"perlin_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_1","from_port":0,"to":"Material","to_port":1},{"from":"perlin_0","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"Material","to_port":2},{"from":"perlin_0","from_port":0,"to":"normal_map_0","to_port":0}],"nodes":[{"name":"Material","node_position":{"x":768,"y":239},"type":"material"},{"intensity":1,"name":"voronoi_0","node_position":{"x":128,"y":394},"scale_x":4,"scale_y":4,"type":"voronoi"},{"amount":0.5,"name":"normal_map_0","node_position":{"x":531,"y":432},"type":"normal_map"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.260417,"g":0.260417,"pos":1,"r":0.260417}],"name":"colorize_1","node_position":{"x":533,"y":343},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":327,"y":411},"type":"blend"},{"gradient":[{"b":0.391927,"g":0.523519,"pos":0,"r":0.583333},{"b":0.240885,"g":0.276693,"pos":0.354545,"r":0.3125},{"b":0.391927,"g":0.523519,"pos":0.681818,"r":0.583333},{"b":0.240885,"g":0.276693,"pos":0.963636,"r":0.3125}],"name":"colorize_0","node_position":{"x":530,"y":171},"type":"colorize"},{"iterations":6,"name":"perlin_0","node_position":{"x":122,"y":191},"persistence":0.85,"scale_x":4,"scale_y":4,"type":"perlin"},{"gradient":[{"b":0.364583,"g":0.364583,"pos":0,"r":0.364583},{"b":1,"g":1,"pos":1,"r":1}],"name":"colorize_2","node_position":{"x":526,"y":258},"type":"colorize"}]} \ No newline at end of file +{"connections":[{"from":"voronoi_0","from_port":0,"to":"blend_0","to_port":0},{"from":"voronoi_0","from_port":1,"to":"blend_0","to_port":1},{"from":"perlin_0","from_port":0,"to":"blend_0","to_port":2},{"from":"blend_0","from_port":0,"to":"colorize_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"Material","to_port":0},{"from":"normal_map_0","from_port":0,"to":"Material","to_port":4},{"from":"perlin_0","from_port":0,"to":"colorize_1","to_port":0},{"from":"colorize_1","from_port":0,"to":"Material","to_port":1},{"from":"perlin_0","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"Material","to_port":2},{"from":"perlin_1","from_port":0,"to":"warp_0","to_port":1},{"from":"voronoi_1","from_port":1,"to":"warp_0","to_port":0},{"from":"warp_0","from_port":0,"to":"normal_map_0","to_port":0},{"from":"warp_0","from_port":0,"to":"colorize_3","to_port":0},{"from":"colorize_3","from_port":0,"to":"Material","to_port":5}],"nodes":[{"amount":0.5,"name":"normal_map_0","node_position":{"x":531,"y":432},"type":"normal_map"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":0.260417,"g":0.260417,"pos":1,"r":0.260417}],"name":"colorize_1","node_position":{"x":533,"y":343},"type":"colorize"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":327,"y":411},"type":"blend"},{"gradient":[{"b":0.391927,"g":0.523519,"pos":0,"r":0.583333},{"b":0.240885,"g":0.276693,"pos":0.345455,"r":0.3125},{"b":0.391927,"g":0.523519,"pos":0.654545,"r":0.583333},{"b":0.240885,"g":0.276693,"pos":0.945455,"r":0.3125}],"name":"colorize_0","node_position":{"x":530,"y":171},"type":"colorize"},{"gradient":[{"b":0.364583,"g":0.364583,"pos":0,"r":0.364583},{"b":1,"g":1,"pos":1,"r":1}],"name":"colorize_2","node_position":{"x":526,"y":258},"type":"colorize"},{"intensity":1,"name":"voronoi_0","node_position":{"x":117,"y":448},"scale_x":4,"scale_y":4,"type":"voronoi"},{"iterations":6,"name":"perlin_0","node_position":{"x":105,"y":305},"persistence":0.85,"scale_x":4,"scale_y":4,"type":"perlin"},{"iterations":3,"name":"perlin_1","node_position":{"x":102,"y":166},"persistence":0.65,"scale_x":4,"scale_y":4,"type":"perlin"},{"intensity":0.85,"name":"voronoi_1","node_position":{"x":115,"y":63},"scale_x":4,"scale_y":4,"type":"voronoi"},{"name":"Material","node_position":{"x":768,"y":239},"type":"material"},{"amount":0.3,"name":"warp_0","node_position":{"x":317,"y":139},"type":"warp"},{"gradient":[{"b":1,"g":1,"pos":0.127273,"r":1},{"b":0,"g":0,"pos":0.236364,"r":0}],"name":"colorize_3","node_position":{"x":327,"y":238},"type":"colorize"}]} \ No newline at end of file diff --git a/icon.png b/icon.png index a0b64ee..af5f09a 100644 Binary files a/icon.png and b/icon.png differ diff --git a/project.godot b/project.godot index 3a3192a..f71d532 100644 --- a/project.godot +++ b/project.godot @@ -10,8 +10,10 @@ config_version=3 [application] -config/name="Procedural textures" +config/name="Material Maker" 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" [display]