private void TryLoadCourseDir(string folder) { if (System.IO.File.Exists($"{folder}\\course.bgenv")) { var archive = (IArchiveFile)STFileLoader.OpenFileFormat($"{folder}\\course.bgenv"); LightingEngine lightingEngine = new LightingEngine(); lightingEngine.LoadArchive(archive.Files.ToList()); LightingEngine.LightSettings = lightingEngine; LightingEngine.LightSettings.UpdateColorCorrectionTable(); } if (System.IO.File.Exists($"{folder}\\course_bglpbd.szs")) { //ProbeMapManager.Prepare(EveryFileExplorer.YAZ0.Decompress($"{dir}\\course_bglpbd.szs")); // DataCache.ModelCache.Add(bfres.Renderer.Name, bfres.Renderer); } }
private void TryLoadCourseDir(string folder) { if (System.IO.File.Exists($"{folder}\\course_muunt.byaml") && MapLoader.HasValidPath) { MapLoader.LoadSkybox($"{folder}\\course_muunt.byaml"); foreach (var render in MapLoader.Renders) { AddDrawable(render); } } if (System.IO.File.Exists($"{folder}\\course.bgenv")) { var archive = (IArchiveFile)STFileLoader.OpenFileFormat($"{folder}\\course.bgenv"); LightingEngine lightingEngine = new LightingEngine(); lightingEngine.LoadArchive(archive.Files.ToList()); LightingEngine.LightSettings = lightingEngine; LightingEngine.LightSettings.UpdateColorCorrectionTable(); //Generate light maps (area based lighting from directional and hemi lighting) foreach (var lmap in lightingEngine.Resources.LightMapFiles.Values) { foreach (var lightMapArea in lmap.LightAreas) { LightingEngine.LightSettings.UpdateLightmap(Pipeline._context, lightMapArea.Settings.Name); } } if (MapLoader.HasValidPath) { //Create a list of models that can render onto cubemaps List <GenericRenderer> cubemapRenderModels = new List <GenericRenderer>(); foreach (BfresRender model in Pipeline.SceneObjects) { if (model.IsSkybox) //Only load skybox (VR) map objects. Todo this should be improved. { cubemapRenderModels.Add(model); } } //Load the main models (which in this case would be the course model) foreach (var model in Pipeline.Files) { cubemapRenderModels.Add(model.Renderer); } //Generate cubemaps in the scene. //Todo need to fixup cubemap generation as it typically has bugs on certain hardware. //Certain games are also missing cubemap array support atm. LightingEngine.LightSettings.UpdateCubemap(cubemapRenderModels, false); } } if (System.IO.File.Exists($"{folder}\\course_bglpbd.szs")) { //Todo handle probe lighting (they alter lightmaps for map objects) ProbeMapManager.Prepare(Toolbox.Core.IO.YAZ0.Decompress($"{folder}\\course_bglpbd.szs")); } if (System.IO.File.Exists($"{folder}\\course.bglpbd")) { //Todo handle probe lighting (they alter lightmaps for map objects) ProbeMapManager.Prepare(File.ReadAllBytes($"{folder}\\course.bglpbd")); } }