ArtRage 5 Product PageArtRage Lite Product PageArtRage for iOS Product PageArtRage for Android Product PageArtRage  Android Oil Painter Free Product PageArtRage  Free Demos Page

Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: Injecting Yellow when Blending Colors

  1. #1
    Join Date
    Aug 2013
    Location
    Louisiana
    Posts
    21

    Injecting Yellow when Blending Colors

    Even when the option is turned off it seems that real color blending remains on.

    Name:  colorblending.png
Views: 302
Size:  88.6 KB

    The oil brush strokes to the left are without real color blending on and the ones on the right are with it on. They're identical in behavior. The strokes in the center, however, are from Photoshop without any sort of color dynamics on. I would expect the colors to blend mathematically like the strokes from Photoshop do and then switch to this sort of behavior with real color blending on. The piece I'm working on needs a limited color gamut, and I don't want these colors changing on me inserting colors into my painting that's out of gamut. Is there any way to fix this?

    EDIT: Upon closer inspection it is turned off but it still inserts yellow when blending with white regardless of what color I use except greys and black. I can post a video showing the behavior if needed.

    Forgot to say I'm using OS X 10.10.1 and ArtRage 4.5.3.
    Last edited by dustinwilson; 01-05-2015 at 06:46 AM. Reason: Changing title because real color blending isn't the culprit here.

  2. #2
    Join Date
    Mar 2006
    Location
    New Zealand
    Posts
    3,140
    The 'Real Colour Blending' setting changes the colour blending model from RGB (standard digitial blending) to a custom model that more closely models the properties of real paint. Turning this option off does not turn off blending altogether, the oil paint is specifically designed to blend with paint beneath it while Photoshop is not if you have no paint dynamics turned on.

    If you want to prevent oil paint you apply blending with any other paint on the same layer, turn on 'Insta-Dry' which basically prevents the simulation recognising the wetness of the paint beneath and prevents blending. From the image you posted it looks to me like you're painting with one colour over paint of another colour, and the result is blending because there's wet paint on the canvas interacting with the brush. Insta-Dry should prevent that.
    Matt
    ArtRage UI
    Ambient Design.

  3. #3
    Join Date
    Aug 2013
    Location
    Louisiana
    Posts
    21
    I understand that, but with real color blending OFF it doesn't always blend using straight RGB math. When mixing with white it shifts the color like with the dull orange I used in the example to a bright yellow or if I use a blue it creates a bright cyan when mixing with white. I want things to blend. I just don't want this incorrect color shift.

    Name:  mixing.png
Views: 547
Size:  187.4 KB

    Let's take this example here. 100% RGB Red, yellow, green, and blue all don't shift their colors, but when you go to anything close to an orange it changes to bright 100% yellow when mixing with white or with the sky blue (0, 128, 255) below where it goes full on 100% RGB cyan when mixing with white. If you pick a red that is even the most slightly orange (like the red at the bottom there which has a hue of just 1%) it injects yellow into the mix when mixing with white. I don't see how this is expected behavior.

    Name:  gradients2.png
Views: 308
Size:  67.4 KB

    Here are the swatches I made in ArtRage along with some simple gradients of the colors I picked to the immediate right along with a somewhat color-corrected example of the swatches on the far right. I don't see yellows and cyans in the gradients on the orange, sky blue, or ever-so-slightly-orange red.
    Last edited by dustinwilson; 01-06-2015 at 05:09 AM. Reason: Made the gradient example more clear.

  4. #4
    Join Date
    Apr 2012
    Posts
    302
    Quote Originally Posted by dustinwilson View Post
    I understand that, but with real color blending OFF it doesn't always blend using straight RGB math. When mixing with white it shifts the color like with the dull orange I used in the example to a bright yellow or if I use a blue it creates a bright cyan when mixing with white. I want things to blend. I just don't want this incorrect color shift.

    Name:  mixing.png
Views: 547
Size:  187.4 KB

    Let's take this example here. 100% RGB Red, yellow, green, and blue all don't shift their colors, but when you go to anything close to an orange it changes to bright 100% yellow when mixing with white or with the sky blue (0, 128, 255) below where it goes full on 100% RGB cyan when mixing with white. If you pick a red that is even the most slightly orange (like the red at the bottom there which has a hue of just 1%) it injects yellow into the mix when mixing with white. I don't see how this is expected behavior.

    Name:  gradients2.png
