protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { var t = new VFXExpressionSharedRandom(inputExpression[1] * VFXValue.Constant(2u) + VFXValue.Constant(1u)) * VFXValue.Constant(Mathf.PI * 2); var z = new VFXExpressionSharedRandom(inputExpression[1] * VFXValue.Constant(2u)) * VFXValue.Constant(2.0f) - VFXValue.Constant(1.0f); var w = VFXOperatorUtility.Sqrt(VFXValue.Constant(1.0f) - z * z); return(new[] { new VFXExpressionCombine(new VFXExpressionCos(t) * w, new VFXExpressionSin(t) * w, z) * VFXOperatorUtility.CastFloat(inputExpression[0], VFXValueType.Float3) }); }
public void ProcessOperatorSqrt() { var a = 0.2f; var result = Mathf.Sqrt(a); var value_a = new VFXValue <float>(a); var expression = VFXOperatorUtility.Sqrt(value_a); var context = new VFXExpression.Context(VFXExpressionContextOption.CPUEvaluation); var resultExpression = context.Compile(expression); Assert.AreEqual(result, resultExpression.Get <float>()); }
protected override sealed VFXExpression[] BuildExpression(VFXExpression[] inputExpression) { return(new[] { VFXOperatorUtility.Sqrt(inputExpression[0]) }); }