diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs
index cd46673bf..6ee78d885 100644
--- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs
+++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorExtend.cs
@@ -41,12 +41,13 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight.AmbienceCreator
if (widthPixels <= 0 || heightPixels <= 0 || (relevantSourceHeight + relevantOffsetTop > sourceHeight) || effectiveSourceWidth > sourceWidth)
return colors.ToBGRArray();
- for (int y = 0; y < relevantSourceHeight; y += 2)
+ int increment = Math.Max(1, Math.Min(20, settings.Downsampling));
+ for (int y = 0; y < relevantSourceHeight; y += increment)
{
int targetWidthIndex = 0;
double widthCounter = widthPixels;
- for (int x = 0; x < effectiveSourceWidth; x += 2)
+ for (int x = 0; x < effectiveSourceWidth; x += increment)
{
if (x >= widthCounter)
{
diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs
index c096664d4..3d4569eed 100644
--- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs
+++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbienceCreator/AmbienceCreatorMirror.cs
@@ -44,7 +44,8 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight.AmbienceCreator
int targetHeightIndex = 0;
double heightCounter = heightPixels;
- for (int y = 0; y < relevantSourceHeight; y += 2)
+ int increment = Math.Max(1, Math.Min(20, settings.Downsampling));
+ for (int y = 0; y < relevantSourceHeight; y += increment)
{
if (y >= heightCounter)
{
@@ -55,7 +56,7 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight.AmbienceCreator
int targetWidthIndex = 0;
double widthCounter = widthPixels;
- for (int x = 0; x < effectiveSourceWidth; x += 2)
+ for (int x = 0; x < effectiveSourceWidth; x += increment)
{
if (x >= widthCounter)
{
diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs
index 0559aea6a..5579ae504 100644
--- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs
+++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesModel.cs
@@ -20,6 +20,7 @@ namespace Artemis.Profiles.Layers.Types.AmbientLight
public int OffsetTop { get; set; } = 0;
public int OffsetBottom { get; set; } = 0;
+ public int Downsampling { get; set; } = 2;
public double MirroredAmount { get; set; } = 10;
public SmoothMode SmoothMode { get; set; } = SmoothMode.Low;
diff --git a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml
index 3ff68ebaf..78a0e2118 100644
--- a/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml
+++ b/Artemis/Artemis/Profiles/Layers/Types/AmbientLight/AmbientLightPropertiesView.xaml
@@ -61,11 +61,16 @@
-
+
+
+
+