Пример #1
0
 public void ApplyMaterial()
 {
     if (Renderers != null)
     {
         for (var i = Renderers.Count - 1; i >= 0; i--)
         {
             SgtHelper.AddMaterial(Renderers[i], Material);
         }
     }
 }
Пример #2
0
    public void ApplyInnerMaterial()
    {
        if (InnerRenderers != null)
        {
            for (var i = InnerRenderers.Count - 1; i >= 0; i--)
            {
                SgtHelper.AddMaterial(InnerRenderers[i], InnerMaterial);
            }
        }

        UpdateTerrainMaterials();
    }
Пример #3
0
    protected virtual void LateUpdate()
    {
        UpdateMaterial();

        for (var i = Renderers.Count - 1; i >= 0; i--)
        {
            var renderer = Renderers[i];

            SgtHelper.BeginStealthSet(renderer);
            {
                SgtHelper.AddMaterial(renderer, depthMaterial);
            }
            SgtHelper.EndStealthSet();
        }
    }
Пример #4
0
    public void AddRenderer(Renderer renderer)
    {
        if (renderer != null)
        {
            if (Renderers.Contains(renderer) == false)
            {
                if (depthMaterial != null)
                {
                    SgtHelper.AddMaterial(renderer, depthMaterial);
                }

                Renderers.Add(renderer);
            }
        }
    }
Пример #5
0
    public void AddInnerRenderer(MeshRenderer renderer)
    {
        if (renderer != null)
        {
            if (InnerRenderers == null)
            {
                InnerRenderers = new List <MeshRenderer>();
            }

            if (InnerRenderers.Contains(renderer) == false)
            {
                SgtHelper.AddMaterial(renderer, InnerMaterial);

                InnerRenderers.Add(renderer);
            }
        }
    }
Пример #6
0
    public void UpdateMaterials()
    {
        updateMaterialsCalled = true;

        if (InnerMaterial == null)
        {
            InnerMaterial = SgtHelper.CreateTempMaterial("Atmosphere Inner (Generated)", SgtHelper.ShaderNamePrefix + "AtmosphereInner");

            if (InnerRenderers != null)
            {
                for (var i = InnerRenderers.Count - 1; i >= 0; i--)
                {
                    var innerRenderer = InnerRenderers[i];

                    if (innerRenderer != null)
                    {
                        SgtHelper.AddMaterial(innerRenderer, InnerMaterial);
                    }
                }
            }

            UpdateTerrainMaterials();
        }

        if (OuterMaterial == null)
        {
            OuterMaterial = SgtHelper.CreateTempMaterial("Atmosphere Outer (Generated)", SgtHelper.ShaderNamePrefix + "AtmosphereOuter");

            if (Outers != null)
            {
                for (var i = Outers.Count - 1; i >= 0; i--)
                {
                    var outer = Outers[i];

                    if (outer != null)
                    {
                        outer.SetMaterial(OuterMaterial);
                    }
                }
            }
        }

        var color       = SgtHelper.Brighten(Color, Brightness);
        var renderQueue = (int)RenderQueue + RenderQueueOffset;

        InnerMaterial.renderQueue = renderQueue;
        OuterMaterial.renderQueue = renderQueue;

        InnerMaterial.SetColor("_Color", color);
        OuterMaterial.SetColor("_Color", color);

        InnerMaterial.SetTexture("_DepthTex", InnerDepthTex);
        OuterMaterial.SetTexture("_DepthTex", OuterDepthTex);

        if (Lit == true)
        {
            InnerMaterial.SetTexture("_LightingTex", LightingTex);
            OuterMaterial.SetTexture("_LightingTex", LightingTex);

            if (Scattering == true)
            {
                OuterMaterial.SetTexture("_ScatteringTex", ScatteringTex);
                OuterMaterial.SetFloat("_ScatteringMie", ScatteringMie);
                OuterMaterial.SetFloat("_ScatteringRayleigh", ScatteringRayleigh);

                SgtHelper.EnableKeyword("SGT_B", OuterMaterial);                 // Scattering

                if (GroundScattering == true)
                {
                    InnerMaterial.SetTexture("_ScatteringTex", ScatteringTex);
                    InnerMaterial.SetFloat("_ScatteringMie", ScatteringMie);
                    InnerMaterial.SetFloat("_ScatteringRayleigh", ScatteringRayleigh);

                    SgtHelper.EnableKeyword("SGT_B", InnerMaterial);                     // Scattering
                }
                else
                {
                    SgtHelper.DisableKeyword("SGT_B", InnerMaterial);                     // Scattering
                }
            }
            else
            {
                SgtHelper.DisableKeyword("SGT_B", InnerMaterial);                 // Scattering
                SgtHelper.DisableKeyword("SGT_B", OuterMaterial);                 // Scattering
            }
        }

        SgtHelper.SetTempMaterial(InnerMaterial, OuterMaterial);

        UpdateMaterialNonSerialized();
    }