浏览代码

added sun angle randomizer

/main
Steven Leal 4 年前
当前提交
9c22c6c8
共有 8 个文件被更改,包括 54 次插入4 次删除
  1. 2
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/ColorRandomizerTag.cs
  2. 2
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/HueOffsetRandomizerTag.cs
  3. 2
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/RotationRandomizerTag.cs
  4. 2
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/TextureRandomizerTag.cs
  5. 36
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Randomizers/SunAngleRandomizer.cs
  6. 3
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Randomizers/SunAngleRandomizer.cs.meta
  7. 8
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/SunAngleRandomizerTag.cs
  8. 3
      com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/SunAngleRandomizerTag.cs.meta

2
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/ColorRandomizerTag.cs


/// <summary>
/// Used in conjunction with a ColorRandomizer to vary the material color of GameObjects
/// </summary>
[AddComponentMenu("Perception/RandomizerTags/ColorRandomizerTag")]
[AddComponentMenu("Perception/RandomizerTags/Color Randomizer Tag")]
public class ColorRandomizerTag : RandomizerTag { }
}

2
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/HueOffsetRandomizerTag.cs


/// <summary>
/// Used in conjunction with a HueOffsetRandomizer to vary the hue of GameObjects
/// </summary>
[AddComponentMenu("Perception/RandomizerTags/HueOffsetRandomizerTag")]
[AddComponentMenu("Perception/RandomizerTags/Hue Offset Randomizer Tag")]
public class HueOffsetRandomizerTag : RandomizerTag { }
}

2
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/RotationRandomizerTag.cs


/// <summary>
/// Used in conjunction with a RotationRandomizer to vary the rotation of GameObjects
/// </summary>
[AddComponentMenu("Perception/RandomizerTags/RotationRandomizerTag")]
[AddComponentMenu("Perception/RandomizerTags/Rotation Randomizer Tag")]
public class RotationRandomizerTag : RandomizerTag { }
}

2
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/TextureRandomizerTag.cs


/// <summary>
/// Used in conjunction with a TextureRandomizer to vary the material texture of GameObjects
/// </summary>
[AddComponentMenu("Perception/RandomizerTags/TextureRandomizerTag")]
[AddComponentMenu("Perception/RandomizerTags/Texture Randomizer Tag")]
public class TextureRandomizerTag : RandomizerTag { }
}

36
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Randomizers/SunAngleRandomizer.cs


using System;
using UnityEngine.Experimental.Perception.Randomization.Parameters;
using UnityEngine.Experimental.Perception.Randomization.Randomizers.SampleRandomizers.Tags;
using UnityEngine.Experimental.Perception.Randomization.Samplers;
namespace UnityEngine.Experimental.Perception.Randomization.Randomizers.SampleRandomizers
{
/// <summary>
/// Randomizes the rotation of directional lights tagged with a SunAngleRandomizerTag
/// </summary>
[Serializable]
[AddRandomizerMenu("Perception/Sun Angle Randomizer")]
public class SunAngleRandomizer : Randomizer
{
public FloatParameter hour = new FloatParameter { value = new UniformSampler(0, 24)};
public FloatParameter timeOfYear = new FloatParameter { value = new UniformSampler(0, 1)};
public FloatParameter latitude = new FloatParameter { value = new UniformSampler(-90, 90)};
/// <summary>
/// Randomizes the rotation of tagged directional lights at the start of each scenario iteration
/// </summary>
protected override void OnIterationStart()
{
var lightObjects = tagManager.Query<SunAngleRandomizerTag>();
foreach (var lightObject in lightObjects)
{
var earthSpin = Quaternion.AngleAxis((hour.Sample() + 12f) / 24f * 360f, Vector3.down);
var timeOfYearRads = timeOfYear.Sample() * Mathf.PI * 2f;
var earthTilt = Quaternion.Euler(Mathf.Cos(timeOfYearRads) * 23.5f, 0, Mathf.Sin(timeOfYearRads) * 23.5f);
var earthLat = Quaternion.AngleAxis(latitude.Sample(), Vector3.right);
var lightRotation = earthTilt * earthSpin * earthLat;
lightObject.transform.rotation = Quaternion.Euler(90,0,0) * Quaternion.Inverse(lightRotation);
}
}
}
}

3
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Randomizers/SunAngleRandomizer.cs.meta


fileFormatVersion: 2
guid: 8c42ca49e88d4572a27cf7326827d777
timeCreated: 1601672538

8
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/SunAngleRandomizerTag.cs


namespace UnityEngine.Experimental.Perception.Randomization.Randomizers.SampleRandomizers.Tags
{
/// <summary>
/// Used in conjunction with a SunAngleRandomizer to vary the rotation of directional lights
/// </summary>
[AddComponentMenu("Perception/RandomizerTags/Sun Angle Randomizer Tag")]
public class SunAngleRandomizerTag : RandomizerTag { }
}

3
com.unity.perception/Runtime/Randomization/Randomizers/SampleRandomizers/Tags/SunAngleRandomizerTag.cs.meta


fileFormatVersion: 2
guid: db00808ab9d04579b81b7f0dbd67b90f
timeCreated: 1601672735
正在加载...
取消
保存