From 7631f4489bafe8be3177d2ef5eaaa8410b45c8fa Mon Sep 17 00:00:00 2001 From: RodZill4 Date: Sun, 29 Jul 2018 14:21:49 +0200 Subject: [PATCH] Smart typo in perlin noise node --- .gitignore | 11 ++ .../procedural_material/models/models.blend | Bin 0 -> 522076 bytes addons/procedural_material/nodes/perlin.gd | 6 +- addons/procedural_material/nodes/perlin.tscn | 4 +- addons/procedural_material/pm_editor.tscn | 128 +++++++++++++----- examples/bricks.ptex | 2 +- 6 files changed, 109 insertions(+), 42 deletions(-) create mode 100644 addons/procedural_material/models/models.blend diff --git a/.gitignore b/.gitignore index 589f6c7..fa242d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,14 @@ .import generated_image.png generated_image.png +doc/bricks.png.import +doc/perlin.png.import +doc/screenshot.png.import +doc/sine.png.import +doc/voronoi.png.import +examples/test.ptex +examples/test_blend.ptex +addons/procedural_material/models/Material.material +addons/procedural_material/models/models.blend1 +addons/procedural_material/models/models.dae +addons/procedural_material/models/models.dae.import diff --git a/addons/procedural_material/models/models.blend b/addons/procedural_material/models/models.blend new file mode 100644 index 0000000000000000000000000000000000000000..16a3e4e7f6d2c2af4ebb3c9482993c59e1ac25e9 GIT binary patch literal 522076 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 e1~YQr|5vL literal 0 HcmV?d00001 diff --git a/addons/procedural_material/nodes/perlin.gd b/addons/procedural_material/nodes/perlin.gd index fb249e5..2abef8a 100644 --- a/addons/procedural_material/nodes/perlin.gd +++ b/addons/procedural_material/nodes/perlin.gd @@ -4,16 +4,16 @@ extends "res://addons/procedural_material/node_base.gd" var scale_x var scale_y var iterations -var persistance +var persistence func _ready(): set_slot(0, false, 0, Color(0.5, 0.5, 1), true, 0, Color(0.5, 0.5, 1)) - initialize_properties([ $GridContainer/scale_x, $GridContainer/scale_y, $GridContainer/iterations, $GridContainer/persistance ]) + initialize_properties([ $GridContainer/scale_x, $GridContainer/scale_y, $GridContainer/iterations, $GridContainer/persistence ]) func _get_shader_code(uv): var rv = { defs="", code="" } if generated_variants.empty(): - rv.defs = "float "+name+"_f(vec2 uv) { return perlin(uv, vec2(%f, %f), %d, %.9f, %d); }\n" % [ scale_x, scale_y, iterations, persistance, get_seed() ] + rv.defs = "float "+name+"_f(vec2 uv) { return perlin(uv, vec2(%f, %f), %d, %.9f, %d); }\n" % [ scale_x, scale_y, iterations, persistence, get_seed() ] var variant_index = generated_variants.find(uv) if variant_index == -1: variant_index = generated_variants.size() diff --git a/addons/procedural_material/nodes/perlin.tscn b/addons/procedural_material/nodes/perlin.tscn index 05630eb..4f981b6 100644 --- a/addons/procedural_material/nodes/perlin.tscn +++ b/addons/procedural_material/nodes/perlin.tscn @@ -5,7 +5,7 @@ [sub_resource type="Theme" id=1] -[node name="Perlin" type="GraphNode"] +[node name="Perlin" type="GraphNode" index="0"] anchor_left = 0.0 anchor_top = 0.0 @@ -219,7 +219,7 @@ percent_visible = 1.0 lines_skipped = 0 max_lines_visible = -1 -[node name="persistance" type="SpinBox" parent="GridContainer" index="7"] +[node name="persistence" type="SpinBox" parent="GridContainer" index="7"] anchor_left = 0.0 anchor_top = 0.0 diff --git a/addons/procedural_material/pm_editor.tscn b/addons/procedural_material/pm_editor.tscn index 1c1a244..13bdab8 100644 --- a/addons/procedural_material/pm_editor.tscn +++ b/addons/procedural_material/pm_editor.tscn @@ -4,7 +4,7 @@ [ext_resource path="res://addons/procedural_material/graph_edit.gd" type="Script" id=2] [ext_resource path="res://addons/procedural_material/nodes/material.tscn" type="PackedScene" id=3] [ext_resource path="res://addons/procedural_material/preview.gd" type="Script" id=4] -[ext_resource path="res://addons/procedural_material/panoramas/night.hdr" type="Texture" id=5] +[ext_resource path="res://addons/procedural_material/panoramas/park.hdr" type="Texture" id=5] [sub_resource type="Animation" id=1] @@ -259,8 +259,72 @@ vec3 rand3(vec2 x) { dot(x, vec2(13.254, 5.867)))) * 43758.5453); } +vec3 blend_normal(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*c1 + (1.0-opacity)*c2; +} + +vec3 blend_dissolve(vec2 uv, vec3 c1, vec3 c2, float opacity) { + if (rand(uv) < opacity) { + return c1; + } else { + return c2; + } +} + +vec3 blend_multiply(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*c1*c2 + (1.0-opacity)*c2; +} + +vec3 blend_screen(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*(1.0-(1.0-c1)*(1.0-c2)) + (1.0-opacity)*c2; +} + +float blend_overlay_f(float c1, float c2) { + return (c1 < 0.5) ? (2.0*c1*c2) : (1.0-2.0*(1.0-c1)*(1.0-c2)); +} + +vec3 blend_overlay(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*vec3(blend_overlay_f(c1.x, c2.x), blend_overlay_f(c1.y, c2.y), blend_overlay_f(c1.z, c2.z)) + (1.0-opacity)*c2; +} + +vec3 blend_hard_light(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*0.5*(c1*c2+blend_overlay(uv, c1, c2, 1.0)) + (1.0-opacity)*c2; +} + +float blend_soft_light_f(float c1, float c2) { + return (c2 < 0.5) ? (2.0*c1*c2+c1*c1*(1.0-2.0*c2)) : 2.0*c1*(1.0-c2)+sqrt(c1)*(2.0*c2-1.0); +} + +vec3 blend_soft_light(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*vec3(blend_soft_light_f(c1.x, c2.x), blend_soft_light_f(c1.y, c2.y), blend_soft_light_f(c1.z, c2.z)) + (1.0-opacity)*c2; +} + +float blend_burn_f(float c1, float c2) { + return (c1==0.0)?c1:max((1.0-((1.0-c2)/c1)),0.0); +} + +vec3 blend_burn(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*vec3(blend_burn_f(c1.x, c2.x), blend_burn_f(c1.y, c2.y), blend_burn_f(c1.z, c2.z)) + (1.0-opacity)*c2; +} + +float blend_dodge_f(float c1, float c2) { + return (c1==1.0)?c1:min(c2/(1.0-c1),1.0); +} + +vec3 blend_dodge(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*vec3(blend_dodge_f(c1.x, c2.x), blend_dodge_f(c1.y, c2.y), blend_dodge_f(c1.z, c2.z)) + (1.0-opacity)*c2; +} + +vec3 blend_lighten(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*max(c1, c2) + (1.0-opacity)*c2; +} + +vec3 blend_darken(vec2 uv, vec3 c1, vec3 c2, float opacity) { + return opacity*min(c1, c2) + (1.0-opacity)*c2; +} + float sine(vec2 uv, float count, float sharpness) { - return max(0.0, min(1.0, (0.5+sharpness*0.5*sin(count*3.1415928*2.0*uv.x)))); + return clamp(0.5+sharpness*0.5*sin(count*3.1415928*2.0*uv.x), 0.0, 1.0); } vec2 transform(vec2 uv, float rotate, float scale) { @@ -294,7 +358,8 @@ float colored_bricks(vec2 uv, vec2 count, float offset) { return fract(x/3.0+y/7.0); } -float perlin(vec2 uv, vec2 size, int iterations, float persistence) { +float perlin(vec2 uv, vec2 size, int iterations, float persistence, int seed) { + uv += vec2(float(seed)*0.1234567); float rv = 0.0; float coef = 1.0; float acc = 0.0; @@ -315,49 +380,40 @@ float perlin(vec2 uv, vec2 size, int iterations, float persistence) { return rv / acc; } -vec2 voronoi(vec2 uv, vec2 size, float intensity) { +vec4 voronoi(vec2 uv, vec2 size, float intensity, int seed) { + uv += vec2(float(seed)*0.1234567); uv *= size; - float rv = 10.0; - vec2 point; + float best_distance0 = 1.0; + float best_distance1 = 1.0; + vec2 point0; + vec2 point1; vec2 p0 = floor(uv); for (int dx = -1; dx < 2; ++dx) { for (int dy = -1; dy < 2; ++dy) { - vec2 p = p0+vec2(float(dx), float(dy)); + vec2 d = vec2(float(dx), float(dy)); + vec2 p = p0+d; p += rand2(mod(p, size)); - float l = length((uv - p) / size); - l *= l; - if (rv > l) { - rv = l; - point = p; + float distance = length((uv - p) / size); + if (best_distance0 > distance) { + best_distance1 = best_distance0; + best_distance0 = distance; + point1 = point0; + point0 = p; + } else if (best_distance1 > distance) { + best_distance1 = distance; + point1 = p; } } } + float edge_distance = dot(uv - 0.5*(point0+point1), normalize(point0-point1)); - return vec2(rand(point), rv*length(size)*intensity); + return vec4(point0, best_distance0*length(size)*intensity, edge_distance); } - -float Perlin_f(vec2 uv) { return perlin(uv, vec2(4, 4), 6, 0.35); } -float Bricks_f(vec2 uv) { return bricks(uv, vec2(3, 6), 0.5, 0.05, 0.6); } -vec3 Colorize3_gradient(float x) { - if (x < 0.000000000) { - return vec3(0.000000000,0.000000000,0.000000000); - } else if (x < 0.081818182) { - return vec3(0.000000000,0.000000000,0.000000000)+x*vec3(12.222222328,12.222222328,12.222222328); - } - return vec3(1.000000000,1.000000000,1.000000000); -} +vec4 voronoi_0_xyzw(vec2 uv) { return voronoi(uv, vec2(4.000000, 4.000000), 1.000000000, 3766); } void fragment() { -float Perlin_0_f = Perlin_f(UV+vec2(0.01, 0.0)); -float Perlin_1_f = Perlin_f(UV-vec2(0.01, 0.0)); -float Perlin_2_f = Perlin_f(UV+vec2(0.0, 0.01)); -float Perlin_3_f = Perlin_f(UV-vec2(0.0, 0.01)); -vec2 Warp_0_uv = UV+0.300000012*vec2((Perlin_0_f)-(Perlin_1_f), (Perlin_2_f)-(Perlin_3_f)); -float Bricks_0_f = Bricks_f(Warp_0_uv); -vec3 Warp_0_rgb = vec3(Bricks_0_f); -float Warp_0_f = dot(vec3(Bricks_0_f), vec3(1.0))/3.0; -vec3 Colorize3_0_rgb = Colorize3_gradient(dot(Warp_0_rgb, vec3(1.0))/3.0); -COLOR = vec4(Colorize3_0_rgb, 1.0); +vec4 voronoi_0_0_xyzw = voronoi_0_xyzw(UV); +COLOR = vec4(vec3(voronoi_0_0_xyzw.z), 1.0); } " @@ -366,7 +422,7 @@ COLOR = vec4(Colorize3_0_rgb, 1.0); render_priority = 0 shader = SubResource( 12 ) -[node name="ProceduralMaterialEditor" type="MarginContainer"] +[node name="ProceduralMaterialEditor" type="MarginContainer" index="0"] anchor_left = 0.0 anchor_top = 0.0 @@ -514,7 +570,7 @@ _sections_unfolded = [ "GUI", "Render Target" ] [node name="Objects" type="Spatial" parent="Preview/Preview/MaterialPreview" index="0"] -transform = Transform( 0.277021, 0, -0.960862, 0, 1, 0, 0.960862, 0, 0.277021, 0, 0, 0 ) +transform = Transform( 0.172897, 0, 0.984938, 0, 1, 0, -0.984938, 0, 0.172897, 0, 0, 0 ) _sections_unfolded = [ "Transform" ] [node name="Cube" type="MeshInstance" parent="Preview/Preview/MaterialPreview/Objects" index="0"] diff --git a/examples/bricks.ptex b/examples/bricks.ptex index a82803d..0d658b4 100644 --- a/examples/bricks.ptex +++ b/examples/bricks.ptex @@ -1 +1 @@ -{"connections":[{"from":"Bricks","from_port":0,"to":"Warp","to_port":0},{"from":"Perlin","from_port":0,"to":"Warp","to_port":1},{"from":"Warp","from_port":0,"to":"NormalMap","to_port":0},{"from":"Perlin2","from_port":0,"to":"colorize_0","to_port":0},{"from":"Perlin2","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":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":"blend_0","from_port":0,"to":"transform_0","to_port":0},{"from":"transform_0","from_port":0,"to":"Material","to_port":0},{"from":"NormalMap","from_port":0,"to":"transform_1","to_port":0},{"from":"transform_1","from_port":0,"to":"Material","to_port":1}],"nodes":[{"iterations":7,"name":"Perlin2","node_position":{"x":258,"y":-32},"persistance":0.9,"scale_x":8,"scale_y":8,"type":"perlin"},{"bevel":0.6,"columns":6,"mortar":0.05,"name":"Bricks","node_position":{"x":260,"y":132},"row_offset":0.5,"rows":12,"type":"bricks"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":1,"r":1}],"name":"colorize_0","node_position":{"x":556.943665,"y":-32},"type":"colorize"},{"gradient":[{"b":0.002889,"g":0.102424,"pos":0,"r":0.184896},{"b":0,"g":0.19869,"pos":0.327273,"r":0.669271},{"b":0.019368,"g":0.060224,"pos":0.690909,"r":0.309896},{"b":0,"g":0.180135,"pos":1,"r":0.606771}],"name":"colorize_1","node_position":{"x":550.943665,"y":53},"type":"colorize"},{"amount":0.5,"name":"NormalMap","node_position":{"x":694,"y":297},"type":"normal_map"},{"iterations":6,"name":"Perlin","node_position":{"x":255,"y":322},"persistance":0.35,"scale_x":4,"scale_y":4,"type":"perlin"},{"amount":0.2,"name":"Warp","node_position":{"x":504,"y":199.75},"type":"warp"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":0.072727,"r":1}],"name":"colorize_2","node_position":{"x":639.943665,"y":152},"type":"colorize"},{"amount":0.5,"name":"blend_0","node_position":{"x":819.943726,"y":-33},"type":"blend"},{"name":"transform_0","node_position":{"x":938.779785,"y":129.75},"rotate":0,"scale":1,"type":"transform"},{"name":"transform_1","node_position":{"x":944.779785,"y":262.75},"rotate":0,"scale":1,"type":"transform"},{"name":"Material","node_position":{"x":1165,"y":171},"type":"material"}]} \ No newline at end of file +{"connections":[{"from":"Bricks","from_port":0,"to":"Warp","to_port":0},{"from":"Perlin","from_port":0,"to":"Warp","to_port":1},{"from":"Warp","from_port":0,"to":"NormalMap","to_port":0},{"from":"Perlin2","from_port":0,"to":"colorize_0","to_port":0},{"from":"Perlin2","from_port":0,"to":"colorize_1","to_port":0},{"from":"Warp","from_port":0,"to":"colorize_2","to_port":0},{"from":"colorize_2","from_port":0,"to":"blend_0","to_port":2},{"from":"blend_0","from_port":0,"to":"transform_0","to_port":0},{"from":"transform_0","from_port":0,"to":"Material","to_port":0},{"from":"NormalMap","from_port":0,"to":"transform_1","to_port":0},{"from":"transform_1","from_port":0,"to":"Material","to_port":1},{"from":"colorize_1","from_port":0,"to":"blend_0","to_port":0},{"from":"colorize_0","from_port":0,"to":"blend_0","to_port":1}],"nodes":[{"iterations":7,"name":"Perlin2","node_position":{"x":258,"y":-32},"persistence":0.5,"scale_x":8,"scale_y":8,"type":"perlin"},{"bevel":0.6,"columns":6,"mortar":0.05,"name":"Bricks","node_position":{"x":260,"y":132},"row_offset":0.5,"rows":12,"type":"bricks"},{"amount":0.5,"name":"NormalMap","node_position":{"x":694,"y":297},"type":"normal_map"},{"iterations":6,"name":"Perlin","node_position":{"x":255,"y":322},"persistence":0.5,"scale_x":4,"scale_y":4,"type":"perlin"},{"amount":0.1,"name":"Warp","node_position":{"x":504,"y":199.75},"type":"warp"},{"gradient":[{"b":0,"g":0,"pos":0,"r":0},{"b":1,"g":1,"pos":0.090909,"r":1}],"name":"colorize_2","node_position":{"x":639.943665,"y":152},"type":"colorize"},{"name":"transform_1","node_position":{"x":944.779785,"y":262.75},"rotate":0,"scale":1,"type":"transform"},{"name":"Material","node_position":{"x":1165,"y":171},"type":"material"},{"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.002889,"g":0.102424,"pos":0,"r":0.184896},{"b":0,"g":0.19869,"pos":0.327273,"r":0.669271},{"b":0.019368,"g":0.060224,"pos":0.681818,"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"},{"name":"transform_0","node_position":{"x":938.779785,"y":129.75},"rotate":0,"scale":1,"type":"transform"},{"amount":0.5,"blend_type":0,"name":"blend_0","node_position":{"x":820.943726,"y":-33},"type":"blend"}]} \ No newline at end of file