Welcome to the Sagelight Editor Blog

This blog is for things currently happening in Sagelight.

Useful links

Homepage: www.sagelighteditor.com

My direct e-mail: rob@sagelighteditor.com

Direct link to the free 30-day trial: www.sagelighteditor.com/install_trial.exe (22  megs, All Windows versions).

Sagelight Editor Facebook Page An informal place to post your pictures, thoughts, and ask questions.  It was just set up — please “like” it so it can get it’s own username.

Youtube Page (with video tutorials — can be accessed on the discussion board, too): http://www.youtube.com/sagelighteditor

Current Sale:

The $39.95 (lifetime version) sale is coming to a close, ending around the 1st of January. Sagelight is currently being split into a Standard and Enthusiast/Pro version.  The current version is the Enthusiast/Pro version, though the current pricing reflects the standard version.  Once the split is complete, the Enthusiast/Pro version will be $79.95.

Light Blender Blog: Vivid HDR Preset (that you can download)

dog-closeup-600

 

The Vivid HDR Preset is a preset you can load into Sagelight.  Just download it and then use it on any image in the Quick Edit Mode.  See below for details on how to load the presets and use them in Sagelight.

 

Natural HDR and the Light Blender

The Light Blender in Sagelight is a very powerful tool and is a great for natural HDR results.  Where other HDR functions (including those in Sagelight) can give an HDR look-and-feel, the results can sometimes  be harsh and look more artistic than realistic (depending on how you use it, anyway).

The Light Blender is rooted in a true HDR base algorithm, bringing out the range of your image in a way that looks more realistic.  The Light Blender’s main purpose is to bring out the shadows and bring down the highlights to give a good, broad range to your image, reducing severe highlights and shadows.

plane-new-600_edited-title(Before and After Image of Light Blender Natural Vivid Preset)

 

Natural HDR, in General

I have been working on many ‘natural’ (i.e. realistic-looking) HDR aspects of Sagelight lately, and the release of the Vivid HDR preset is one of many elements I am adding to Sagelight, and the first of a number of presets for the Light Blender to work with natural-looking HDR.

With the latest efforts in development and cameras these days, HDR – that is, natural HDR – is a very big component of digital photography.  New cameras have HDR modes, and even for those that don’t, using a single frame (instead of 3 or more)  — even a JPEG — as a source is now completely realistic.

The idea of HDR, natural or artistic, is no longer limited to those with the right expertise, equipment or specialized software.   This really has a lot to do with the growth of technology in image editors like Sagelight, but also in the sheer quality of the images being returned by today’s cameras.

 

leaves-vivid-600-title

(Another before-and-after example of the Vivid HDR Preset)

Full Range of Light and Colors

When used correctly, a natural HDR effect can bring out the image the way the eye sees it.   Our eyes continually adjust to the light, and we tend to see the shadows and highlights, where the camera sees more washed out highlights and darker shadows.

There is also the element of the harshness of the light on the subject, depending on the angle of the sun or other light sources.  Natural HDR can take that mid-afternoon shot, with its bright, white-ish highlights and deep shadows, and turn it into a shot that has the color and range of a late afternoon or early morning shot!

The Light Blender Vivid HDR Preset

The two above examples are basic before-and-after examples of using the Vivid HDR Preset.

This preset works by bringing out the range of your image.  You may then change many different settings, including the curve/equalizers.

Getting Halo-Free Results

A big part of bringing out the dynamic range in an image (especially around areas of contrast and shadows) is halos – those darkened or light areas that tend to make a picture look unnatural.

The Vivid HDR preset works without creating halos, but subsequent definition and focus levels can create small halos, sometimes visible.  There is a way to work with halos, and I will outline these later in this article.  See the “Getting Halo-Free Results Continued” section below.

Downloading the Presets

To download the presets, download the following .SLP files.  You can place them anywhere on your system, and then load them through the Quick Edit Mode Preset Function.

Using the Light Blender HDR Preset

 

presetgraphic

To use the preset, simply press the Preset button in the Quick Edit Mode (Step 1).  Then press “Load Preset” (Step 2).

One you press “Load Preset” go to the directory where you put or downloaded the presets.  Then you will see a screen similar to this:

presetwindow

Simply click on the preset (i.e. “Vivid HDR 1”), and you will see your image change to reflect the range of your image.

There is also the “Vivid HDR 1 (lift shadows)” preset, but lets stick with “Vivid HDR 1” for now.

leaves-org-600

Using the Preset

Let’s take the above picture of the leaves as an example.  Follow the steps outlined above.

leaves-vivid-600

 

When you load the Vivid HDR curve, this is the result.  You don’t really need to do anything else.   You can then use the Vibrance and other controls.

Use the Apply Button and Smart Light

Sagelight is non-destructive to your image in this process. Sagelight is also based on re-using controls.  You can then press the Apply button to lock these changes, so you can do more with your image than you could with just one set of controls.

After this, you can use many other controls to really bring out the light in your image.  The best control to use after using the Vivid HDR Preset is the Smart Light (the Light Symbol in the bottom-left of the Quick Edit Mode).  Inside the Smart Light, try using the Midtone Contrast with the Highlight Slider.

lighthouse-org-600

Another Example

The first example with the leaves worked out great.  There really wasn’t much to do with it.  This isn’t true for all images.  For example, the image above (the Lighthouse) is dark. 

Load the Vivid HDR preset with this image, and here is the result:

lighthouse-vivid-hdr

You can see that the range has been brought out, both by deepening the highlights and bringing up the shadows.   But, it’s still a little dark.

I can get a great image by pressing the Apply Button and using the Smart Light Controls, as suggested above.

2674994140-vivid-hdr-SmartLight

The above is the Vivid HDR preset after I used the Apply Button and a single pass in the Smart Light. I can then fine-tune the image to get what I want, such as contrast, more color, and so-forth.

If you look very closely, you can see a feint trace of haloing in the trees, and possibly on the sides of the lighthouse.  These are barely noticeable, but sometimes can show up if you do further editing.

Most of the time, small halos aren’t a problem and you would only know they are there if you were comparing the image directly to the original.

However, there is a way to work with the Vivid HDR Result that – as other functions are used (such as the Definition controls) – generates no halos whatsoever! See the section below, entitled: Advanced Techniques: Working with the Vivid HDR Result Curve.

vividwindow

Working with the Result: Using the Light Blender Controls

You can affect the result greatly with just a few tools in the Light Blender and Power Box.

When you load the HDR Vivid Curve, the controls in the screen above show up.

You can dismiss the LightBlender Curves Window – just click it off (it really shouldn’t be showing up; it just does that when the preset has changed the curve, which the Vivid HDR preset does).

The other controls, however, do some great things with the result:

LightBlenderMoreControls

 

Frame Transparency and Reduce Softening/Halos

These two controls work together for a great effect.  Move the Reduce/Softening Halos to increase the feathering – this can add definition and make your image look more natural.

Simultaneously, try sliding the Frame Transparency – this will brighten your image.

When used together, these can create a nice, bright, natural image, even when the initial result doesn’t look the best.

As you move the Frame Transparency Slider, you can also lose definition.  Use the Definition Slider to compensate (see more below)

Mix Original Color

When you use the controls, the image can start to look very colorful – sometimes in an unnatural manner, as the new bright shadows have more color than they need. Sometimes this works in the opposite direction, and not enough color is brought out from the image.

Use the Mix Original Color slider to compensate.  As you move the slider to the right, less color is added from the original image; as you move the slider to the left, more color is retained. 

You can also use the Saturation and Vibrance controls.

DefinitionControls

