Exemple #1
0
        public override IEnumerable <Object> FetchDependencies(ISerializedFile file, bool isLog = false)
        {
            foreach (Object @object in base.FetchDependencies(file, isLog))
            {
                yield return(@object);
            }

            foreach (Object @object in SplatDatabase.FetchDependencies(file, isLog))
            {
                yield return(@object);
            }
            foreach (Object @object in DetailDatabase.FetchDependencies(file, isLog))
            {
                yield return(@object);
            }
            foreach (Object @object in Heightmap.FetchDependencies(file, isLog))
            {
                yield return(@object);
            }

            if (IsReadLightmap(file.Version))
            {
                yield return(Lightmap.FetchDependency(file, isLog, ToLogString, "m_Lightmap"));
            }
        }
Exemple #2
0
        protected override YAMLMappingNode ExportYAMLRoot(IAssetsExporter exporter)
        {
#warning TODO: values acording to read version (current 2017.3.0f3)
            YAMLMappingNode node = base.ExportYAMLRoot(exporter);
            node.Add("m_SplatDatabase", SplatDatabase.ExportYAML(exporter));
            node.Add("m_DetailDatabase", DetailDatabase.ExportYAML(exporter));
            node.Add("m_Heightmap", Heightmap.ExportYAML(exporter));
            return(node);
        }
        protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container)
        {
            YAMLMappingNode node = base.ExportYAMLRoot(container);

            node.Add("m_SplatDatabase", SplatDatabase.ExportYAML(container));
            node.Add("m_DetailDatabase", DetailDatabase.ExportYAML(container));
            node.Add("m_Heightmap", Heightmap.ExportYAML(container));
            return(node);
        }
Exemple #4
0
        protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container)
        {
            YAMLMappingNode node = base.ExportYAMLRoot(container);

            node.Add(SplatDatabaseName, SplatDatabase.ExportYAML(container));
            node.Add(DetailDatabaseName, DetailDatabase.ExportYAML(container));
            node.Add(HeightmapName, Heightmap.ExportYAML(container));
            return(node);
        }
Exemple #5
0
        public override void Read(AssetStream stream)
        {
            base.Read(stream);

            SplatDatabase.Read(stream);
            DetailDatabase.Read(stream);
            Heightmap.Read(stream);
            if (IsReadLightmap(stream.Version))
            {
                Lightmap.Read(stream);
            }
        }
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            SplatDatabase.Read(reader);
            DetailDatabase.Read(reader);
            Heightmap.Read(reader);
            if (IsReadLightmap(reader.Version))
            {
                Lightmap.Read(reader);
            }
        }
        private static PPtr <TerrainLayer>[] GetTerrainLayers(IExportContainer container, ref SplatDatabase origin)
        {
            if (SplatDatabase.HasTerrainLayers(container.Version))
            {
                return(origin.TerrainLayers.ToArray());
            }
            else
            {
#warning TODO: convert SplatPrototype to TerrainLayer and add new asset to new SerializedFile
                throw new NotImplementedException();
            }
        }
Exemple #8
0
        public override void Write(AssetWriter writer)
        {
            base.Write(writer);

            SplatDatabase.Write(writer);
            DetailDatabase.Write(writer);
            Heightmap.Write(writer);
            if (HasLightmap(writer.Version))
            {
                Lightmap.Write(writer);
            }
        }
Exemple #9
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            SplatDatabase.Read(reader);
            DetailDatabase.Read(reader);
            Heightmap.Read(reader);
            if (HasLightmap(reader.Version))
            {
                Lightmap.Read(reader);
            }
            if (HasPreloadShaders(reader.Version))
            {
                PreloadShaders = reader.ReadAssetArray <PPtr <Shader> >();
            }
        }
Exemple #10
0
        protected override YAMLMappingNode ExportYAMLRoot(IExportContainer container)
        {
            YAMLMappingNode node = base.ExportYAMLRoot(container);

            node.Add(SplatDatabaseName, SplatDatabase.ExportYAML(container));
            node.Add(DetailDatabaseName, DetailDatabase.ExportYAML(container));
            node.Add(HeightmapName, Heightmap.ExportYAML(container));
            if (HasLightmap(container.ExportVersion))
            {
                node.Add(LightmapName, Lightmap.ExportYAML(container));
            }
            if (HasPreloadShaders(container.ExportVersion))
            {
                node.Add(PreloadShadersName, PreloadShaders.ExportYAML(container));
            }
            return(node);
        }
        public static SplatDatabase Convert(IExportContainer container, ref SplatDatabase origin)
        {
            SplatDatabase instance = new SplatDatabase();

            if (SplatDatabase.HasTerrainLayers(container.ExportVersion))
            {
                instance.TerrainLayers = GetTerrainLayers(container, ref origin);
            }
            else
            {
                instance.Splats = origin.Splats.ToArray();
            }
            instance.AlphaTextures      = origin.AlphaTextures.ToArray();
            instance.AlphamapResolution = origin.AlphamapResolution;
            instance.BaseMapResolution  = origin.BaseMapResolution;
            if (SplatDatabase.HasColorSpace(container.ExportVersion))
            {
                instance.ColorSpace = origin.ColorSpace;
                instance.MaterialRequiresMetallic   = GetMaterialRequiresMetallic(container, ref origin);
                instance.MaterialRequiresSmoothness = GetMaterialRequiresSmoothness(container, ref origin);
            }
            return(instance);
        }
 private static bool GetMaterialRequiresSmoothness(IExportContainer container, ref SplatDatabase origin)
 {
     return(SplatDatabase.HasColorSpace(container.Version) ? origin.MaterialRequiresSmoothness : true);
 }
 public static TerrainLayer[] GenerateTerrainLayers(IExportContainer container, ref SplatDatabase origin)
 {
     TerrainLayer[] layers = new TerrainLayer[origin.Splats.Length];
     for (int i = 0; i < layers.Length; i++)
     {
         layers[i] = origin.Splats[i].Convert(container);
     }
     return(layers);
 }