Programmer’s Blog: The Sagelight Model and Creating an Accessible, Powerful User Interface

Introduction

This blog post started as a response to a post on the discussion board.  The basic question was, “When will there be a prototype of the new UI changes?

My answer started off as a time frame of 4-6 weeks.  I also wanted to point out that I was working on some other UI elements, and then, well, it turned into an interesting discussion, which I thought I would post as a blog entry.

My thought was that I like the new design with the UI, but there is also something else I am trying to work with, which is making all of the powerful Sagelight functions more accessible and useful to everyone, and essentially systematizing the Sagelight Model that provides, quick and powerful, easy-to-use functionality with highly advanced image-editing functions.

(note: this is more-or-less a stream-of-consciousness post, and I really haven’t proofread read it).

Exploring the Sagelight Model – Why Sagelight Exists, Ease-of-Use + Power

As I wrote my answer, I realized that this is a good place to explore the Sagelight Model.  If you’re wondering about it, definitely read on.  This blog will explain the Sagelight Model as well as what is happening with the UI.

Moreover, it explains just how powerful and advanced Sagelight is as an image editor.

Screenshot of the HDR Panel — showing that it can be used for many things, not just artistic-level HDR

The HDR Panel Function as a Great Example of Sagelight Power and UI Considerations

The best example of Sagelight Power and the Sagelight Model (of providing powerful control sets) is the HDR function.  I tend to use the Light Blender as an example a lot, but the Light Blender is so capable in many different ways, it gets to slippery to talk about.  As you’ll see with the HDR function (described below), there is a lot to Sagelight functions, the HDR being representative of quite a few functions (such as the Light Blender, Bokeh, Power Box Tools, Power Details, and so-forth).

The HDR function — that is, the main “HDR Panel” function — is a better example to talk about for this than the Light Blender or other Sagelight tools.  This is because the HDR Panel Function is also very capable, and sorting out how to present it encapsulates what I am looking for in the UI outside of the Quick Edit Mode, and really is probably an epitomical example of the overall scope of many functions in Sagelight, or at least close to one. 

 

(HDR Controls, in Pro Mode)

An Outline of the HDR Panel Controls – there’s a lot more than you might think!

Keep in mind that the HDR Panel, as outlined here, is representative of many Sagelight Functions and the overall Sagelight Model. 

There’s quite a few controls in the HDR Panel, and there are 3 tabs full of functions.

 

Programs Within Programs — the automatic layer-based, niche-editor model of Sagelight

Every Control has a very Specific Reason to Exist.

While there are lot of controls in the HDR, every one has a reason to be there.  The idea is that functions likes the HDR panel are programs within themselves — in fact, really separate editors with a specific niche function.  The idea is two-fold:

  1. Do all the things you’d want to do in a program like Photoshop with Automatic Layers.  Typically, if you’re using the HDR, or any other function (such as the Bokeh, etc.), there are more things you’d want to do than just that one function.  For example, if you use the HDR, the next steps would be Definition, Focus, brightness, etc.   In a program like Photoshop, you’d want to do multiple layers.  You would want to define these layers and then use them to create your image. There’s also the pre-brighten, pre-darken, etc. in the HDR Function– all things you’d want to do as a layer (or even as a ‘stack’, though doing as a layer is much better and faster, of course).

    The Sagelight model of these sub-functions is to perform the things you’d naturally reach for, but in the function itself.  For example, adding saturation, noise reduction (which I am about to replace with the NL Wavelet NR), and so-forth — all working as multiple layers.  In the case of the HDR, this is about 10 or so layers, all controllable.

    This adds an incredible amount of power to the function — and this is part of the UI consideration I am working with right now, and am looking to solve in just the right way.  I will get back to this in a couple paragraphs.

  2. Act as mini-editors on their own — to do the things you’d want to do in a program specifically designed for such a task, but within Sagelight.  This is why Sagelight is both non-destructive and necessarily destructive.  Sagelight’s model is a blend of Lightroom’s model (non-destructive, for the most part, but not 100%), and Photoshop’s Model (fairly and also necessarily destructive).

    Most people don’t realize that when you use a Lightroom Plugin, an .8BF plugin, or save your image and go out to another program (or plug-in), you’ve caused a ‘destructive’ sequence on your image — this is directly implied in the term ‘stack’; that is, each ‘stack’ or ‘stack layer’ is a destructive action performed on your image.

    Destructive Image Editing is good and necessary.

    Yes, I said it.  And I will be emphasizing this as I get the new UI out, as one of the main emphases of the new UI is to not only delineate better between when Sagelight is being non-destructive and when you’ve chosen to do something destructive, but to also promote (and, realistically, confront the idea that this is really happening in all major editors when you want to do more than just a few adjustments… we just don’t talk about it because, for some reason, it’s become a bad thing to say.  So the industry uses terms like ‘stack’ to avoid the whole idea, even though that’s exactly what’s happening, and for a good reason).

    Want real localized editing? Want to merge elements of the history buffer onto a new image? Want Bokeh, HDR, Surface Blur, etc? Want to do anything that doesn’t look the same as the image you did yesterday and the day before? Welcome to the wonderful world of safe, necessary, and high-quality destructive editing.

    Lightroom itself is titled “Adobe Photoshop Lightroom“, because it is meant to be a companion to Adobe Photoshop — it’s meant to work with the blending of destructive editing and non-destructive editing, both of which have their own, definite and powerful place in the image-editing process.  It was never meant to stand by itself one one global non-destructive operation.  You really can’t do advanced editing this way.

    Sagelight merges this concept by using non-destructive editing in all sub-programs/functions, but then providing “plug-in”-style editing within Sagelight for more power.

    This is why Lightroom doesn’t do things like Bokeh, HDR, etc. — and for the similar things it does do via plug-ins, you’ve created a ‘stack’, or to say it another way, a ‘destructive’ act on your image.  It leaves it to Photoshop and Plug-ins, which is just fine.

