From 746fd1b2feb0a09900e2510ee08892e82cf624c5 Mon Sep 17 00:00:00 2001 From: RodZill4 Date: Sat, 1 Sep 2018 13:55:48 +0200 Subject: [PATCH] Fixed crash upon copy/paste of Material node --- addons/procedural_material/graph_edit.gd | 2 + .../procedural_material/paint_tool/paint.gd | 2 +- .../paint_tool/texture2view.shader | 2 +- export_presets.cfg | 2 +- generated_image.png.import | 30 --------- test/test.tscn | 67 ++++++++++++++++--- 6 files changed, 64 insertions(+), 41 deletions(-) delete mode 100644 generated_image.png.import diff --git a/addons/procedural_material/graph_edit.gd b/addons/procedural_material/graph_edit.gd index 0fa6b4c..a0c06e5 100644 --- a/addons/procedural_material/graph_edit.gd +++ b/addons/procedural_material/graph_edit.gd @@ -111,6 +111,8 @@ func get_free_name(type): i += 1 func create_nodes(data, position = null): + if data == null: + return if data.has("type"): var node_type = load("res://addons/procedural_material/nodes/"+data.type+".tscn") if node_type != null: diff --git a/addons/procedural_material/paint_tool/paint.gd b/addons/procedural_material/paint_tool/paint.gd index 1232f8a..25d5269 100644 --- a/addons/procedural_material/paint_tool/paint.gd +++ b/addons/procedural_material/paint_tool/paint.gd @@ -62,7 +62,7 @@ func _ready(): # Updated Texture2View wrt current camera position update_tex2view() # Set size of painted textures - set_texture_size(4096) + set_texture_size(2048) # update the material list $Material/OptionButton.clear() for m in MATERIAL_OPTIONS: diff --git a/addons/procedural_material/paint_tool/texture2view.shader b/addons/procedural_material/paint_tool/texture2view.shader index 1127e74..394ffd8 100644 --- a/addons/procedural_material/paint_tool/texture2view.shader +++ b/addons/procedural_material/paint_tool/texture2view.shader @@ -56,7 +56,7 @@ void fragment() { vec2 delta = v2t.xy-UV.xy; float visible = 0.0; if (color.x > -1.0 && color.x < 1.0 && color.y > -1.0 && color.y < 1.0) { - visible = clamp(10.0*dot(normalize(normal), normalize(color.xyz)), 0.0, 1.0)*max(0.0, 1.0-4.0*pow(dot(delta, delta), 0.3)); + visible = clamp(100.0*dot(normalize(normal), normalize(color.xyz)), 0.0, 1.0)*max(0.0, 1.0-4.0*pow(dot(delta, delta), 2.0)); } ALBEDO = vec3(fix_unshaded(xyz.xy), visible); } diff --git a/export_presets.cfg b/export_presets.cfg index 7f3d6c5..d854865 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -5,7 +5,7 @@ platform="Windows Desktop" runnable=true custom_features="" export_filter="resources" -export_files=PoolStringArray( "res://addons/procedural_material/common.shader", "res://addons/procedural_material/graph_edit.gd", "res://addons/procedural_material/graph_edit.tscn", "res://addons/procedural_material/library.gd", "res://addons/procedural_material/main_window.gd", "res://addons/procedural_material/main_window.tscn", "res://addons/procedural_material/node_base.gd", "res://addons/procedural_material/nodes/blend.gd", "res://addons/procedural_material/nodes/blend.tscn", "res://addons/procedural_material/nodes/blur.gd", "res://addons/procedural_material/nodes/blur.tscn", "res://addons/procedural_material/nodes/bricks.gd", "res://addons/procedural_material/nodes/bricks.tscn", "res://addons/procedural_material/nodes/colorize.gd", "res://addons/procedural_material/nodes/colorize.tscn", "res://addons/procedural_material/nodes/combine.gd", "res://addons/procedural_material/nodes/combine.tscn", "res://addons/procedural_material/nodes/decompose.gd", "res://addons/procedural_material/nodes/decompose.tscn", "res://addons/procedural_material/nodes/emboss.gd", "res://addons/procedural_material/nodes/emboss.tscn", "res://addons/procedural_material/nodes/export.gd", "res://addons/procedural_material/nodes/export.tscn", "res://addons/procedural_material/nodes/godot_logo.png", "res://addons/procedural_material/nodes/image.gd", "res://addons/procedural_material/nodes/image.tscn", "res://addons/procedural_material/nodes/material.gd", "res://addons/procedural_material/nodes/material.tscn", "res://addons/procedural_material/nodes/noise.gd", "res://addons/procedural_material/nodes/noise.tscn", "res://addons/procedural_material/nodes/normal_map.gd", "res://addons/procedural_material/nodes/normal_map.tscn", "res://addons/procedural_material/nodes/pattern.gd", "res://addons/procedural_material/nodes/pattern.tscn", "res://addons/procedural_material/nodes/perlin.gd", "res://addons/procedural_material/nodes/perlin.tscn", "res://addons/procedural_material/nodes/transform.gd", "res://addons/procedural_material/nodes/transform.tscn", "res://addons/procedural_material/nodes/uniform.gd", "res://addons/procedural_material/nodes/uniform.tscn", "res://addons/procedural_material/nodes/voronoi.gd", "res://addons/procedural_material/nodes/voronoi.tscn", "res://addons/procedural_material/nodes/warp.gd", "res://addons/procedural_material/nodes/warp.tscn", "res://addons/procedural_material/panoramas/experiment.hdr", "res://addons/procedural_material/panoramas/lobby.hdr", "res://addons/procedural_material/panoramas/night.hdr", "res://addons/procedural_material/panoramas/park.hdr", "res://addons/procedural_material/panoramas/schelde.hdr", "res://addons/procedural_material/pm_editor.gd", "res://addons/procedural_material/pm_editor.tscn", "res://addons/procedural_material/preview.gd", "res://addons/procedural_material/preview.tscn", "res://addons/procedural_material/widgets/about.gd", "res://addons/procedural_material/widgets/about.tscn", "res://addons/procedural_material/widgets/facebook.png", "res://addons/procedural_material/widgets/github.png", "res://addons/procedural_material/widgets/gradient_editor.gd", "res://addons/procedural_material/widgets/gradient_editor.tscn", "res://addons/procedural_material/widgets/icon.png", "res://addons/procedural_material/widgets/line_dialog.gd", "res://addons/procedural_material/widgets/line_dialog.tscn", "res://addons/procedural_material/widgets/twitter.png", "res://addons/procedural_material/widgets/youtube.png", "res://addons/procedural_material/window_dialog.tscn", "res://icon.png" ) +export_files=PoolStringArray( "res://addons/procedural_material/common.shader", "res://addons/procedural_material/graph_edit.gd", "res://addons/procedural_material/graph_edit.tscn", "res://addons/procedural_material/library.gd", "res://addons/procedural_material/main_window.gd", "res://addons/procedural_material/main_window.tscn", "res://addons/procedural_material/node_base.gd", "res://addons/procedural_material/nodes/adjust_hsv.gd", "res://addons/procedural_material/nodes/adjust_hsv.tscn", "res://addons/procedural_material/nodes/blend.gd", "res://addons/procedural_material/nodes/blend.tscn", "res://addons/procedural_material/nodes/blur.gd", "res://addons/procedural_material/nodes/blur.tscn", "res://addons/procedural_material/nodes/bricks.gd", "res://addons/procedural_material/nodes/bricks.tscn", "res://addons/procedural_material/nodes/colorize.gd", "res://addons/procedural_material/nodes/colorize.tscn", "res://addons/procedural_material/nodes/combine.gd", "res://addons/procedural_material/nodes/combine.tscn", "res://addons/procedural_material/nodes/decompose.gd", "res://addons/procedural_material/nodes/decompose.tscn", "res://addons/procedural_material/nodes/emboss.gd", "res://addons/procedural_material/nodes/emboss.tscn", "res://addons/procedural_material/nodes/export.gd", "res://addons/procedural_material/nodes/export.tscn", "res://addons/procedural_material/nodes/godot_logo.png", "res://addons/procedural_material/nodes/image.gd", "res://addons/procedural_material/nodes/image.tscn", "res://addons/procedural_material/nodes/material.gd", "res://addons/procedural_material/nodes/material.tscn", "res://addons/procedural_material/nodes/noise.gd", "res://addons/procedural_material/nodes/noise.tscn", "res://addons/procedural_material/nodes/normal_map.gd", "res://addons/procedural_material/nodes/normal_map.tscn", "res://addons/procedural_material/nodes/pattern.gd", "res://addons/procedural_material/nodes/pattern.tscn", "res://addons/procedural_material/nodes/perlin.gd", "res://addons/procedural_material/nodes/perlin.tscn", "res://addons/procedural_material/nodes/transform.gd", "res://addons/procedural_material/nodes/transform.tscn", "res://addons/procedural_material/nodes/uniform.gd", "res://addons/procedural_material/nodes/uniform.tscn", "res://addons/procedural_material/nodes/voronoi.gd", "res://addons/procedural_material/nodes/voronoi.tscn", "res://addons/procedural_material/nodes/warp.gd", "res://addons/procedural_material/nodes/warp.tscn", "res://addons/procedural_material/panoramas/experiment.hdr", "res://addons/procedural_material/panoramas/lobby.hdr", "res://addons/procedural_material/panoramas/night.hdr", "res://addons/procedural_material/panoramas/park.hdr", "res://addons/procedural_material/panoramas/schelde.hdr", "res://addons/procedural_material/pm_editor.gd", "res://addons/procedural_material/pm_editor.tscn", "res://addons/procedural_material/preview.gd", "res://addons/procedural_material/preview.tscn", "res://addons/procedural_material/widgets/about.gd", "res://addons/procedural_material/widgets/about.tscn", "res://addons/procedural_material/widgets/facebook.png", "res://addons/procedural_material/widgets/github.png", "res://addons/procedural_material/widgets/gradient_editor.gd", "res://addons/procedural_material/widgets/gradient_editor.tscn", "res://addons/procedural_material/widgets/icon.png", "res://addons/procedural_material/widgets/line_dialog.gd", "res://addons/procedural_material/widgets/line_dialog.tscn", "res://addons/procedural_material/widgets/twitter.png", "res://addons/procedural_material/widgets/youtube.png", "res://addons/procedural_material/window_dialog.tscn", "res://icon.png" ) include_filter="*.json,res://addons/procedural_material/library/base/*.png" exclude_filter="*.ptex" patch_list=PoolStringArray( ) diff --git a/generated_image.png.import b/generated_image.png.import deleted file mode 100644 index 3a9b4f1..0000000 --- a/generated_image.png.import +++ /dev/null @@ -1,30 +0,0 @@ -[remap] - -importer="texture" -type="StreamTexture" -path.s3tc="res://.import/generated_image.png-791fdae0ab5829f929b4d82eecbe4bc3.s3tc.stex" -path.etc2="res://.import/generated_image.png-791fdae0ab5829f929b4d82eecbe4bc3.etc2.stex" - -[deps] - -source_file="res://generated_image.png" -dest_files=[ "res://.import/generated_image.png-791fdae0ab5829f929b4d82eecbe4bc3.s3tc.stex", "res://.import/generated_image.png-791fdae0ab5829f929b4d82eecbe4bc3.etc2.stex" ] - -[params] - -compress/mode=2 -compress/lossy_quality=0.7 -compress/hdr_mode=0 -compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=1 -process/fix_alpha_border=true -process/premult_alpha=false -process/HDR_as_SRGB=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 diff --git a/test/test.tscn b/test/test.tscn index d9c0fe7..3fd8db9 100644 --- a/test/test.tscn +++ b/test/test.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=2] [ext_resource path="res://test/suzanne.mesh" type="ArrayMesh" id=1] [ext_resource path="res://addons/procedural_material/panoramas/park.hdr" type="Texture" id=2] @@ -63,7 +63,58 @@ proximity_fade_enable = false distance_fade_enable = false _sections_unfolded = [ "Albedo", "Detail" ] -[sub_resource type="PrismMesh" id=3] +[sub_resource type="SpatialMaterial" id=3] + +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 = 0.0 +metallic_specular = 0.5 +metallic_texture_channel = 0 +roughness = 0.0 +roughness_texture_channel = 0 +emission_enabled = false +normal_enabled = false +rim_enabled = false +clearcoat_enabled = false +anisotropy_enabled = false +ao_enabled = false +depth_enabled = false +subsurf_scatter_enabled = false +transmission_enabled = false +refraction_enabled = false +detail_enabled = false +uv1_scale = Vector3( 1, 1, 1 ) +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 + +[sub_resource type="PrismMesh" id=4] custom_aabb = AABB( 0, 0, 0, 0, 0, 0 ) left_to_right = 0.5 @@ -72,15 +123,15 @@ subdivide_width = 0 subdivide_height = 0 subdivide_depth = 0 -[sub_resource type="PanoramaSky" id=4] +[sub_resource type="PanoramaSky" id=5] radiance_size = 4 panorama = ExtResource( 2 ) -[sub_resource type="Environment" id=5] +[sub_resource type="Environment" id=6] background_mode = 2 -background_sky = SubResource( 4 ) +background_sky = SubResource( 5 ) background_sky_custom_fov = 0.0 background_color = Color( 0, 0, 0, 1 ) background_energy = 1.0 @@ -189,7 +240,7 @@ lod_max_distance = 0.0 lod_max_hysteresis = 0.0 mesh = ExtResource( 1 ) skeleton = NodePath("..") -material/0 = null +material/0 = SubResource( 3 ) _sections_unfolded = [ "material" ] [node name="Prism" type="MeshInstance" parent="." index="2"] @@ -204,14 +255,14 @@ lod_min_distance = 0.0 lod_min_hysteresis = 0.0 lod_max_distance = 0.0 lod_max_hysteresis = 0.0 -mesh = SubResource( 3 ) +mesh = SubResource( 4 ) skeleton = NodePath("..") material/0 = SubResource( 2 ) _sections_unfolded = [ "material" ] [node name="WorldEnvironment" type="WorldEnvironment" parent="." index="3"] -environment = SubResource( 5 ) +environment = SubResource( 6 ) [node name="DirectionalLight" type="DirectionalLight" parent="." index="4"]