From b34312250f6712333c8ce783758cc760290be204 Mon Sep 17 00:00:00 2001 From: LMW Date: Mon, 18 Dec 2023 13:21:17 +0800 Subject: [PATCH 1/3] Add Hue, Saturation, Color and Value blend modes --- addons/material_maker/nodes/blend2.mmg | 83 +++++++++++++++++- material_maker/doc/images/blend_color.png | Bin 0 -> 4138 bytes material_maker/doc/images/blend_hue.png | Bin 0 -> 6784 bytes .../doc/images/blend_saturation.png | Bin 0 -> 6755 bytes material_maker/doc/images/blend_value.png | Bin 0 -> 3906 bytes material_maker/doc/node_filter_blend.rst | 16 ++++ 6 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 material_maker/doc/images/blend_color.png create mode 100644 material_maker/doc/images/blend_hue.png create mode 100644 material_maker/doc/images/blend_saturation.png create mode 100644 material_maker/doc/images/blend_value.png diff --git a/addons/material_maker/nodes/blend2.mmg b/addons/material_maker/nodes/blend2.mmg index 626edc14..69808271 100644 --- a/addons/material_maker/nodes/blend2.mmg +++ b/addons/material_maker/nodes/blend2.mmg @@ -6,7 +6,7 @@ "y": 0 }, "parameters": { - "amount1": 0.5, + "amount1": 1, "blend_type1": 0 }, "seed_int": 0, @@ -61,10 +61,73 @@ "", "vec3 blend_exclusion(vec2 uv, vec3 c1, vec3 c2, float opacity) {", "\treturn opacity*vec3(blend_exclusion_f(c1.x, c2.x), blend_exclusion_f(c1.y, c2.y), blend_exclusion_f(c1.z, c2.z)) + (1.0-opacity)*c2;", + "}", + "", + "vec3 blend_hue(vec2 uv, vec3 c1, vec3 c2, float opacity) {", + "\tvec3 outcol = c2;", + "", + "\tvec3 hsv, hsv2, tmp;", + "\thsv2 = rgb_to_hsv(c1);", + "", + "\tif (hsv2.y != 0.0) {", + "\t\thsv = rgb_to_hsv(outcol);", + "\t\thsv.x = hsv2.x;", + "\t\ttmp = hsv_to_rgb(hsv);", + "\t\toutcol = mix(outcol, tmp, opacity);", + "\t}", + "\treturn outcol;", + "}", + "", + "vec3 blend_saturation(vec2 uv, vec3 c1, vec3 c2, float opacity) {", + "\tfloat facm = 1.0 - opacity;", + "", + "\tvec3 outcol = c2;", + "\tvec3 hsv, hsv2;", + "", + "\thsv = rgb_to_hsv(outcol);", + "", + "\tif (hsv.y != 0.0) {", + "\t\thsv2 = rgb_to_hsv(c1);", + "", + "\t\thsv.y = facm * hsv.y + opacity * hsv2.y;", + "\t\toutcol = hsv_to_rgb(hsv);", + "\t}", + "\treturn outcol;", + "}", + "", + "vec3 blend_color(vec2 uv, vec3 c1, vec3 c2, float opacity) {", + "\tfloat facm = 1.0 - opacity;", + "", + "\tvec3 outcol = c2;", + "", + "\tvec3 hsv, hsv2, tmp;", + "\thsv2 = rgb_to_hsv(c1);", + "", + "\tif (hsv2.y != 0.0) {", + "\t\thsv = rgb_to_hsv(outcol);", + "\t\thsv.x = hsv2.x;", + "\t\thsv.y = hsv2.y;", + "\t\ttmp = hsv_to_rgb(hsv);", + "", + "\t\toutcol = mix(outcol, tmp, opacity);", + "\t}", + "\treturn outcol;", + "}", + "", + "vec3 blend_value(vec2 uv, vec3 c1, vec3 c2, float opacity) {", + "\tfloat facm = 1.0 - opacity;", + "", + "\tvec3 hsv, hsv2;", + "\thsv = rgb_to_hsv(c2);", + "\thsv2 = rgb_to_hsv(c1);", + "", + "\thsv.z = facm * hsv.z + opacity * hsv2.z;", + "\treturn hsv_to_rgb(hsv);", "}" ], "includes": [ - "blend" + "blend", + "adjust_hsv" ], "inputs": [ { @@ -187,6 +250,22 @@ { "name": "Exclusion", "value": "exclusion" + }, + { + "name": "Hue", + "value": "hue" + }, + { + "name": "Saturation", + "value": "saturation" + }, + { + "name": "Color", + "value": "color" + }, + { + "name": "Value", + "value": "value" } ] }, diff --git a/material_maker/doc/images/blend_color.png b/material_maker/doc/images/blend_color.png new file mode 100644 index 0000000000000000000000000000000000000000..c76772f128a5d135cd71d9d5b0ee7c3a15aab821 GIT binary patch literal 4138 zcma)<_dC^(`^R60bB-OyI3!z0!m;-__NI(%$B1Nx(4ibFJE0D;N0D(H<0P|V??hSI zk-aHoeS3fZg3k}n`}xED%j3GQ`+DBj9cN;sO+(2_2><|%u8zjNe~$T2)QK? zF%W(oYXiuFSVUBy7)KMr(a0!ycCH~R@bb{2a%vE)t_Co8csz9)zq8>lM_pus4s2_p z;;iud{kNra1dx`Sp+-^d0eG2vA0^rrn1}%jUMKG=38i1n5r%C#pYqfUP*D7|pUT`H zTHN!~2Ol})8E@0NJ0p5mNIf%TlCM8ypheUWX8+O^gE)^{KfY4~K{P}9#kHA6L4(xf zuf(9ykPIteaM=qs_rm0{vBQG)pF(!B)f3Px0a#BLw1l6_p05RTy50bO3R zRdcoHmKb4>EqMQeJt=9l%73&L}*vqaRk+>WAt)d-ms3u`r>$l|}% zJgkkT&q;~RUaA4}?}_0#2Uv@B8sQ7fP*${~Ja2J3STQC1apwaH0~ASUv#+DcH77oH zkQu3pXV;I4b^j(9 zf{|kem%A}!oQxrfaV`*)$|;CiPM?dL1atKcMUl#cS?CKgeTfB9>%o2G`K+??X{7^gTn(0rd_^7PcK@fbRhq;*9SbQJ|n@A zCHs7j_a{ay2;Sui>Yn(10#}YQvy1(qn$Yv95#+-9njw}jEei)3R8&4#JwFYqeNR9>K)bEZcY2YA&hEfz5s*a69Q{z>S3aXO@n zJ_<0V@`qDalCapBn`aEdR(>14sng)1WG&%4xq;vhJ+gnuM0}Cu!*SwCf52`J8MNI;ev0uG{9KTkvMVO7l^x+icUo~6VD zMUo5@X#x@(8?qO#O*?a);K+euM=6|ClfQT7&pAB*RGDk?fE*4=}Kl9TL65;#E3ibE-&TiqmqdH3r zg);MwE>t)ik#q%^(tTOqUEg#**cc1Fyf}`KYLScFviQXUPBEh4ajL*Ew|Sl0LJI~+b-%n9t-DHp4NN^h@s-p^<(r*In_5(@MD4jJi$k}a8a;96 zar_uGG*|oqEJ}Bmase$@gZ-o`CxJHT{*xL?wfks1*6lb!q1r*(uMb^oGEV zgwOE@tu5sV+je$cm*$kKpDopkC>877Xoq*EibNtfP+8V=0yeZ9#r2;Zwsh0T=bE;q z*F&Ge+?7>*{3XT=g_@lS?$F#P4f8aLuFn)33#~SW7LI;V9zti>I__`SA5tivYzVow z9_XDM0du4x0(kpfpRmaZL)mnIm}~4?gZ|^GW&?~^USW#IO{`CVVWumN@BEXCHEjL1 z;i-eX%*w>E)2nddbKeWFrjG&)4OORFh_kBgw+3@aFKEy~5|*wQpwPLSFrJRwA^g`EAZkXC2Y zu_hs%3|ymQC!_6$NX2~@Vrk`6HS^(omDsV=KU39_!i(x^tZr$&$Jed z2)bD8cp>IKcKgrsGp~`|f6EuVI&RZ73l=zMi=cP_`j^+$G3==@uj9)pcY4B)NRA5S z(EC(j+V`1D2=$u=eVoZuXxC$JBlL1gYCD-nh2ue)`Ew-IAbEODFgC^`V^m~ICApsv zom`S)(x&iO@e9;9Otr~5EJ((t^*mK*SVhIwxC~ESHF^{QgQz*9aA z#J_x%pz$?DL#tCmROI+(J(RHUrE=i~qp`g5S)A(rhnAJG`w6X^_@oaiRpAnGn0m&T zY>76>iQ`Y*N4(ty#(=keKJ0U*bY_=N#`v?a0D>>?%<*?&jKN%ac^MCF2!H=HNj-Tq z-*^4qU{hwG_t(WxmUp}or*$yvsi1v4d;ttA$qLDL0B+Bw{*F#Yrax(yB-1wMYTC?- z8{?}a`i2}NX~CkhXcscLrVcGlQ@+voG`GQfRA0pYwSBprgL{t2NA7)lS7;PX3%|oc z_hGQ3rLsIhE|ndLky=~Ij&fEFvvE{LjumnA%!Bi1N!V1leMp+`(^HUSs1h}@>M~4B zO#_s~jm?)K60FqWfuPdmz97EpTdB|U4Y^am|Jofm2$kM*+D7JnXLkFd5?FbpFNscJ zkj3ln7UCNCfUECIx0ZuU0rHz!x^|pEGepM*d;{W5aWIt1ch6=fq`*I4sDixE9K_*n zWKiaDTSG`*P zkuP=PM-VJ7@L%qhsb%AMaehW;jOL_-d`C|aYv3n#+;_n(yNN?M-2wltF&ld_(Qo3yAU&xv7;jPK57)hcOpe>8%#y1H#%cZ@!Czk~K* z-GXXV)9X=Ynxz(L2~?Q1@7vU@-3k2)?9pB7G~jmn<9V&B&edq2> zZ49_0ySplNg6AvYi;%s{$tjO4Mu%<`dz~jkz;2n{Wm>W6T)8w1yanGO6zX7g&PdNs zzN%-B9DVv6Bk}!blgDUrAxzDUvk4UHw@fb6ybo1+_AFj*Y`|DJx;y6kQ!@K8ErxMv z8IYo!2RuRKaIU-?L2cya9+}d%A6o;r27WiNO&?Rh1KGInmj_GhFQAvcE1A?1)Hnvu zhE!-1>kYE*%XhTRz6lGG4X9`O>6FYpi8JFI?$40Lgz)L6#!mW1@)L%=2K0=c@N$&9 zW&O)4W>E{OW!vw^t+ub$pFC+3D&i3liMwQ7Q)cKL5=b%aWovo%tm5)!XLP2e7kOV2 zP8u9g3K1?(Lk?#mTVk6CjMF5M(bt!{tA7)br@$HJgP(n#_e0d;yL6IEpIlz4JMI(T zV3KV6XOE-U>uUzbBgrb2s3HSJH`{)c=+x|icKVr>gH;O7a&jKRzVc!kPBYG(nqoZ- z7Ge{G@KL_Pdyw&f-IeoW|M2;ux~|!}#zy+c4R~92=^6j8ky>P@MTJDT_M*dw0Kn~$ zu5gnlDZgg2YmxD+Pd#t)@8fUf>*kj8mc%EP4TrU0XmR!R9@J9oa08VzzsaFllvkVW z8UxY30*+fe@%NW$zgy|&HnQB8crC*@Sk-jar|5Y3>!S*WcEg^$CUFJOxsgr0dVHSE zg)x#K7xYW7QmFtP6B$w+2uSVKgF9Gid?1b=aAiMNu~=dQczAoRvgL+iZf#^({}r=U z#OHf3wOj{l8#46ymJ()`W$o#15X11n9$K#wbM|)J+0gHnf1s2!{K@g#1$PRZWi3DU zXbJX@E~h5u?ybh@WcfSQ4`zq34_&ZC)mXino}eIjEoUbiv@TSmN`_Hk=| zxVm4^FA@d+3P-vH)qk{C5&h{-DvOViFwWqA?|yB|&(Rpml3|Qsf7b_(%*;tjA|>;p zh)Fwk{w?0Evt`qn_|T&Rk=V{j9V${7$vw|s${`k!XJhlr*eao6kGnuA;!z&D>?aF$F>zV=fSXJ3T zUxj>pFu#6ioiBHfwKWTGLm2RCEzKvbUpd^Z%GPQPj@PEW&_J-Az)pgkrV=!!$L{-A zyo*+O$u7i9lqRK6IhFqK|4gRS)9dFu3XgpX($+22J_*IKm6_%ZJg#fV3@I_VYeV~0 z_qK7X;noEZ9vUlU(<|r7RZ9{~Hku~1~Z5HBF(0f z&GQum6;J=bd_Y*Dq~Z8{FfX8ecJ?0|u0B0y(?w}~%k_+lysztm&y6#a|C>EpaD2y( zsfHWCLtkk*u?sf!?l-AHq#DcO|6QNl_dmBiRFwRpV&+BdlSck!pX_|lTcMmd%&ht* zL7`;h^5s*QVpE8W;cn{$$oW=-gDEbaDM~SOFHMV3+sc+ zWE{CAe-huv&GAYqWfOTwjWa0w$RtDkie_A1{>?@4Peng(E*OcX|JH;dkORfh&?(4jX2l})BS6z`VGTG-+QPigWd;S4kO(PAQ8Y<%d E0KbK}hyVZp literal 0 HcmV?d00001 diff --git a/material_maker/doc/images/blend_hue.png b/material_maker/doc/images/blend_hue.png new file mode 100644 index 0000000000000000000000000000000000000000..509b6778dd0f60fcd96b121beeb8faf5ee634756 GIT binary patch literal 6784 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 literal 0 HcmV?d00001 diff --git a/material_maker/doc/images/blend_saturation.png b/material_maker/doc/images/blend_saturation.png new file mode 100644 index 0000000000000000000000000000000000000000..589ad4af85aa3b41948388545ef12227950797bf GIT binary patch literal 6755 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 d Date: Mon, 18 Dec 2023 13:31:31 +0800 Subject: [PATCH 2/3] reverts to 0.5 for default opacity --- addons/material_maker/nodes/blend2.mmg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/material_maker/nodes/blend2.mmg b/addons/material_maker/nodes/blend2.mmg index 69808271..e4d05141 100644 --- a/addons/material_maker/nodes/blend2.mmg +++ b/addons/material_maker/nodes/blend2.mmg @@ -6,7 +6,7 @@ "y": 0 }, "parameters": { - "amount1": 1, + "amount1": 0.5, "blend_type1": 0 }, "seed_int": 0, From 277a5e43ce83d08a8da2cce94aafec92a5037b9b Mon Sep 17 00:00:00 2001 From: LMW Date: Wed, 28 Feb 2024 19:03:44 +0800 Subject: [PATCH 3/3] swap top/bottom in doc, add modes in param section - in the sense that bottom refers to the background layer, top is the foreground - adds new modes to the parameter section of the doc --- material_maker/doc/node_filter_blend.rst | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/material_maker/doc/node_filter_blend.rst b/material_maker/doc/node_filter_blend.rst index 120764aa..5062589b 100644 --- a/material_maker/doc/node_filter_blend.rst +++ b/material_maker/doc/node_filter_blend.rst @@ -34,7 +34,8 @@ The **Blend** node has two or more parameters: * The *blend mode*, that can be one of the following: *Normal*, *Dissolve*, *Multiply*, *Screen*, *Overlay*, *Hard Light*, *Soft Light*, *Linear Light*, *Vivid Light*, *Pin Light*, *Burn*, *Dodge*, - *Lighten*, *Darken*, *Difference*, *Additive*, *AddSub*, *Hard Mix*, *Exclusion*. + *Lighten*, *Darken*, *Difference*, *Additive*, *AddSub*, *Hard Mix*, *Exclusion*, *Hue*, *Saturation*, + *Color*, *Value*. * The *opacity* is used when mixing the result of the blend operation with the background input when the corresponding input is not connected. When connected, the opacity channel is @@ -132,13 +133,13 @@ Blending modes +-----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ | Exclusion | |blend_exclusion|  | This blend mode is similar to Difference, but it is less intense  | +-----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ -| Hue | |blend_hue|  | This blend mode takes the hue of the bottom layer and combines them with the saturation and value of the top layer  | +| Hue | |blend_hue|  | This blend mode takes the hue of the top layer and combines them with the saturation and value of the bottom layer  | +-----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ -| Saturation | |blend_saturation|  | This blend mode takes the saturation of the bottom layer and combines them with the hue and value of the top layer  | +| Saturation | |blend_saturation|  | This blend mode takes the saturation of the top layer and combines them with the hue and value of the bottom layer  | +-----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ -| Color | |blend_color|  | This blend mode takes the hue and saturation of the bottom layer and combines them with the value of the top layer  | +| Color | |blend_color|  | This blend mode takes the hue and saturation of the top layer and combines them with the value of the bottom layer  | +-----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ -| Value | |blend_value|  | This blend mode takes the value of the bottom layer and combines them with the hue and saturation of the top layer  | +| Value | |blend_value|  | This blend mode takes the value of the top layer and combines them with the hue and saturation of the bottom layer  | +-----------------------+-------------------------------+-------------------------------------------------------------------------------------------------------------------------------+ Notes