I Want it All – I wrote Sagelight as a Highly Advanced Editor to Provide Incredible Power.

I intend to keep it this way.  The reason why the Sagelight User-Interface can seem ‘busy’ sometimes is because it offers you power.  Those Windows and Controls that come up when you use the Light Blender – as well as the curves and Equalizer controls – have a very powerful effect on your image.

The Light Blender as an Example

Let’s look at that for just a second, with the Light Blender as an Example,

Ok, you press a Light Blender control, and another control window comes up where you can use some equalizers.  When you use the strength settings, these equalizers are set automatically.

Then you can change them.  Then you can move to a 7-band equalizer (from the 5).  This adds a tremendous amount of control.

But, if you really want the most out of it, you can bring up the curves window which gives you ultimate control of what is happening in the Light Blender. This practically gets you to the programmer level by being able set any curve you want, which can be very powerful (more of this will be apparent when I release some presets in the new UI).

Cleaning up the Light Blender

Sure, that can get a little confusing, and this is why the new UI is being created right now.

Part of the new UI is to clean all of this up a little bit, but not to lessen the power of the Light Blender.

Basically, you can go from Simple Controls->5 Band Equalizer->7-Band Equalizer->Curves Window

This is the Sagelight Model – to move from ease-of-use to more advanced complexity.

That’s a lot of power for the Light Blender, not to mention being able to select the lighting modes and so-forth.  Definitely all advanced functionality, but also very useful, especially if you understand things like ‘Soft Light’, ‘Hard Light’, and ‘Vivid Light’ in terms of their representative mathematical functionality.  But, you don’t have to to use the Light Blender.

The new UI will have this more organized and easier to use.  This isn’t exactly an easy thing to do, but also not impossible.

The Real Power of the HDR Function (as an Example of the Sagelight Model)

Here are just some of the controls in the HDR function, and what they do:

    • HDR Compression Strength.  This function can be used in a few ways, depending on the settings below it.  Basically, this uses the HDR function itself to ‘compress’ the dynamic range in your image. It can recover highlights, fill in very dark areas, as well as create definition in your image, not to mention more artistic and artificial HDR effects.  At small levels, this slider keeps the realism in your image while bringing out a natural HDR quality and definition in your image.
    • Exposure.  In some HDR modes, this is a very impressive slider.  When at a low value, it helps the HDR recover highlights.  At a higher value (with the HDR Compression Strength value fairly low, i.e. < 20), if can create a great ‘fill light’ effect with zero halos. 
    • Contrast Mode.  When checked, the HDR tends to balance the image more, keeping higher contrast.  When not checked, the HDR tends to keep the light steady, with less contrast, and more helpful to fill dark areas in the image.
    • Reduce NoiseThis will soon change to a slider and use the NL Wavelet method; this makes all the difference in the HDR image.
    • Pre-Brighten.  This is a very powerful slider, and is a good example of why so many controls appear in the HDR.  This is also a very specific slider, based on the Reinhardt Curve, which is meant to mimic the way the human eye sees light. You don’t even need the HDR Compression Value for this function.  It fills your image so the HDR can work better, but even without the HDR, it works very well in conjunction with the other tools.
    • Pre-Darken.  This is the same as Pre-Brighten, and has a similarly amazing effect on the highlights in your image.
    • Pre-Brighten Feather.  Here is a control that seems like it might not be so necessary.  But, it can make a big difference on the pre-brighten and pre-darken, especially if you use the HDR Compression Strength Slider or not.  With no feather, you are guaranteed no halos with the HDR result (for the most part).  With higher settings, the image looks clearer (more defined), but may have small halos in the image.  This is why the ‘Light’ Setting exists — to split the difference; when combined with the Focus slider, this can be good option to get what you want and to avoid halos.   Actually, you wouldn’t believe how much code and little switches exist in Sagelight just for the specific purpose of avoiding halos!
    • Low-Tone Contrast, Smart Contrast, Highlights. These are the same tools in the Quick Edit Mode, but very useful in the HDR — why not have them in the HDR so you can get an instant, auto-layered result?
    • Smart-Midtone Contrast.  This is another very powerful and useful tool.  Used with the Smart Contrast, this handles the midtones extremely well, and can add some great definition and contrast to your image without halos — this is the same contrast slider in the Smart Light, and is one of the most powerful features in Sagelight (in an overall sense)
    • Focus.  This performs a local contrast, and is very useful as a general tool, and more specifically for getting definition out of your image when using the HDR and pre-brighten/pre-darken controls.  This is another example of a control you would naturally want to use after the HDR function, and is, therefore, included as a layer in the overall HDR toolset.
    • Definition and Softness.  This adds definition to the image, but with more defined edges than the focus.  Interestingly, if you use it in the negative direction (softness), it can also be very useful with the HDR tool, providing a soft HDR look. 
    • Post Fill Shadows. This is basically the same tool as the pre-brighten slider, but is used after the HDR, Focus and Definition, and other tools, to provide a natural fill for the shadows — a common element when working with various photographs.
    • Post Saturation. This is another great example of providing tools and controls as layers in the program-within-program methodology of Sagelight.  Many tools in Sagelight have this Post Saturation tool.  This is because, and as with the HDR toolset, adding or removing color to an image after many operations is a tool used quite often and, therefore, also provided as a separate and automatic layer in the HDR toolset.
    • Color Recovery.  This is a good example of a tool that seems obscure, yet provides a very valuable function when it can be useful — and is also one of those advanced functions that you want if you’re at more of an expert level.
      Some tools, such as the Color Recovery, are only useful at times, but when they are useful, they do something very nice and sometimes important.
      This little slider turn out to be a major tool, and also shows a lot of the complexity going on behind the controls you use in the HDR and other functions.

      Each time you move a slider or flip a control on any layer in the HDR function, most layers are performed in RGB and LAB mode, and then put back together into the RGB output for each channel.  The default is LAB mode, but sometimes this loses color.  If the operations are performed in RGB mode, sometimes this leaves too much color.  So, basically, there is a choice — with some images — between too much color and too little color.  The Color Recovery slider starts mixing the RGB and LAB results, so you can recover some of the color lost in the LAB-mode calculations.
      Color loss in LAB mode mostly occurs when darker areas become lighter; and over-saturation occurs the other way in RGB mode.

      The Color Recovery slider is a good example of how Sagelight does these automatic layers and complex operations for you — the Color Recovery Slider is basically allowing you to do the function in LAB mode, RGB mode, or a mixture of both.

    • Equalization. This slider uses a Histogram Equalization calculation on the image.  This can sometimes provide great contrast to your image.  Even though its an advanced, more expert-level function, it is worth using — note that the Highlight Slider is duplicated next to the Equalization Slider.  This is because the Highlight Slider is something you tend to want to use in conjunction with the Equalization Slider, and I felt they were too far apart. 
    • Blend Curve.  Yet another major, very useful function!  The Blend Curve lets you blend the image you’re creating — with all of its layers and such — with the original image (i.e. the one before you entered the HDR function).  This blends the image on a light curve, either blending in dark areas or light areas with the current image.  This can be very helpful in isolating highlights or shadows, and can make a big difference in your image. 

      For example, if you want to just recover highlights, you can use the Blend Curve to focus on only the highlights — this allows you to use a higher strength in the HDR and other controls to get out more of what you want from the highlights without changing the shadows (or changing the shadows less).
      Conversely, if you want to fill in dark areas, you can use the HDR on a heavier setting to add definition without affecting the highlights (or affecting the highlights less).

    • Transparency. This slider allows you to merge the original image and the current HDR image by percentage.  The great thing about this slider is that if you use it in the negative direction, you can have more than a 100% transparency, which affectively amplifies the result, which can be a very good effect on some images.

