Page 2 of 3 FirstFirst 123 LastLast
Results 11 to 20 of 26

Thread: The Weird Saturation Thing

  1. #11
    Join Date
    Apr 2012
    Posts
    486
    As mentioned above, I have "coped" with the saturation "thing" by using insta dry on, and a lot of thinners (like glazing with very low opacity paint)

    Has anyone figured out how to work with wet in wet blending (using the brush not the knife) that avoids the issue?

  2. #12
    I don't have any advice for that (I'm pretty much fine with the way artrage mixes colors since I always finish my paintings elsewhere, namely in clip studio paint for now), but you can expect some upgrades to the blending system coming in the future judging by the AMA comments here -
    https://www.reddit.com/r/IAmA/commen...lines/ddsix2g/

    I would be pretty happy if an optional blending mode could be added later, providing a less vivid/more toned down color mixing approach.

  3. #13
    Join Date
    Mar 2017
    Posts
    20
    Quote Originally Posted by HannahRage View Post
    I would point out that many artists like working at significantly larger sizes than that If we did nuke the performance just to refine the color blending a little further, I might have to go into hiding and stop answering support emails to avoid the raging mob.

    It also requires a lot of backend work rewriting the entire colour mixing algorithm; not saying it will never happen, but it's going to depend on many other things like how bored the programmers are, and whether it actually will make a noticeable improvement. It's entirely possible to make a more accurate and realistic version of many aspects of ArtRage's Stuff... if you don't mind purchasing NASA's entire computer stock to run it and no other features coming out!

    So we do pay attention to what people need, but it's often a balancing act against whether it's actually possible right now and whether it makes sense to try and do it in ArtRage at all.
    I know that you guys are big on moderating your developer load, and that Andy only has so much time, but the oil brush/knife tool are literally two of ArtRage's most distinguishing features, and this actually will make a noticeable improvement. From the AMA I gather that Andy is already interested, because he mentions oil brush improvements (and better watercolour, which is exciting). I also strongly suspect that this particular thing doesn't involve a rewrite (more on that below).

    In terms of the performance hit making people reach for pitchforks... say people like using 12 layers and they're at 6000x4000 instead... I'm guessing that about 250MB of that 400 is my painting, which means that 6000x4000 is maybe 1.5GB. That means you'd have to touch the entire file 12 times/second to saturate the memory bandwidth of a sandy bridge i7; and closer to every single screen refresh on a skylake/kaby lake. Also a skylake/kaby lake i7 gets ~250GFLOPS on Linpack, which means you have about 10,000 double precision floating point ops per pixel-second of that 6000x4000 file. That's a lot of compute room, and you can probably afford to drop a bomb here and there without enraging anyone. Also the solution to this issue will probably cost very little.

    Also, NASA's computers wouldn't run ArtRage any more quickly than my desktop unless it was ported to parallelize properly (ie, OpenCL), in which case you'd get GPU acceleration on a normal desktop and performance would be a non-issue, because that would add another 100,000-500,000 flops per pixel-second and you'd be able to nuke things indiscriminately.

    In that thread nekomata posted Andy says it's all 8-bit per channel with 16 for some colour blending operations, but there could still be some avoidable precision loss that would affect the output. Like even in a weighted average like x = (w1*v1 + w2*v2)/(w1+w2), where all those values are 8-bit, you'd actually want ((uint32_t)w1*v1 + w2*v2)/((uint16_t)w1+w2) because the numerator of the division will be 17-bit; with something more complicated it could be really easy to miss a spot and lose a bit of precision.

    nekomata & DarkOwnt, I've found that sometimes doing the blend in more steps, and moving the hue of the midtone towards a complement of the colour that explodes out can sometimes get better results? Like, if you're mixing those browns you'd mix through a deliberate third tone that was between the two but slightly more green, and then maybe the red won't pop out. Alternately swearing and reworking sections.
    Last edited by mr_reidpants; 07-08-2017 at 12:58 PM.

  4. #14
    Join Date
    Apr 2012
    Posts
    486
    Quote Originally Posted by mr_reidpants View Post
    I know that you guys are big on moderating your developer load, and that Andy only has so much time, but the oil brush/knife tool are literally two of ArtRage's most distinguishing features, and this actually will make a noticeable improvement. From the AMA I gather that Andy is already interested, because he mentions oil brush improvements (and better watercolour, which is exciting). I also strongly suspect that this particular thing doesn't involve a rewrite (more on that below).

    In terms of the performance hit making people reach for pitchforks... say people like using 12 layers and they're at 6000x4000 instead... I'm guessing that about 250MB of that 400 is my painting, which means that 6000x4000 is maybe 1.5GB. That means you'd have to touch the entire file 12 times/second to saturate the memory bandwidth of a sandy bridge i7; and closer to every single screen refresh on a skylake/kaby lake. Also a skylake/kaby lake i7 gets ~250GFLOPS on Linpack, which means you have about 10,000 double precision floating point ops per pixel-second of that 6000x4000 file. That's a lot of compute room, and you can probably afford to drop a bomb here and there without enraging anyone. Also the solution to this issue will probably cost very little.

    Also, NASA's computers wouldn't run ArtRage any more quickly than my desktop unless it was ported to parallelize properly (ie, OpenCL), in which case you'd get GPU acceleration on a normal desktop and performance would be a non-issue, because that would add another 100,000-500,000 flops per pixel-second and you'd be able to nuke things indiscriminately.

    In that thread nekomata posted Andy says it's all 8-bit per channel with 16 for some colour blending operations, but there could still be some avoidable precision loss that would affect the output. Like even in a weighted average like x = (w1*v1 + w2*v2)/(w1+w2), where all those values are 8-bit, you'd actually want ((uint32_t)w1*v1 + w2*v2)/((uint16_t)w1+w2) because the numerator of the division will be 17-bit; with something more complicated it could be really easy to miss a spot and lose a bit of precision.

    nekomata & DarkOwnt, I've found that sometimes doing the blend in more steps, and moving the hue of the midtone towards a complement of the colour that explodes out can sometimes get better results? Like, if you're mixing those browns you'd mix through a deliberate third tone that was between the two but slightly more green, and then maybe the red won't pop out. Alternately swearing and reworking sections.
    Sorry to get technical but you seem to indicate increasing bit precision is necessary. Aren't there algorithms to simply ensure non divergence which can be applied to data at any bit depth? E.g. Using as input R1 R2 R3 ... RN ensure output RX < max (R1...RN) and RX > min (R1... RN) I.e. Blending must result with something in between what you started with. That is all that's needed not more bit depth (although that would be nice too).

  5. #15
    Join Date
    Mar 2017
    Posts
    20
    Well, what it amounts to is how much precision you have within your calculation. Like, if you have 2 8-bit unsigned and you multiply them you need 16 bits to store the full result, and if you add them you need 9 (because the carry out is a result bit). So for example, if you just average two bytes, you have (a+b)/2, but if you're using an 8-bit thing you need to handle the overflow case. The result will always fit into 8 bits, but you need that extra one in the calculation. So there's the temptation to express it as a/2 + b/2 (say you're using a SIMD instruction like vaddubm on a PowerPC G4/G5), but that introduces errors:

    unsigned char x = 3, y = 3; printf("%d vs %d \n", (x+y)/2, x/2+y/2);

    will print "3 vs 2". More dramatically:

    unsigned int x = 1510000000, y = 1510000000; printf("%d vs %d \n", (x*y)/x, (uint32_t)((uint64_t)x*y/x));

    prints "1 vs 1510000000"

    With floats this is mitigated because you keep as much precision as fits in the mantissa all the time, but when you get to doing math with integers (as you often do in, say, hardware DSP applications, where I learned this, or in situations where your precision requirements are usually low and you want to get as much mileage as possible from your SIMD instructions (games and graphics programs)) it can get hairy.

    It passes ok in games (remember the really old 3d games where you'd be able to see little gaps along the edges of polygons? that was this kind of rounding error) and can apply well here, but when you do the same calculation on something repeatedly, that error can add up pretty quickly.
    Last edited by mr_reidpants; 07-08-2017 at 03:06 PM.

  6. #16
    Join Date
    Apr 2012
    Posts
    486
    Ok I get it... the extra precision could make the divergence shrink til its negligible. I'm just saying it isn't the only way to combat divergence of color.

  7. #17
    idg all those numbers u both r throwing around tbh, and I'd personally would be happier if artrage team invested their effort into developing cross-layer blending (adding picking up paint from underlying layers) - this is way higher on my wants/needs list, a leftover since painter days I suppose.

    as far extra/unwanted reds and saturation and stuff - this is why I finish my stuff in clip. it has neat, slightly dead-looking blending, and a decent color wheel that allows for picking minor color variations to blend into paint on canvas.

  8. #18
    Join Date
    Nov 2013
    Posts
    1,993
    Quote Originally Posted by nekomata View Post
    if you're referring to 16 bits per channel color blending (I don't get your choice of words but whatever idc), artrage does it since 2010 (likely even earlier)
    https://forums.artrage.com/showthrea...413#post274413

    comparing color blending across versions (I ended up purchasing the AR5 upgrade this week after being served with a venti cup of toxic fumes with another annual c*rel p*inter release), v. 5 has been fine-tuned here and there,
    dry oil brushing looks neater and cleaner than in 4.5.
    this might be subjective tho.



    also krita is garbage
    if you're on windows, get clip studio paint and/or paint tool sai.
    Welcome to ArtRage 5, we hope you have fun I'm afraid I have to clarify the 16bit thing though, it's something that confuses a lot of people.

    ArtRage only uses 16-bit color mixing for some internal calculations in the entirely unique and custom made blending system, it's not a full 16-bit program like Photoshop. This might happen at some point, but for now, it's an 8-bit program for all intents and purposes. Just like the 'make the color blending algorithm perfect' issue, it's one of many things that are on the list of 'lots of work for little pay off and most users would benefit more from other improvements'. Over time it might shift up to the top of the list as hardware and usage changes, but we can't promise when.



    For the benefit of anyone going '...whut?': *Programs* are referred to as 8 or 16-bit due to the method they use for color - how many possible values per channel (Red, Green, Blue, Alpha). *Files* are referred to as 24/32/128-bit based on the actual number of values they may contain across all channels, as some files don't support all the channels or may only support a lower quality/number of possible values.

    So an 8-bit program can produce a 32-bit PNG file (3 color channels and transparency, eight values for each equals 32 possible values).

  9. #19

    Lightbulb

    thank you! it's great.

    I spent an evening being slightly distracted, messing around with the custom brush, and something finally clicked - it's like different parts of it I couldn't get together before just aligned the right way,
    and it's my favorite thing about artrage now. a huge time saver also, and the blending quality is amazing, it basically feels like painting with real gouache (unlike, cough-cough, p*inter's retired gouache brushes.)

  10. #20
    Join Date
    Apr 2012
    Posts
    486
    Quote Originally Posted by nekomata View Post
    thank you! it's great.

    I spent an evening being slightly distracted, messing around with the custom brush, and something finally clicked - it's like different parts of it I couldn't get together before just aligned the right way,
    and it's my favorite thing about artrage now. a huge time saver also, and the blending quality is amazing, it basically feels like painting with real gouache (unlike, cough-cough, p*inter's retired gouache brushes.)
    Can you share any insights you learned to make your brush? Custom brush blending does not suffer from the "saturation thing"... no matter how much blending you do... I would like to start using them instead of the oil brush. I think I might throw in the towel on that tool. Which is a pity.

    Real Gouache huh? Do tell...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •