From 05c3f58fa966f350d0d5c85ed93f1281010a859b Mon Sep 17 00:00:00 2001 From: LMW Date: Sun, 17 Dec 2023 20:44:59 +0800 Subject: [PATCH 1/4] make 2d sdf boolean nodes variadic --- addons/material_maker/nodes/sdboolean.mmg | 33 ++++++++------ .../material_maker/nodes/sdsmoothboolean.mmg | 41 ++++++++++-------- .../node_simple_sdf_operators_sdboolean.png | Bin 4253 -> 4613 bytes ...e_simple_sdf_operators_sdsmoothboolean.png | Bin 5835 -> 5932 bytes .../node_simple_sdf_operators_sdboolean.rst | 4 +- ...e_simple_sdf_operators_sdsmoothboolean.rst | 4 +- 6 files changed, 50 insertions(+), 32 deletions(-) diff --git a/addons/material_maker/nodes/sdboolean.mmg b/addons/material_maker/nodes/sdboolean.mmg index de9e0d993..cf797c268 100644 --- a/addons/material_maker/nodes/sdboolean.mmg +++ b/addons/material_maker/nodes/sdboolean.mmg @@ -1,51 +1,58 @@ { + "generic_size": 1, "name": "sdboolean", "node_position": { "x": 0, "y": 0 }, "parameters": { - "op": 0 + "op1": 0 }, "seed_int": 0, "shader_model": { - "code": "", + "code": [ + "float $(name_uv)_b = $b($uv);", + "", + "#for", + "$(name_uv)_b = $op# $s#($uv), $(name_uv)_b);", + "#end" + ], "global": "", "inputs": [ { "default": "0.0", "label": "", "longdesc": "The first shape, defined as a signed distance function", - "name": "in1", - "shortdesc": "Input1", + "name": "b", + "shortdesc": "Base Shape", "type": "sdf2d" }, { "default": "0.0", "label": "", - "longdesc": "The second shape, defined as a signed distance function", - "name": "in2", - "shortdesc": "Input2", + "longdesc": "The subsequent shape, defined as a signed distance function", + "name": "s#", + "shortdesc": "Shape#", "type": "sdf2d" } ], "instance": "", - "longdesc": "Performs a boolean operation (union, intersection or difference) between two shapes", + "longdesc": "Performs boolean operation(s) (union, intersection or difference) between two or more shapes", "name": "sdBoolean", "outputs": [ { - "longdesc": "The shape generated by the boolean operation", - "sdf2d": "$op $in1($uv), $in2($uv))", + "longdesc": "The shape generated by the boolean operation(s)", + "sdf2d": "$(name_uv)_b", "shortdesc": "Output", "type": "sdf2d" } ], "parameters": [ { - "default": 2, - "label": "", + "default": 0, + "label": "2:", "longdesc": "The operation performed by this node", - "name": "op", + "name": "op#", "shortdesc": "Operation", "type": "enum", "values": [ diff --git a/addons/material_maker/nodes/sdsmoothboolean.mmg b/addons/material_maker/nodes/sdsmoothboolean.mmg index 7b7fb0cff..4275addb0 100644 --- a/addons/material_maker/nodes/sdsmoothboolean.mmg +++ b/addons/material_maker/nodes/sdsmoothboolean.mmg @@ -1,16 +1,23 @@ { + "generic_size": 1, "name": "sdsmoothboolean", "node_position": { "x": 0, "y": 0 }, "parameters": { - "k": 0.15, - "op": 0 + "k1": 0, + "op1": 0 }, "seed_int": 0, "shader_model": { - "code": "", + "code": [ + "float $(name_uv)_b = $b($uv);", + "", + "#for", + "$(name_uv)_b = sdSmooth$op#($s#($uv), $(name_uv)_b, $k#);", + "#end" + ], "global": [ "float sdSmoothUnion( float d1, float d2, float k ) {", "\tfloat h = clamp( 0.5 + 0.5*(d2-d1)/k, 0.0, 1.0 );", @@ -30,26 +37,26 @@ "default": "0.0", "label": "", "longdesc": "The first shape, defined as a signed distance function", - "name": "in1", - "shortdesc": "Input1", + "name": "b", + "shortdesc": "Base Shape", "type": "sdf2d" }, { "default": "0.0", "label": "", - "longdesc": "The second shape, defined as a signed distance function", - "name": "in2", - "shortdesc": "Input2", + "longdesc": "The subsequent shape, defined as a signed distance function", + "name": "s#", + "shortdesc": "Shape#", "type": "sdf2d" } ], "instance": "", - "longdesc": "Performs a smooth boolean operation (union, intersection or difference) between two shapes", + "longdesc": "Performs smooth boolean operations (union, intersection or difference) between two or more shapes", "name": "sdSmoothBoolean", "outputs": [ { - "longdesc": "The shape generated by the boolean operation", - "sdf2d": "sdSmooth$op($in1($uv), $in2($uv), $k)", + "longdesc": "The shape generated by the boolean operation(s)", + "sdf2d": "$(name_uv)_b", "shortdesc": "Output", "type": "sdf2d" } @@ -57,10 +64,10 @@ "parameters": [ { "default": 0, - "label": "", + "label": "2:", "longdesc": "The operation performed by this node", - "name": "op", - "shortdesc": "Operation", + "name": "op#", + "shortdesc": "Operation#", "type": "enum", "values": [ { @@ -80,12 +87,12 @@ { "control": "None", "default": 0, - "label": "", + "label": "2:", "longdesc": "The smoothness of the boolean operation", "max": 1, "min": 0, - "name": "k", - "shortdesc": "Smoothness", + "name": "k#", + "shortdesc": "Smoothness#", "step": 0.01, "type": "float" } diff --git a/material_maker/doc/images/node_simple_sdf_operators_sdboolean.png b/material_maker/doc/images/node_simple_sdf_operators_sdboolean.png index 1074478446a41a2fbbc1fa20f8f33f10da19cafe..6ee8ff350cd160d91f5502aadf3478b68897a33b 100644 GIT binary patch delta 4607 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 delta 4245 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 diff --git a/material_maker/doc/images/node_simple_sdf_operators_sdsmoothboolean.png b/material_maker/doc/images/node_simple_sdf_operators_sdsmoothboolean.png index bedb9386fe8761076f1b80bb83b18091dfb8caa7..941e10a5cee7a6ba5a54f15fb3a5a01458aa79d3 100644 GIT binary patch literal 5932 zcmaiYbx_n_)c2Q0LKX=T6zNXcC8S|N5b32$nw4fzVu__;k(OFI1SAy%lv?;LC5@DH zcZt#nygYxr^ZfbD-1|8*_ue^k?q^QTiP6z|K}p6)1^@u1x*AmPPA=VTJyQHT{7+N6 z_fFs;^j;_d)kBZB0f2r(9jXZP&EC)P380;r>B$p&D`B0Y$(~AUssII9>8^#UX%Y&R zB{~7T4>^|j`9d$z_~JT8ZES4O;Oz%GLNA-6%V2mact^y9gi1={Z&UUTju8h>Y0~V+ znC?j~YRg>=3}i|Ti`8MJ{$@XO)S10MzpN^$FmKPV31VQF697Z+d%b%UJ@u~JxwVGY zx6b^T$hZ5NI@-JdaQd4lcb0cJwW&6+-$;p8zEG_+tGHAb_B1MRY{&7aWzHn*a>Df5NYU-sJ4Wq5Uo#0E{K z9U%1;dC2b#Zg9DqRer#?X>gILtI4d00%n#&7_BN20eY+aS^*Y%lI*3nLxT+nUR%?~ z;wvOVUaP%%8Fh6iev#oN<{IS_(CFST(S_y@cf?B!qQ!@@_vO?fC*o8^@RZoeLVV(? zUOnK2J!b3x^5N)EgESjrnTzO(U!Hd+MU?T4GC&DXp$5QK&auZ?M<4*$?g{Wo1wRWM zj&uzjQ(;e!IQo@pEQHnC1MY*qXYb*+7FV>}LaqJ)4 z;Atj5%_3YtHWy_bG(-)Uiao{M{ zZGJ*ECbDH;x>;)(-|g-41VsNK=r@$Jr{Q3RwE@wxnf9xB#xA$DIJ$N!w=yQyg$Z%A z_B2%*_gi8zrH{=i*}@YamCz-@)8gkDWUbpaUqE)DC#sDgRkZ7O8s%KG8srQIv4n%3 z#=56RHML4Fr?NMn`fcF!C~zZ;-3n^ZekYSeuR0f?{m9(um0f}0ur5rGMVbM+{k(yg zJ1npFb4NVM& zG(zb_I%o@l{BP}TZ+{TaHy+z^=UpsKEJbfT6t>cfdCA^{DfwG$Q^VE(rDi}Aqw;@) zBCWlu&ELXnmFcMOY{fkrGz+h&P0q4Mz`a8DmUz?bGk-d-ESIW+Z!tYglyOC$efyjF z`KPV_y%1*IX)3gluHR2eb{Za9mD3=Tb zpR|SN*78`tmq*$zOYCC%=*b^JvjPKKlG}{y6*<47pOo?uBw)aKc!Xl`^D8aY(`-@Ul00=1 z)T90l`|R%{pB#;}G zXB?eTsK*@o+}QbNH6H?m;6jdc-`BgjU+PL^z%ofC8ti;N9^zn#J?^SsZ{@00*5AJ| z3Mu=yqe3jDw7B!^>fg0JudtTgzgLVM3EEdL%%jA$&(ySH4zG^L5!^#LljXK88Yxf# zc~RFEBfWsq`{9XHCD?jL+*A+tO7#2N!}Jtx0zk;CI-Yu7Booe(9x347|@cg`H?N?l5SRQhUOu^Nli+bDug>-hVs` zABlcdzvN*4&U*ci0RBQ?(XC&<}$%4p{#j?vrMh^VkvrLwPcYy{s_c_umCvD9+D!b|DsPbW}`b2avU~Cfo90RL3J0hnWBQ3j=mmeJ^jf z?Ort-0{M8vsOU7ojeTP|_ntqQyK=p4*(VqB=@rJxq^X102V-H~+}|~6lwg&3p?F1+ zZf0$xy0Aj{OnhpV*}}9q9~TBNmq9H5`y>{QDk@v+Y_nbV)CEu>fWk$PA!E(dLxEwg zVXf<>@e)>HnQiC#b5lWOOW!|X`dOz{vqy6|2@|rxDv3TqTKu)^MBz~!#rL(c_qG~I@Y)&aUx^JOvT z-s6%os>MTJd=V95HX#!}Uup21-I>ij++F)MR_$m#*dH4l(TNDWAe zJ$<~8Es<57-AoGj%lNM+#0p9`5TV*XC;mxZ(FE`E>crdlVh9u(`b}~hB*#uvtNXV% zOYbv~19J3>AGT>W4ozfBrfdNn{V@O~`+=60-sX>J!X@@cg7y=~r@ zYGqfK-)R%WPY6a*N{XdL3ZPwIGt$q|`KW-`9<`wXv))anjB40_au>e+{0q~qZoATB z4zU;t9sfYt(P&k6OcBGQitm{XA8P^=5uC_Q4H|h2L^}-%=oB-_jKK~U9#+Bug;B8i zRSXY?Ed!PTD=B83y78OlduSAcILTItv1Q(s`aFDQwO?HXmvy~De?@Tr)XE%}9dZckU7`$=P$^8^^k>Q$Y1TlzndSrp2 zR*8T{;)Sqvah4?qRLK$nwL<2qw1s7SxO)IVnCRY*kjfUE>F%iSG4~G8Xe|>O;05(@ zUHcIMJWy-OT_f|3HwAkv_HMc8-zRk};T(#U^>81}IFcd0##YHN4#2E9iJ< zmOG#3NJ*)c0nUaPRP>jSjrL+*qB_62Pb}XIQS`HrMf9jj?RAy&XcT&TpM^yAP?E=x z+B5k7`oNuKBFG@Z${{24roET-?gtknCT2cw&bDsjFHfS1&>Z@y3pLOEeYU3h$B5&Z zCJS93tLRcuYBo%kXxS zJ>%n*=1r~Qs}U|n-K>X|wULDWoL^{_*>{>Xr7t zfT}B7yGv4a`nf*q55=M{SBfAZ5Yaf0*V!Tlt~EJ6NN#x72syfE4FAb4fy)OYo%)-; z%8w22|J#dwRIzc_n4g|+4=)&xoW*oZd_Sio92^PDWg11SDFDA3-yszZwN}Owt|ABl z1y8r-p#*uV_f8AW$4iz)B!_0rfwTYK`g71TjQ)#=J2XtLs+sUQF^@z})D0cPOW)-_ zjqDG!Am+PT@^v@mXG1AkA;rw-T_!jb!66N>5T*gaN^0uXq5z8mSjivJWR;I);|2eyD`uv$7NL~TceP$Oj}t?OKIL4kI;ku z9>10WA*xpWzCq#_G{_jg(g;zF#{4(tGJV6Kn7H!za z)Y<7($=QyT#OfG8bW>oVS)vXp2{G$Z*NpfmeL4}=v_DNnK>L3gOx5!66>hQTrw2Rn ziUumzepfg8i_Cba_`ri^$JbPmf`Toitfi;S7Ri^Vzo)po_YhX8QjXbj*yHW*m$eHz zRv+{~BSuw+O{twX9&mGCNl?vU-CnHcs2h;d0UQARNXpXi+RsY@w!=NqLwvjosF{nUHWw23)}MPn)7v#wnGszUG)4y6wt#hThP7^ z(RI`dK&H#o_-Sj3>G+yg3TYx+7w?;Aclh&}9|oHh}A z_~k$-A7sj0ry+;6?rrc}-ZhmroXW>y`4xi8@u#hhK~BTc|SQg7-wTfj1=+ zHTJdhpS|%rn*X}E{Dkd~H@*-by6LP7;kEYqNuYjRF(7iiB)sbwU~Y9Vp^#79C@L^4 z_vg)Zn@qBfC6TyWTPHKsm+1@4bZs?abnABUtoLYR& zW^!$-)ZOuV``0?;|4BLDqV8KJT~j8UTSSz)c#UfM474vjFUSs7Qh0H;bF#C>H;bp7 zLmU^cDP(Fdy<{m!SGLJT5T@EAs740F)8@iqjuaGqis_t0z_yp0t+egyr8prCJ}Vv< z7wx+XZYv&WTN??05XU6@$spxQh z1%ap{TF#wF+-BU17q!DpxuNQ-idVYDdHH%A5KhVG%7T!l=nZ#8IN1-1%>7c zjvtEs;^$OVd#z*irdZUyV{nU0XFblV7&NeDc=b@9f?{r5&2|BQ|3Qfo5iHs6wNBvO zv(+Tmk>Vrzt)o3MXQfn*M+~q$M)-hPKH`3sr=Rey4L;(&#LW9t;zk4mC{{H0Hhb-4a26Ep26gbf%^F7*gFtO!}%(RQMC z0&zI*Vgke8o3<#Xbc4$NFDU8g2_}r{7XKQ2seIj?CgZf<{tMZ zf2`O)?c3l9gkOqra>hr*rb)CUP^#G|<&hxe+7WXxDW&p@UsY&}yHCrue@cqQc0wCP zGTk!L=4{~ajC!Pf+tAjdSN9*&cbQ#n?k(0#(fmj#c3m)qnJ0r?q9=AFf;&p%_F-cm zA5UxU@(t|;T@S94n3c&Uzg&=X3c4-Z-Z+Pffx9z6518rs)b$iQPVW5;mibdRHFR@B zAKR6jlERM+cvzqOm@%h=;41i{W`DLJm;ewrJE$}&jfjl=<ecj!Y>K2Sjao;mf^*l`nO7H2|&141VK&v_ATp+ikDnrFw$a&{^eY=?Yk)0`coF z{X5RI<(6r-+urfC)mvF9bpD_WS(X&y;@Wv?`{ElrDBiIrPCX_zZsS`yc4}AMLx%-e z+qB9`NmU36QuOe6T@~284=)spHE;TGw3;A~rw}iAw)b??465RP7?MA%Ec(SqvpnK7Us_88hnLQ_SRx8kNPhQ>*@b`FTni$QSJrk?(Ps=yh&8*PA6dYy`hB8!(akHmDB{&rIf%`ARDyhiQSndPy>UsRz=ar{oAuA z1}2}_EITt$JwASTs6xt&{ey#4DJo>fzEA77sxv>M|Ko(9APA1-8#+!mCTd7umZkH29x zcfVOQpG~Gmt+Szj*3#|DSv07YxsE;WK99PNij;jW$;HLTGV(lVu2&}Zg0}qjo1qpW+ZXbpXH`ac3ZTwAeL>5kUtmuf0_t&#i@`%#Vjv~0 z^v~WGGvp85LJFN$OR7TfCZ*hm0F*}hGkO7YvUS;73U9^$hoq&EUoX3%m**J2cz!;< zj&H>FrQDBuE-x>~Iivic$>x>>Y5dQ9>ZUtCzf%9Q%H=ot+cyUpINDq9o38I6wL9Lz z*N+Y$53+%QpdwtA)x?dzoVdcUjQ^WeG{16hzgrn_|EO&2Fq}JI77u1&5#A~oB1O8KTF#8R!5Gm*o{B}*u7zpDxjkqotVN?RSMozrn;rW_T2 zSMl3O?yL#t=@99_3y|K6b#}R{A1$NyCZ@3o(Qb=nLw9pvlv(0Od=(U1(czNhs)ibI z97Rtid(ol7)PfMUAd{CvKx={)X_>|$#e|ax!-8cFohjpAZ!r;*AsfSO5hbrmgWwbJX*{|Emx BSv&v$ literal 5835 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 V1v~MP=yCu6002ovPDHLkV1n}%Hp2h_ diff --git a/material_maker/doc/node_simple_sdf_operators_sdboolean.rst b/material_maker/doc/node_simple_sdf_operators_sdboolean.rst index 668023058..a2eabf866 100644 --- a/material_maker/doc/node_simple_sdf_operators_sdboolean.rst +++ b/material_maker/doc/node_simple_sdf_operators_sdboolean.rst @@ -10,7 +10,9 @@ intersection or difference) of its inputs. Inputs :::::: -The **sdBoolean** node accepts 2 inputs in signed distance function format. +The **sdBoolean** node accepts two or more inputs in signed distance function format. + +This node is variadic, and more shapes can be added. Outputs ::::::: diff --git a/material_maker/doc/node_simple_sdf_operators_sdsmoothboolean.rst b/material_maker/doc/node_simple_sdf_operators_sdsmoothboolean.rst index 692302e84..74da8ad50 100644 --- a/material_maker/doc/node_simple_sdf_operators_sdsmoothboolean.rst +++ b/material_maker/doc/node_simple_sdf_operators_sdsmoothboolean.rst @@ -10,7 +10,9 @@ intersection or difference) of its inputs. Inputs :::::: -The **sdSmoothBoolean** node accepts 2 inputs in signed distance function format. +The **sdSmoothBoolean** node accepts two or more inputs in signed distance function format. + +This node is variadic, and more shapes can be added. Outputs ::::::: From d8cfb6313acce9e830cef5f3c1c329ba5c0c0ca2 Mon Sep 17 00:00:00 2001 From: LMW Date: Sun, 17 Dec 2023 21:09:22 +0800 Subject: [PATCH 2/4] base library default parameters --- material_maker/library/base.json | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/material_maker/library/base.json b/material_maker/library/base.json index 0107c2a13..c60fe778a 100644 --- a/material_maker/library/base.json +++ b/material_maker/library/base.json @@ -365,13 +365,7 @@ "icon_data": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAC5hJREFUeJzlm31sldUdxz+0lwC3jSjKi4SJgWUIlaARCILGAIkKgtMEoiQaAbPEjWVZjMnUqDPTCRqUxVFncGsgwWBGpBDbhvEyZbwMUOottlTQMSlIBzIubW9L3+797o/zu/RynqelwK1j45ec3PJ7e77f33POec5zngOAXFstOCFYoQ5duuUJPhQ0CnYI7gzxQXCfoFRQL2gRVAkKBTMFuZ3EhLVciym0HC2Ws9SuERZzp2FrNKx5IT4rjOPqTD2CXwhqBJ8Ibg4J/JOgQfB3wYROALwmOCZoF+wXvCAYeBGkO2sDLdd+y33MrhXmO8EwNhhm336zcawxzggYIdgp+KdgfkjQrwWnBV8IpoXYf2AVPys4aXdtWBaI+22Y5T5p1/rQru37TTOspw27b59vXHfKced1wb8Eq0KcHzTnY50U51bBxxl3/bELkOglmCL4ieBlwVJrL5tuivl0leMxdfSGjw1DGMljhv3BEPsq4/y6gHLBAcE9nlOeYKtcd1oakmSUYLsB2SYY3wXoh1RUVKT9+/crHo+rra1NvrS1tSkej2v//v0qKioSPNRFvvF2zXbDMCrEZ6lh36rgfHCPcS4XblJ4NyTBb+Qmnq2Cfp4tX7BRkDT7iE6APqJNmzaprq5OkhSPxxWLxVRcXKzCwkItBi0GFRYWqri4WLFYTPF4XJJUV1enTZs2CR7pJPcIu3bSsOR79n5mrzcufvy7ctz5MuTuj5GbfY8L5oQE/1HQJtgtGB1iH6SioiLF43Elk0lVVVVpGWhqN8b6VNAyUFVVlZLJpOLxuPWIQSH+ow1Dm2Hy7XOMQ5Vx8nvBlwLWhAQuk3ucrA6x/VRwRm583Rtin6wdO3YolUqppqZGS0CDukHcb4NAS0A1NTVKpVLasWOHYHKI772G5Yxh8+2rjcuyENsaEZzcRljFjgqme7ZhgpglfDYk4VRVVFQolUpp27Zt3brj3ekR27ZtUyqVUkVFhWBqiN+zhimm4BNounGpUnCozhdwvad8Xm7yWBtyobfkultZiK1A+/btUyqV0vr16zW4C1J9QONBM62NN11n/oNB69evVyqV0r59+wQFIX5lhu2tENta4/S8p79eBJ23yD1DH/f0PxJ8JfhOMDtwkZKSEklSWVmZ+ndCZA7ofVAV6DtQg7XvTPe++YTF9geVlZVJkkpKSkJ8Zhu2rwxrpu1x47QlLHfmP+4WfCvYJ4h6jq9ahdeFJHlJLS0tqqio0OgQ8HeA1oHioHbQCVA5aKu1ctO1m886i/HzjAZVVFSopaVF8FIIjnWG8VVPHzVO3xrHTgvwoiAheC8k+R7rRvM8/UgdPHhQ9fX1erKTu15p5A7gHnsTQ/wmmu2A+VZ20hueBNXX1+vgwYOCkZ59nmHcE4L/PeP2YlcFWCeoEyz0nGYI4lZFP/EbSqVS2rBhQ8B2P+gQqBn0Z9AtnXTvzHaL+TZb7P0hPhs2bFAqlRK8EZJjn2Gd4ekXGrdAD07/0U9uFv1GwWfmErlVl79g6q1YLKb6+vrA3boWtBPUClrZDeJ+W2mxOy2X36vq6+sVi8UEvb3Ydw3rEk8/xrjF5C3s0n9MkFs/7w4BVCb3AvKEp5+jxsZG7d4djFlsBP4KyruEAuRZbKvl8u27d+9WY2Ojggu1Jwxr2JNqt3HseKPN4ZyMBPKAWs6X3sBw4AzwmWebQjQaZc+kSedp+wOzgEbgD/abKTOBD4Byax+YLlMyY2dZzkzZM2kS0WgUmOJZPjOsww17ptQax5HnNBkFGGoBJ7ygHwIDgH8DB86zbNw4mtbW1kBZZgMjgBiw1rMtBH5vpAZYm2W6hZ7vWssxwnL6NFtbW9m4cbRnOWBYBxj2TDlhHIee02QUYADQCzjtBQ0FokAcGzLnZMiQISQSCaq9iDuAvsCnnn4QsAi4FlgBPGBthekWmU+mfGq57vD01UAikWDIkCGeRYY1eh5RJ6eN44BzmowCRO3X77D9gQiQ8PR55Ofn09TUxHHPMgxoBw55+pm4zrcLeBqosva06UYSHAqHLNcwT38caGpqIj8/H9etMyVhmP2Bk+YWPafJKECu/bZ7Qb1xVfP1fYhEIiSTSZo9S18gCTR4+sGW7TBBOWy2wZ6+wXL19fTNQDKZJBKJAH08a7th9ueANIfcc5qcoDHiBbXhupWfrJn29nYikQj9PMtZu8Q1nr7WsvkjE9O1EZyCr7FcZz19PyASidDe3g6BW9DbMLd5+jS3jpuZUYAm+833gs5YIr+bNdHQ0EA0Gg2MtGN2qVGevgTXpScDy4EJ1pab7pD5ZMooy3XM0w8FotEoDQ0NGdjTkmeYz3j6NLcO/4wCpGfTjgnCyXELGHC+O1BbW0teXh5jvIjPcPdkgqc/DbwNnAQWAMXWFpjubYJT8ATL5T9pxgB5eXnU1vp9JsewNhn2TElzO//JIffyUGcLhXHe4iFXUCm3iTjWs70pSVq+fHlgEVMBOgOaF7KImQZaBdpjbZXpfL95lqMiZDG1fPlySRK86cWNNayVCn6LGGcc65TxwjRRcMhWSHNDVk/95T5InBUs8GwPK5FIaO/evYG4V2wV9zfQdZewErzOYlstl2/fu3evEomE4GHPtsCwlhp2P3aucT0kx5135HZTwt4AJ8rtvrbKbTn5X41yVF5erkQioUe92KgRaMO95+dcBPkci2mzHFHP/igokUiovLxckOPFrzCsrYZ9Ysg13jPO7wj3EaFGcJfnNEywSx3b3mG9A8FrSiaTKi0tDdimgartLq4H3dYN8reZb6vFhg2N0tJSJZNJdf6FaK46ts13KbhNdpdx/kK4V8ewF4f0W9VmwY1dgL5J1dXVSiQSeirEPhsUAyVBX+F2fO8B5Wb45JpumfkkLWZ2SL6n7O5XV1cLbuoC142GPewtFuMcF64rLPaMIwSHBbUK34T023Nqbm5WZWWlxoXYC0BrQKdwmx2ncBse261VerY1FuPnGQeqrKxUc3Oz4Llu4JpqHA4ruCG6WI479QpObgsFzXITiZ80KhgQaMXFxZKkzZs3a2AngGaBikCfg2pxM/wZ+/tzs83qJHYgaPPmzZKk4uLiUAzBbTyMQ7OCmzwLBPWKuFXRKc6X4bjlx9eefixVVR+Ql+cvipwcOXKE6dOns7K0lJ898ABHPHsJHQudMXS8+JzEf88MonmntJTp06dz5MgRbr/9dr75pjzg19jYSEHBo8AXGdqvgfssS6acAtqxyTnpGdNrZX8pOZjhw/1E50tNTQ0FBQWs2bWLGV34HQA+sdYV+RnAml27KCgooKampstrO2z+20SaQ66nTwIKLPy7JUePHuXHd9/dLd/02stf4XU3bg8wa/LkC/pv2L6dG2644SKvEnzz6bZcLKErLX9aci7s8v8tV30BLnkI+PJRthJ1U/w9wkuVrBXgZjL3WntW/pHFXFkrAEAd8MtsJgyR32U5X1YLAG4b+2C2k5r4O0zZkKt+ErzqC5D1IeDLry4z/vWsoOhcerwAo4G5lxjrf1brCenxAkBwr/9Kkh4vwPM9fYHLlB4vgL8zf6XJVf8UuOoLkPUh8NtsJ+xhyWoBrsOd9uhp8XcwL0eyVoA3s5Xoe5asFWBlthJ9z3LVT4JXfQEueQg8k00U/0W5pAJMmTKFKalUtrFctjQ1+UdlLiwRNwr8M1jpI3HXevotrFq1in79/GNRV4acPXsW2OJp0xz8Y359gRwi7kSVfwqvCnembmzgIosWLbp8pN+rjMVxqfL0w4De6UmwwDN+hDuLeSv/26P9GRyHaoIb945zjjuKeBvB6WA17svxzwme4v1fkIU47O04LpkSwXFuoJf776fjcNUq8hwLgfm4I2cbgTLcnq//NflKkVzc3vFM4H7ckdiVuFPImbIQWApU0AueEbyIO4l3H8Ejsa8Cj+HGTAuuGOohApcrvXCk++COVq4GXvB8IsBfgPHAK/wH+5VaOYSfSZIAAAAASUVORK5CYII=", "name": "sdboolean", "parameters": { - "bevel": 0, - "cx": 0, - "cy": 0, - "h": 0.08, - "op": 0, - "r": 0.3, - "w": 0.28 + "op1": 0 }, "tree_item": "Simple/SDF/Operators/sdBoolean", "type": "sdboolean" @@ -381,14 +375,8 @@ "icon_data": "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", "name": "sdsmoothboolean", "parameters": { - "bevel": 0, - "cx": 0, - "cy": 0, - "h": 0.08, - "k": 0.15, - "op": 0, - "r": 0.3, - "w": 0.28 + "k1": 0, + "op1": 0 }, "tree_item": "Simple/SDF/Operators/sdSmoothBoolean", "type": "sdsmoothboolean" From 0244fd9f4b6d05b79d042748be43cc6bb657fcba Mon Sep 17 00:00:00 2001 From: LMW Date: Sun, 17 Dec 2023 21:32:22 +0800 Subject: [PATCH 3/4] make 3d sdf boolean nodes variadic --- addons/material_maker/nodes/sdf3d_boolean.mmg | 36 +++++++++------- .../nodes/sdf3d_smoothboolean.mmg | 39 +++++++++++------- .../images/node_3d_sdf_operators_boolean.png | Bin 3719 -> 4055 bytes .../node_3d_sdf_operators_smoothboolean.png | Bin 5401 -> 5471 bytes .../doc/node_3d_sdf_operators_boolean.rst | 4 +- .../node_3d_sdf_operators_smoothboolean.rst | 4 +- material_maker/library/base.json | 18 ++------ 7 files changed, 53 insertions(+), 48 deletions(-) diff --git a/addons/material_maker/nodes/sdf3d_boolean.mmg b/addons/material_maker/nodes/sdf3d_boolean.mmg index 8954553e5..a5850119a 100644 --- a/addons/material_maker/nodes/sdf3d_boolean.mmg +++ b/addons/material_maker/nodes/sdf3d_boolean.mmg @@ -1,16 +1,22 @@ { + "generic_size": 1, "name": "sdf3d_boolean", "node_position": { "x": 0, "y": 0 }, "parameters": { - "op": 0 + "op1": 0 }, - "seed": 60292, - "seed_locked": true, + "seed_int": 0, "shader_model": { - "code": "", + "code": [ + "vec2 $(name_uv)_b = $b($uv);", + "", + "#for", + "$(name_uv)_b = $op#($s#($uv), $(name_uv)_b);", + "#end" + ], "global": [ "vec2 sdf3dc_union(vec2 a, vec2 b) {", "\treturn vec2(min(a.x, b.x), mix(b.y, a.y, step(a.x, b.x)));", @@ -28,36 +34,36 @@ "default": "vec2(100.0, 0.0)", "label": "", "longdesc": "The first shape, defined as a signed distance function", - "name": "in1", - "shortdesc": "Input1", + "name": "b", + "shortdesc": "Base Shape", "type": "sdf3dc" }, { "default": "vec2(100.0, 0.0)", "label": "", - "longdesc": "The second shape, defined as a signed distance function", - "name": "in2", - "shortdesc": "Input2", + "longdesc": "The subsequent shape, defined as a signed distance function", + "name": "s#", + "shortdesc": "Shape#", "type": "sdf3dc" } ], "instance": "", - "longdesc": "Performs a boolean operation (union, intersection or difference) between two shapes", + "longdesc": "Performs boolean operation(s) (union, intersection or difference) between two or more shapes", "name": "Boolean", "outputs": [ { - "longdesc": "The shape generated by the boolean operation", - "sdf3dc": "$op($in1($uv), $in2($uv))", + "longdesc": "The shape generated by the boolean operation(s)", + "sdf3dc": "$(name_uv)_b", "shortdesc": "Output", "type": "sdf3dc" } ], "parameters": [ { - "default": 2, - "label": "", + "default": 0, + "label": "2:", "longdesc": "The operation performed by this node", - "name": "op", + "name": "op#", "shortdesc": "Operation", "type": "enum", "values": [ diff --git a/addons/material_maker/nodes/sdf3d_smoothboolean.mmg b/addons/material_maker/nodes/sdf3d_smoothboolean.mmg index 9acf021b4..090803d7a 100644 --- a/addons/material_maker/nodes/sdf3d_smoothboolean.mmg +++ b/addons/material_maker/nodes/sdf3d_smoothboolean.mmg @@ -1,16 +1,23 @@ { + "generic_size": 1, "name": "sdf3d_smoothboolean", "node_position": { "x": 0, "y": 0 }, "parameters": { - "k": 0.15, - "op": 0 + "k1": 0, + "op1": 0 }, "seed_int": 0, "shader_model": { - "code": "", + "code": [ + "vec2 $(name_uv)_b = $b($uv);", + "", + "#for", + "$(name_uv)_b = sdf3d_smooth_$op#($s#($uv), $(name_uv)_b, $k#);", + "#end" + ], "global": [ "vec2 sdf3d_smooth_union(vec2 d1, vec2 d2, float k) {", "\tfloat h = clamp(0.5+0.5*(d2.x-d1.x)/k, 0.0, 1.0);", @@ -33,36 +40,36 @@ "default": "vec2(100.0, 0.0)", "label": "", "longdesc": "The first shape, defined as a signed distance function", - "name": "in1", - "shortdesc": "Input1", + "name": "b", + "shortdesc": "Base Shape", "type": "sdf3dc" }, { "default": "vec2(100.0, 0.0)", "label": "", - "longdesc": "The second shape, defined as a signed distance function", - "name": "in2", - "shortdesc": "Input2", + "longdesc": "The subsequent shape, defined as a signed distance function", + "name": "s#", + "shortdesc": "Shape#", "type": "sdf3dc" } ], "instance": "", - "longdesc": "Performs a smooth boolean operation (union, intersection or difference) between two shapes", + "longdesc": "Performs smooth boolean operation(s) (union, intersection or difference) between two or more shapes", "name": "SmoothBoolean", "outputs": [ { - "longdesc": "The shape generated by the boolean operation", - "sdf3dc": "sdf3d_smooth_$op($in1($uv), $in2($uv), $k)", + "longdesc": "The shape generated by the boolean operation(s)", + "sdf3dc": "$(name_uv)_b", "shortdesc": "Output", "type": "sdf3dc" } ], "parameters": [ { - "default": 2, - "label": "", + "default": 0, + "label": "2:", "longdesc": "The operation performed by this node", - "name": "op", + "name": "op#", "shortdesc": "Operation", "type": "enum", "values": [ @@ -83,11 +90,11 @@ { "control": "None", "default": 0, - "label": "", + "label": "2:", "longdesc": "The smoothness of the boolean operation", "max": 1, "min": 0, - "name": "k", + "name": "k#", "shortdesc": "Smoothness", "step": 0.01, "type": "float" diff --git a/material_maker/doc/images/node_3d_sdf_operators_boolean.png b/material_maker/doc/images/node_3d_sdf_operators_boolean.png index 2f200f697f7c03864442aeef343f52b89c3bf038..bd6268b94a1bfcbf4561850c6b20d5ecbb4497de 100644 GIT binary patch delta 4045 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 delta 3706 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 Y4`Ii%;HPYRdjJ3c07*qoM6N<$f^J$Tg8%>k diff --git a/material_maker/doc/images/node_3d_sdf_operators_smoothboolean.png b/material_maker/doc/images/node_3d_sdf_operators_smoothboolean.png index a7f495140cca76d3a4a952bdc8ac2df04696c8e4..e48164cc8c4852c869bc5c42784ec2d54cdd8a66 100644 GIT binary patch literal 5471 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

d4eECK+(-~UD4j?XrH-l$48Zr*COT9-V(5FzB_ zxMhD|efDfoGb(v&6MrkW@iQ8OQO`0=ZLL>P8qt4*!Z5VaXlP0ew+t=xjHZoeG@Q@R z`I;1N5d={X;`LxOt^;k6ghmWB6VZr)W+ECf&`d-l2AYXz#Go~1G|l_+zD6t4;&Bm; zo1GT#MYPp;t;x+AI@4C;wGJ&bplj}`Mhr9)(TIU&A{sH!Ohh9FZT6&h*aP?F_V2?o z%+Y@zU;oL*hF+uU(xvmr2ZyX)`)NtZ<+aDXe}2!v0sVpnemHjGUt7Ow4UKPCBKIPF zWN8cME%jEHdaJi^-agI!?)#AY2R!odnEY?|ZP>J>SFfIr&6*mq*zjS4=l%Avo_BRK zglrR?m6hReq@F%=PW@C=xFVjb(Og96MdtH?&~-SuvXsMlpJVi|vCZ~hq$3|3vT@Uv z&$ny?fbw$J9~aHH+im6L*EIICkkG*>v`7QDa|G)3|QhU^Sl2 zmYkH7c=X?wH#I3db;j@ace%53n2CJ7Gk^ED`|AI7iP>VVtaO7$YZ2b$(bs8>FqoSz zG9@_)0Nn2C%f}ep?&_43q_ARse*pYoGKX*OZZ?^8EIVQRC|(c>Pn{_!C~Ue)8c}G2 z)p!ic0Dus(b-EymYy*E9hwA;A$$^7MYHDg(mc1i8^MC#@_t6=@Y8I_D8lnwmG?F9( z02#7xI!TgZ)c^YpC3ODsvtB*t&3$~=H+xQ>KG(cTY6NM6)p*s_H2`3>T-`3%YBj5g zjpgvsV*t?JnHIC8#&y#MtMSUpD*S$b#}3)*q0N?@V6~n-cRfpBtQIo>xT~sTmejaz z+F&)FqA0s|?;SUGWM-x_F)3l@jLAh8E}c1h9ss6Het62{hohX!vdoAF?@zVcXoj}i zZ8K*~E-SA%dGb`VD5epSwpoq$(I=ad5)+m@zYqY5iY~tS)-rX6yL;~G0RSskf85ZC z7~}uw-D~26u>c^;a>0qhSO4<%O}e+t%|ctQ#?$L{6islxpJMLqMa6Xis`IVxXCbMhr9)(TG7S`63g?4Q}iy zix)2r`=Swrb)UA>OEUz^M)(tC4Gk5RHKGo8_AV=K!O)Yoj;1wf_DQcJy%R-}G{fix zp{2InZHbw>M(e;ZdXl6G0I)f-+gcfo8xhqoF3)JvGP<;>G8#7=L6f*_A_!1=MpuSu zww+ZqZeAEhpPtb*_%hculU|!6Tb9M@$`YRUwS{gPZ4ApA6I0Si@|umc!{Z_(NvGH| z)$fulDy{g}02*xtK~fai;2!zWLT407L&Ilk+$Q`#R`omjF^zjA00000NkvXXu0mjf D2{m9= diff --git a/material_maker/doc/node_3d_sdf_operators_boolean.rst b/material_maker/doc/node_3d_sdf_operators_boolean.rst index 70e6ed747..5111a1b51 100644 --- a/material_maker/doc/node_3d_sdf_operators_boolean.rst +++ b/material_maker/doc/node_3d_sdf_operators_boolean.rst @@ -11,7 +11,9 @@ boolean node applies them to the output. Inputs :::::: -The **Boolean** node accepts 2 inputs in 3D signed distance function format. +The **Boolean** node accepts two or more inputs in 3D signed distance function format. + +This node is variadic, and more shapes can be added. Outputs ::::::: diff --git a/material_maker/doc/node_3d_sdf_operators_smoothboolean.rst b/material_maker/doc/node_3d_sdf_operators_smoothboolean.rst index 6a56126d1..3533e72a6 100644 --- a/material_maker/doc/node_3d_sdf_operators_smoothboolean.rst +++ b/material_maker/doc/node_3d_sdf_operators_smoothboolean.rst @@ -11,7 +11,9 @@ smooth boolean node applies them to the output. Inputs :::::: -The **SmoothBoolean** node accepts 2 inputs in signed distance function format. +The **SmoothBoolean** node accepts two or more inputs in signed distance function format. + +This node is variadic, and more shapes can be added. Outputs ::::::: diff --git a/material_maker/library/base.json b/material_maker/library/base.json index c60fe778a..e1741a4a2 100644 --- a/material_maker/library/base.json +++ b/material_maker/library/base.json @@ -694,13 +694,7 @@ "icon_data": "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", "name": "sdf3d_boolean", "parameters": { - "bevel": 0, - "cx": 0, - "cy": 0, - "h": 0.08, - "op": 0, - "r": 0.3, - "w": 0.28 + "op1": 0 }, "tree_item": "3D/SDF/Operators/Boolean", "type": "sdf3d_boolean" @@ -710,14 +704,8 @@ "icon_data": "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", "name": "sdf3d_smoothboolean", "parameters": { - "bevel": 0, - "cx": 0, - "cy": 0, - "h": 0.08, - "k": 0.15, - "op": 0, - "r": 0.3, - "w": 0.28 + "k1": 0, + "op1": 0 }, "tree_item": "3D/SDF/Operators/SmoothBoolean", "type": "sdf3d_smoothboolean" From f1764b976fc1634f0f50e671cdb644d60802c71a Mon Sep 17 00:00:00 2001 From: LMW Date: Wed, 28 Feb 2024 20:47:14 +0800 Subject: [PATCH 4/4] defaults smoothness .15 for smooth boolean nodes --- addons/material_maker/nodes/sdf3d_smoothboolean.mmg | 2 +- addons/material_maker/nodes/sdsmoothboolean.mmg | 2 +- material_maker/library/base.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/material_maker/nodes/sdf3d_smoothboolean.mmg b/addons/material_maker/nodes/sdf3d_smoothboolean.mmg index 090803d7a..8b33d3d37 100644 --- a/addons/material_maker/nodes/sdf3d_smoothboolean.mmg +++ b/addons/material_maker/nodes/sdf3d_smoothboolean.mmg @@ -6,7 +6,7 @@ "y": 0 }, "parameters": { - "k1": 0, + "k1": 0.15, "op1": 0 }, "seed_int": 0, diff --git a/addons/material_maker/nodes/sdsmoothboolean.mmg b/addons/material_maker/nodes/sdsmoothboolean.mmg index 4275addb0..7458ce15a 100644 --- a/addons/material_maker/nodes/sdsmoothboolean.mmg +++ b/addons/material_maker/nodes/sdsmoothboolean.mmg @@ -6,7 +6,7 @@ "y": 0 }, "parameters": { - "k1": 0, + "k1": 0.15, "op1": 0 }, "seed_int": 0, diff --git a/material_maker/library/base.json b/material_maker/library/base.json index e1741a4a2..bc00b99f6 100644 --- a/material_maker/library/base.json +++ b/material_maker/library/base.json @@ -375,7 +375,7 @@ "icon_data": "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", "name": "sdsmoothboolean", "parameters": { - "k1": 0, + "k1": 0.15, "op1": 0 }, "tree_item": "Simple/SDF/Operators/sdSmoothBoolean", @@ -704,7 +704,7 @@ "icon_data": "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", "name": "sdf3d_smoothboolean", "parameters": { - "k1": 0, + "k1": 0.15, "op1": 0 }, "tree_item": "3D/SDF/Operators/SmoothBoolean",