public float CalculateUnscaledElevation(Vector3 pos) { if (mSetting == null) { return(0f); } float firstLayerValue = 0f; float elevation = 0f; if (mSetting.PlanetNoises != null) { mNoise.Initialize(mSetting.PlanetNoises[0].Noise); firstLayerValue = mNoise.Evaluate(pos); if (mSetting.PlanetNoises[0].Enabled) { elevation = firstLayerValue; } for (int i = 1; i < mSetting.PlanetNoises.Length; ++i) { if (mSetting.PlanetNoises[i] == null) { continue; } if (mSetting.PlanetNoises[i].Enabled == false) { continue; } mNoise.Initialize(mSetting.PlanetNoises[i].Noise); float mask = mSetting.PlanetNoises[i].UseFirstLayerAsMask ? firstLayerValue : 1f; elevation += mNoise.Evaluate(pos) * mask; } } mValueMinMax.AddValue(elevation); return(elevation); }
public void Initialize(PlanetColorSetting _setting) { mColorSetting = _setting; mNoise.Initialize(mColorSetting == null ? null : mColorSetting.Noise); }