示例#1
0
        private IReadOnlyList <TierSettings> GetTierSettings(Version version, Platform platform, TransferInstructionFlags flags)
        {
            if (!IsReadTierSettings(version))
            {
                return(new TierSettings[0]);
            }

            if (IsReadEditorSettings(flags))
            {
                return(TierSettings);
            }

            if (IsReadPlatformSettings(version))
            {
                TierSettings[] settings = new TierSettings[PlatformSettings.Count];
                for (int i = 0; i < PlatformSettings.Count; i++)
                {
                    PlatformShaderSettings psettings = PlatformSettings[i];
                    settings[i] = new TierSettings(psettings, platform, (GraphicsTier)i, version, flags);
                }
                return(settings);
            }
            else
            {
                TierSettings[] settings = new TierSettings[TierGraphicSettings.Count];
                for (int i = 0; i < TierGraphicSettings.Count; i++)
                {
                    TierGraphicsSettings gsettings = TierGraphicSettings[i];
                    settings[i] = new TierSettings(gsettings, platform, (GraphicsTier)i);
                }
                return(settings);
            }
        }
示例#2
0
        private IReadOnlyList <TierSettings> GetTierSettings(Version version, Platform platform, TransferInstructionFlags flags)
        {
            if (!HasTierSettings(version))
            {
                return(System.Array.Empty <TierSettings>());
            }

            if (HasEditorSettings(flags))
            {
                return(TierSettings);
            }

            if (HasPlatformSettings(version))
            {
                TierSettings[] settings = new TierSettings[PlatformSettings.Length];
                for (int i = 0; i < PlatformSettings.Length; i++)
                {
                    PlatformShaderSettings psettings = PlatformSettings[i];
                    settings[i] = new TierSettings(psettings, platform, (GraphicsTier)i, version, flags);
                }
                return(settings);
            }
            else
            {
                TierSettings[] settings = new TierSettings[TierGraphicSettings.Length];
                for (int i = 0; i < TierGraphicSettings.Length; i++)
                {
                    TierGraphicsSettings gsettings = TierGraphicSettings[i];
                    settings[i] = new TierSettings(gsettings, platform, (GraphicsTier)i);
                }
                return(settings);
            }
        }
示例#3
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            if (IsReadDeferred(reader.Version))
            {
                Deferred.Read(reader);
            }
            if (IsReadDeferredReflections(reader.Version))
            {
                DeferredReflections.Read(reader);
            }
            if (IsReadScreenSpaceShadows(reader.Version))
            {
                ScreenSpaceShadows.Read(reader);
            }
            if (IsReadLegacyDeferred(reader.Version))
            {
                LegacyDeferred.Read(reader);
            }
            if (IsReadDepthNormals(reader.Version))
            {
                DepthNormals.Read(reader);
                MotionVectors.Read(reader);
                LightHalo.Read(reader);
                LensFlare.Read(reader);
            }

            if (IsReadAlwaysIncludedShaders(reader.Version))
            {
                m_alwaysIncludedShaders = reader.ReadAssetArray <PPtr <Shader> >();
            }

            if (IsReadPreloadedShaders(reader.Version))
            {
                m_preloadedShaders = reader.ReadAssetArray <PPtr <ShaderVariantCollection> >();
            }
            if (IsReadSpritesDefaultMaterial(reader.Version))
            {
                SpritesDefaultMaterial.Read(reader);
            }
            if (IsReadCustomRenderPipeline(reader.Version))
            {
                CustomRenderPipeline.Read(reader);
                TransparencySortMode = (TransparencySortMode)reader.ReadInt32();
                TransparencySortAxis.Read(reader);
            }

            if (IsReadTierSettings(reader.Version))
            {
                if (IsReadPlatformSettings(reader.Version))
                {
                    if (IsReadPlatformSettingsTiers(reader.Version))
                    {
                        m_platformSettings    = new PlatformShaderSettings[3];
                        m_platformSettings[0] = reader.ReadAsset <PlatformShaderSettings>();
                        m_platformSettings[1] = reader.ReadAsset <PlatformShaderSettings>();
                        m_platformSettings[2] = reader.ReadAsset <PlatformShaderSettings>();
                    }
                    else
                    {
                        m_platformSettings    = new PlatformShaderSettings[1];
                        m_platformSettings[0] = reader.ReadAsset <PlatformShaderSettings>();
                    }
                }
                else
                {
                    if (IsReadStaticTierGraphicsSettings(reader.Version, reader.Flags))
                    {
                        m_tierGraphicSettings    = new TierGraphicsSettings[3];
                        m_tierGraphicSettings[0] = reader.ReadAsset <TierGraphicsSettings>();
                        m_tierGraphicSettings[1] = reader.ReadAsset <TierGraphicsSettings>();
                        m_tierGraphicSettings[2] = reader.ReadAsset <TierGraphicsSettings>();
                    }
                }
            }