And that’s not all of the tools in the HDR Panel function.  There’s also:

    •  the 2X Button
    •  Disable HDR Button
    • Focus Radius, Definition Radius
    • “Fill Low Shadows Only” checkbox on the Post-Fill Light Slider
    • Vibrant Colors Checkbox
    • Saturation as Vibrance Checkbox
    • Black and White Checkbox
    • HDR Preview Source Window (Entire Image or Preview)
    • “Base Img.” Checkbox (use Definition and Focus with the Base Image as a reference, which can be an interesting and useful effect)
    • Focus Slider (in the Advanced Mode — this is different than the other Focus Slider; I need to work on explaining what this does)
    • Blend Curve Feather Options (None, Light, Normal)
    • Equalizer Toner Weight (Shadows, Normal, Highlights), Reduce Halos Checkbox (for the Highlight Slider)
    • Edginess Slider
    • Edge Mode Checkbox
    • High-Res Checkbox
    • and, finally, the 20 Presets which are the basic presets used for the One-Shot HDR Controls.

All together, the above describes 38 different controls and 20 Presets in the HDR Panel alone, working in C*I*E LAB and RGB Mode, with 10 or so different automatic layers that you can control with various controls.

Another Case of Powerful a Toolset: Quick Edit Mode Live Fade Controls

Another example of a Sagelight toolset that is powerful but also needs to be managed well in the UI is the upcoming Fade Toolset in the Quick Edit Mode.  This is also another case of where Sagelight provides some very powerful image-editing options in a way where you would want to do this in a step-by-step manner in a program like Photoshop, but, instead, are able to do it with just a few controls in a real-time, non-destructive setting.

The Fade Controls also can represent the complexity of the Sagelight Engine.  If you’re familiar with the Photoshop Tool, “Fade… ” (i.e. Fade Last function), this is the same thing as the transparency tool in Sagelight’s Undo Brush — the exact same thing.

