Tweaked the noise layer settings

This commit is contained in:
SpoinkyNL committed 2019-12-06 08:52:31 +01:00
1 parent e5b23075dd
commit 212b4dedb7
4 files changed
+19 -10

No files matched your search

@@ -8,6 +8,7 @@ namespace Artemis.Plugins.LayerElements.Noise
{
public class NoiseLayerElement : LayerElement
{
private static Random _rand = new Random();
private readonly OpenSimplexNoise _noise;
private float _z;
@@ -15,7 +16,7 @@ namespace Artemis.Plugins.LayerElements.Noise
{
Settings = settings;
_z = 0.001f;
_z = 1;
_noise = new OpenSimplexNoise(Guid.GetHashCode());
}
@@ -24,7 +25,12 @@ namespace Artemis.Plugins.LayerElements.Noise
public override void Update(double deltaTime)
{
_z += Settings.AnimationSpeed;
// TODO: Come up with a better way to use deltaTime
_z += Settings.AnimationSpeed / 500f / 0.04f * (float) deltaTime;
if (_z >= float.MaxValue)
_z = 0;
base.Update(deltaTime);
}
@@ -35,16 +41,19 @@ namespace Artemis.Plugins.LayerElements.Noise
public override void Render(ArtemisSurface surface, SKCanvas canvas)
{
var width = Layer.AbsoluteRenderRectangle.Width / 2;
var height = Layer.AbsoluteRenderRectangle.Height / 2;
// Scale down the render path
var width = Layer.AbsoluteRenderRectangle.Width / 4;
var height = Layer.AbsoluteRenderRectangle.Height / 4;
using (var bitmap = new SKBitmap(new SKImageInfo((int) Layer.AbsoluteRenderRectangle.Width, (int) Layer.AbsoluteRenderRectangle.Height)))
{
for (var x = 0; x < width; x++)
{
for (var y = 0; y < height; y++)
{
// Not setting pixels outside the layer clip would be faster but right now rotation takes place after the rendering, must change that first
var v = _noise.Evaluate(Settings.XScale * x / width, Settings.YScale * y / height, _z);
bitmap.SetPixel(x, y, new SKColor(255, 255, 255, (byte) ((v + 1) * 127)));
bitmap.SetPixel(x, y, new SKColor(0, 0, 0, (byte) ((v + 1) * 127)));
}
}