Skip to content

Commit 4a9ed41

Browse files
authored
Updated Directional Blur node to not output black when sigma is zero (contributed by williamchange)
Don't output black when sigma is zero in directional blur
2 parents 2b6b0f5 + bdda791 commit 4a9ed41

2 files changed

Lines changed: 287 additions & 2 deletions

File tree

Lines changed: 285 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,285 @@
1+
{
2+
"connections": [
3+
{
4+
"from": "gen_inputs",
5+
"from_port": 0,
6+
"to": "buffer",
7+
"to_port": 0
8+
},
9+
{
10+
"from": "buffer",
11+
"from_port": 0,
12+
"to": "edge_detect_3_3_2",
13+
"to_port": 0
14+
},
15+
{
16+
"from": "edge_detect_3_3_2",
17+
"from_port": 0,
18+
"to": "gen_outputs",
19+
"to_port": 0
20+
},
21+
{
22+
"from": "gen_inputs",
23+
"from_port": 1,
24+
"to": "edge_detect_3_3_2",
25+
"to_port": 1
26+
}
27+
],
28+
"label": "Directional Blur",
29+
"longdesc": "Applies a directional gaussian blur to its input",
30+
"name": "directional_blur",
31+
"node_position": {
32+
"x": 0,
33+
"y": 0
34+
},
35+
"nodes": [
36+
{
37+
"name": "buffer",
38+
"node_position": {
39+
"x": -364.25,
40+
"y": -255.75
41+
},
42+
"parameters": {
43+
"lod": 0,
44+
"size": 9
45+
},
46+
"seed": 20527,
47+
"type": "buffer"
48+
},
49+
{
50+
"name": "gen_parameters",
51+
"node_position": {
52+
"x": -456.666626,
53+
"y": -433.666656
54+
},
55+
"parameters": {
56+
"param0": 9,
57+
"param1": 50,
58+
"param2": 45,
59+
"param3": 0
60+
},
61+
"seed": 343,
62+
"type": "remote",
63+
"widgets": [
64+
{
65+
"label": "Grid size",
66+
"linked_widgets": [
67+
{
68+
"node": "buffer",
69+
"widget": "size"
70+
},
71+
{
72+
"node": "edge_detect_3_3_2",
73+
"widget": "size"
74+
}
75+
],
76+
"longdesc": "The resolution of the input",
77+
"name": "param0",
78+
"shortdesc": "Size",
79+
"type": "linked_control"
80+
},
81+
{
82+
"label": "Mode",
83+
"linked_widgets": [
84+
{
85+
"node": "edge_detect_3_3_2",
86+
"widget": "mode"
87+
}
88+
],
89+
"longdesc": "Controls whether the blur moves in both directions or only in one.",
90+
"name": "param3",
91+
"shortdesc": "Mode",
92+
"type": "linked_control"
93+
},
94+
{
95+
"label": "Sigma",
96+
"linked_widgets": [
97+
{
98+
"node": "edge_detect_3_3_2",
99+
"widget": "sigma"
100+
}
101+
],
102+
"longdesc": "The strength of the blur filter",
103+
"name": "param1",
104+
"shortdesc": "Sigma",
105+
"type": "linked_control"
106+
},
107+
{
108+
"label": "Angle",
109+
"linked_widgets": [
110+
{
111+
"node": "edge_detect_3_3_2",
112+
"widget": "angle"
113+
}
114+
],
115+
"longdesc": "The angle of the directional blur effect",
116+
"name": "param2",
117+
"shortdesc": "Angle",
118+
"type": "linked_control"
119+
}
120+
]
121+
},
122+
{
123+
"name": "gen_inputs",
124+
"node_position": {
125+
"x": -779.666626,
126+
"y": -247.392853
127+
},
128+
"parameters": {
129+
130+
},
131+
"ports": [
132+
{
133+
"group_size": 0,
134+
"longdesc": "The input image",
135+
"name": "in",
136+
"shortdesc": "Input",
137+
"type": "rgba"
138+
},
139+
{
140+
"group_size": 0,
141+
"longdesc": "A map that controls the strength of the blur filter",
142+
"name": "amount",
143+
"shortdesc": "Strength map",
144+
"type": "f"
145+
}
146+
],
147+
"seed": 91624,
148+
"seed_locked": true,
149+
"type": "ios"
150+
},
151+
{
152+
"name": "gen_outputs",
153+
"node_position": {
154+
"x": -45.452393,
155+
"y": -195.392853
156+
},
157+
"parameters": {
158+
159+
},
160+
"ports": [
161+
{
162+
"group_size": 0,
163+
"longdesc": "Shows the generated blurred image",
164+
"name": "port0",
165+
"shortdesc": "Output",
166+
"type": "rgba"
167+
}
168+
],
169+
"seed": 30896,
170+
"type": "ios"
171+
},
172+
{
173+
"name": "edge_detect_3_3_2",
174+
"node_position": {
175+
"x": -357.725464,
176+
"y": -153.178955
177+
},
178+
"parameters": {
179+
"angle": 45,
180+
"mode": 0,
181+
"sigma": 50,
182+
"size": 9
183+
},
184+
"seed": -47470,
185+
"seed_locked": true,
186+
"shader_model": {
187+
"code": "",
188+
"global": "",
189+
"inputs": [
190+
{
191+
"default": "vec4(1.0)",
192+
"function": true,
193+
"label": "",
194+
"name": "in",
195+
"type": "rgba"
196+
},
197+
{
198+
"default": "1.0",
199+
"function": true,
200+
"label": "",
201+
"name": "amount",
202+
"type": "f"
203+
}
204+
],
205+
"instance": [
206+
"vec4 $(name)_fct(vec2 uv) {",
207+
"\tvec2 e = vec2(cos($angle*0.01745329251), -sin($angle*0.01745329251))/$size;",
208+
"\tvec4 rv = vec4(0.0);",
209+
"\tfloat sum = 0.0;",
210+
"\tfloat sigma = max($sigma*$amount(uv), 1e-5);",
211+
"\tfor (float i = $mode; i <= 50.0; i += 1.0) {",
212+
"\t\tfloat coef = exp(-0.5*(pow(i/sigma, 2.0)))/(6.28318530718*sigma*sigma);",
213+
"\t\trv += $in(uv+i*e)*coef;",
214+
"\t\tsum += coef;",
215+
"\t}",
216+
"\treturn rv/sum;",
217+
"}"
218+
],
219+
"name": "Directional Blur",
220+
"outputs": [
221+
{
222+
"rgba": "$(name)_fct($uv)",
223+
"type": "rgba"
224+
}
225+
],
226+
"parameters": [
227+
{
228+
"default": 9,
229+
"first": 4,
230+
"label": "Size",
231+
"last": 12,
232+
"name": "size",
233+
"type": "size"
234+
},
235+
{
236+
"default": 0,
237+
"label": "Mode",
238+
"name": "mode",
239+
"type": "enum",
240+
"values": [
241+
{
242+
"name": "Both",
243+
"value": "-50.0"
244+
},
245+
{
246+
"name": "Single",
247+
"value": "0.0"
248+
}
249+
]
250+
},
251+
{
252+
"control": "None",
253+
"default": 0.5,
254+
"label": "Sigma",
255+
"max": 50,
256+
"min": 0,
257+
"name": "sigma",
258+
"step": 0.1,
259+
"type": "float"
260+
},
261+
{
262+
"control": "None",
263+
"default": 0,
264+
"label": "Angle",
265+
"max": 180,
266+
"min": -180,
267+
"name": "angle",
268+
"step": 0.1,
269+
"type": "float"
270+
}
271+
]
272+
},
273+
"type": "shader"
274+
}
275+
],
276+
"parameters": {
277+
"param0": 9,
278+
"param1": 50,
279+
"param2": 45,
280+
"param3": 0
281+
},
282+
"seed_int": 0,
283+
"shortdesc": "Directional blur",
284+
"type": "graph"
285+
}

material_maker/library/base.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2871,14 +2871,14 @@
28712871
"display_name": "Directional",
28722872
"icon": "filter_blur_directional",
28732873
"icon_data": "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",
2874-
"name": "directional_blur",
2874+
"name": "directional_blur2",
28752875
"parameters": {
28762876
"param0": 9.0,
28772877
"param1": 50.0,
28782878
"param2": 45.0
28792879
},
28802880
"tree_item": "Filter/Blur/Directional",
2881-
"type": "directional_blur"
2881+
"type": "directional_blur2"
28822882
},
28832883
{
28842884
"display_name": "Slope",

0 commit comments

Comments
 (0)