Files
2026-08-06 18:56:32 +03:00

117 lines
3.5 KiB
C#

#define USE_TERRAINS
using UnityEngine;
using System.Collections.Generic;
public class ftStorageAsset : ScriptableObject
{
#if UNITY_EDITOR
[SerializeField]
public string path;
// Light settings from the last bake
[SerializeField]
public List<ftLightmapsStorage.LightData> lights = new List<ftLightmapsStorage.LightData>();
// List of baked lightmap world-space bounds
[SerializeField]
public List<Bounds> bounds = new List<Bounds>();
// Per-lightmap flags
[SerializeField]
public List<bool> hasEmissive = new List<bool>();
[SerializeField]
public int[] uvBuffOffsets;
[SerializeField]
public int[] uvBuffLengths;
[SerializeField]
public float[] uvSrcBuff;
[SerializeField]
public float[] uvDestBuff;
[SerializeField]
public int[] lmrIndicesOffsets;
[SerializeField]
public int[] lmrIndicesLengths;
[SerializeField]
public int[] lmrIndicesBuff;
[SerializeField]
public int[] lmGroupLODResFlags; // bits which lods are needed for which LMGroups
[SerializeField]
public int[] lmGroupMinLOD; // minimum possible resolution for given LMGroup given UV island count
[SerializeField]
public int[] lmGroupLODMatrix;
// Reuired for network bakes
[SerializeField]
public List<string> serverGetFileList = new List<string>();
[SerializeField]
public List<bool> lightmapHasColor = new List<bool>();
[SerializeField]
public List<int> lightmapHasMask = new List<int>();
[SerializeField]
public List<bool> lightmapHasDir = new List<bool>();
[SerializeField]
public List<bool> lightmapHasRNM = new List<bool>();
// Partial copy of GlobalStorage to recover UV padding if needed
[SerializeField]
public List<string> modifiedAssetPathList = new List<string>();
[SerializeField]
public List<ftGlobalStorage.AdjustedMesh> modifiedAssets = new List<ftGlobalStorage.AdjustedMesh>();
[SerializeField]
public ftLightmapsStorage.L2[] prevBakedProbes;
[SerializeField]
public Vector3[] prevBakedProbePos;
#endif
// List of baked lightmaps
[SerializeField]
public List<Texture2D> maps = new List<Texture2D>();
[SerializeField]
public List<Texture2D> masks = new List<Texture2D>();
[SerializeField]
public List<Texture2D> dirMaps = new List<Texture2D>();
[SerializeField]
public List<Texture2D> rnmMaps0 = new List<Texture2D>();
[SerializeField]
public List<Texture2D> rnmMaps1 = new List<Texture2D>();
[SerializeField]
public List<Texture2D> rnmMaps2 = new List<Texture2D>();
[SerializeField]
public List<int> mapsMode = new List<int>();
// new props
[SerializeField]
public List<int> bakedIDs = new List<int>();
[SerializeField]
public List<Vector4> bakedScaleOffset = new List<Vector4>();
#if UNITY_EDITOR
[SerializeField]
public List<int> bakedVertexOffset = new List<int>();
#endif
[SerializeField]
public List<Mesh> bakedVertexColorMesh = new List<Mesh>();
[SerializeField]
public List<int> bakedLightChannels = new List<int>();
#if USE_TERRAINS
[SerializeField]
public List<int> bakedIDsTerrain = new List<int>();
[SerializeField]
public List<Vector4> bakedScaleOffsetTerrain = new List<Vector4>();
#endif
[SerializeField]
public List<string> assetList = new List<string>();
[SerializeField]
public List<int> uvOverlapAssetList = new List<int>(); // -1 = no UV1, 0 = no overlap, 1 = overlap
[SerializeField]
public int[] idremap;
}