NotMyFault Posted September 1 Share Posted September 1 Hi, trying to understand the online help https://affinity.help/photo2/en-US.lproj/pages/Layers/layerBlendModes.html For a layer group, the default blend mode is 'Passthrough' (i.e. the group itself has no special blend properties of its own). This blend mode affects grouped layers in the following ways: If you have a filter in the group, the Passthrough blend mode will cause the filter to affect all other page content below it. If the group blend mode is changed to Normal, the filter's effect is restricted. For just an adjustment(s) in a group, Passthrough and any other blend mode will restrict the adjustment to just the group. If you have an adjustment above a fill layer in a group, the fill layer causes the adjustment to affect all other page content below it when blend mode is Passthrough. This text leads to severe confusion, and is not reproducible (sentence 2 and 3). The group transparency and blend gamma impacts the blend result and this contradicts: (i.e. the group itself has no special blend properties of its own). please replace this by a better description, including a sample file where users are able to reproduce what is stated. I personally have the following mental model: Groups with blend mode passtrough are treated as method to organize layers. For layer blending, the group kind of vanishes, its group properties like transparency, blend gamma are propagated to every child layer, and only the child layers undergo regular layer blending. Child layers blend to the layers below in sequential order from the layer stack. groups with blend mode normal (or any yother blend mode except passthrough) are treated like a virtual seperate document. The child layers are blended within the group against a transparent canvas, so the layers below the group are not considered for blending within the group. As final step, the blend result of all layers inside the group is blended against the layers below, using the properties of the group like transparency, blend gamma, anti-aliasing. This results in strong differences of blend results especially when child layers have partial transparency, use different blend gamma (like text layers with gamma 1.45 instead of default 2,2 for all other layer types, including groups), or use other than normal blend mode. When using masks, adjustment or filter layers affecting the alpha channel (e.g. blurs, noise, channel mixer, curve, levels) the results become unpredictable / undefined with blend mode pass-through, usage should be avoided. Special care must be taken when intending to export to vector formats like PDF, EPS, SVG and using partial transparency, blend gamma, antialiasing. Affinity does not translate these capabilities into the export format, and does not detect them to use rasterization even if rendering differences will occur. To get an export file representing the rendering within Affinity apps you must rasterize during export. Otherwise, the rendering of export files will differ from rendering in Affinity apps. For full compatibility to those export formats, you must need to set the layer blend gamma (1.0 or 1.45 or 2.2) and background fill color (black or white) accordingly on you own. Note that blend gamma is relevant only for RGB/8 and RGB/16 document formats. All other formats will ignore blend gamma. Note 2: blend gamma on groups is only relevant if transparency on group is not 100%. The impact of gamma on blending is largest for 50% transparency. Quote Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080 LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5 iPad Air Gen 5 (2022) A2589 Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps. My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected. Link to comment Share on other sites More sharing options...
NotMyFault Posted September 1 Author Share Posted September 1 PS I’m happy to be proven wrong about my mental model of layer blending if the reply contains a better model A good explanation how it really works sample documents, ideally well-documented inside to reproduce (or re-use and improve my files from questions and bug reports). Quote Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080 LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5 iPad Air Gen 5 (2022) A2589 Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps. My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected. Link to comment Share on other sites More sharing options...
lepr Posted September 2 Share Posted September 2 On 9/1/2024 at 10:23 AM, NotMyFault said: Groups with blend mode passtrough are treated as method to organize layers. For layer blending, the group kind of vanishes, its group properties like transparency, blend gamma are propagated to every child layer, and only the child layers undergo regular layer blending. Child layers blend to the layers below in sequential order from the layer stack. Passthrough does not involve a propagation of group properties to child layers which you suggest. Elementary testing proves that idea wrong. A Passthrough group is rendered as if it has Normal mode but containing a virtual lowest child layer which is equivalent to the composite image lying below the group wherever any child of the group has alpha greater than zero. The name is Passthrough because the underlying composite image is passed through to the group. Quote Link to comment Share on other sites More sharing options...
walt.farrell Posted September 2 Share Posted September 2 44 minutes ago, lepr said: The name is Passthrough because the underlying composite image is passed through to the group. I think you have ignored the case where the Group also contains a Pixel or Fill layer, in which case any Adjustments or Filters within the Group are restricted and apply only within the Group. Quote -- Walt Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases PC: Desktop: Windows 11 Pro 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 Laptop: Windows 11 Pro 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU. Laptop 2: Windows 11 Pro 24H2, 16GB memory, Snapdragon(R) X Elite - X1E80100 - Qualcomm(R) Oryon(TM) 12 Core CPU 4.01 GHz, Qualcomm(R) Adreno(TM) X1-85 GPU iPad: iPad Pro M1, 12.9": iPadOS 18.1.1, Apple Pencil 2, Magic Keyboard Mac: 2023 M2 MacBook Air 15", 16GB memory, macOS Sequoia 15.0.1 Link to comment Share on other sites More sharing options...
NotMyFault Posted September 2 Author Share Posted September 2 I can’t reproduce that a fill layer restricts adjustments. Only pixel layers have this effect. walt.farrell 1 Quote Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080 LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5 iPad Air Gen 5 (2022) A2589 Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps. My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected. Link to comment Share on other sites More sharing options...
NotMyFault Posted September 2 Author Share Posted September 2 2 hours ago, lepr said: A Passthrough group is rendered as if it has Normal mode but containing a virtual lowest child layer which is equivalent to the composite image lying below the group wherever any child of the group has alpha greater than zero. The name is Passthrough because the underlying composite image is passed through to the group. While this sounds like an great explanation what should happen, I can’t reproduce this in Affinity. in principle: have a layer stack of a group with BM path-through above some lower layers. Merge visible to have a reference of blend result. Deactivate it. deactivate group. merge visible. deactivate lower layers. move merged layer as bottom layer into group activate group set BM of group to normal merge visible again , deactivate all layers below now compare both top merged layers. On iPad, those do not match. Quote Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080 LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5 iPad Air Gen 5 (2022) A2589 Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps. My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected. Link to comment Share on other sites More sharing options...
NotMyFault Posted September 2 Author Share Posted September 2 2 hours ago, lepr said: Elementary testing proves that idea wrong. Please provide the test file. I did tests on my side giving results consistent with my model. Quote Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080 LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5 iPad Air Gen 5 (2022) A2589 Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps. My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected. Link to comment Share on other sites More sharing options...
lepr Posted September 2 Share Posted September 2 2 hours ago, walt.farrell said: I think you have ignored the case where the Group also contains a Pixel or Fill layer, in which case any Adjustments or Filters within the Group are restricted and apply only within the Group. In all cases of Passthrough, the underlying composite image is passed through to the group. That is why we can use the trick of a white Multiply fill layer as the lowest child of a Passthrough group so that filters/adjustments then affect the appearance of the underlying composite when there are also non-filter/adjustments in the group. As I said, "The name is Passthrough because the underlying composite image is passed through to the group." Quote Link to comment Share on other sites More sharing options...
carl123 Posted September 2 Share Posted September 2 Is Affinity passthrough the same as Photoshop's or are there some differences, depending on what's in the group? Quote To save time I am currently using an automated AI to reply to some posts on this forum. If any of "my" posts are wrong or appear to be total b*ll*cks they are the ones generated by the AI. If correct they were probably mine. I apologise for any mistakes made by my AI - I'm sure it will improve with time. Link to comment Share on other sites More sharing options...
walt.farrell Posted September 2 Share Posted September 2 27 minutes ago, carl123 said: or are there some differences, depending on what's in the group? Should be the same if there are no pixel layers in the group, as I understand it. carl123 1 Quote -- Walt Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases PC: Desktop: Windows 11 Pro 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 Laptop: Windows 11 Pro 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU. Laptop 2: Windows 11 Pro 24H2, 16GB memory, Snapdragon(R) X Elite - X1E80100 - Qualcomm(R) Oryon(TM) 12 Core CPU 4.01 GHz, Qualcomm(R) Adreno(TM) X1-85 GPU iPad: iPad Pro M1, 12.9": iPadOS 18.1.1, Apple Pencil 2, Magic Keyboard Mac: 2023 M2 MacBook Air 15", 16GB memory, macOS Sequoia 15.0.1 Link to comment Share on other sites More sharing options...
lepr Posted September 2 Share Posted September 2 1 hour ago, carl123 said: Is Affinity passthrough the same as Photoshop's or are there some differences, depending on what's in the group? I'll leave live filters out of the following statements because Photoshop does not have standalone live filters like Affinity (Photoshop's live filters can exist only when clipped to a Smart Object) as far as I remember. Affinity's Passthrough and Photoshop's Pass Through are the same when there is entirely adjustments in the group or entirely non-adjustments in the group. There's a difference between the apps when there is a mix of adjustments and non-adjustments in the group, but Affinity can be tricked into behaving like Photoshop by putting a white Multiply fill layer as the lowest member inside a Passthrough group. NotMyFault 1 Quote Link to comment Share on other sites More sharing options...
lepr Posted September 2 Share Posted September 2 2 hours ago, NotMyFault said: Only pixel layers have this effect. Not only pixel layers. Try some other types of layer/object. Quote Link to comment Share on other sites More sharing options...
NotMyFault Posted September 2 Author Share Posted September 2 3 hours ago, lepr said: Not only pixel layers. Try some other types of layer/object. The problem I face is my iPad M1 does not reliably react to changes of child layers within a group. When I add/delete child layers or de/activate them it is totally random if Affinity updates the rendering - even after 10 Seconds wait for a low res document with 3-5 simple vector shapes. Even the usual change zoom trick to force redraw does not work. I need to de/re-activate layer multiple times until I get a redraw and can never trust the result. this lack of redraw may caused me to sometimes assume no effect of changes. BTW Designer on Mac Mini M1 still has erratic rendering when zooming between 200-400% which I use very frequently to check for anti-aliasing effects. It is a shame that Affinity did not fix the rendering bugs on both Mac and iPad 4 years after being advertised launch app for M1 based devices. Quote Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080 LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5 iPad Air Gen 5 (2022) A2589 Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps. My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected. Link to comment Share on other sites More sharing options...
NotMyFault Posted September 2 Author Share Posted September 2 5 hours ago, lepr said: In all cases of Passthrough, the underlying composite image is passed through to the group. That is why we can use the trick of a white Multiply fill layer as the lowest child of a Passthrough group so that filters/adjustments then affect the appearance of the underlying composite when there are also non-filter/adjustments in the group. As I said, "The name is Passthrough because the underlying composite image is passed through to the group." The rendering of this file does not fit into your proposed model. If you add the blend result of lower layers into the group, you would get the rectangles clipped to the crescent. But Affinity renders the crescent above erased bounding box over the lower layers. group with mask bug.afphoto Quote Mac mini M1 A2348 | Windows 10 - AMD Ryzen 9 5900x - 32 GB RAM - Nvidia GTX 1080 LG34WK950U-W, calibrated to DCI-P3 with LG Calibration Studio / Spider 5 iPad Air Gen 5 (2022) A2589 Special interest into procedural texture filter, edit alpha channel, RGB/16 and RGB/32 color formats, stacking, finding root causes for misbehaving files, finding creative solutions for unsolvable tasks, finding bugs in Apps. My posts focus on technical aspects and leave out most of social grease like „maybe“, „in my opinion“, „I might be wrong“ etc. just add copy/paste all these softeners from this signature to make reading more comfortable for you. Otherwise I’m a fine person which respects you and everyone and wants to be respected. Link to comment Share on other sites More sharing options...
lepr Posted September 3 Share Posted September 3 13 hours ago, NotMyFault said: The rendering of this file does not fit into your proposed model. If you add the blend result of lower layers into the group, you would get the rectangles clipped to the crescent. But Affinity renders the crescent above erased bounding box over the lower layers. You already know that the rendering of masked groups is broken - you even name your file with the words "mask bug" - so it is unsurprising that the rendering doesn't fit into my proposed model. A masked empty group should have no effect on a document, just as an unmasked empty group should have no effect. In the case of an empty Passthrough group, the passed through underlying composite is effectively non-existent since there is no child to provide the alpha greater than zero that toggles on the contribution of that passed through composite. In the case of an empty group with any other blend mode, there is simply nothing to blend, by definition. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.