public Vector3 Vector(int seed2) { var i1 = _hash1.Range(-100.0f, 100.0f, seed2); var i2 = _hash2.Range(-100.0f, 100.0f, seed2); var i3 = _hash3.Range(-100.0f, 100.0f, seed2); return(new Vector3( Perlin.Fbm(_time + i1, _fractal) * _fbmNorm, Perlin.Fbm(_time + i2, _fractal) * _fbmNorm, Perlin.Fbm(_time + i3, _fractal) * _fbmNorm)); }
public override void PrepareFrame(Playable playable, FrameData info) { if (_target == null) { return; } const float _fbmNorm = 1 / 0.75f; var time = (float)playable.GetTime(); if (_positionAmplitude != Vector3.zero) { var t = time * _positionFrequency; var tx = _hash.Range(-1e3f, 1e3f, 0) + t; var ty = _hash.Range(-1e3f, 1e3f, 1) + t; var tz = _hash.Range(-1e3f, 1e3f, 2) + t; var n = new Vector3( Perlin.Fbm(tx, _positionFractalLevel), Perlin.Fbm(ty, _positionFractalLevel), Perlin.Fbm(tz, _positionFractalLevel) ); n = Vector3.Scale(n, _positionAmplitude) * _fbmNorm; _target.localPosition = n; } if (_rotationAmplitude != Vector3.zero) { var t = time * _rotationFrequency; var tx = _hash.Range(-1e3f, 1e3f, 3) + t; var ty = _hash.Range(-1e3f, 1e3f, 4) + t; var tz = _hash.Range(-1e3f, 1e3f, 5) + t; var n = new Vector3( Perlin.Fbm(tx, _rotationFractalLevel), Perlin.Fbm(ty, _rotationFractalLevel), Perlin.Fbm(tz, _rotationFractalLevel) ); n = Vector3.Scale(n, _rotationAmplitude) * _fbmNorm; _target.localRotation = Quaternion.Euler(n); } }
public float Value01(int seed2) { var i1 = _hash1.Range(-100.0f, 100.0f, seed2); return(Perlin.Fbm(_time + i1, _fractal) * _fbmNorm * 0.5f + 0.5f); }