<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вс, 6 нояб. 2022 г., 00:52 Igor Vladimirsky <<a href="mailto:sitelve@gmail.com">sitelve@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 2 нояб. 2022 г. в 12:53, Andrew Randrianasulu <<a href="mailto:randrianasulu@gmail.com" target="_blank" rel="noreferrer">randrianasulu@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">So, as Igor noticed CinGG's divide and subtract modes do not behave like they behaved in Cin HV/CV/CVE I digged into matter a bit and found few confusing (for me, amateur) things...... </div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto"><div dir="auto"> But moreover, according to documentation CinGG composites tracks a bit backward comparing to photo editors:</div><div dir="auto"><br></div></div></blockquote><div><br></div><div> I found this in my archive.</div></div></div></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Very cool, thanks!</div><div dir="auto"><br></div><div dir="auto">So, for your specific preferences does inverting S and D in overlayframe.h for subtract and divide return familiar behavior, especially with  huge use of reroute/inversion? I do not think making it new default unconditionally will be good, because some modes compositing this way and some - that way add too much confusion, but a) you can use personal patch and hopefully b) I'll find some way to make this behavior configurable ....</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote">In 2016,  I asked GoodGuy about the Divide blend mode.<br>I showed him a quote from from Changelog 2.1 <a href="https://github.com/cinelerra-cv-team/cinelerra-cv/blob/master/cinelerra/CHANGELOG.2.1" target="_blank" rel="noreferrer">https://github.com/cinelerra-cv-team/cinelerra-cv/blob/master/cinelerra/CHANGELOG.2.1</a><br>Quote:<u>" For overlaying, divide behavior is the same as the Gimp.</u><br>New overlaying algorithm: Max takes the maximum r, g, and b values."<br><b><br>GG's answer:</b></div><div class="gmail_quote"><b>------------------------------------</b></div><div class="gmail_quote"><i><b>"</b>This is the math form Gimp currently uses:<br>STD_BLEND + (Sa == 0.0 || Dc / Sc > Da / Sa ?  Sa * Da : Dc * Sa * Sa / Sc)<br><br>HV 4.6.1 (and CV) actually uses:<br>(Sc > 0 ? Dc / Sc : 1)<br><br>Cin5 actually uses:<br>(Dc > 0 ? Sc / Dc : 0)<br><br>So, none of these look like Gimp. But Divide is a bit squirrelly.  <br>It can fail on a per pixel basis because of divide by zero.  <br>I prefer src (top track) / dst (btm track) with divide by zero as black (not white).  <br>I think this is the way most would like to see it work, since it is a stack of operations, and it easier to work up from zero, than down from 1."</i><br><b>---------------------------------------</b></div><div class="gmail_quote"><b><br></b></div><div class="gmail_quote">----------------------------------------</div><div class="gmail_quote"><br></div><div class="gmail_quote">This is from CGG'code<br>Cinelerra-GG<br>// DIVIDE       [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) +  Sc / Dc]<br>// SUBTRACT     [(Sa - Da), (Sc - Dc)]<br><br><br>But in HV and CV*, the Subtract and Divide blend modes work the same way as GIMP, Photoshop, Adobe Premiere Pro, EDIUS<br><br><b>GIMP</b><br>Divide mode multiplies each pixel value in the lower layer by 256 and then divides that by the corresponding pixel value of the upper layer plus one. <br>Subtract mode subtracts the pixel values of the upper layer from the pixel values of the lower layer. <br><br><b>Photoshop</b><br><a href="https://photoblogstop.com/photoshop/photoshop-blend-modes-explained" target="_blank" rel="noreferrer">https://photoblogstop.com/photoshop/photoshop-blend-modes-explained</a><br>Divide<br>Background layer ÷ Active layer = Quotient<br>Subtract<br>B minus A<br><br><b>Adobe Premiere Pro</b><br><a href="https://helpx.adobe.com/premiere-pro/using/blending-modes.html" target="_blank" rel="noreferrer">https://helpx.adobe.com/premiere-pro/using/blending-modes.html</a><br>Divide<br>Divides underlying color by source color. If the source color is white, the result color is the underlying color. Result color values can be greater than 1.0 in 32-bpc projects.<br>Subtract<br>Subtracts the source file from the underlying color. If the source color is black, the result color is the underlying color. Result color values can be less than 0 in 32-bpc project<br><br><b>EDIUS </b>(quote from its manual)<br>Subtract <br>Subtracts the overlay color values from the background.</div></div>
</blockquote></div></div></div>