While overprinting can basically be simulated by a sequnece of Multiply blend operation of spot color layers, it gives undesired results for orienteering maps, such as a small fountain or well (Blue 100%) in open land (Yellow 100%) being rendered green.
In Mapper 0.5.0 this was solved by additionally alpha-blending each spot color layer after the multiply operation, adjusting the resulting color towards the covering spot color. But unlike the multiply operation, this also adds the brightness of the covering spot color, which is acceptable for the small fountain or well in open land, but not for the area with forbidden access (Green 50% on Yellow 100%).
In the master branch, I now added implementation which does not reapply each spot color layer, but alpha-blends the "normal" (i.e. non-overprinting) output on top of the pure multiply-blended output. This adds one extra rendering pass (normal output), but has several advantages:
The adjustment (extra blending) has to be done only once in the end, not for each spot color.
The amount of adjustment can be controlled by the alpha channel.
Some alpha values can be implemented quite efficiently in the premultiplied ARGB mode.
There is no undesired brightening.
This mode of operation requires that normal output and spot color output are quite similar. This should normally be the case (and is the case for Mapper's symbol sets). But maybe unexperienced user could get undesired effects when introducing new colors.
I attach a picture which illustrates the different modes of operation.
For the moment the selection of the mode is by a preprocessor macro only. If we decide to make this customizable, it should be per map (i.e. color set/symbol set), not globally.
dg0yt reported on Sourceforge [tickets:#193]:
While overprinting can basically be simulated by a sequnece of Multiply blend operation of spot color layers, it gives undesired results for orienteering maps, such as a small fountain or well (Blue 100%) in open land (Yellow 100%) being rendered green.
In Mapper 0.5.0 this was solved by additionally alpha-blending each spot color layer after the multiply operation, adjusting the resulting color towards the covering spot color. But unlike the multiply operation, this also adds the brightness of the covering spot color, which is acceptable for the small fountain or well in open land, but not for the area with forbidden access (Green 50% on Yellow 100%).
In the master branch, I now added implementation which does not reapply each spot color layer, but alpha-blends the "normal" (i.e. non-overprinting) output on top of the pure multiply-blended output. This adds one extra rendering pass (normal output), but has several advantages:
This mode of operation requires that normal output and spot color output are quite similar. This should normally be the case (and is the case for Mapper's symbol sets). But maybe unexperienced user could get undesired effects when introducing new colors.
I attach a picture which illustrates the different modes of operation.
For the moment the selection of the mode is by a preprocessor macro only. If we decide to make this customizable, it should be per map (i.e. color set/symbol set), not globally.
Attachments (on Sourceforge):