Views: 308
Size:  67.4 KB

    Here are the swatches I made in ArtRage along with some simple gradients of the colors I picked to the immediate right along with a somewhat color-corrected example of the swatches on the far right. I don't see yellows and cyans in the gradients on the orange, sky blue, or ever-so-slightly-orange red.
    Hello Dustin:



    See the thread here :



    http://forums.artrage.com/showthread...lending-Engine


    The Artrage blending engine is "unique". Blending colors of different brightness leads to spurious/erroneous higher saturation colors. From what I can tell they have no plans to improve it.

    DO

  5. #5
    Join Date
    Aug 2013
    Location
    Louisiana
    Posts
    21
    I suppose this'll fall into the "It's a feature not a bug"? If this behavior is intentional it's nothing short of moronic. I've painted with oils for 20 years or more, and oil paints don't suddenly turn fluorescent when mixing. If they did the old masters with their limited available color palette would have celebrated. I love ArtRage's oil brush to death as it simulates its behavior quite well, but I can't do any color work in this application if I can't control my color palette.

  6. #6
    Join Date
    Nov 2013
    Location
    Auckland, NZ
    Posts
    1,856
    It's more that it's an unavoidable result of having colour blending at all. Adjusting things to prevent it behaving in this very specific way throws a lot more of the blending out of whack; so there are a few inevitable quirks.

    While we do strive for realism, this isn't something that interferes with the painting experience for most people; those who want a specific colour can add it themselves afterwards, and are generally skilled enough to do so (e.g. on another layer, using blend modes or Edit > Adjust Layer Colours, or just going over it with a brush set on autodry.). Other people don't notice it, or actively use it (I have to admit, it's one of my favourite features when painting in ArtRage - I love just throwing colours and seeing what happens).

    So it isn't quite worth reinventing the blending system from scratch
    Ambient Design Tech Support & Community Manager

    This is not my signature.

    Go forth and read the tutorials. Also, check out the featured artists!

  7. #7
    Join Date
    Mar 2006
    Location
    New Zealand
    Posts
    3,140
    I should probably also add that we haven't said we have no plans to look in to it - Tweaking the blending model is something we do a fair bit and we would love to find a way to avoid the gamma correction necessary when re-blending colour back in to the surface frequently shifts due to inaccuracies in the standard RGB model.

    This isn't something we've done 'by choice', it's just a side effect of correcting a problem that is very specific to the paint simulation and limitations of modelling real world pigment volumes and not being able to track every level of varying blended pigment colours on the brush well and canvas volume maps. Air quotes around "unique" aside, this is an issue that you won't find in apps that don't do this physical modelling, which is why it's unique. Its not unique because we can't be bothered (which would be dumb).
    Matt
    ArtRage UI
    Ambient Design.

  8. #8
    Join Date
    Apr 2012
    Posts
    302
    If gamma correction is the culprit for the erroneous saturation increases then perhaps there is a way to add in a "saturation correction" (namely a reduction) which is algorithmically tied to the gamma correction (some function of magnitude perhaps) which leads to a convergent sensible blended color.

    I for one would appreciate a second "gamma and saturation corrected blending mode" as an alternative to the existing one.

  9. #9
    Join Date
    Mar 2006
    Location
    New Zealand
    Posts
    3,140
    That's definitely something we can look in to. The colour blending system we use could technically be user configurable and we have some plans to look at exposing that system, it's just extremely complicated to tweak.

    I should also clarify why there's a difference between the gradients and the blended results seen in the samples above, because that's pretty much the heart of the issue and why the gamma correction needed to be included in the first place.

    When you produce a gradient, say orange to white, each pixel along the gradation is calculated in a linear manner: Orange at one end, white at the other, with a linear progression of RGB values between them. In terms of RGB calculations this is easy, black to white for example just progresses from 0 to 255 along the length of the gradient.

    Blending paint isn't like a gradient though - You're not producing a smooth gradation from orange to white because there's paint on the brush head, paint on the canvas, and the paint that results from blending those two. So, you start with orange on the canvas and white on the brush. If you stroke over the orange the paint blends to a slightly lighter orange however you now have this slightly lighter orange blended on the brush head because our simulation is two way (the brush picks up paint from the canvas as well as applying it, which allows you to spread blended paint out and create streaks). This means that the next time a blend occurs, you're blending a mix of your white and slightly lighter orange back in to the already slightly lighter orange on the canvas. Again, when you do this, the new slightly x2 lighter orange blends back to the brush, and so on.

    Couple that with the inherent limitations of working in a numerical colour system where there's a cap to the maximum value that any of the RGB components will have and you can see that over time the result gets lighter than you might expect in a physical system where the amount of newly lightened paint that gets blended back on to the brush isn't that large. This isn't something that can be matched in the simulation currently because it would require data space to store multiple colours per pixel on the canvas and the brush head based on the depth of paint (seriously big numbers there). As a result, to avoid the system overblowing we apply gamma correction and try to counteract some of the limitations of this numeric blend. There are some cases, particularly colours with high luminance, that don't work as well as others, but tweaking in one direction tends to cause issues in another.

    It's something that we have been looking at for some time and will continue to work on.
    Matt
    ArtRage UI
    Ambient Design.

  10. #10
    Join Date
    Apr 2012
    Posts
    302
    Has there ever been an attempt to store and blend the work in a space which behaves the way you want it to, i.e. not requiring any gamma correction, and then merely converting the data to 8-bit RGB for display ? This approach decouples display from the color space / blending space.



    Alternatively:

    Let me run a few things by you:

    Assuming brush color elements Xn, and canvas elements Yn. In your example you describe how brush elements affect the canvas elements and that those affected canvas elements can affect the brush elements.

    If the instantaneous effect of any brush element on any canvas element, or any canvas element on any brush element, were bounded to a color "between" the brush element and the canvas element, no matter how many interactions occur the color would always be bounded between the original canvas color and the original brush color.

    It would not matter if different brush elements and canvas elements interacted or if the same ones interacted over and over or if they did so in some strange combination. The result would be a convergence or perhaps an oscillation of sorts between the original brush and canvas colors, but never extrapolation or run-away colors. The colors would be bounded on the line (or curve ...see below) defined as "between" the two colors.


    I assume it is your gamma correction that is causing the saturation anomalies. In particular the tweak applied causes (whether intended or not) creation of colors beyond the bounded range i.e. a definition of what is "between" the original colors. To fix such a thing one need only ensure that the gamma correction applied does not cause the resulting color to escape from the bounds between the two original colors. In other words whatever the algorithm defines is "between" the two colors should never be "exceeded" or "bypassed".

    One possibility is to use something like a gamma correction look up table and use it to choose a bounded color (between the original ones) having the closest gamma level to what is desired.

    e.g.

    when blending X and Y, the resulting color is X + A*(Y-X) where A is between 0 and 1, i.e. a fraction. The key is simply to choose A based on the gamma correction algorithm which chooses the best bound color. Of course if X and Y are in linear RGB space then the resulting blended color has to lie "somewhere" on the line between the originals but that is to be expected.

    Further alternatively if the desired blend is not strictly linear in the color space... or occurs in a curved color space i.e. blending follows some curve, or what it means to be "between" colors is defined by a curve, then I suggest a parametric algorithm where essentially A sets the fraction along the curve "between" X and Y the result will be. As long as the result is on the same curve any subsequent blending will also be along the same curve and no divergence will occur.

    Essentially either approach advocates consistency of color space and "between-ness" or color boundedness.


    I would guess that divergent colors result from using a perturbation to a bounded calculation. Put another way, it results from an inconsistency in color space or curvature in application of a "betweening" (averaging/blending) blending step and a divergent "correction" step. Take for example an average blend which calculates a midpoint between colors but then tweaks it with an addition in a vector direction tangent to the line between the original points in color space. Doing this repeatedly (blending repeatedly) one original color with the resulting blends would lead to divergence and could take you to a completely different color than the what lies between the original two. If this calculation were rewritten to a curve between the two points passing through where the tweaked point would have been, then repeated calculations could be made to push the point along the single curve between the two points without divergence. Of course it would rely on the definition of "between" colors to follow that curve.


    I have a few ideas about this but it would help if I knew a bit more about how the blending engine currently works. Can you explain why gamma correction is needed and exactly how it is used?

Posting Permissions

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