SweetFX – Monochrome

001

Monochrome converts an image into black and white. The Monochrome_conversion_values setting provides fine-tuning of the highlights that will produce different brightness levels once converted to black and white.

Enable monochrome with #define USE_MONOCHROME 1 and experience the image without color. Monochrome is best used with other effects, such as vignette, since it appears rather bland on its own.

Monochrome is not simply a black and white conversion effect. Adjusting Monochrome_conversion_values will create slightly different resulting images that emphasize or reduce highlights, so monochrome can adjust the brightness levels as well, which can reduce the need for a separate brightness adjustment effect.

Monochrome_conversion_values accepts three arguments in decimal form that represent the percentage of RGB to include.

.41 is 41%

.18 is 18%

If we use,

#define Monochrome_conversion_values float3(0.18,0.41,0.41)

we are specifying,

.18,.41,.41 = 18/100, 41/100, 41/100 = 18% Red, 41% Green, 41% Blue.

.18 written out in fraction form is 18/100. The entire image gets converted to black and white, but the color percentage indicates how much of the color will be visible in its black and white form after the conversion.

For example, 18% red allows anything that had red color in it to still be visible. Setting Red to 0% removes almost all red from the object, causing the object to appear close to black. Former red objects will be near black and almost unnoticeable.
The sum of these values should be as close to 1.0 as possible for the most even brightness.

#define Monochrome_conversion_values float3(0.25,0.50,0.25)
// 25% red, 50% green, 25% blue

0.25 + 0.50 + 0.25 = 1.00

This not a fixed rule. If the sum exceeds 1.0 or falls short, the image will still be converted without crashing the system, but the brightness levels might be too bright or too dark. If the sum is less than 1.0, the image will be darkened. Exceeding a 1.00 sum causes overbrightness. Experiment.
All zeros = total black

#define Monochrome_conversion_values float3(0,0,0) // Black screen

Here are screenshots from the game Fallout: New Vegas. Pay attention to the clouds to see how various levels affect the detail.

000 Original Image

000 Original Image

000 Original Image

001 Default

001

001

#define Monochrome_conversion_values float3(0.18,0.41,0.41)

001 shows 18% red. Notice that the red stripes in her outfit legging are still visible after the monochrome conversion. Red was there, but we allow only 18% of it to show through.

002

002

002

#define Monochrome_conversion_values float3(0.00,0.50,0.50)

In 002, red is set to 0%. The red stripes in the legging are almost black and hard to notice that red was there. In fact, every part of the scene that contained some amount of red has had practically all of its red amount removed. We can still see former red areas because they also contain green and blue mixed in.

003 All 1.00

003

003

#define Monochrome_conversion_values float3(1.00,1.00,1.00)

The sum of 1.00 + 1.00 + 1.00 = 3.00, so the image is overbright.

004

004

004

#define Monochrome_conversion_values float3(0.25,0.25,0.50)

005

005

005

#define Monochrome_conversion_values float3(0.50,0.25,0.50)

006

006

006

#define Monochrome_conversion_values float3(.50,0.50,0.50)

In 006, monochrome is set to 0.50, 0.50, 0.50 which sums to 1.50. This is greater than 1.00. When the sum is greater than 1.00, the image brightness increases and white details are lost. Keeping the sum at 1.00 will maintain the correct brightness. Notice that the brightness has increased and made the clouds whiter. Some of the shadows in the clouds have now been lost.

007

007

007

#define Monochrome_conversion_values float3(.33,0.33,0.33)

007 is as even as possible. 1.00/3 is approximately equal to 0.33 per RGB channel: 0.33, 0.33, 0.33. This sums to 0.99, which is close enough to 1.00 with no apparent brightness loss. It creates a uniform RGB conversion of 33% per color channel.

008

008

008

#define Monochrome_conversion_values float3(.50,0.00,0.50)

Notice how much darker the sky becomes when we set the blue percentage to 0.00. Lower values make the corresponding colors darker after monochrome conversion while increasing the values makes them brighter. This is why 0.00,0.00,0.00 sets the entire image to black. All color has been removed.

009

009

009

#define Monochrome_conversion_values float3(.50,0.50,0.00)

010

010

010

#define Monochrome_conversion_values float3(1.00,0.00,0.00)

011

011

011

#define Monochrome_conversion_values float3(0.25,0.00,0.25)

012

012

012

#define Monochrome_conversion_values float3(0.25,0.25,0.25)

If the sum is less than 1.00, the monochrome image will appear darker than normal. Compare 007 (0.33, 0.33, 0.33 = 0.99) with 012 (0.25, 0.25, 0.25 = 0.75). Both have an even RGB percentage (each RGB channel is given the same value), but 012 is darker than 007 because 012’s sum is 0.75 while 007’s sum is closer to 1.00 at 0.99. The closer the sum is to 1.00, the closer the monochrome brightness will be to the original image.

013

013

013

#define Monochrome_conversion_values float3(0.01,0.66,0.66)

014

014

014

#define Monochrome_conversion_values float3(0.01,0.01,0.98)

The overall image is darker even though the sum is equal to 1.00. This is because red and green have been set to near zero percentages, allowing only blue to show through. Anything near pure red, such as the stripes on the leggings is almost invisible now.

015

015

015

#define Monochrome_conversion_values float3(0.41,0.18,0.41)

016

016

016

#define Monochrome_conversion_values float3(0.41,0.41,0.18)

SweetFX Effects

, ,

  1. SweetFX – Bloom | Delightly Linux

Leave a comment