Using the Definition Slider (or avoiding it)

When you use the Vivid HDR preset, the Focus is set to 15 (make sure #2 is pressed; this is the focus, where #1 is the definition and is not set).  This is set because the Vivid HDR brings out the dynamic range, which reduces definition.

The Focus Control brings back the definition, but can be at the cost of some slight edging or halos (usually this isn’t the case, and you can set it to 0 and back to 15 to see the difference).

In some cases, you might want to avoid using the Definition and Focus controls until after you’ve edited the image for light and balance.

As you use the other controls (such as the Frame Transparency Slider), you can reduce or increase both the Focus (#2) and Definition (#1) controls to keep or reduce the overall local contrast and definition in your image.

You can use the Equalizer

See Advanced Techniques: Working with the Vivid HDR Result Curve. Below.

 

lighthouse-curve-600

 

Advanced Techniques: Working with the Vivid HDR Result Curve

(aka Getting Halo-Free Results Continued)

The above shows the screen after you load the Vivid HDR Preset.  You can usually ignore the curve and just close the window.

In the example with the Lighthouse above, I showed where I used the Smart Light function just after loading (and applying through the Apply Button) the Vivid HDR Preset.   However, this generate dsome very feint halos.

You can adjust the Equalizer or the curve itself (by just grabbing the curve and moving it, or using the mouse-wheel on the curve points for greater accuracy)

lighthouse-curve-only

The above is the result adjusting the LightBlender Curve (note that the Focus control in the Power Box was set to 0 to avoid halos).  This example is halo-free!

lighthouse-halo-free-zone

The image above shows that there are now halos in the result image (you would see them if they were there in this augmented image).

 

2674994140-vividhdr-curve-edit-smartlight-HDR-600

The above is the same image after using the Smart Light Contrast Control, a little HDR, Noise Reduction and the Undo Brush – all still halo-free!

Using “Vivid HDR 1 (lift shadows)” Preset

For some images, you may want to detail the shadows even more.  The “Lift Shadows” version of the preset works well for this.

leaves-vivid-600

For example, the above image is the result of using the “Vivid HDR 1” preset.

leaves-vivid-shadows-600

This example is the result of using the Lift Shadows version.  If you look closely, you can see more shadow detail in the second image.

On some images, this may make the image too bright in the low shadows – you can just load the “Vivid HDR” preset, or use the left-most equalizer handle to adjust the shadows (or grab the curve in the curve box).

eagle-new-600

(Original Image)

Restoring Highlights with the Vivid HDR Preset

The Vivid HDR preset can help restore highlights.

eagle-vivid-600

In the result image, you can see much more definition where the highlights were blown out before.  The eagle is brighter and more balanced overall.

You can use the controls to add back contrast, add or remove color, and otherwise create the image you want – now with much more definition in the highlights.

 

dog-org-600

(Original Image)

Vivid HDR is great for Artistic and Natural HDR

The Vivid HDR Preset does a great job of setting up an image for an HDR pass in the HDR Panel or other HDR functions in Sagelight. The result can be a more natural HDR – still artistic and impressive, but not quite as artificial-looking as some HDR.

dog-hdr-600

Wit this result, the dog definition as an HDR look, but it also look natural and smooth. A very light pass of NL Wavelet Noise Reduction was also used

dog-closeup-600

This is a closeup of the HDR image, showing the very high quality and definition of the result!

Keep in mind this is a single-frame HDR image, not multiple exposures.

Conclusion

The Light Blender is, indeed, a very powerful tool.  The Vivid HDR Preset just released is a small part of the Light Blender, but shows how much it can do to help your image.

This is the first of a few Light Blender presets to create natural HDR in your image, as well as help create heavier artistic HDR effects that are more artistic but also with a natural look and feel.

The Vivid HDR Preset helps bring out the HDR elements of your image – both shadows and highlights – so you can create a more vibrant picture more easily.

Once the Vivid HDR preset is used, many tasks become much simple – just use the Vibrance and other controls,  press the Apply Button and use the Smart Light Control to create a great image.

You can go further and use this as a base for more HDR effects, or mixing your image with the Undo Brush for more localized editing.

You can create different and more compelling results by modifying the Vivid HDR curve and using the Frame Transparency and Halo Reduction Sliders.

This preset will appear in the Light Blender as an inline preset when the UI is updated. 

For now, try it out and see what you can do!

Up Next: Light Blender Natural HDR:

portrait-org-500portrait-vivid-feather-500-2

(click on images for larger sizes)

In the next release, a new preset which has a great natural feel to it.  The next Light Blender preset release will help you to automatically get very natural HDR effects out of most images – just by loading the preset. 

Rob’s Cell-Phone Blog: The New Era of Cell-Phone Cameras (and Lens Blur, Part II)

20140529_105130_edited-700

Flower Taken with my Galaxy S5 16MP On-Board Camera (with virtually no touch-ups, save one – Lens Blur / Bokeh)

 

Cell Phone Cameras are Now Able to Take Great Pictures

I just upgraded to my new Samsung Galaxy S5.  I didn’t really need it, but I upgraded anyway for one specific reason: the camera.

The camera in the Galaxy S5 is 16-megapixel and offers great color, as well as a number of modes, specifically an HDR mode (that is, true HDR, not the artificial kind) which allows the camera to take pictures that don’t kill highlights and shadows.

the iPhone has a similar capacity, and both cameras do a great job with panoramas, stitching them basically perfectly (or close enough in some cases) – in fact, a few of the images I posted on the www.cinepanplayer.com site are from iPhone cameras.

Introducing Rob’s Cell-Phone Blog

This is the first entry in ‘Rob’s Cell-Phone Blog’.  The magic of new technology is that it makes such great tools available to all of us.  Now anyone with a cell-phone released in the last couple years can get great pictures – and easily, considering our phones are with us all the time (I think this is one of the main things).

While I am working on the next version of Sagelight, I am going to start posting entries with pictures taken with my cell-phone, as well as those taken with my bigger camera for comparison.

My main purpose here is two-fold:

1. To show that you don’t need to be an expert or committed to expensive equipment to get good pictures.  Of course, the nicer the camera, the better the picture, and – more importantly – the more great pictures you can get.

2. To show that with cameras now returning ready-to-publish pictures, using an image editor such as Sagelight (or Lightroom, Photoshop, etc.) is even more compelling and creative.

As such (with #2), there is something counter-intuitive going on.  At first, it seems that, if a camera can return a great picture, you don’t need an image editor like Sagelight.

Well, you don’t.  And that’s the beauty of it and the part that seems counter-intuitive at first.

The main thing is that you really don’t need an image editor with most newer cameras now, at least in JPEG mode.  And that’s a great thing, because now you don’t have to spend time fixing the image for color and other problems.

That’s liberating, because now you can work on your artistic view of the image instead of what may be going wrong with your image. Now I want an image editor to do the things I couldn’t do with lesser images – those lower-quality, problematic images with contrast and other problems.

My aim is to show that the better the picture from the camera, it really means the more you can do with an image editor like Sagelight.

In fact, for those curious, this is why I have been steadily putting serious and powerful tools in Sagelight over the last 2-3 years (i.e. HDR, Bokeh, Power Details, etc.), because technology is allowing us to be more creative with our image than ever before.

 

Getting Great Shots Easily

As I mentioned, I am not saying – in any way – that the camera technology appearing in newer cellphones are nearly as good as a camera you would by as a standalone camera.   My Fujifilm SL-1000 is much better than the camera in the Galaxy S5, and I am always going to get better pictures with the SL-1000 than I will with the Galaxy S5 (and, by my rating, the Fujifilm Sl-1000 is only a mediocre camera, mostly because of the horrible JPEG codec, forcing me to take RAW all the time, and effectively making many modes (that won’t write out to RAW) pretty-much worthless).

But, I take my cell phone everywhere I go – with my bigger, standalone camera, I need to think about it; I need to be in photographer mode and out to specifically get pictures.

Now that my cell phone takes some great pictures, I can actually think about them artistically and see them as quality images, where I just couldn’t before except for the picture that somehow randomly came out great with my previous cell-phone.

 

20140529_105130-700

The Original Image

Great Color and Image Quality

The nice thing about the Galaxy S5 camera (and no-doubt the pictures from the iPhone and other cell-phone cameras) is the perfect color.

The image above is the original picture with no changes. 

To me, that’s great – now I can spend more time creating my artistic view of the image rather than fixing it’s problems.

20140529_105130_edited-700

The New Image (again – this is the same image as the top image)

More Lens Blur / Bokeh – Lens Blur Part II

This can be considered a continuation of the Lens Blur post from a couple days ago:

The only change I made to this picture was to add some lens blur, using the techniques I described in the last blog article.  I wanted to bring out the flower into the foreground, especially since some concrete is showing in the upper-right (which I could have removed with the clone brush)

In this case, I created a more accurate mask with the Sagelight Masking and Fill Mask tools, which took about 5 minutes.

mask-flower-accurate

You can see where I made a more accurate mask.  I wanted to blur the background, but also wanted to keep it looking realistic.

mask-flower-accurate-closeup

Here is a closeup of the selection mask for reference – you can see the Sagelight Masking and the Fill Mask tool did a great job!

The result brings the flower more into the foreground, and now that concrete patch is a little less present as part of the picture.  If I wanted to continue editing this image, here is what I would do (if anyone wants me to do it, I can post it):

  1. Remove the Concrete Patch.  I would just use the clone brush to bring in some of the green areas (from the left) to obscure the concrete.  It’s easy to do and would look realistic.
  2. Remove the Blown-Out Highlight.  The upper-left part of the flower has some blown-out highlights.  I would just use the clone brush (with a low pressure) to blend in some texture from another part of the flower.  Actually, I did this and it looked great.  I must have reverted to a previous version before I did the Lens Blur / Bokeh.

Conclusion

I really like what I am seeing with technology in cameras these days.  Cell-Phone cameras can now take some great pictures, and since we always have our cell-phones with us, we have even more opportunity to take great pictures spontaneously.

Since I don’t always have my bigger and much better Fujifilm camera with me, the quality of my Galaxy S5 cell-phone camera allows me to think creatively on-the-fly when I am just walking by this flower or that rainbow, or wherever.

My larger camera still takes much superior pictures and gives me more chances at a nice picture, but I don’t carry it with me always, and its great to have a camera on me all the time where I can get something great here and there.

With the HDR and panorama modes, it makes life even better:

bjpenn-700

BJ Penn Gym, Hilo, Hawaii

The above image was taken with the photosphere program, which is a 360×360 image.  It’s not perfect and has a lot of errors, but it’s great to have.  This picture will never be professional-quality, but I also took in about 2 minutes and performed no post-processing on it.

 

Now that I can get great images from my cell-phone camera (as well as just about any camera nowadays), I don’t need to worry so much about fixing it and can concentrate on my vision for the image.

This makes image-editing much more fun and creative, when I can deal with a great image from the start – even with my cell-phone.

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)

Easy, Realistic Lens Blur / Bokeh in Sagelight

duck-post-bokeh-700

Duck at Punalu’u Pond (Big Island, Hawaii)

Now that I am working on the next update, I am going to spend some time writing about how to use Sagelight.

(note: I see I wrote quite a long blog post, which really can be used a general article for using Sagelight.  Read the Conclusion for a good summary)

Sagelight has a lot of wonderful and powerful functions, and the Lens Blur / Bokeh is definitely one of those higher end functions in Sagelight that can be used for amazing effects.

Lens Blur and Your Images

Depth-of-Field is all the rage right now, emphasized with the new cell phone cameras, such as my Galaxy S5 and it’s Boke mode (which works with limited success, but it very nice when it gets it right). 

And as well DOF/Lens Blur should be all the rage, because Depth of Field is a great option, even when your camera didn’t deliver it in the original image.

Sagelight has a powerful, fast Lens Blur / Bokeh function that can help your image in many ways.

As Ansel Adams showed, half of Creative Photography takes place after the shot is taken (someone should create an editor with a name that takes off on that notion…hmmm…), and either creating or adding lens blur to an image can be a very powerful part of the post-production process.

I say “creating or adding” lens blur, because sometimes you want to add Depth of Field where there is none, but also a camera will give you a slight or good depth of field, but you might want to add more to focus on your foreground object.

Natural-Looking Lens Blur / Bokeh

In this article, I am writing more about creating natural lens blur and bokeh effects.  That is, creating a lens blur that, well, looks like a real lens blur, as if it came from the camera.  Much of the time, Bokeh is used for artistic effect, which can be very nice, but doesn’t always look like it was the natural result directly from the camera.

If you’re looking for more realism and natural results, the Bokeh and Lens Blur function in Sagelight is very useful.  In fact, I wrote this blog because I was using it for some of my images, and the Lens Blur/Bokeh in Sagelight absolutely saved a number of pictures that weren’t nearly as worthwhile in their original state.

Keys to Natural and Realistic Lens Blur / Bokeh

I will describe these more in the follow paragraphs, but a quick overview of the keys to realistic post-production lens blur:

  1. Don’t blur too much.  This can often be an issue, much the same as the issue with saturation – with saturation, we tend to get acclimatized to the color as we add it, and it’s easy to go too far; what looks great at the time has far too much color when we see it later.

    In the same way, sometimes it seems nice to have all this power to create a lens blur, but going too far looks less natural.

  2. Creating a Selection Mask.  With most images, there is a foreground and a background.  Somewhere in most images (where a lens blur is useful anyway, since the idea of a lens blur is to bring out an object in the foreground), the foreground element(s) overlap onto the background we wish to blur.

    The human eye is amazingly perceptive, and any mistakes where the foreground gets blurred, or the background doesn’t in these overlapping areas can ruin the effect.

    By contrast, it also works the other way around! A great mask on even a small object, keeping the foreground sharp and the background blurry (even just a little) can really sell the effect – our eyes pick up on it, and it makes it look real, adding realistic depth.

Lens Blur vs. Bokeh

For natural results, there is basically no difference between Bokeh and a Lens Blur.   Lens Blur is basically that – a blur through the digital equivalent of an aperture of a specific shape (which you can choose). 

Bokeh is just all the rest added – the highlights and effects that tend to be more for an artistic presentation vs. realism. In a nutshell, Bokeh is simply a superset of the Lens Blur. Lens blur + effects = Bokeh.

If I use the term Lens Blur or Bokeh, it’s all the same function in Sagelight – the Bokeh function.  I tend to use the term “Lens Blur” here, because the term tends to reflect the idea of realism vs. effect. The Lens Blur / Bokeh function is called “Bokeh” in Sagelight because it has all of those things needed for a lens blur plus all of the Bokeh additions. If you’re familiar with Adobe Photoshop, the Lens Blur function is similar to the Bokeh function in Sagelight – Sagelight does more, but the Bokeh in Sagelight and Lens Blur in Photoshop do basically the same thing.  Sagelight adds effects such as the Backlight and more “traditional” bokeh functions, but the lens blur functionality is essentially the equivalent between Photoshop and Sagelight.

Lens Blur / Bokeh vs. Fast Depth of Field Function

A quick note about the Fast Depth of Field function.  This function is, as it says in the name, a very fast version of a “variable blur”, which is very similar to a Lens Blur, except that it is more of a digital / Gaussian-type blur and not a Lens Blur (i.e. through a shaped aperture, such as a circle, hexagon, etc.).  The Fast Depth of Field function is very nice, also, and has some great uses. 

I will write more about this when I get to the example with the duck (shown above).

turtle-700

Sunbathing Sea Turtle at Punalu’u (Black Sand Beach), Big Island, Hawaii

A Simple, But Effective Lens Blur / Bokeh

Looking at the picture above, I can see I overdid the Lens Blur a little bit in the foreground.  But, that doesn’t really matter.  It looks great, and this is one of those cases where you see the flaw in it mostly because you’re familiar with the original, and not because it stands out as a glaring issue.

Even though the foreground is a littler overdone, the Lens Blur in the background worked out perfectly, so I just left it as it was. Since I saved the mask, I can just do it again later.

This is a good case of a picture that looked ok on its own, but using the Bokeh controls in Sagelight made it much better.

It may look like I just used the Lens Blur / Bokeh controls without masking, but this isn’t the case.  Two main points of this blog post are about using simple masking (i.e. nothing complicated) and the Backlight Slider control in the Sagelight Bokeh controls.  Read more about this below.

 

Some Information About the Images in this Blog Post

There’s a couple things going on with the images in this blog post.

  • All Images use a mask to achieve the effect.  I will discuss this in a section below, but its important to note that all images here have a small mask applied to them to help the Lens Blur effect.  Selection masks are used in the foreground area to make sure it doesn’t get blurred.

    You can use the Lens Blur / Bokeh without creating a selection mask, and this also creates a great effect.  For this article, small masks were used to separate the foreground and background, creating a more realistic lens blur (vs. a bokeh effect).

    Selection masks are the main reason the Lens Blur / Bokeh works and looks natural.

    In most cases, the masks used were simple.  With some of the more advanced masks, it is amazing how easy they were to generate.  More about this later.

  • Backlight Slider.  The Baclight Slider was very useful with most of the images in this article.  The Backlight Slider in the Bokeh controls really makes a difference, and made all of the difference in many images, particularly the turtle image, as well as the duck image, and the flowers.

    Try using the Backlight Slider in the Bokeh.  It can really help an image along.   It works because it only lowers the light on the blurred area to the degree it is blurred, darkening less in softer areas, and darkening more in more blurry areas – this turns out to be a great effect that also can look very natural, highlighting your subject.

  • All Images are Natural HDR, as well.  I’ve been working with ‘Natural HDR’, i.e. the idea of bringing out the dynamic range of an image in a way that looks natural.  It’s just been my thing lately.  All images in thise post are “HDR” images in some way or another.  Most are meant to look very natural (for example, you wouldn’t believe how awful the duck picture was originally, as well as some of the others), and the flowers are pushed a little bit into the artistic HDR level just for the effect.

flower-mask-messy-700

Quick and Easy Masking / Selections

One of the elements that makes the Lens Blur / Bokeh work well – and look natural – is masking/selections.

In the Bokeh Controls, you can select the “More” tab and open up the masking controls.  Here, you can draw or load an existing mask.

The Lens Blur / Bokeh will then avoid these areas by blurring around them.  This creates a nice, tight edge that looks like a natural Lens Blur.

Quick and Basic Masking

The good news here is that you usually don’t have to worry about making an exact mask around your subject.  Many times, you can just create a quick mask and go with it.  The masking controls are interactive, so you can adjust your mask quickly as you go to get rid of problem areas.

In the mask above, for example, you can see that I just went through and quickly made a very sloppy mask.  The Sagelight Bokeh function will show you the results as you go, so I was able to just adjust areas I didn’t like.

Here is the result:

flowers-700

You can see little blurred edges where I didn’t mask with complete accuracy.  But, it looks ok for me, and this is another one of those cases where you don’t really see it unless you already know its there.  In a way, I kind of even like these blurred edges because they look a little intentional.

If I was really annoyed by these blurred edges (which I am not in this case, but with other pictures, I might be), there are two things I can do, both of which are pretty effective:

  1. Redo the Bokeh.  I can just press the Undo Button and re-enter the Bokeh function. I can also save the mask, so if I see this later on, I can redo it.   When pressing the Undo Button and re-entering the Bokeh function, it will return the same settings and mask from the previous Bokeh application, and will make the image look the same as before you pressed the Undo Image – except now you can change things.

    Now, you can edit the mask and get rid of those little edges.

  2. Use the Clone Brush (A good general option, too!).  You can also use the clone brush to clone some of the areas around the blur – this effectively removes the blur, and a little practice with the clone brush goes a long way; you can adjust these edges in just a few seconds, creating a more edgy, natural look. 

    This is a good option when you notice this sort of thing well after you’ve used the Bokeh (or any function where something went unnoticed).   Then you don’t have to worry about any other things you’ve done with the image, such as color and contrast adjustments.

Accurate Masking and Lens Blur / Bokeh

flower-mask-accurate-700-2

If I want to spend a little more time, I can create a more accurate mask, which will create even better results, removing those little blurred edges.

In this case, the masking didn’t take very long – I was able to use a combination of the Sagelight Masking and the Fill Brush to create this mask in less than 5 minutes (the subject of another blog post)!

A good example of more accurate masking is the duck or the turtle – these masks were either a little more accurate or didn’t have many complicated edges (which don’t require great accuracy in the mask).

duck-post-bokeh-700

In the case of the duck, because of the less defined edges around the body, I made a more accurate mask, and then interactively edited the mask in the Bokeh Controls for some quick feedback on where the mask needed a little more refinement.

The Backlight Slider Made a Big Difference

Note the use of the Backlight Slider used in the Bokeh – it created a nice vignette effect, highlighting the main image.

In many ways, the Backlight Slider saved this image.  It was too bright overall, and generally lowering the brightness didn’t work out too well, as it made the picture too dark.

Using the Backlight Slider created a vignette for the image only in the blurry areas – the  Backlight Slider was used only in those areas where I wanted to defocus the attention, creating even more of a focus on the subject (the duck in the water).

See the next image below, for comparison between the non-Bokeh version and the one above.

Lens Effect: Lens Blur vs. Fast Depth of Field Blur

duck-pre-bokeh-700

 

As you can see, the difference between the Lens Blur / Bokeh version and the pre-bokeh version really makes the difference in the presentation of the picture.

Also note the use of the Backlight Slider.  Many things in image editing work best when they are imperceptible – they draw your attention to your intended object of focus without gaining any attention themselves.  Such is the case with the use of the Backlight Slider in this image.  It successfully put a vignette in the blurry areas but is essentially not a noticeable part of the image.

lensblurcircles-700

Circle Shapes

In addition to the use of the Backlight Slider in the Bokeh, there is also one more thing to notice: the circular highlights in the background.

In the image above, you can see the circle shapes.  These are created by a true lens blur – not a Gaussian, Box, or other blur.  The Fast Depth of Focus, for example, tends to be more Gaussian-like, which would just blur the entire background, but not create circles.

This is how a blur looks like with a short depth of field on a camera, which is why it’s called a Lens Blur, and also why it looks just like it was taken by a camera.

In some cases, you may want more of a general blur, but for the effect of using a lens, the Lens Blur can emulate many different aperture shapes – circle (in this case), hexagon, octagon, and so-forth.  There are also more “” shapes, such as a square, triangle, and so-forth, used mostly for effect (but not realism).

Car-Original-700

“An Old Car Near Top Hat, near Foyil, Oklahoma” by Kevin (Flickr)

One More Example (Randomly Downloaded From Flickr)

Here is another example, one that I downloaded from Flickr. I made no changes to it except to perform the lens blur.

This is a good example, for a couple reasons:

  1. The Building in the background makes the picture look a little busy.  If we want to put focus on the car, we can blur the background with the Lens Blur
  2. But… the Building in the background adds value to the image.  On the other hand, the building really helps build the picture.  This may be a case where using a Lens Blur isn’t the best thing to do.  I am going to do it anyway to demonstrate the Lens Blur, but its good to point out they elements in the image often give a sense of symmetry or contrast to a picture.  Adding a Lens Blur will basically make this into a different picture.  It’s really up to whatever your artistic view of it is, and what you want to stand out in the picture.

Car-Original-lensblur-700

Using a Light Lens Blur – Keeping it Realistic (and also the sense of Time and Place)

In the above image, I used just a light touch on the Lens Blur.  This can keep the sense of realism high (i.e. not look like an intentional, after-effect Lens Blur).

With this particular image, it also helps keep the sense of time and place.  The building has a slight blur to it, but its still obvious it’s a building, keeping the symmetry and mood of the image – an older wooden building next to a rusting, classic car.

This image came out very nice, and looks real – which is the point.  This particular picture is a good reminder that sometimes doing less is more (which really should be a mantra in image editing!)

car-mask-crop-700

Masking the Hood Ornament is What Really Sells the Lens Blur

The effect of the lens blur, in terms of keeping it realistic, is really about the little things.  In this case, it was the nice masking on the hood ornament. 

I drew this mask (over the entire car, including the hood ornament) in about 5 minutes.  It’s not really complicated, especially when you can go back and forth between the Bokeh and Editing the Mask so easily.

 

Car-closeup-700

In the above image, you can see more of a close-up of the hood ornament, and how such a little thing – because it has such nice foreground properties – really helps sell the idea of the lens blur as a natural blur.

Heavy Lens Blur – both a Caution and an Option

As mentioned in the last section, a lighter lens blur can help keep it natural.  But, there are times when you want it to be heavier.  In this case, the masking usually needs to be more accurate.

Be careful not to blur too much, or you enter tilt-shift territory:

Car-Original-tilt-shift-2-500

 

A heavy Lens Blur, such as the one above, can be nice, too – the focus is more on the car, even though it does get more of a tilt-shift look (i.e. it looks a little miniaturized).  It may not look completely natural, but it still looks nice and can really help the car stand out (especially if you then use the HDR, Power Details, Retinex, or a host of other tools to bring out the details – again, not realistic, but nice anyway).

Conclusion

While researching and implementing the new UI changes for Sagelight, I decided to write about various things, as well as post some images. 

While I was doing that, I used the Lens Blur function so much – as it helped really save some images – I thought I’d write about my thoughts. 

Sagelight’s Lens Blur / Bokeh function is very powerful and also extremely quick in the scheme of Lens Blur functions (Lens Blur functions are very CPU-intensive), and can provide some great effects for your image.

In this article, the effect I’m looking at is the realistic lens blur.  You can use the Bokeh Function for many things, such as tilt-shift (i.e. miniaturized look), smoothing background elements, Bokeh effects, as well as a realistic lens blur.

Using the Selection Masking and Backlight Slider can create a powerful, natural-looking result that focuses the eyes on the object in the foreground.  With a light blur (as demonstrated with the ‘Old Car’ image above), you can also keep the sense of the background and context of the image while focusing on the foreground.

Creating a Selection Mask is very easy, and in most cases you can just do a general mask inside the bokeh function in just a minute or two.  With some images, you might want to be more accurate with your masking, but this doesn’t usually take much more time.  One of the reasons for this is because you only really need to mask the area where the foreground meets the background, and you typically don’t need to create an accurate mask for the entire foreground object.

One of the reasons I thought about writing this article is because I realized that creating a realistic lens blur – including foreground objects – isn’t that hard, nor is it time-consuming.  Using a couple simple rules (such as creating a quick selection mask, blurring less than more, not to mention using the Backlight Slider) in addition to just a little practice with the Bokeh controls, can make an incredible difference in your image.

Sagelight UI Prototype Graphic – Check it out, let me know what you think

template-ui-prototype-flat

(click here to see it 1600×900 full-size)

Upgrading a User Interface for both Simplicity and Advanced Functionality

If you’ve used Sagelight for a while, or have been on the discussion board much, you’ll know that so much has been added to Sagelight in the last couple years, that an update to the UI to help all of this new functionality along has been planned for a while.

I am just in the process now of starting on the UI upgrade, which will make many functions much more accessible and useable.

In fact, I would say that Sagelight will be a new editor to many people who already use it an enjoy it because many functions – that already exist – will be more accessible via the new UI.

A good example is the Definition and Focus Controls, as well as the Vibrance and the Light Blender – all very powerful functions, but slightly hidden in the Power Box.

One of the main jobs of the user interface update is to make sure that the UI remains simple and easy-to-use for those who just want to work on their images without getting too much into advanced functionality; also the UI needs to allow those who want to do the more advanced things a way to do it that is just as easy as it is now.

Sagelight has many advanced functions that do an incredible number of things, and the new user interface will help make these available to everyone, even if you don’t know exactly what any given function will do at the time you use it (which, for me, has always been the best way to experiment and have fun: by just using functions and seeing what they do!).

I want your feedback

Since this user-interface update is meant to keep it simple but also allow for even easier use of advanced functionality, I would like your feedback.  If you don’t consider yourself and advancer user, it would be great to know if you like the new layout and if it still seems pretty simple (or even simpler!).

If you’re an advanced user, I want to know if this helps you with accessing Sagelight functionality even more easily by keeping it in one cohesive interface rather than the current separate windows that come up.

Writing a UI for the user who just wants to keep it simple

One of the main principles of the Sagelight UI has always been to keep it as simple and intuitive as possible.  In the main Quick Edit Mode, you can use the basic controls (RGB controls, Saturation, contrast, color, etc.), and then move into the more advanced functions such as the Power Box Controls (Vibrance, Definition, Smart Contrast, Light Blender, etc.).

As new, very powerful functions were added, such as the Light Blender and Power Box Controls, these were separated from the Quick Edit Mode to keep the Quick Edit Mode functions easy to use.

This also meant that some of these advanced functions were a little hidden.

One of the hard things to do with a user interface in a program with many advanced functions is to keep it simple. 

The new UI will help do this – it adds a lot more functionality, but in a way where it is more self-explanatory and where it is also more easy to experiment by simply using controls.

Writing a UI for the user who wants all the power Sagelight can give

Many Sagelight functions, such as the Light Blender, HDR, and other functions have a lot of little switches that can drastically change the outcome of your image.  Of course, I want to keep these things, because these give you a great amount of control over the editing process.

In the new UI, these will still all be accessible.   It’s important to make sure that all of the functionality of Sagelight is available in a construct that doesn’t over simplify things.. 

Features and Changes in the Upgraded UI

  • Collapsible Sections.  Each section is now collapsible.  Sagelight will come up with the equivalent of the Quick Edit Mode controls extended, with the remainder of the sections (i.e. Light Blender, etc.) collapsed.
  • Individual Extendable Sections (i.e. “Pro Mode”).  You can extend each section with the down arrow that indicates there are more controls.  This is basically the current Pro Mode, but for each section (currently, you are either in Pro Mode or not globally in the Quick Edit Mode).
  • Stack History.  There is now a ‘Stack History’ Window.  I decided to go with the term Stack, since it’s used in the industry (in my opinion, this is not the correct terminology, each Stack is really an entry into the Stack History, as opposed to being a ‘stack’… ).   The importance of this is to separate non-destructive editing from destructive editing.  Many people think that Sagelight is purely destructive, but this is not nearly the case – it just turns out that Sagelight does so much that it includes destructive editing (ala Photoshop or a Lightroom Plug-In that creates a ‘stack’).  Therefore, the ‘stack history’ is each destructive operation, where each control in an isolated function (such as the Quick Edit Mode, etc.) is used non-destructively, just as in Lightroom.
  • Collapsible Right-Side Column.  There is now a column on the right, which contains the stack history, Histogram, Info Window, Presets, and other things (TBD).  This column is collapsible so you only need to have it taking up space when you have a need for it.
  • Sagelight Section.  This section is in the right-hand column and will take you to various Sagelight places, mostly having to do with examples and Sagelight user’s posts on Flickr. I’ve wanted to show people the amazing work those using Sagelight have done, and this will be a great way to have it inside of Sagelight
  • User RGB Curves Inlined.  Well, I hated to do it, but I inlined the curves.  It looks very nice, actually, and you can also undock the curves for more controls (which will show the current curves window).
  • “Apply” is now “Apply Stack”.  This is more for clarity – the idea here is to assert that you’ve a) been in a non-destructive editing mode (for all of the naysayers out there who haven’t understodd this about Sagelight) and moving into a one-time destructive operation (such as, for example, going into the HDR – which is the equivalent of a Lightroom Plug-In, etc.).
  • Presets Section.  This will be filled out over the next couple versions.  Initially, this will allow you to save your own preset, and will also have some canned presets that will either perform a Quick Edit, Light Blender, or other operation localized to the Quick Edit Mode; or go off into another mode with some defaults but leave you there.  In a subsequent update, these will also include automated scripts to apply the ‘stack’ or ‘stacks’ as one complete operation.

 

Conclusion

I’ve mentioned before that making things look simple takes much longer than making them look complex, and the new UI design is no different.

It has taken a lot of research to figure out how to best approach making the considerable amount of Sagelight functions accessible and useable.

This user-interface upgrade will do just that, and will expose many more functions in Sagelight to the average Sagelight user, which will give Sagelight much more power even when it already has it.

I am working on this now, and in the meantime will be posting images edited with Sagelight on the blog.  Sagelight has become fairly mature in its functions (although there are some to be added, for sure, which will also come along soon), and now that Sagelight has HDR, Bokeh, the Light Blender – not to mention even cell phone cameras can take amazing pictures – it’s time to show Sagelight off for all it can do, which is considerable.

More to follow in the next few days…

Announcing www.cinepanplayer.com–now back to regularly scheduled Sagelight Programming..

webscreenshot

Introducing http://www.cinepanplayer.com

I am pleased to announce www.cinepanplayer.com.  With the introduction of the web page, and the general release of Cinepan Player (i.e. through CNEt, etc. – until now, the Cinepan Player was simply in a beta release), I can now take it out of the initial development phase and put it into a full-realized product phase, doing more maintenance, bug fixes, and improvements over time.

As I mentioned in previous blog posts, it was a nice distraction and showed me quite a lot about not only what I’ve done with Sagelight, but what I want to do with the next phase of Sagelight and, more particularly, how to do it!

If you don’t know what the Cinepan Player is, go to http://www.cinepanplayer.com –- it’s a free program that displays some great VR panoramas on your desktop.  You can also go to the Cinepan Player Flickr Page

Also, let me know what you think.  I can be reached at rob@cinepanplayer.com

 

Development Modes

In a previous blog post, I mentioned that having a smaller, contained program to work on for a while reminded me of not only how much I have done with Sagelight (as the entirety of the Cinepan Player – a release program on its own – is about the size of the HDR module in Sagelight, in terms of effort, technology development, and so-forth.

This showed me how much I have done with Sagelight, but also being able to take a product from a raw state and to design and implement the entire lifecycle of it was a nice refresher in terms of encapsulating separate design levels and objects in Sagelight itself.

 

Retinex-screenshot

Developing Sagelight

Now I am returning to Sagelight development,and it will be nice to get back to it.  As I mentioned before, I have Sagelight elements I’ve been developing, and have also decided to focus currently on enhancing the UI to make the powerful functions in Sagelight much more accessible and even easier to use.

Particularly, I am looking forward to the Power Box, Light Blender, Masking, and the overall Quick Edit Mode – there are an amazing array of functions in just those areas alone that don’t exists in most editors – and all of it non-destructive (for those curious about that).

I also am looking forward to creating new ways to make some of the functions outside of the Quick Edit Mode shine, such as the Smart Light – a very nice function that is also one of the most powerful functions in Sagelight (it’s also very quick and easy to use).

 

Conclusion (and a quasi-programmer’s blog entry)

The Cinepan Player is now basically finished as a release product, with it’s own website at www.cinepanplayer.com and flickr group page at www.flickr.com/groups/cinepan

While a separate product, the Cinepan Player will always have direct ties to Sagelight, as the Cinepan Player is a great way to show some results of images edited in Sagelight.

The Cinepan player is a free product, and it is nice to get something purely artistic out there – that is, the tangible side of Sagelight… for me, that is…  sometimes it is easy to get buried in the code and forget how powerful Sagelight really is.

If anything, the Cinepan Player reminded me of just that: how powerful Sagelight really is, both in the internal code and what it actually helps you produce with your images.

I see the Cinepan Player – in relation to Sagelight – as a win-win; something to not only give me that great creative & tangible outlet for Sagelight, but also just as a nice free program to put out there.  

Really, when it comes down to it, and for me, it’s all about art – that is, personal art.  What you want to create and how and where to show it.

My ‘thing’ has always been to create programs and other ways to show other people’s artwork, which is an art of itself, really.  I also produce my own artwork, and some of it is in the Cinepan Player (I have many panoramas I will be uploading in addition to the ones I already uploaded).

But, my main fascination has always been to help other people with their artwork, either in creating it or finding ways to show the world just how much nice work there is out there coming from hobbyists, amateurs and professionals alike.

The Cinepan Player is another such program, as the panoramas I’ve found (which are generously contributed by their authors through Creative Commons licensing) are simply amazing, with gorgeous and breathtaking views; the Cinepan Player showing them in one particular way that I personally see as artful and immersive in a very compelling manner.

Sagelight is also a program that helps people show their photographic artwork – just in another way.  Sagelight helps you create even more from your original photographs or other artwork , and I am very proud of what I’ve been able to do with it so far.

There is much more I am planning with Sagelight, and I am happy to be back at it!

A Programmer’s Blog Entry: 3 weeks to write what I already had.

Introduction

I thought I’d write another stream-of-consciousness blog entry.   Now that I am more-or-less finished with the Cinepan Player release (except for putting up a webpage), I am preparing to return to Sagelight development.

I can see that I am in a period of ‘re-tooling’ with Sagelight, and this is because the next section of Sagelight that I am writing is really transformative.  Sagelight is a big, big program, and – like all big programs – needs to be revamped in various areas from time to time.

I’ll write more about that next time.

Writing Software for Me vs. Writing Software for Everyone

In this Programmer’s Blog Post, I want to write about the difference between writing software for one’s own use – or a technical use – and writing something that everyone can use.

I think this will shed some light on why things are done the way they are in programming environments, and a little bit about why Sagelight does some things it does, and why certain features do take some time (and thinking!).

The basic issue is that when people asked for me to put the ability to add one’s own panoramas into the Cinepan Player, that functionality already existed. But, it took me nearly 3 weeks to write the code that made it useful for everyone else.

That is to say, it took me almost 3 weeks to write what I already had in the Cinepan Player!

This is because when you develop something for your own use, it can be (and is) very different than developing it for a release-level piece of software.

Writing In-House Tools

When programming for various companies, you always first come into their set of in-house tools.  Most of the time, these tools are programmed with scripts (or you’re just told by someone what to do, who was also told by someone, and so-forth), and nothing can really go wrong because it’s a strict environment.  When it does go wrong it’s usually a major problem, but an adjustment is made to the code to fix just that issue, and then you move on.  As I wrote in the last Programer’s Blog, this has to do with time and money and specifically not wanting to have to test an entire code base just for one problem.

Sometimes, these tools need to come out of the development department for use by other departments with users who aren’t programmers (such as marketing, or the UI design team).  The program then needs to be a little more robust than it does for the developer – it doesn’t need to handle everything, but it needs to make sure it doesn’t hurt anything, either.   Bugs that get in the way of the actual work to be done get fixed, where the other bugs just end up in the documentation with the notation “Don’t do that” with regard to whatever causes it (which satisfies us programmers greatly). 

Note: I want to mention that this isn’t the way things should be and it really represents bad programming and methodologies. This tends to occur in a lot of  companies because of the issues I talked about last time (i.e. money, time-constraints, not wanting to retest entire systems, etc.)

I’m really talking about the reality of it, as opposed to how its supposed to be.  I also pointed out (in the last post) that this is what I’ve learned in building a huge project in Sagelight, i.e. “Don’t do that”, as stated above, but at a higher level so I don’t have to tell anyone else that when they use it, or program myself into corners (which I have on a couple things with Sagelight which – yes – means I will need to completely re-write those sections instead of growing them). 

You’d be surprised at how many projects get thrown away and completely restarted because of this sort of thing, directly contrasted by an amazing scalability and growth of programs when you do it right from the start.

The Game Changes Significantly When Releasing Software to the General Public.

When releasing software to the public (i.e. consumer), every conceivable bug needs to be accounted for and tested (and you can never test them all) and – more than that – each potential bug or problem needs to be handled in the code (sometimes nested quite a few levels, which means it has to know how to get it back up the chain to the top level) and reported to the user in a way where it is understood what happened, so the user can either adjust his/her actions or report it to me in a way where I can figure out what happened.

Code such as the original Cinepan Player “Add-Your-Own-Panorama” code, where I know what to do and – more specifically – what not to do, suddenly has to deal with anything that might happen because I won’t be there all the time now.

A Great Example of a Bug I Didn’t Know to Test For

A good example of a bug I didn’t see – or even conceive to test – is directory names with a space.  On my main system, \my root directory is something like “Users\Rob\CinepanDevelopment”, from which I specify everything I do to test the Cinepan Player.

When I moved the Cinepan Player to another computer to test, it promptly failed when I gave it a JPEG image to add as a Cinepan Panorama.  It just wouldn’t load the panorama, and I couldn’t determine why this was happening.

Fortunately, I had the development system on that computer, too, and was able to quickly see that I made a mistake in the programming and that the cause was a space in the directory I use on this other computer, “Users\Rob Asus\CinepanDevelopment”.

On my main development computer, I didn’t test the Cinepan Player on any directory with a space in it.  It turned out I was using a useless system call to establish the directory and the space was being seen as a terminator, so the path would become “Users\Rob” instead of “Users\Rob Asus\CinepanDevelopment”.

That’s just one tiny issue that comes up in the entirety of the Cinepan Player.  Now, expand this to something like Sagelight, and this is where having standards and a very good overall OO structure starts to pay off – it’s still a huge amount of work to test conditions, but a good structure makes these errors easy to find. 

Then expand this issue into someone else reporting it where I don’t know all of the conditions!

3 Weeks to Write What I Already Had Working, aka a Programmer’s Life (sometimes)

Here is what I had to do with the Cinepan Player tools in order to get them to work for everyone and not just me (where they were working fine). 

I explained a little of this in the last blog post, but it’s interesting to see what sorts of things need to be done!

3 weeks of my work:

  • Create an entire UI for adding images
    • I already had a UI. But, it was plain and used specific and technical keyboard controls, such as ‘>’ to increase the angle, or ‘(‘ to decrease the horizon.
    • I also had to go to the CMD level to process the output into a PGR file for the Cinepan Player.  You could also exit the program without writing to the output file (too easily, in fact), and it was easy to do something that crashed the program – like specifying a low angle; all those things I know not to do because I wrote it.
    • The UI needed buttons, a decent design, tool tips, and all of the code and options that I was using on the DOS command line
    • Creating the design for the UI – as simple as it really is – took a day or so, all by itself, for various reasons  (that is, UI design is not as simple as it looks, precisely because the point is to make it as simple as possible, at least without sacrificing functionality).  That last point gets into Sagelight territory, where there is always a fine balance between making a UI that’s too simple (which does less) and a UI that’s too complex (but does a tremendous amount of things)
  • Create an interactive ‘horizon tool’
    • I was content with using the ‘(‘ and ‘)’ keys to adjust the horizon. But, I wanted to make it easy.  So, I added an entire interactive, GUI based mechanism where you can simple move a line to set the horizon (then use the ‘(‘ and ‘)’ keys, or the buttons in the UI, to adjust the value).  This made it much easier.  I didn’t need it for myself, but it is definitely needed to a general release.
  • OO the Command Line tools I was using
    • I was fine with the command-line tools.  But, they needed to be OO-based, so I could control them better and, particularly, get the error-reporting up the chain. The command-line based, non-OO tools simply just reported the error and escaped to DOS.
    • When you write things for other people, not only do errors need to be reported more cleanly, but memory has to be cleaned up and processes shut down so you don’t leave little 0-byte files all over the place (where in a development directory, I don’t care at all about such things).
  • Convert Command Line tools to GUI tools
    • This was a big one, and I described in the last post that this cost me a couple days instead of a couple hours because I didn’t pay attention to some standards that really should be non-negotiable, even at a personal level.
    • I was going to originally add the Add-Your-Own-Panorama functionality by giving you the main UI, but then making you use the command-line tools to create the actual Cinepan Image.
      • I decided this was a bad – repeat, bad – idea.  It was too to difficult. Now, these tools are run within the Cinepan Player, and are much easier to use (and, in fact, now you don’t even need to know about them), streamlined and (mostly) flawless.
      • Between the OO conversion, making the GUI for them, and testing these tools this was 3 days of my time, at least. And, again, I already had these tools!
  • Add multi-threading Lanczos resizing tools
    • This was another big one.  In the original release of the Cinepan Player, I sized all images accordingly because I just put them on the web and the Cinepan Player knew what to do.
    • With adding the ability for the user to add his/her own images, though, this all changed.  I needed to be able to resize the image in two ways:
      • Very Fast and On-the-fly when the Cinepan Player loads your image. Now the Cinepan Player will upscale or downscale your image to make it fit what it wants – all as it loads the image.
        • Because of this, it needed to be very fast.  So, I ported the SSE4, multi-processor code from Sagelight for the task.  I didn’t want to add 10 seconds or more to loading time, so it was important to get the fast Lanczos resize in, instead of using a C++ version that is much easier to handle!
      • When creating the Cinepan Output Image.  If your image is > 2600 vertical pixels, the Cinepan Panorama Creation tool will size it down for you.  This is to keep sizes low for distribution, and you don’t get too much of an increase in resolution at higher image dimensions (though, you do get some, and I will be adding this ability later).
        • When you create your Cinepan Image, it may tell you it resized your image.  You can also see the progress as it does it.  It is very fast (being the same tool as described above), so it doesn’t take too long, which gives the Panorama process a nice feel to it.
      • Again, I really had these tools already, but I needed to put them into the Cinepan Player.  There was another day!
  • Create a APP13 layer to insert into JPEG Images
    • I really wanted a way to post the JPEG images, either on Flickr or the upcoming CinepanPlayer.com website.
    • I tried to add the information into the EXIF information, or just onto the JPEG, but that didn’t work out.
    • So, I wrote a tool to insert the information as APP13 in to the JPEG image itself.  This worked out very nicely, and since APP13 is typically used for layering and such in Adobe Photoshop, this is a good, mutually-exclusive place to place the information (because a Cinepan Image, by definition, wouldn’t have layers).
    • This involved another day or so, of writing the code and testing.  It was mostly about testing.  Making sure I could upload to Flickr/other websites, and download the image and have it play in the Cinepan Player.
    • I’m pretty happy with the results
  • Create a .JPG and .TXT format for the Cinepan Player
    • I was happy with the PGR format.  It encrypts the image and can come with a lot of information, such as the angle, description, thumbnail (for the Cinepan UI), etc.
    • To post on the web – and to make it so you can post your own Cinepan Images – I needed to ship it as a JPEG image. The issue is that there is a lot of information the Cinepan Player wants.  In the PGR file, it just has a directory of files.
    • To make it useable (i.e. adding your own panoramas) for everyone else (not just me), I needed to support a JPEG format, which meant adding a lot of code to the Cinepan Player to look for the .PGR file embedded into the JPEG (instead of the JPEG embedded in the PGR).
    • I also needed a .TXT format.  A lot people may not want to alter their original JPEG images.  Now the Cinepan Player can write out a simple .TXT file (i.e. MyFile.Cinepan.txt) that pairs with the .JPG file.
      • When the Cinepan Player finds the .txt file (and the JPEG of the same name), it just translates the file in a different way.
      • The .TXT file is made so you can edit it yourself.
      • This was another section of code I needed to add – and test.
  • Lots of little things not mentioned
    • There are quite a few other things that tend to go unnoticed or forgotten in projects like this.  Let’s see what I can think of off the top of my head.
      • Refresh Button.  I added the refresh button so people could download new Cinepan Panoramas and refresh the list without exiting the program.
      • Get More Panoramas UI.  I originally just had this go to a website.  Quite a few hours was spent making this a full-blown UI to let you know a) where to go (i.e. Flickr or the main website) and b) where to put the images when you download them
      • “No Thumbnail Available” Thumbnail.  Now that everyone can add panoramas, this means more testing.  One thing to test is whether or not the Cinepan Panorama Thumbnail is available.  I purposely made it so you could strip the thumbnail in the .TXT file (to make it shorter; postable).
        • Another hour or two was spent making the default “No Thumbnail Available” thumbnail, and writing the code to support it!
      • Tooltips.  I wrote the tooltips for all of the buttons, allowing you to hover the mouse to see what the function does
      • Fluid Exiting.  The release version allowed you to exit if you clicked a mouse, but sometimes exited the program.  I went through and fixed all points to come back to the menu (or exit when in screensaver mode)
      • Key Help Popup.  I really wanted people to know what keys that can use when the Cinepan Player is running (such as increasing/decreasing speed). If you press ‘?’ when the Cinepan Player is running, then a nice-looking window comes up showing you the keys you can use.
      • Set Image Directory.  I added code so that the Cinepan Player has a set directory (set in the Installer).  I also added an in-program button so you can change this directory.  This wasn’t an issue when I was the only one distributing the panoramas.  Now, with the ability for all to add a panorama, it is better to have this set directory.
      • Fixed a Math Bug.  There was a math bug affecting how the horizon was dealt with.  I was working around it on my own, but it was important to fix this for everyone.  This was very time-consuming, as this part is some weird math, actually.
      • Fixed another Math Bug.  This one was very confusing.  Was finally able to fix it.  I didn’t need it for myself, as I could just adjust the image in Sagelight to compensate.  I needed to fix it for general release, though.
        • This one was very time-consuming, costing me a 1.5 days.  Sometimes the smallest bugs to do this.
          • I once spent 3 days looking for a bug in a program.  The cause?  I was doing a ‘ror’ instread of ‘rol’.  Still my favorite bug of all time!
      • Screen refresh.  I didn’t really care about that, but since I was really trying to make it as useable as possible for everyone, I added the code to make sure the screen gets refreshed when adding a panorama.  I originally just had a key for it
        • That’s probably the best stated difference between a tool one uses on their own vs. one that is released to the public
          • That is… for me, a key was fine when the screen got a little dirty.  For general release, though, this is unacceptable.
    • And this is just off the top of my head!
  • Write the Installer
    • Writing the installer was also very time-consuming.  Writing a proper installer requires a lot.  You need to make sure everything goes ok, and when it doesn’t it needs to be reported and – because installers can write to anything or delete anything – very careful about how it backs out and what it is writing to!
    • Logos, Artwork, etc.  There’s also the UI, not to mention all of the icons, etc.
  • Write the Uninstaller
    • This also took a little time.  The Uninstaller also needs to do a lot of work, and it needs to be very careful as it does it.  This means a lot of testing!
  • Write the help
    • The help for the Add-Your-Own Panorama was time-consuming, as well.  A lot of image examples and text.   I learned a long time ago that it is important to write the help before you release the program; otherwise, it either never gets done or is completely lacking.
  • Test, Test, Test
    • Testing also becomes very important. The more bugs found and prevented, the smoother a program becomes.  Plus, this is a program I am about to release on the Internet via Cnet, etc.  The more bugs found the better!
    • Testing is also very time-consuming, as all little cases have to be tested, and when a bug is found, this means going back to the development system, recompiling, re-testing, changing version numbers, re-packaging the installer, and re-uploading.
      • Then, when another bug is found (because you didn’t see this new one yet), the entire process repeats.  Sometimes it can be 2-3 days before you feel comfortable telling the world about your release!

The Cinepan Player is About the Size of the HDR or Bokeh Function in Sagelight

The above list is just for the Add-Your-Own-Panorama function in the Cinepan Player, which took nearly 3 weeks.  Seeing the list above, perhaps this makes more sense.

The Cinepan Player overall (i.e. the entire program) is about the same amount of work as the HDR or Bokeh functions in Sagelight.  That is to say, the Cinepan Player – which is a large project by itself – is about the same size and level of work as only one of the major functions in Sagelight.

Conclusion

This is one of the things the Cinepan Player showed me about Sagelight Image Editor – just how extensive and feature-rich things like the Bokeh, HDR, etc. really are when you think about them as separate features or programs.

In some ways, I really should split Sagelight into separate programs to give the HDR, Bokeh, Light Blender, Power Curves, Power Tools, Smart Light, and a host of other functions, some more visibility, as I do think the level of effort and work embedded in these individual functions do get overlooked when they are packaged as just one function, respectively, in an overall package that has many such functions. 

But, that’s life, I guess, as I do prefer to have these huge features accessible in one package as they are now in Sagelight.

This gets me back to the idea of why the Cinepan Player was such a great project, and how it was not only a good distraction for a short time, but also that it showed me how to approach the next leg of Sagelight. 

I’ll get to that in the next post.