Lightroom 3 and 4: Adjustment brush: Incorrect feather when using fisheye lens correction

  • 1
  • Problem
  • Updated 6 years ago
Steps to reproduce:
- Load a Raw into develop shot with a Sigma 4.5mm fisheye (Canon 40D CR2 in my case)
- Reset to adobe defaults
- Enable profile corrections, set to "Auto" (fisheye is now corrected to rectilinear projection)
- Enter adjustment brush
- Activate mask overlay to be able to clearly see where the brush stroke is drawn
- Set feather to 100
- Adjust brush size to ca. 40 - so feather circle is approx. between main brush circle and the nearer edges of the photo when brush center is in the image center
- Make a single small brush stroke (single click) in the center of the photo

Expected result: Brush stroke extends approx. to the nearer edges of the photo, just like it is the case when using no profile corrections.

Actual result: Brush stroke practically covers the whole image and beyond.

The error seems to be in the coordinate transformation of the feather range only. The brush radius itself seems to be handled correctly (repeat the steps with feather = 0 to see that). The effect seems to be less pronounced when drawing at greater distances from the center and for smaller brush sizes and feather sizes.

Note: This is only a minor bug. It only applies when a fisheye lens is completely corrected to rectilinear AND relatively large brush sizes with large feathers are used in the image center - admittedly not a very common case. And it can be easely taken into account by decreasing the feather size.

Tested using LR 3.6 and 4.1RC, both 64 Bit, Windows 7.

Additional remark: You don't need an actual raw shot with the Sigma 4.5mm. You can use any raw and set lens profile corrections manually to this lens (Setup: "Custom", Make: "Sigma", etc.). The effect is the same. Should be also the same for profiles of other full-frame fisheyes.
Photo of LRuserXY

LRuserXY

  • 426 Posts
  • 41 Reply Likes

Posted 6 years ago

  • 1
Photo of Dorin Nicolaescu-Musteață

Dorin Nicolaescu-Musteață, Champion

  • 703 Posts
  • 38 Reply Likes
Not sure it's a bug. Might be a limitation of brush mapping to lens distortions.

As far as I can recall from discussions when LR3 was launched, the local corrections are not guaranteed to transform correctly at such extreme distortion corrections.
Photo of LRuserXY

LRuserXY

  • 426 Posts
  • 41 Reply Likes
Thanks for the link to the other forum thread. Yes, I suspected that the local corrections do not fully transform, i.e. the graduated filter borders don't get warped, and single brush strokes don't get distorted from circles to ellipses. The only thing that is correctly transformed is the position of the brush/filter pins itself and their approximate size (and direction for filters). And this is perfecly acceptable IMHO.

However, I think the problem I posted is something different: It is not about switching lens profile corrections on and off and the repositioning and resizes of the brush strokes (which works perfectly well within its limitations as far as I have seen).

It is about that when I see the symbolic brush circle plus feather circle moving around using the mouse cursor on the screen, the brush strokes should exactly be drawn as those circles indicate - regardless whether lens profile corrections are used or not. The reason I believe this is indeed a bug and no limitation is that a brush stroke without feather is drawn correctly. It's only the feather that seems to be off.

And this does not seem to be a problem in the internal ACR processes (because the brushes transform correctly within their limitations when lens profile corrections are switched on and off), but only in the GUI of LR. My understanding of the problem is as follows: Brush pin coordinates are stored in XMP with respect to the original image, without any lens correction applied (if lens corrections are used, these coordinates do not change, but are instead transformed on-the-fly as the local corrections are rendered - at least that is what I have seen when examining the XMP files). So, if brush strokes are drawn on the screen with lens profile corrections on, they have to be transformed from "warped space" to "normal space" in order to be stored in the catalog and XMP files - and when the brush is finally rendered in the image, the coordinates are again transformed from "normal space" to "warped space". Both transformations are done correctly, with the exception of the feather for "warped space" to "normal space". This is my theory about that, but I am not 100% sure and may of course be wrong.