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 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 System.Collections.Generic.IEnumerable <bool> RunABake(float convergenceStop)
    {
        // Wait a few frames for the restart (cause a preparing stage)
        int frameCounter = 0;

        while (!Lightmapping.isPreparing)
        {
            frameCounter++;
            yield return(false);
        }

        // Wait for the bake to start the baking stage
        while (!Lightmapping.isBaking)
        {
            frameCounter++;
            yield return(false);
        }

        //Debug.Log("Start baking at frame "+frameCounter);

        // Let it bake for a few frames
        frameCounter = 0;
        LightmapConvergence lc = Lightmapping.GetLightmapConvergence(0);

        while (lc.progress < convergenceStop)
        {
            frameCounter++;
            lc = Lightmapping.GetLightmapConvergence(0);
            // Debug.Log(lc.progress);
            yield return(false);
        }
        //Debug.Log("end baking at frame "+frameCounter);
        Assert.IsTrue(frameCounter > 0);

        yield return(true);
    }