static public VFXExpression FixedRandom(VFXExpression hash, VFXSeedMode mode) { VFXExpression seed = new VFXExpressionBitwiseXor(hash, VFXBuiltInExpression.SystemSeed); if (mode != VFXSeedMode.PerComponent) { seed = new VFXExpressionBitwiseXor(new VFXAttributeExpression(mode == VFXSeedMode.PerParticle ? VFXAttribute.ParticleId : VFXAttribute.StripIndex), seed); } return(new VFXExpressionFixedRandom(seed)); }
static public VFXExpression BuildRandom(VFXSeedMode seedMode, bool constant, RandId randId, VFXExpression seed = null) { if (seedMode == VFXSeedMode.PerParticleStrip || constant) { if (seed == null) { throw new ArgumentNullException("seed"); } return(FixedRandom(seed, seedMode)); } return(new VFXExpressionRandom(seedMode == VFXSeedMode.PerParticle, randId)); }
static public VFXExpression FixedRandom(uint hash, VFXSeedMode mode) { return(FixedRandom(VFXValue.Constant <uint>(hash), mode)); }