But, as Sagelight’s technology has grown, the usefulness of a simple ‘fade’ has grown, too!  Here are the different type of ‘Fade’ characteristics you will have in the Quick Edit Mode upon release of the new UI: 

  • Fade Current Image.  This ‘fades’ the image you’re creating in the Quick Edit Mode with the last ‘stack’ image (i.e. the current image without the Quick Edit settings).  A fade is simply another term for ‘transparency’; thus, a ‘fade’ of 50% would be an even mixture of the ‘current’ image and the image with the Quick Edit Settings.
  • Fade Original/History Image.  Fading with the original image is a very powerful tool.  I recommend this for a lot of operations — for example, if you use HDR, Soft Glow, etc., it can often be good to put a touch of the original image back. 
  • Select History Image.   You can also fade an image that is a snapshot or ‘stack’/history image.  You can make a number of changes and merge this easily with the selected image state, whether it’s the original or a selected history state or snapshot image.  This technique has proven to be a great  technique because some overall changes can be overwhelming, and mixing them with a previous state can help subdue the image and keep it more natural.
  • Blend Curve Fade.  You can also use a Blend Curve Fade, as described above in the HDR Panel description.  This allows you to easily isolate the highlights and/or shadows — this will work in real-time (as all of the Fade Controls do), so you can see the effect immediately without committing to your changes.   This is another good example of the power of the Sagelight Model
  • Blend Curve Feather.  As with the HDR controls, you can feather the Blend Curve with no Feather, a normal feather, or a light feather.  This can help keep halos away or to add definition.
  • Blend Curve Feather Fade. This is a great tool, as proven in the Light Blender (where it is known as the “Reduce/Soften Halos”).  This allows you to use a feather on the Blend Curve, but also reduce the halos by subduing the feather itself.    Trust me, it’s a nice tool.

The UI Design at Work — Wrangling and Systematizing Advanced Control Sets into an Easy-to-Use Format  (i.e., what I am working on right now).

As you can see, the HDR Panel is an absolute monster of a function! It’s truly a program within a program.  There is an amazing array of things you can do with this function by just using various controls together.  This is done on purpose to make Sagelight truly a professional-level editor (let’s also not forget about the heavy math engine using 32-bit floating-point per-channel, and lots of multi-processor SSE4 code).  I could write constant blog posts just on the HDR function, as well as the Bokeh, Light Blender, and numerous other Sagelight functions.

Though a smaller group of controls, the Fade Controls coming to the Quick Edit Mode are pretty hefty — and this is just one set of dozens of tools already in the Quick Edit Mode. 

The working being done right now is to provide these controls in an easier-to-use format.   For me, these tools are already accessible, but the entire idea behind Sagelight is to provide an easy-to-use interface that progressively gets more advanced. 

Advanced Functions Require Some Experience with Any Program (including Sagelight)

I don’t want to pretend (or lose track of the fact) that advanced controls do mean some experience with the program you’re using.  With Sagelight, I try to provide an interface where you can just flip a switch, and it if works, it works — then you can continue to use it, even if you don’t know exactly what it does. 

On the other hand, there are some controls where you are better off knowing what is going on, and this requires some experience. 

I want to make sure that it is understood that sometimes an interface needs to be complex to support complexity!  The idea here is not to make everything simple.  That just can’t be done.   The main idea is to make Sagelight work in graduated steps, so you can use these higher-level controls as you feel ready to use them, and they stay out of you’re way until then (or can be used in a way where you can just know to use them without necessarily knowing what they do). 

Mixing an easy-to-use interface that also moves into high-end, professional-level territory with tools that even Photoshop doesn’t provide (i.e. check out the Power Curves; they are much more powerful than Photoshop) is definitely a challenge, but also not impossible.

Conclusion

While there are clearly some needed additions to Sagelight, I’ve also realized that Sagelight has so many powerful functions, it’s time to make them even more useful and organized.

For most people, this will mean a whole new Sagelight as functions that were previously not used much suddenly become very useful.

I’m particularly excited about the overall Quick Edit Mode, as well as the HDR and Light Blender, as these are powerful functions that can be used for most pictures in some way or another.

My idea with Sagelight is to provide a lot of power and flexibility, so that you can explore your creativity and create great images.  I never liked the one-shot non-destructive model, where you end up making the same sort of creation from image to image (i.e. the ‘typical’ editor of today).

By mixing the best of non-destructive editing with safe, needed, and creative functions that act as Lightroom-style Plug-ins or Photoshop Functions (i.e. destructive functions), you get the best of both worlds.

Sagelight is realistically just one more version out from being right at my vision for it.  At the moment, it is very powerful and offers a lot of tools.  I am looking forward to even more.

Hopefully, I’ve described the Sagelight model well: to offer ease-of-use with a very high-quality, advanced function set, some of which aren’t even seen in Photoshop (i.e. Power Curves, full Bokeh Functionality, HDR controls, Retinex, Light Blender, etc.). 

Designed with an internal 32-bit-per-channel (being extended to 64-bit floating-point these days), the internal mathematical engine is fast and accurate.  I think I showed some examples somewhere where you can sharpen, sharpen more, and continue to sharpen with zero artifacts in the Bokeh, for example.

Right now, definitely explore Sagelight.  

It’s still cheap, and the new UI and all of the new toolsets comes with the current version (i.e. all purchased versions are still lifetime versions, while I get the true “release” version of Sagelight out there – it’s been a bit delayed while I’ve added powerful tools; this was always the plan: add powerful tools, then deal with the UI, because when it happens the other way around, the powerful tools never happen)

Advertisements

