Esempio n. 1
0
    /*public static bool IsModelProcessed(string path)
     * {
     *  if (lstorage == null) lstorage = GetLocalStorage();
     *  var listProcessed = lstorage.modifiedAssetPathList;
     *  return listProcessed.Contains(path);
     * }*/

    public static void MarkModelProcessed(string path, bool enabled)
    {
        if (lstorage == null)
        {
            lstorage = GetLocalStorage();
        }
        if (gstorage == null)
        {
            gstorage = GetGlobalStorage();
        }
        if (enabled)
        {
            int gid = gstorage.modifiedAssetPathList.IndexOf(path);
            if (gid < 0)
            {
                return;
            }
            int hash = gstorage.CalculatePaddingHash(gid);
            while (gstorage.modifiedAssetPaddingHash.Count <= gid)
            {
                gstorage.modifiedAssetPaddingHash.Add(0);
            }
            gstorage.modifiedAssetPaddingHash[gid] = hash;

            int id = lstorage.modifiedAssetPathList.IndexOf(path);
            if (id < 0)
            {
                lstorage.modifiedAssetPathList.Add(path);
                id = lstorage.modifiedAssetPathList.Count - 1;
            }
            while (lstorage.modifiedAssetPaddingHash.Count <= id)
            {
                lstorage.modifiedAssetPaddingHash.Add(0);
            }
            lstorage.modifiedAssetPaddingHash[id] = hash;
            EditorUtility.SetDirty(gstorage);
            EditorSceneManager.MarkAllScenesDirty();
        }
        else
        {
            int id = lstorage.modifiedAssetPathList.IndexOf(path);
            if (id >= 0)
            {
                lstorage.modifiedAssetPathList.RemoveAt(id);
                if (lstorage.modifiedAssetPaddingHash.Count > id)
                {
                    lstorage.modifiedAssetPaddingHash.RemoveAt(id);
                }
            }
        }
        EditorUtility.SetDirty(lstorage);
    }
Esempio n. 2
0
    public static ftGlobalStorage GetGlobalStorage()
    {
        if (gstorage != null)
        {
            return(gstorage);
        }
        var bakeryRuntimePath = GetRuntimePath();

        gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
        if (gstorage == null && editorUpdateCalled) // if editorUpdateCalled==false, it may be not imported yet
        {
            var gstorageDefault = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftDefaultGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;

            if (gstorageDefault != null)
            {
                if (AssetDatabase.CopyAsset(bakeryRuntimePath + "ftDefaultGlobalStorage.asset", bakeryRuntimePath + "ftGlobalStorage.asset"))
                {
                    AssetDatabase.Refresh();
                    gstorage = AssetDatabase.LoadAssetAtPath(bakeryRuntimePath + "ftGlobalStorage.asset", typeof(ftGlobalStorage)) as ftGlobalStorage;
                }
            }

            if (gstorage == null)
            {
                Debug.Log("Created Bakery GlobalStorage");
                gstorage = ScriptableObject.CreateInstance <ftGlobalStorage>();
                AssetDatabase.CreateAsset(gstorage, bakeryRuntimePath + "ftGlobalStorage.asset");
                AssetDatabase.SaveAssets();
            }
            else
            {
                Debug.Log("Created Bakery GlobalStorage from DefaultGlobalStorage");
            }
        }

        if (gstorage != null)
        {
            if (gstorage.modifiedMeshList.Count > 0)
            {
                gstorage.ConvertFromLegacy();
            }
        }

        return(gstorage);
    }
Esempio n. 3
0
    public static void Init()
    {
        storage = ftLightmaps.GetGlobalStorage();

        //ftLightmaps.AddTag("BakeryProcessed");
    }
Esempio n. 4
0
    static void CreateGlobalStorageAsset()
    {
        if (gstorage == null)
        {
            gstorage = GetGlobalStorage();
        }
        if (lstorage == null)
        {
            lstorage = GetLocalStorage();
        }

        var listToProccess    = gstorage.modifiedAssetPathList;
        var listToProcessHash = gstorage.modifiedAssetPaddingHash;
        var listProcessed     = lstorage.modifiedAssetPathList;
        var listProcessedHash = lstorage.modifiedAssetPaddingHash;

        for (int i = 0; i < listToProccess.Count; i++)
        {
            int localID = listProcessed.IndexOf(listToProccess[i]);
            if (localID >= 0)
            {
                if (listToProcessHash.Count > i)
                {
                    int globalPaddingHash = listToProcessHash[i];
                    if (listProcessedHash.Count > localID)
                    {
                        int localPaddingHash = listProcessedHash[localID];
                        if (globalPaddingHash == localPaddingHash)
                        {
                            continue;
                        }
                    }
                }
                else
                {
                    // Hash is not initialized = legacy
                    continue;
                }
            }

#if UNITY_2017_1_OR_NEWER
            var importer = AssetImporter.GetAtPath(listToProccess[i]) as ModelImporter;
            if (importer != null)
            {
                var props  = importer.extraUserProperties;
                int propID = -1;
                for (int p = 0; p < props.Length; p++)
                {
                    if (props[p].Substring(0, 7) == "#BAKERY")
                    {
                        propID = p;
                        break;
                    }
                }
                if (propID >= 0)
                {
                    continue;              // should be fine without additional reimport - metadata is always loaded with model
                }
            }
#endif

            var asset = AssetDatabase.LoadAssetAtPath(listToProccess[i], typeof(GameObject)) as GameObject;
            if (asset == null)
            {
                continue;
            }
            if (asset.tag == "BakeryProcessed")
            {
                continue;                                 // legacy
            }
            //if (asset.tag != "BakeryProcessed") AssetDatabase.ImportAsset(list[i], ImportAssetOptions.ForceUpdate);
            Debug.Log("Reimporting to adjust UVs: " + listToProccess[i]);
            AssetDatabase.ImportAsset(listToProccess[i], ImportAssetOptions.ForceUpdate);
        }
    }
Esempio n. 5
0
 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.renderSettingsRTPVExport               = src.renderSettingsRTPVExport;
     dest.renderSettingsRTPVSceneView            = src.renderSettingsRTPVSceneView;
     dest.renderSettingsRTPVWidth                = src.renderSettingsRTPVWidth;
     dest.renderSettingsRTPVHeight               = src.renderSettingsRTPVHeight;
     dest.renderSettingsAtlasPacker              = src.renderSettingsAtlasPacker;
     dest.renderSettingsAutoAtlas                = src.renderSettingsAutoAtlas;
 }