summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/Bakery/ftLightmapsStorage.cs
diff options
context:
space:
mode:
Diffstat (limited to 'VRCSDK3Worlds/Assets/Bakery/ftLightmapsStorage.cs')
-rw-r--r--VRCSDK3Worlds/Assets/Bakery/ftLightmapsStorage.cs506
1 files changed, 506 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/Bakery/ftLightmapsStorage.cs b/VRCSDK3Worlds/Assets/Bakery/ftLightmapsStorage.cs
new file mode 100644
index 00000000..2761b216
--- /dev/null
+++ b/VRCSDK3Worlds/Assets/Bakery/ftLightmapsStorage.cs
@@ -0,0 +1,506 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.SceneManagement;
+
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+
+[ExecuteInEditMode]
+public class ftLightmapsStorage : MonoBehaviour{
+
+#if UNITY_EDITOR
+ [System.Serializable]
+ public class LightData
+ {
+ public Matrix4x4 tform;
+ public Color color;
+ public float intensity, range, radius;
+ public int samples, samples2;
+ public int bitmask;
+ public bool bakeToIndirect;
+ public bool selfShadow = false;
+ public bool realisticFalloff = false;
+ public int projMode;
+ public Object cookie;
+ public float angle = 30.0f;
+ }
+
+ public class ImplicitLightmapData
+ {
+ public Dictionary<GameObject, Object> implicitGroupMap = null;
+ }
+
+ // Saved render settings
+ public int renderSettingsBounces = 5;
+ public int renderSettingsGISamples = 16;
+ public float renderSettingsGIBackFaceWeight = 0;
+ public int renderSettingsTileSize = 512;
+ public float renderSettingsPriority = 2;
+ public float renderSettingsTexelsPerUnit = 20;
+ public bool renderSettingsForceRefresh = true;
+ public bool renderSettingsForceRebuildGeometry = true;
+ public bool renderSettingsPerformRendering = true;
+ public int renderSettingsUserRenderMode = 0;
+ public bool renderSettingsDistanceShadowmask = false;
+ public int renderSettingsSettingsMode = 0;
+ public bool renderSettingsFixSeams = true;
+ public bool renderSettingsDenoise = true;
+ public bool renderSettingsDenoise2x = false;
+ public bool renderSettingsEncode = true;
+ public int renderSettingsEncodeMode = 0;
+ public bool renderSettingsOverwriteWarning = false;
+ public bool renderSettingsAutoAtlas = true;
+ public bool renderSettingsUnwrapUVs = true;
+ public bool renderSettingsForceDisableUnwrapUVs = false;
+ public int renderSettingsMaxAutoResolution = 4096;
+ public int renderSettingsMinAutoResolution = 16;
+ public bool renderSettingsUnloadScenes = true;
+ public bool renderSettingsAdjustSamples = true;
+ public int renderSettingsGILODMode = 2;
+ public bool renderSettingsGILODModeEnabled = false;
+ public bool renderSettingsCheckOverlaps = false;
+ public bool renderSettingsSkipOutOfBoundsUVs = true;
+ public float renderSettingsHackEmissiveBoost = 1;
+ public float renderSettingsHackIndirectBoost = 1;
+ public string renderSettingsTempPath = "";
+ public string renderSettingsOutPath = "";
+ public bool renderSettingsUseScenePath = false;
+ public float renderSettingsHackAOIntensity = 0;
+ public int renderSettingsHackAOSamples = 16;
+ public float renderSettingsHackAORadius = 1;
+ public bool renderSettingsShowAOSettings = false;
+ public bool renderSettingsShowTasks = true;
+ public bool renderSettingsShowTasks2 = false;
+ public bool renderSettingsShowPaths = true;
+ public bool renderSettingsShowNet = true;
+ public bool renderSettingsOcclusionProbes = false;
+ public bool renderSettingsTexelsPerMap = false;
+ public float renderSettingsTexelsColor = 1;
+ public float renderSettingsTexelsMask = 1;
+ public float renderSettingsTexelsDir = 1;
+ public bool renderSettingsShowDirWarning = true;
+ public int renderSettingsRenderDirMode = 0;
+ public bool renderSettingsShowCheckerSettings = false;
+ public bool renderSettingsSamplesWarning = true;
+ public bool renderSettingsPrefabWarning = true;
+ public bool renderSettingsSplitByScene = false;
+ public bool renderSettingsUVPaddingMax = false;
+ public bool renderSettingsPostPacking = true;
+ public bool renderSettingsHoleFilling = false;
+ public bool renderSettingsBeepOnFinish = false;
+ public bool renderSettingsExportTerrainAsHeightmap = true;
+ public bool renderSettingsRTXMode = false;
+ public int renderSettingsLightProbeMode = 1;
+ public bool renderSettingsClientMode = false;
+ public string renderSettingsServerAddress = "127.0.0.1";
+ public int renderSettingsUnwrapper = 0;
+ public int renderSettingsDenoiserType = (int)ftGlobalStorage.DenoiserType.OpenImageDenoise;
+ public bool renderSettingsExportTerrainTrees = false;
+ public bool renderSettingsShowPerf = true;
+ public int renderSettingsSampleDiv = 1;
+ public ftGlobalStorage.AtlasPacker renderSettingsAtlasPacker = ftGlobalStorage.AtlasPacker.xatlas;
+ public bool renderSettingsBatchPoints = true;
+ public bool renderSettingsCompressVolumes = false;
+ public UnityEngine.Object renderSettingsSector = null;
+ public bool renderSettingsRTPVExport = true;
+ public bool renderSettingsRTPVSceneView = false;
+ public int renderSettingsRTPVWidth = 640;
+ public int renderSettingsRTPVHeight = 360;
+ public int lastBakeTime = 0;
+
+ public bool enlightenWarningShown = false;
+ public bool enlightenWarningShown2 = false;
+
+ // Light settings from the last bake
+ public List<int> lightUIDs = new List<int>();
+ public List<LightData> lights = new List<LightData>();
+ public Dictionary<int, LightData> lightsDict;
+
+ // List of implicit groups
+ //public List<BakeryLightmapGroup> implicitGroups = new List<BakeryLightmapGroup>();
+ public List<Object> implicitGroups = new List<Object>();
+ public List<GameObject> implicitGroupedObjects;
+
+ //public List<BakeryLightmapGroupPlain> previouslyBakedGroups = new List<BakeryLightmapGroupPlain>();
+
+ // List of baked lightmap world-space bounds
+ public List<Bounds> bounds = new List<Bounds>();
+
+ // Per-lightmap flags
+ public List<bool> hasEmissive = new List<bool>();
+
+ //public float[][] uvSrc;
+ //public float[][] uvDest;
+ //public int[][] lmrIndices;
+ public int[] uvBuffOffsets;
+ public int[] uvBuffLengths;
+ public float[] uvSrcBuff;
+ public float[] uvDestBuff;
+ public int[] lmrIndicesOffsets;
+ public int[] lmrIndicesLengths;
+ public int[] lmrIndicesBuff;
+
+ public int[] lmGroupLODResFlags; // bits which lods are needed for which LMGroups
+ public int[] lmGroupMinLOD; // minimum possible resolution for given LMGroup given UV island count
+ public int[] lmGroupLODMatrix;
+
+ // Reuired for network bakes
+ public List<string> serverGetFileList = new List<string>();
+ public List<bool> lightmapHasColor = new List<bool>();
+ public List<bool> lightmapHasMask = new List<bool>();
+ public List<bool> lightmapHasDir = new List<bool>();
+ public List<bool> lightmapHasRNM = new List<bool>();
+
+ // Partial copy of GlobalStorage to recover UV padding if needed
+ public List<string> modifiedAssetPathList = new List<string>();
+ public List<ftGlobalStorage.AdjustedMesh> modifiedAssets = new List<ftGlobalStorage.AdjustedMesh>();
+
+ //public Texture2D debugTex;
+ //public RenderTexture debugRT;
+
+ public void Init(bool forceRefresh)
+ {
+ lightsDict = new Dictionary<int, LightData>();
+ if (forceRefresh)
+ {
+ lights = new List<LightData>();
+ lightUIDs = new List<int>();
+ }
+ else
+ {
+ for(int i=0; i<lights.Count; i++)
+ {
+ lightsDict[lightUIDs[i]] = lights[i];
+ }
+ }
+ }
+
+ public void StoreLight(int uid, LightData light)
+ {
+ lightUIDs.Add(uid);
+ lights.Add(light);
+ }
+
+ public static void CopySettings(ftLightmapsStorage src, ftLightmapsStorage dest)
+ {
+ dest.renderSettingsBounces = src.renderSettingsBounces;
+ dest.renderSettingsGISamples = src.renderSettingsGISamples;
+ dest.renderSettingsGIBackFaceWeight = src.renderSettingsGIBackFaceWeight;
+ dest.renderSettingsTileSize = src.renderSettingsTileSize;
+ dest.renderSettingsPriority = src.renderSettingsPriority;
+ dest.renderSettingsTexelsPerUnit = src.renderSettingsTexelsPerUnit;
+ dest.renderSettingsForceRefresh = src.renderSettingsForceRefresh;
+ dest.renderSettingsForceRebuildGeometry = src.renderSettingsForceRebuildGeometry;
+ dest.renderSettingsPerformRendering = src.renderSettingsPerformRendering;
+ dest.renderSettingsUserRenderMode = src.renderSettingsUserRenderMode;
+ dest.renderSettingsDistanceShadowmask = src.renderSettingsDistanceShadowmask;
+ dest.renderSettingsSettingsMode = src.renderSettingsSettingsMode;
+ dest.renderSettingsFixSeams = src.renderSettingsFixSeams;
+ dest.renderSettingsDenoise = src.renderSettingsDenoise;
+ dest.renderSettingsDenoise2x = src.renderSettingsDenoise2x;
+ dest.renderSettingsEncode = src.renderSettingsEncode;
+ dest.renderSettingsEncodeMode = src.renderSettingsEncodeMode;
+ dest.renderSettingsOverwriteWarning = src.renderSettingsOverwriteWarning;
+ dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
+ dest.renderSettingsUnwrapUVs = src.renderSettingsUnwrapUVs;
+ dest.renderSettingsForceDisableUnwrapUVs = src.renderSettingsForceDisableUnwrapUVs;
+ dest.renderSettingsMaxAutoResolution = src.renderSettingsMaxAutoResolution;
+ dest.renderSettingsMinAutoResolution = src.renderSettingsMinAutoResolution;
+ dest.renderSettingsUnloadScenes = src.renderSettingsUnloadScenes;
+ dest.renderSettingsAdjustSamples = src.renderSettingsAdjustSamples;
+ dest.renderSettingsGILODMode = src.renderSettingsGILODMode;
+ dest.renderSettingsGILODModeEnabled = src.renderSettingsGILODModeEnabled;
+ dest.renderSettingsCheckOverlaps = src.renderSettingsCheckOverlaps;
+ dest.renderSettingsSkipOutOfBoundsUVs = src.renderSettingsSkipOutOfBoundsUVs;
+ dest.renderSettingsHackEmissiveBoost = src.renderSettingsHackEmissiveBoost;
+ dest.renderSettingsHackIndirectBoost = src.renderSettingsHackIndirectBoost;
+ dest.renderSettingsTempPath = src.renderSettingsTempPath;
+ dest.renderSettingsOutPath = src.renderSettingsOutPath;
+ dest.renderSettingsUseScenePath = src.renderSettingsUseScenePath;
+ dest.renderSettingsHackAOIntensity = src.renderSettingsHackAOIntensity;
+ dest.renderSettingsHackAOSamples = src.renderSettingsHackAOSamples;
+ dest.renderSettingsHackAORadius = src.renderSettingsHackAORadius;
+ dest.renderSettingsShowAOSettings = src.renderSettingsShowAOSettings;
+ dest.renderSettingsShowTasks = src.renderSettingsShowTasks;
+ dest.renderSettingsShowTasks2 = src.renderSettingsShowTasks2;
+ dest.renderSettingsShowPaths = src.renderSettingsShowPaths;
+ dest.renderSettingsShowNet = src.renderSettingsShowNet;
+ dest.renderSettingsOcclusionProbes = src.renderSettingsOcclusionProbes;
+ dest.renderSettingsTexelsPerMap = src.renderSettingsTexelsPerMap;
+ dest.renderSettingsTexelsColor = src.renderSettingsTexelsColor;
+ dest.renderSettingsTexelsMask = src.renderSettingsTexelsMask;
+ dest.renderSettingsTexelsDir = src.renderSettingsTexelsDir;
+ dest.renderSettingsShowDirWarning = src.renderSettingsShowDirWarning;
+ dest.renderSettingsRenderDirMode = src.renderSettingsRenderDirMode;
+ dest.renderSettingsShowCheckerSettings = src.renderSettingsShowCheckerSettings;
+ dest.renderSettingsSamplesWarning = src.renderSettingsSamplesWarning;
+ dest.renderSettingsPrefabWarning = src.renderSettingsPrefabWarning;
+ dest.renderSettingsSplitByScene = src.renderSettingsSplitByScene;
+ dest.renderSettingsUVPaddingMax = src.renderSettingsUVPaddingMax;
+ dest.renderSettingsPostPacking = src.renderSettingsPostPacking;
+ dest.renderSettingsHoleFilling = src.renderSettingsHoleFilling;
+ dest.renderSettingsBeepOnFinish = src.renderSettingsBeepOnFinish;
+ dest.renderSettingsExportTerrainAsHeightmap = src.renderSettingsExportTerrainAsHeightmap;
+ dest.renderSettingsRTXMode = src.renderSettingsRTXMode;
+ dest.renderSettingsLightProbeMode = src.renderSettingsLightProbeMode;
+ dest.renderSettingsClientMode = src.renderSettingsClientMode;
+ dest.renderSettingsServerAddress = src.renderSettingsServerAddress;
+ dest.renderSettingsUnwrapper = src.renderSettingsUnwrapper;
+ dest.renderSettingsDenoiserType = src.renderSettingsDenoiserType;
+ dest.renderSettingsExportTerrainTrees = src.renderSettingsExportTerrainTrees;
+ dest.renderSettingsSampleDiv = src.renderSettingsSampleDiv;
+ dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
+ dest.renderSettingsBatchPoints = src.renderSettingsBatchPoints;
+ dest.renderSettingsCompressVolumes = src.renderSettingsCompressVolumes;
+ dest.renderSettingsRTPVExport = src.renderSettingsRTPVExport;
+ dest.renderSettingsRTPVSceneView = src.renderSettingsRTPVSceneView;
+ dest.renderSettingsRTPVWidth = src.renderSettingsRTPVWidth;
+ dest.renderSettingsRTPVHeight = src.renderSettingsRTPVHeight;
+ dest.renderSettingsAtlasPacker = src.renderSettingsAtlasPacker;
+ dest.renderSettingsShowPerf = src.renderSettingsShowPerf;
+ }
+
+ public static void CopySettings(ftLightmapsStorage src, ftGlobalStorage dest)
+ {
+ dest.renderSettingsBounces = src.renderSettingsBounces;
+ dest.renderSettingsGISamples = src.renderSettingsGISamples;
+ dest.renderSettingsGIBackFaceWeight = src.renderSettingsGIBackFaceWeight;
+ dest.renderSettingsTileSize = src.renderSettingsTileSize;
+ dest.renderSettingsPriority = src.renderSettingsPriority;
+ dest.renderSettingsTexelsPerUnit = src.renderSettingsTexelsPerUnit;
+ dest.renderSettingsForceRefresh = src.renderSettingsForceRefresh;
+ dest.renderSettingsForceRebuildGeometry = src.renderSettingsForceRebuildGeometry;
+ dest.renderSettingsPerformRendering = src.renderSettingsPerformRendering;
+ dest.renderSettingsUserRenderMode = src.renderSettingsUserRenderMode;
+ dest.renderSettingsDistanceShadowmask = src.renderSettingsDistanceShadowmask;
+ dest.renderSettingsSettingsMode = src.renderSettingsSettingsMode;
+ dest.renderSettingsFixSeams = src.renderSettingsFixSeams;
+ dest.renderSettingsDenoise = src.renderSettingsDenoise;
+ dest.renderSettingsDenoise2x = src.renderSettingsDenoise2x;
+ dest.renderSettingsEncode = src.renderSettingsEncode;
+ dest.renderSettingsEncodeMode = src.renderSettingsEncodeMode;
+ dest.renderSettingsOverwriteWarning = src.renderSettingsOverwriteWarning;
+ dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
+ dest.renderSettingsUnwrapUVs = src.renderSettingsUnwrapUVs;
+ dest.renderSettingsForceDisableUnwrapUVs = src.renderSettingsForceDisableUnwrapUVs;
+ dest.renderSettingsMaxAutoResolution = src.renderSettingsMaxAutoResolution;
+ dest.renderSettingsMinAutoResolution = src.renderSettingsMinAutoResolution;
+ dest.renderSettingsUnloadScenes = src.renderSettingsUnloadScenes;
+ dest.renderSettingsAdjustSamples = src.renderSettingsAdjustSamples;
+ dest.renderSettingsGILODMode = src.renderSettingsGILODMode;
+ dest.renderSettingsGILODModeEnabled = src.renderSettingsGILODModeEnabled;
+ dest.renderSettingsCheckOverlaps = src.renderSettingsCheckOverlaps;
+ dest.renderSettingsSkipOutOfBoundsUVs = src.renderSettingsSkipOutOfBoundsUVs;
+ dest.renderSettingsHackEmissiveBoost = src.renderSettingsHackEmissiveBoost;
+ dest.renderSettingsHackIndirectBoost = src.renderSettingsHackIndirectBoost;
+ dest.renderSettingsTempPath = src.renderSettingsTempPath;
+ dest.renderSettingsOutPath = src.renderSettingsOutPath;
+ dest.renderSettingsUseScenePath = src.renderSettingsUseScenePath;
+ dest.renderSettingsHackAOIntensity = src.renderSettingsHackAOIntensity;
+ dest.renderSettingsHackAOSamples = src.renderSettingsHackAOSamples;
+ dest.renderSettingsHackAORadius = src.renderSettingsHackAORadius;
+ dest.renderSettingsShowAOSettings = src.renderSettingsShowAOSettings;
+ dest.renderSettingsShowTasks = src.renderSettingsShowTasks;
+ dest.renderSettingsShowTasks2 = src.renderSettingsShowTasks2;
+ dest.renderSettingsShowPaths = src.renderSettingsShowPaths;
+ dest.renderSettingsShowNet = src.renderSettingsShowNet;
+ dest.renderSettingsOcclusionProbes = src.renderSettingsOcclusionProbes;
+ dest.renderSettingsTexelsPerMap = src.renderSettingsTexelsPerMap;
+ dest.renderSettingsTexelsColor = src.renderSettingsTexelsColor;
+ dest.renderSettingsTexelsMask = src.renderSettingsTexelsMask;
+ dest.renderSettingsTexelsDir = src.renderSettingsTexelsDir;
+ dest.renderSettingsShowDirWarning = src.renderSettingsShowDirWarning;
+ dest.renderSettingsRenderDirMode = src.renderSettingsRenderDirMode;
+ dest.renderSettingsShowCheckerSettings = src.renderSettingsShowCheckerSettings;
+ dest.renderSettingsSamplesWarning = src.renderSettingsSamplesWarning;
+ dest.renderSettingsPrefabWarning = src.renderSettingsPrefabWarning;
+ dest.renderSettingsSplitByScene = src.renderSettingsSplitByScene;
+ dest.renderSettingsUVPaddingMax = src.renderSettingsUVPaddingMax;
+ dest.renderSettingsPostPacking = src.renderSettingsPostPacking;
+ dest.renderSettingsHoleFilling = src.renderSettingsHoleFilling;
+ dest.renderSettingsBeepOnFinish = src.renderSettingsBeepOnFinish;
+ dest.renderSettingsExportTerrainAsHeightmap = src.renderSettingsExportTerrainAsHeightmap;
+ dest.renderSettingsRTXMode = src.renderSettingsRTXMode;
+ dest.renderSettingsLightProbeMode = src.renderSettingsLightProbeMode;
+ dest.renderSettingsClientMode = src.renderSettingsClientMode;
+ dest.renderSettingsServerAddress = src.renderSettingsServerAddress;
+ dest.renderSettingsUnwrapper = src.renderSettingsUnwrapper;
+ dest.renderSettingsDenoiserType = src.renderSettingsDenoiserType;
+ dest.renderSettingsExportTerrainTrees = src.renderSettingsExportTerrainTrees;
+ dest.renderSettingsShowPerf = src.renderSettingsShowPerf;
+ dest.renderSettingsSampleDiv = src.renderSettingsSampleDiv;
+ dest.renderSettingsBatchPoints = src.renderSettingsBatchPoints;
+ dest.renderSettingsCompressVolumes = src.renderSettingsCompressVolumes;
+ dest.renderSettingsRTPVExport = src.renderSettingsRTPVExport;
+ dest.renderSettingsRTPVSceneView = src.renderSettingsRTPVSceneView;
+ dest.renderSettingsRTPVWidth = src.renderSettingsRTPVWidth;
+ dest.renderSettingsRTPVHeight = src.renderSettingsRTPVHeight;
+ dest.renderSettingsAtlasPacker = src.renderSettingsAtlasPacker;
+ dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
+ }
+
+ public static void CopySettings(ftGlobalStorage src, ftLightmapsStorage dest)
+ {
+ dest.renderSettingsBounces = src.renderSettingsBounces;
+ dest.renderSettingsGISamples = src.renderSettingsGISamples;
+ dest.renderSettingsGIBackFaceWeight = src.renderSettingsGIBackFaceWeight;
+ dest.renderSettingsTileSize = src.renderSettingsTileSize;
+ dest.renderSettingsPriority = src.renderSettingsPriority;
+ dest.renderSettingsTexelsPerUnit = src.renderSettingsTexelsPerUnit;
+ dest.renderSettingsForceRefresh = src.renderSettingsForceRefresh;
+ dest.renderSettingsForceRebuildGeometry = src.renderSettingsForceRebuildGeometry;
+ dest.renderSettingsPerformRendering = src.renderSettingsPerformRendering;
+ dest.renderSettingsUserRenderMode = src.renderSettingsUserRenderMode;
+ dest.renderSettingsDistanceShadowmask = src.renderSettingsDistanceShadowmask;
+ dest.renderSettingsSettingsMode = src.renderSettingsSettingsMode;
+ dest.renderSettingsFixSeams = src.renderSettingsFixSeams;
+ dest.renderSettingsDenoise = src.renderSettingsDenoise;
+ dest.renderSettingsDenoise2x = src.renderSettingsDenoise2x;
+ dest.renderSettingsEncode = src.renderSettingsEncode;
+ dest.renderSettingsEncodeMode = src.renderSettingsEncodeMode;
+ dest.renderSettingsOverwriteWarning = src.renderSettingsOverwriteWarning;
+ dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
+ dest.renderSettingsUnwrapUVs = src.renderSettingsUnwrapUVs;
+ dest.renderSettingsForceDisableUnwrapUVs = src.renderSettingsForceDisableUnwrapUVs;
+ dest.renderSettingsMaxAutoResolution = src.renderSettingsMaxAutoResolution;
+ dest.renderSettingsMinAutoResolution = src.renderSettingsMinAutoResolution;
+ dest.renderSettingsUnloadScenes = src.renderSettingsUnloadScenes;
+ dest.renderSettingsAdjustSamples = src.renderSettingsAdjustSamples;
+ dest.renderSettingsGILODMode = src.renderSettingsGILODMode;
+ dest.renderSettingsGILODModeEnabled = src.renderSettingsGILODModeEnabled;
+ dest.renderSettingsCheckOverlaps = src.renderSettingsCheckOverlaps;
+ dest.renderSettingsSkipOutOfBoundsUVs = src.renderSettingsSkipOutOfBoundsUVs;
+ dest.renderSettingsHackEmissiveBoost = src.renderSettingsHackEmissiveBoost;
+ dest.renderSettingsHackIndirectBoost = src.renderSettingsHackIndirectBoost;
+ dest.renderSettingsTempPath = src.renderSettingsTempPath;
+ dest.renderSettingsOutPath = src.renderSettingsOutPath;
+ dest.renderSettingsUseScenePath = src.renderSettingsUseScenePath;
+ dest.renderSettingsHackAOIntensity = src.renderSettingsHackAOIntensity;
+ dest.renderSettingsHackAOSamples = src.renderSettingsHackAOSamples;
+ dest.renderSettingsHackAORadius = src.renderSettingsHackAORadius;
+ dest.renderSettingsShowAOSettings = src.renderSettingsShowAOSettings;
+ dest.renderSettingsShowTasks = src.renderSettingsShowTasks;
+ dest.renderSettingsShowTasks2 = src.renderSettingsShowTasks2;
+ dest.renderSettingsShowPaths = src.renderSettingsShowPaths;
+ dest.renderSettingsShowNet = src.renderSettingsShowNet;
+ dest.renderSettingsOcclusionProbes = src.renderSettingsOcclusionProbes;
+ dest.renderSettingsTexelsPerMap = src.renderSettingsTexelsPerMap;
+ dest.renderSettingsTexelsColor = src.renderSettingsTexelsColor;
+ dest.renderSettingsTexelsMask = src.renderSettingsTexelsMask;
+ dest.renderSettingsTexelsDir = src.renderSettingsTexelsDir;
+ dest.renderSettingsShowDirWarning = src.renderSettingsShowDirWarning;
+ dest.renderSettingsRenderDirMode = src.renderSettingsRenderDirMode;
+ dest.renderSettingsShowCheckerSettings = src.renderSettingsShowCheckerSettings;
+ dest.renderSettingsSamplesWarning = src.renderSettingsSamplesWarning;
+ dest.renderSettingsPrefabWarning = src.renderSettingsPrefabWarning;
+ dest.renderSettingsSplitByScene = src.renderSettingsSplitByScene;
+ dest.renderSettingsUVPaddingMax = src.renderSettingsUVPaddingMax;
+ dest.renderSettingsPostPacking = src.renderSettingsPostPacking;
+ dest.renderSettingsHoleFilling = src.renderSettingsHoleFilling;
+ dest.renderSettingsBeepOnFinish = src.renderSettingsBeepOnFinish;
+ dest.renderSettingsExportTerrainAsHeightmap = src.renderSettingsExportTerrainAsHeightmap;
+ dest.renderSettingsRTXMode = src.renderSettingsRTXMode;
+ dest.renderSettingsLightProbeMode = src.renderSettingsLightProbeMode;
+ dest.renderSettingsClientMode = src.renderSettingsClientMode;
+ dest.renderSettingsServerAddress = src.renderSettingsServerAddress;
+ dest.renderSettingsUnwrapper = src.renderSettingsUnwrapper;
+ dest.renderSettingsDenoiserType = src.renderSettingsDenoiserType;
+ dest.renderSettingsExportTerrainTrees = src.renderSettingsExportTerrainTrees;
+ dest.renderSettingsShowPerf = src.renderSettingsShowPerf;
+ dest.renderSettingsSampleDiv = src.renderSettingsSampleDiv;
+ dest.renderSettingsBatchPoints = src.renderSettingsBatchPoints;
+ dest.renderSettingsCompressVolumes = src.renderSettingsCompressVolumes;
+ dest.renderSettingsRTPVExport = src.renderSettingsRTPVExport;
+ dest.renderSettingsRTPVSceneView = src.renderSettingsRTPVSceneView;
+ dest.renderSettingsRTPVWidth = src.renderSettingsRTPVWidth;
+ dest.renderSettingsRTPVHeight = src.renderSettingsRTPVHeight;
+ dest.renderSettingsAtlasPacker = src.renderSettingsAtlasPacker;
+ dest.renderSettingsAutoAtlas = src.renderSettingsAutoAtlas;
+ }
+#endif
+
+ // List of baked lightmaps
+ public List<Texture2D> maps = new List<Texture2D>();
+ public List<Texture2D> masks = new List<Texture2D>();
+ public List<Texture2D> dirMaps = new List<Texture2D>();
+ public List<Texture2D> rnmMaps0 = new List<Texture2D>();
+ public List<Texture2D> rnmMaps1 = new List<Texture2D>();
+ public List<Texture2D> rnmMaps2 = new List<Texture2D>();
+ public List<int> mapsMode = new List<int>();
+
+ // new props
+ public List<Renderer> bakedRenderers = new List<Renderer>();
+ public List<int> bakedIDs = new List<int>();
+ public List<Vector4> bakedScaleOffset = new List<Vector4>();
+#if UNITY_EDITOR
+ public List<int> bakedVertexOffset = new List<int>();
+#endif
+ public List<Mesh> bakedVertexColorMesh = new List<Mesh>();
+
+ public List<Renderer> nonBakedRenderers = new List<Renderer>();
+
+ public List<Light> bakedLights = new List<Light>();
+ public List<int> bakedLightChannels = new List<int>();
+
+ public List<Terrain> bakedRenderersTerrain = new List<Terrain>();
+ public List<int> bakedIDsTerrain = new List<int>();
+ public List<Vector4> bakedScaleOffsetTerrain = new List<Vector4>();
+
+ public List<string> assetList = new List<string>();
+ public List<int> uvOverlapAssetList = new List<int>(); // -1 = no UV1, 0 = no overlap, 1 = overlap
+
+ public int[] idremap;
+
+ public bool usesRealtimeGI;
+
+ public Texture2D emptyDirectionTex;
+
+ public bool anyVolumes = false;
+ public bool compressedVolumes = false;
+
+#if UNITY_EDITOR
+ [System.Serializable]
+ public class SectorData
+ {
+ public string name;
+
+ public List<Texture2D> maps = new List<Texture2D>();
+ public List<Texture2D> masks = new List<Texture2D>();
+ public List<Texture2D> dirMaps = new List<Texture2D>();
+ public List<Texture2D> rnmMaps0 = new List<Texture2D>();
+ public List<Texture2D> rnmMaps1 = new List<Texture2D>();
+ public List<Texture2D> rnmMaps2 = new List<Texture2D>();
+ public List<int> mapsMode = new List<int>();
+
+ public List<Renderer> bakedRenderers = new List<Renderer>();
+ public List<Terrain> bakedRenderersTerrain = new List<Terrain>();
+ public List<int> bakedIDs = new List<int>();
+ public List<int> bakedIDsTerrain = new List<int>();
+ public List<Vector4> bakedScaleOffset = new List<Vector4>();
+ public List<Vector4> bakedScaleOffsetTerrain = new List<Vector4>();
+ public List<Mesh> bakedVertexColorMesh = new List<Mesh>();
+
+ public List<Renderer> nonBakedRenderers = new List<Renderer>();
+ }
+
+ public List<SectorData> sectors = new List<SectorData>();
+#endif
+
+ void Awake()
+ {
+ ftLightmaps.RefreshScene(gameObject.scene, this);
+ }
+
+ void Start()
+ {
+ // Unity can for some reason alter lightmapIndex after the scene is loaded in a multi-scene setup, so fix that
+ ftLightmaps.RefreshScene2(gameObject.scene, this);//, appendOffset);
+ }
+
+ void OnDestroy()
+ {
+ ftLightmaps.UnloadScene(this);
+ }
+}