3 thoughts on “Programmer’s Blog: The Sagelight Model and Creating an Accessible, Powerful User Interface

  1. It’s definitely interesting to read more about your design philosophy and how SL actually works under the hood. However I think you make some pretty major assumptions about why certain things are not in Lightroom like HDR, Bokeh, etc. HDR could be *easily* handled “non-destructively” in Lightroom, and I wouldn’t be surprised to see it show up as a set of tone compression sliders on a separate panel in a future release. There is absolutely no reason that this is not possible within the Lightroom paradigm. In fact some amount of tone compression functionality already exists in the Highlight slider, as one example.

    Frankly Bokeh is the same way; other lens-based edits are already available, the only major challenge with boken in LR would be selection masking, which is currently fairly limited. But there is the simplistic idea of “selections”, the Adjustment Brush, Linear Gradient, etc., all of which likewise operate non-destructively. Literally the only difference between these and arbitrary selection adjustments is the shape of the selection and how its made. There’s no reason the exact same adjustments could not be made with an arbitrary selection function, and if Adobe did not have Photoshop that they also want to sell separately with that function, they’d probably add it.

    So it’s really more likely to be financial motive than any technical consideration that keeps things like HDR and Boken out of Lightroom.

    Your example with the multi-band equalizers of Light Blender is interesting too because Lightroom has pretty much the same thing (the Tone Curve panel). It has 4 sliders for Highlights, Lights, Darks, and Shadows, and you can adjust where on the tone curve the cut-off for each is. If you want more control, you can switch to editing the curve directly, either in RGB simultaneously, or in each channel separately. I find it provides just *enough* control and not too much or too little. It’s rare, if ever, I’ve wanted more. But it’s always nice to have the option, as you do in SL. I think where LR wins though in terms of UI is that all of this is accessible in the same panel, which adjusts dynamically as you enable or disable different settings or switch sub-modes, and it’s all non-destructive. The amount of power in SL is more than in LR in many cases, and this is a good example, but by providing a cleaner and quicker way to access the power that it has, LR still comes out on top for a majority of projects for me.

    Now I imagine my feedback may be starting to sound like a simple Lightroom fanboy, someone who has already decided SageLight is inferior to LR and that’s the end of it. The truth is I wish that the power of SL was accessible to me in a way I was more comfortable and efficient using, and that’s why I’m happy to see the LR-like direction the UI appears to be going. I realize it’s not for everyone, but no single UI paradigm is; the collapsible panel approach, minimizing pop-up windows, is a widely adopted one for a good reason, and I hope it will be successful for SL as well.

    The last thing I want to mention is that you discuss several “duplicated” controls in your descriptions above, particularly in the HDR function overview, and you justify each one, at least by your internal logic. For me the justifications often fall flat, in other words I just don’t agree with those controls being replicated there, and I think the reason for this is that a well setup, non-destructive editing flow makes such duplication unnecessary. It undeniably adds a level of potential confusion, no matter your UI approach, and while it adds some convenience, it is an error-prone and ad-hoc process (after all you are making just a personal judgment call as to what other controls might be useful to someone in that mode; it would be ideal for everyone to make up their own mind). Creating an overall smoother, more integrated, and more efficient UI should do away with a majority of the need for that kind of duplication, in my view. Hopefully that ends up being the case as you go through the process of refining your new approach.

    • >>It’s definitely interesting to read more about your design philosophy and how SL actually works under the hood.

      >>However I think you make some pretty major assumptions about why certain things are not in Lightroom like HDR, Bokeh, etc. HDR could be *easily* handled “non-destructively” in Lightroom, >>and I wouldn’t be surprised to see it show up as a set of tone compression sliders on a separate panel in a future release.

      Not really. It’s a processing-time limitation issue that has to do with today’s current level of CPU architecture and not any one program. That is to say, as someone who knows his way around a CPU, the idea that everything can be done non-destructively is not possible.

      There are various forms of HDR, so I don’t want to speak there, because there are some that can be done in realtime, and others that can’t, depending on the algorithm. Histogram Equalization methods, Retinex, and so-forth are all fairly cpu-intensive and just aren’t going to return anything realtime on today’s architectures. Here and there some programming wiz comes up with a way to do specific things in realtime, but not as a general rule for such cpu-intensive things. The GPU can be used more and more for certain things, too, so some things that could not be done in realtime earlier can be done in realtime through the GPU, even if it is offloaded to the main CPU for more accurate processing. But, this is also not a general rule.

      The issue is layers and the mathematical difficulty of each layer. Curves, Saturation, Hue, Contrast, and so-forth are really a no-brainer. With CPU’s being much faster these days, we can also add onto that local contrast and other things. Certain other cpu-intensive calculations, such as noise reduction and cloning can be done as a static operation before the layer processing, so we get that for free even when it looks like its done in realtime (that is, the result only needs to be calculated when you change a setting on these items, which can incur longer processing, but this typically doesn’t matter on these few items).

      However, when you get into Bokeh, more intensive HDR function (as described above), and other things, it’s a different story.

      For example, I just put in a Surface Blur into Sagelight, both traditional and wavelet based. This is very cpu-intensive, even for a preview (and also, remember that preview sizes on monitors are getting bigger and bigger with the monitors these days). Photoshop has a Surface Blur, and it is a very useful function. However, this function, like the Bokeh, has to use essentially a kernel (or at least a kernel-level algorithm) to perform the blur. There is just no reasonable way to calculate large radius factors in realtime.

      Even if you could on one cpu-intensive item, when you start stacking them, the return is just not real-time anymore.

      As computers progress, more and more can be in realtime and non-destructive. We’ve seen that now. Both Lightroom and Sagelight have been able to add to the number of layers and complexity of the realtime return. For example, Sagelight processes all tools in the Quick Edit Mode, as well as the Light Blender, all Power Box Tools, and will soon have even more to do all in realtime. I think Sagelight processes something like 20-30 layers right now, if you use them all. Each time you add a layer, it can slow down, but its not enough to be a problem.

      There’s also the idea of doing more and more. For example, if you did a Gaussian Blur, then localized that editing, then a Surface Blur and localized that, then some HDR, and then the Bokeh, then maybe a Soft Glow, and then, perhaps, used the Light Blender, and then perhaps used the Smart Light, and then the Retinex, and then the Power Details — all things you might want to do in discrete and localized levels.

      This is not possible in the pure Lightroom Model without causing a ‘stack’ entry (i.e. a destructive editing sequence).

      >> There is absolutely no reason that this is not possible within the Lightroom paradigm.

      There is a big reason that it is not possible in the Lightroom paradigm as a general rule, as described above. One specific example here and there — sure, if its important and popular enough, I am sure something could be done, such as using the GPU for the Bokeh, for example, and then offloading it to the main CPU for better accuracy when the image is exported. But, as a general rule, no.

      >> In fact some amount of tone compression functionality already exists in the Highlight slider, as one example.

      It depends on what you mean by ‘tone compression’ — sure, I agree. The Light Blender in Sagelight does a ton of this and it is also non-destructive and works with all of the other real-time, non-destructive layers in the Quick Edit Mode.

      As a programmer and someone who also knows the math; this is the difference between assigning a curve and merging it in ‘Vivid Light’ Mode (the formula for which is (Blend > 0.5) * (1 – (1-Target) / (2*(Blend-0.5))) +
      (Blend > Frankly Bokeh is the same way; other lens-based edits are already available, the only major challenge with boken in LR would be selection masking, which is currently fairly limited.

      ‘Lens-Based’ edits are very different than a Lens Blur. For example, the Fast DOF in Sagelight could be part of the Quick Edit Mode very easily. There’s just no reason for it (which is an entirely different subject). But, there is a difference between a “blur” and a “lens blur”, the latter needing a kernel on every pixel, which sometimes means literally trillions of operations per image.

      In some sense, the Bokeh in Sagelight is realtime (sort of). It comes back very fast with a preview, but can take some seconds to show you the complete result for every preview — this means that if you move the preview window around, it can take a few seconds to completely redraw the image, depending on settings.

      Again, no kernel = possible in realtime (i.e. basically a double box-blur), where a kernel (i.e. lens blur or Gaussian Blur), really isn’t possible in realtime (today, that is — if you’re reading this 10-20 years from now, this may not be accurate) without causing a lag on the display.

      Localized editing becomes another issue, when you want to localize a number of functions. For example, I might want to use the brightness and then localize it. Then, I may want to use the same exact brightness control and localize that. I might want to do a lot of touch ups like that. I would have to create a layer for each and every one of those. All possible, of course, but it does get out of hand.

      >> But there is the simplistic idea of “selections”.

      Absolutely. I love the radial selections in Lightroom, and a similar thing will be making an appearance in Sagelight.

      But, we’re not talking about simple things here. It’s agreed that if its simple, it can be done non-destructively.

      >> …the Adjustment Brush, Linear Gradient, etc., all of which likewise operate non-destructively.

      Yep.. All easily done. These operate non-destructively in Sagelight, too.

      >> Literally the only difference between these and arbitrary selection adjustments is the shape of the selection and how its made.

      It depends on what power you want to have in your editor. If you want real power, you’ll want to use multiple selections and masks — that is, you’ll want to do localized editing at different points in your image. Lightroom really isn’t about that to a high degree — it’s not meant to be. It has some great stuff, but it’s just a different model. As I mentioned, Adobe purposely leaves the higher-end stuff to Photoshop, hence the actual title for Lightroom, “Adobe Photoshop Lightroom”

      >> There’s no reason the exact same adjustments could not be made with an arbitrary selection function, and if Adobe did not have Photoshop that they also want to sell separately with that function, they’d probably add it.

      As I mentioned, you just can’t have that many functions as a non-destructive sequence. Not yet, anyway, unless you have a Cray Supercomputer — then you can, sure.

      >> So it’s really more likely to be financial motive than any technical consideration that keeps things like HDR and Boken out of Lightroom.

      I don’t think so. There’s a definitely split between the base of Photoshop and Lightroom now — that is, a lot of people use Lightroom that don’t use Photoshop, giving a market base for such things. Besides, there are Lightroom plugins for these things, and these are also necessarily destructive.

      If it was a financial motivation, Adobe would offer add-on products like non-destructive HDR plugins (they do have a non-destructive Plug-In model, but it is only used for simple things, as far as I know). And, perhaps they will — like I said, one thing here and there, sure — its when you start stacking one after the other. So, which do you choose? Especially when you want it all do be accessible; so it has to get destructive somewhere.

      Besides, destructive editing is not only useful, but is the gateway to more powerful editing. Destructive editing is not a bad thing — it just needs to be done more sparingly, and only when it makes sense. When all image-editing was 8-bit per-channel, destructive editing was just that, destructive. But not anymore, as long as certain care is taken — which, down the road, will also be an even greater strength of Sagelight, in terms of recalculating stack elements (more on that some other time).

      Photoshop’s model is a great one (which is really Sagelight’s model, too, in a roundabout way) — Photoshop has adjustment layers for the simple things (Sagelight just does these automatically, and for many more things), and uses destructive editing where it makes sense.

      Sure, there are a few things Photoshop could add (now.. in the sense that some of it is legacy, I am sure), such as the Unsharp Mask — there is no reason that can’t be a layer in Photoshop. Sagelight has two layers for local contrast, and I am about to add a third for sharpening. There’s plenty of CPU time for all of that.

      >> Your example with the multi-band equalizers of Light Blender is interesting too because Lightroom has pretty much the same thing (the Tone Curve panel). It has 4 sliders for Highlights, Lights, Darks, and Shadows, and you can adjust where on the tone curve the cut-off for each is. If you want more control, you can switch to editing the curve directly, either in RGB simultaneously, or in each channel separately.

      Absolutely! The equalizer idea works fine for many things. All they are is vertical sliders.

      >> I find it provides just *enough* control and not too much or too little. It’s rare, if ever, I’ve wanted more.

      It depends on how much power you want. In Sagelight, I offer the curves in the Light Blender, and that makes a huge difference. I mentioned that when I release the UI upgrade, the presets I put into the Light Blender will show what I mean. Because of the HDR model in the Lightroom, it has a very high flexibility and even the most minute changes can make a difference for those who want to go further in editing.

      >> But it’s always nice to have the option, as you do in SL.

      Sure, even a 5-band equalizer will give you great results — but to go the distance and really get a professional-level feedback, why not allow people to use the curves, too? People who want a professional-level editor appreciate that difference, and also see it.

      >> I think where LR wins though in terms of UI is that all of this is accessible in the same panel, which adjusts dynamically as you enable or disable different settings or switch sub-modes, and it’s all non-destructive. The amount of power in SL is more than in LR in many cases, and this is a good example, but by providing a cleaner and quicker way to access the power that it has, LR still comes out on top for a majority of projects for me.

      We all have our preferences, and I get e-mails all the time that let me know they prefer Sagelight over Lightroom, so it’s all just fine with me.

      I do agree that the professional-level options obfuscate some of the functionality in Sagelight, which is why the new streamlined UI — the idea is to make some of the functions more accessible in Sagelight. It’s weird, really, because it will seem like a new Sagelight. A lot of people, for example, like Sagelight a lot and have no idea the Light Blender and Power Box tools even exist (because it’s just one small button that brings it all up). So, when the new UI is finished, Sagelight — for all intents and purposes — will suddenly and dramatically become more than 2x as powerful to many people! I am really looking forward to that.

      >> Now I imagine my feedback may be starting to sound like a simple Lightroom fanboy, someone who has already decided SageLight is inferior to LR and that’s the end of it.

      We all have our preferences, and Sagelight has been around enough that enough people prefer it over Lightroom, too, so it doesn’t bother me one way or another.

      >> The truth is I wish that the power of SL was accessible to me in a way I was more comfortable and efficient using, and that’s why I’m happy to see the LR-like direction the UI appears to be going.

      I wouldn’t say it’s going in a Lightroom direction, but I take your point — the new UI will make more tools easily accessible in Sagelight, and that is a good thing. It will really expose Sagelight to more people.

      >> I realize it’s not for everyone, but no single UI paradigm is; the collapsible panel approach, minimizing pop-up windows, is a widely adopted one for a good reason, and I hope it will be successful for SL as well.

      Thanks. It took a while for me to decide on a specific paradigm. The main thing was that I wanted to keep it simple for those who want it simple, and powerful for those what want the power. In my opinion,the LR UI is ‘ok’ — it’s fine, and I have no complaints. But, it can be confusing for some (based on my e-mails anyway), so I wanted to make sure I was designing a UI that fit Sagelight. I wasn’t influenced by Lightroom in the UI design, save one thing — I really like the way they do the ‘Stack History’. Since this is more of a driving force in Sagelight than Lightroom, I was influenced by the nice organizational structure they have there.

      >> The last thing I want to mention is that you discuss several “duplicated” controls in your descriptions above, particularly in the HDR function overview, and you justify each one, at least by your internal logic. For me the justifications often fall flat, in other words I just don’t agree with those controls being replicated there, and I think the reason for this is that a well setup, non-destructive editing flow makes such duplication unnecessary. It undeniably adds a level of potential confusion, no matter your UI approach, and while it adds some convenience, it is an error-prone and ad-hoc process (after all you are making just a personal judgment call as to what other controls might be useful to someone in that mode; it would be ideal for everyone to make up their own mind).

      ha… yes, internal logic. It’s also because there really is a lot going on in the HDR Panel. I duplicated the control — which really wasn’t a great idea, and I agree it was ad-hoc. I didn’t justify it as much as I explained why I did it. I didn’t like doing it, either. It was just that the Histogram Equalization really is obscure to most people, and I didn’t want to put it in the up-front controls. On the other hand, the Highlights go hand-in-hand with the Equalizer, so I just duplicated it. No defense given. ha.

      >> Creating an overall smoother, more integrated, and more efficient UI should do away with a majority of the need for that kind of duplication, in my view. Hopefully that ends up being the case as you go through the process of refining your new approach.

      Yep. I think the overall and current approach in Sagelight is just fine. Most people like it. Most people also like the new UI design, too — it’s more of an evolutionary issue, where those who are comfortable with the Sagelight UI also know it is very powerful and that some of that power has been missed because the UI tends to want to hide entire sections of code behind one little switch! Not that there is anything ‘wrong’ per-se with the Sagelight UI, as much as — with any product — it needs to grow with how the rest of Sagelight has grown, and now is the time.

      That’s really the crux of it — Sagelight really does have a serious amount of power, and this has started to crowd and obfuscate the UI at certain levels.

      The new design should work well there. And with the external, plug-in-like functions, such as the Surface Blur, HDR, Retinex, and so-forth, that gets more into a Photoshop/Sagelight mix, where you’re using a destructive set of functions on a non-destructive setting, but also creating a ‘stack’/history entry for your image. When I get the new UI out, this will be more of delineated issue, and I will start expounding upon the virtues and necessity of both non-destructive and destructive editing. Both concepts have evolved nicely, and I think its time to really explore them!

  2. Thanks for the lengthy and in-depth reply Rob. You’re certainly a greater expert at the code side of things than I am, so it’s hard to argue. All I can really do is go on what I see and experience as a very heavy user of such software.

    In that context, when stacking/merging of multiple levels of exposure is *not* involved, the only part of HDR processing in dedicated apps that is not realtime is the loading stage, which Sagelight and every other app also has. In other words in e.g. Photomatix or HDR Efex Pro 2, when I go to make an HDR image from a RAW, it takes a few moments to load the image, then every single operation is realtime, completely realtime. I adjust a slider, the result shows up instantly. So either these programs are not doing the kind of HDR processing you’re talking about (and I note that Photomatix in particular is considered one of the top applications in the category), in which case I suggest you really trumpet the unique HDR processing SL is doing (and I’d love to see examples of exactly what that does), or you just make some operations realtime/non-destructive, and others not.

    In any case, from a user perspective, this kind of feedback and process in Photomatix, etc. is no different, at least experientially, from how SL works, and with effective process result caching there’s no reason I can see why this kind of processing could not be done in a non-destructive workflow like LR. Again you may have other more intensive HDR processes in mind, but they are not – apparently – the most used ones, because Photomatix and HDR Efex work in realtime, period. There *is*, of course, an accumulation of processing load that happens with more and more non-destructive editing layers, but if done correctly it can be minimized. Maybe SL is doing things that just aren’t possible in near-realtime, it’s hard to say, but if so then unless they can be demonstrated to be dramatically superior to what these other apps are doing, it will be a hard sell for the average user when realtime feedback is available.

    Oddly, you attempt to explain why all this is not possible, then you go on to discuss one specific way where it *is* possible, initial lower accuracy GPU (or CPU for that matter, if it’s lower accuracy!) preview, then final render when you write to disk. This is *exactly* how LR works (minus the GPU processing, it doesn’t have any real GPU acceleration as yet, that I’m aware of). If it did all the processing at full resolution every time, then it would be too slow, of course. But that’s a pretty simplistic and unwise way to do it. And, by the way, Surface Blur in Photoshop is an operation that takes 1-2 seconds to update on my machine for a blur radius of 100 (the max of the slider) and threshold of 20 (this is on an 8 bit image processed directly from raw; it’s slower on a 32bit/channel image, but in most cases there’s no reason to do preview-level operations at that accuracy). For a threshold of 255, the max on the slider, it’s maybe 3-4 seconds. Not quite realtime, but not exactly slow either. Granted this is in a destructive editor – rather than non-destructive, like LR – but there’s no reason the blurring can’t be done as a final step in the process, working on a previously cached result, nor that future operations cannot benefit from the exact same approach, thus keeping things largely realtime. If you want to go back and adjust something deeper in the stack that affects the results of subsequent operations then yes, you have to recalculate things, but the vast majority of these things are small and quick, and even cumulatively would not add up to more than a few seconds. I for one would gladly allow up to 10 seconds of processing time when using certain operations if it maintained non-destructive editing. Furthermore one could allow manual settings for realtime/preview detail level to cut down on processing time and let the user decide their own threshold.

    Basically I feel like you state these problems in hard terms as if they’re unsolvable at present until computers get faster. But the pace of computer speed increases has dramatically slowed in recent years, even in the GPU area. And taking advantage of GPUs is non-trivial as well (though easier for image-based operations in many cases, vs. general computation, depending on accuracy needed). So I think finding ways to get the best of both worlds, non-destructive editing and reasonable feedback speed, with *present day* computer resources, that’s critical. And I think it’s a bit disingenuous to write at such length about it as if it’s an inevitable and insurmountable problem due to hardware limitations when, by all appearances, many other apps seem to have addressed similar or even identical issues. It’s easy to say that LR doesn’t do Bokeh because it can’t be realtime, but that’s true only until LR comes out with a Bokeh tool. 😉 And frankly there are other perhaps stronger arguments as to why it doesn’t have it at this point.

    All that being said I agree with you that *destructive* editing is valuable and has its place. In fact this is one area where I think LR *does* make attempts and compromises that I generally disagree with, and that is specifically to do with its “healing” and “clone” functions. While I have occasionally appreciated their non-destructive nature, far more often I have cursed their slow update speed, quirky functionality, and limited controllability. I am fairly adept at cloning in Photoshop, to the point where I can make some pretty major edits to a scene with a good degree of realism. I have often wished to do the same in LR, but the tools provided are ineffective for the purpose the majority of the time. They suffer from being made non-destructive. I would much prefer some kind of SL-type “undo brush” capability and a more destructive-type editing process with literal clone painting, etc. as in Photoshop.

    At the end of the day I’m a LR user and only occasionally do I miss the power that Photoshop or SL offer. I depend fairly heavily on LR’s cataloging feature too, so I may not be an SL convert even after the UI overhaul. But I like your under-the-hood design philosophy and emphasis on quality in SL, I like the tools available, and I’m looking forward to them being more accessible and efficient in the new UI. I just might convert over, or at least use SL instead of Photoshop for more intensive editing on my most important images. 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s