public IEnumerator TiledBaking_GPU_1k_lightmap_4_tiles() { EditorSceneManager.OpenScene(scenePath, OpenSceneMode.Single); yield return(null); LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.That(lightingSettings, !Is.EqualTo(null), "LightingSettings is null"); lightingSettings.tiledBaking = LightingSettings.TiledBaking.Quarter; lightingSettings.lightmapResolution = 100; lightingSettings.lightmapMaxSize = 1024; Lightmapping.Clear(); Lightmapping.Bake(); LightmapConvergence lc = Lightmapping.GetLightmapConvergence(0); Assert.That(lc.GetTileCount(), Is.EqualTo(4), "Max tiling pass num should be 4"); while (Lightmapping.isRunning) { yield return(null); } Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); }
public void GPULM_BakeSceneWithOnlyBlackLight_DoesNotFallbackToCPU() { // Open the initial scene EditorSceneManager.OpenScene("Assets/Tests/Editor/Tests_Unit_Editmode/GPU-Rebake.unity"); // Clear baked data and cache clearAll(); // VerifySettings are correct SetupLightingSettings(); // Get the settings to be able to check for a fallback to CPU LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.IsTrue(lightingSettings != null, "Lighting settings are available."); // Get the light Light light = GameObject.Find("Directional Light").GetComponent <Light>(); Assert.IsNotNull(light); // Set the light color light.color = Color.black; // Bake the scene GI Lightmapping.Bake(); Assert.IsTrue(lightingSettings.lightmapper == LightingSettings.Lightmapper.ProgressiveGPU, "Using GPU Lightmapper after initial bake."); clearAll(); }
public IEnumerator TiledBaking_GPU_1k_lightmap_4_tiles_1_Empty_Tile() { EditorSceneManager.OpenScene("Assets/Tests/Editor/Tests_Unit_Editmode/ThreePlanes.unity", OpenSceneMode.Single); yield return(null); LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.That(lightingSettings, !Is.EqualTo(null), "LightingSettings is null"); lightingSettings.tiledBaking = LightingSettings.TiledBaking.Quarter; Lightmapping.Clear(); Lightmapping.Bake(); LightmapConvergence lc = Lightmapping.GetLightmapConvergence(0); Assert.That(lc.GetTileCount(), Is.EqualTo(4), "Max tiling pass num should be 4"); while (Lightmapping.isRunning) { yield return(null); } Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); }
public IEnumerator BakingWithATrousFiltering_DoesNotFallback() { EditorSceneManager.OpenScene("Assets/Tests/Editor/Tests_Unit_Editmode/BakeATrous.unity", OpenSceneMode.Single); yield return(null); LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.That(lightingSettings, !Is.EqualTo(null), "LightingSettings is null"); lightingSettings.lightmapper = LightingSettings.Lightmapper.ProgressiveGPU; lightingSettings.mixedBakeMode = MixedLightingMode.IndirectOnly; lightingSettings.directionalityMode = LightmapsMode.NonDirectional; // Activate A-Trous filtering lightingSettings.filterTypeIndirect = LightingSettings.FilterType.ATrous; Lightmapping.Clear(); Lightmapping.Bake(); // Check that we did not fallback to CPULM Assert.AreEqual(lightingSettings.lightmapper, LightingSettings.Lightmapper.ProgressiveGPU); Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); }
private static SceneProcessResult OnProcess(Scene scene) { if (!Lightmapping.TryGetLightingSettings(out _)) { return(SceneProcessResult.NOT_CHANGE); } Lightmapping.lightingSettings = null; return(SceneProcessResult.CHANGE); }
protected static void SetupLightingSettings() { LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.IsTrue(lightingSettings != null, "Lighting settings are available."); lightingSettings.lightmapper = LightingSettings.Lightmapper.ProgressiveGPU; lightingSettings.prioritizeView = true; Assert.IsTrue(lightingSettings.lightmapper == LightingSettings.Lightmapper.ProgressiveGPU, "Using GPU Lightmapper."); Assert.IsTrue(lightingSettings.prioritizeView, "Using Progressive."); }
public IEnumerator ActivateDirectLighting_DuringABake_DoesNotFallback() { EditorSceneManager.OpenScene("Assets/Tests/Editor/Tests_Unit_Editmode/BakeRestartScene.unity", OpenSceneMode.Single); yield return(null); LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.That(lightingSettings, !Is.EqualTo(null), "LightingSettings is null"); lightingSettings.lightmapper = LightingSettings.Lightmapper.ProgressiveGPU; lightingSettings.mixedBakeMode = MixedLightingMode.IndirectOnly; lightingSettings.directionalityMode = LightmapsMode.NonDirectional; GameObject dirLightGO = GameObject.FindGameObjectsWithTag("TheLight")[0]; dirLightGO.SetActive(false); Light light = dirLightGO.GetComponent(typeof(Light)) as Light; light.lightmapBakeType = LightmapBakeType.Baked; Lightmapping.Clear(); Lightmapping.BakeAsync(); foreach (bool b in RunABake(0.2f)) { yield return(null); } // Make sure it is still baking before we // switch the light on and restart the bake Assert.IsTrue(Lightmapping.isBaking); // Activate the light, cause the bake to restart dirLightGO.SetActive(true); foreach (bool b in RunABake(0.2f)) { yield return(null); } // Check that baking is still running Assert.IsTrue(Lightmapping.isBaking); // Check that we did not fallback to CPULM Assert.AreEqual(lightingSettings.lightmapper, LightingSettings.Lightmapper.ProgressiveGPU); Lightmapping.Cancel(); Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); }
public IEnumerator Export_Training_Data_With_AO_And_Tiled_Baking_On() { EditorSceneManager.OpenScene("Assets/Tests/Editor/Tests_Unit_Editmode/ExtractTrainingDataScene.unity", OpenSceneMode.Single); yield return(null); LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.That(lightingSettings, !Is.EqualTo(null), "LightingSettings is null"); lightingSettings.tiledBaking = LightingSettings.TiledBaking.Quarter; lightingSettings.exportTrainingData = false; lightingSettings.ao = true; Lightmapping.Clear(); Lightmapping.Bake(); while (Lightmapping.isRunning) { yield return(null); } Assert.That(!System.IO.Directory.Exists("Assets/TrainingData/Lightmap-0")); Assert.That(!System.IO.File.Exists("Assets/TrainingData/Lightmap-0/indirect.exr")); Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); lightingSettings.exportTrainingData = true; Lightmapping.Bake(); while (Lightmapping.isRunning) { yield return(null); } Assert.That(System.IO.Directory.Exists("Assets/TrainingData/Lightmap-0")); Assert.That(System.IO.File.Exists("Assets/TrainingData/Lightmap-0/indirect.exr")); Assert.That(System.IO.File.Exists("Assets/TrainingData/Lightmap-0/ambient_occlusion.exr")); Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); System.IO.Directory.Delete("Assets/TrainingData", true); Assert.That(!System.IO.Directory.Exists("Assets/TrainingData")); }
public IEnumerator ActivateAO_DuringABake_DoesNotFallback() { EditorSceneManager.OpenScene("Assets/Tests/Editor/Tests_Unit_Editmode/BakeRestartScene.unity", OpenSceneMode.Single); yield return(null); LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.That(lightingSettings, !Is.EqualTo(null), "LightingSettings is null"); lightingSettings.lightmapper = LightingSettings.Lightmapper.ProgressiveGPU; GameObject dirLightGO = GameObject.FindGameObjectsWithTag("TheLight")[0]; dirLightGO.SetActive(false); lightingSettings.ao = false; Lightmapping.Clear(); Lightmapping.BakeAsync(); foreach (bool b in RunABake(0.2f)) { yield return(null); } // Make sure it is still baking before we // switch the AO on and restart the bake Assert.IsTrue(Lightmapping.isBaking); // Switch AO on, cause the bake to restart lightingSettings.ao = true; foreach (bool b in RunABake(0.2f)) { yield return(null); } // Check that baking is still running Assert.IsTrue(Lightmapping.isBaking); // Check that we did not fallback to CPULM Assert.AreEqual(lightingSettings.lightmapper, LightingSettings.Lightmapper.ProgressiveGPU); Lightmapping.Cancel(); Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); }
public IEnumerator Extract_AO_With_Tiled_Baking_On() { EditorSceneManager.OpenScene("Assets/Tests/Editor/Tests_Unit_Editmode/AOTestScene.unity", OpenSceneMode.Single); yield return(null); LightingSettings lightingSettings = null; Lightmapping.TryGetLightingSettings(out lightingSettings); Assert.That(lightingSettings, !Is.EqualTo(null), "LightingSettings is null"); lightingSettings.tiledBaking = LightingSettings.TiledBaking.Quarter; lightingSettings.extractAO = false; Lightmapping.Clear(); Lightmapping.Bake(); while (Lightmapping.isRunning) { yield return(null); } Assert.That(!System.IO.File.Exists("Assets/Tests/Editor/Tests_Unit_Editmode/AOTestScene/Lightmap-0_ao.exr")); Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); lightingSettings.extractAO = true; Lightmapping.Bake(); while (Lightmapping.isRunning) { yield return(null); } Assert.That(System.IO.File.Exists("Assets/Tests/Editor/Tests_Unit_Editmode/AOTestScene/Lightmap-0_ao.exr")); Lightmapping.Clear(); Lightmapping.ClearLightingDataAsset(); }