#if UNIVERSAL
            if (IsReadEditorSettings(reader.Flags))
            {
                if (IsReadDefaultRenderingPath(reader.Version))
                {
                    DefaultRenderingPath       = (RenderingPath)reader.ReadInt32();
                    DefaultMobileRenderingPath = (RenderingPath)reader.ReadInt32();
                }
                if (IsReadTierSettings(reader.Version))
                {
                    m_tierSettings = reader.ReadAssetArray <TierSettings>();
                }

                if (IsReadLightmapStripping(reader.Version))
                {
                    LightmapStripping = (LightmapStrippingMode)reader.ReadInt32();
                }
                if (IsReadFogStripping(reader.Version))
                {
                    if (IsReadFogStrippingFirst(reader.Version))
                    {
                        FogStripping = (LightmapStrippingMode)reader.ReadInt32();
                    }
                }
                if (IsReadInstancingStripping(reader.Version))
                {
                    InstancingStripping = (InstancingStrippingVariant)reader.ReadInt32();
                }

                if (IsReadLightmapKeepPlain(reader.Version))
                {
                    LightmapKeepPlain       = reader.ReadBoolean();
                    LightmapKeepDirCombined = reader.ReadBoolean();
                }
                if (IsReadLightmapKeepDirSeparate(reader.Version))
                {
                    LightmapKeepDirSeparate = reader.ReadBoolean();
                }

                if (IsReadLightmapKeepDynamicPlain(reader.Version))
                {
                    if (IsReadLightmapKeepDynamic(reader.Version))
                    {
                        bool lightmapKeepDynamic = reader.ReadBoolean();
                        reader.AlignStream(AlignType.Align4);

                        LightmapKeepDynamicPlain       = lightmapKeepDynamic;
                        LightmapKeepDynamicDirCombined = lightmapKeepDynamic;
                        LightmapKeepDynamicDirSeparate = lightmapKeepDynamic;
                    }
                    else
                    {
                        LightmapKeepDynamicPlain       = reader.ReadBoolean();
                        LightmapKeepDynamicDirCombined = reader.ReadBoolean();
                    }
                }
                if (IsReadLightmapKeepDynamicDirSeparate(reader.Version))
                {
                    LightmapKeepDynamicDirSeparate = reader.ReadBoolean();
                }
                if (IsAlign(reader.Version))
                {
                    reader.AlignStream(AlignType.Align4);
                }

                if (IsReadLightmapKeepShadowMask(reader.Version))
                {
                    LightmapKeepShadowMask  = reader.ReadBoolean();
                    LightmapKeepSubtractive = reader.ReadBoolean();
                }
                if (IsReadFogStripping(reader.Version))
                {
                    if (!IsReadFogStrippingFirst(reader.Version))
                    {
                        FogStripping = (LightmapStrippingMode)reader.ReadInt32();
                    }
                }
                if (IsReadFogKeepLinear(reader.Version))
                {
                    FogKeepLinear = reader.ReadBoolean();
                    FogKeepExp    = reader.ReadBoolean();
                    FogKeepExp2   = reader.ReadBoolean();
                    reader.AlignStream(AlignType.Align4);
                }

                if (IsReadAlbedoSwatchInfos(reader.Version))
                {
                    m_albedoSwatchInfos = reader.ReadAssetArray <AlbedoSwatchInfo>();
                }
            }
            else
#endif
            {
                if (IsReadShaderDefinesPerShaderCompiler(reader.Version))
                {
                    m_shaderDefinesPerShaderCompiler = reader.ReadAssetArray <PlatformShaderDefines>();
                }
            }

            if (IsReadLightsUseLinearIntensity(reader.Version))
            {
                LightsUseLinearIntensity  = reader.ReadBoolean();
                LightsUseColorTemperature = reader.ReadBoolean();
            }
        }
 public static void SetShaderSettingsForPlatform(BuildTargetGroup target, ShaderHardwareTier tier, PlatformShaderSettings settings)
 {
     TierSettings settings2 = new TierSettings {
         standardShaderQuality = settings.standardShaderQuality,
         cascadedShadowMaps = settings.cascadedShadowMaps,
         reflectionProbeBoxProjection = settings.reflectionProbeBoxProjection,
         reflectionProbeBlending = settings.reflectionProbeBlending
     };
     SetTierSettings(target, (GraphicsTier) tier, settings2);
 }