Heroes_of_Hiis/Assets/Polaris - Low Poly Ecosystem/Polaris - Low Poly Terrain .../Runtime/Scripts/Rendering/GGrassMaterialProvider.cs

95 lines
2.8 KiB
C#
Raw Normal View History

#if GRIFFIN
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
namespace Pinwheel.Griffin.Rendering
{
public static class GGrassMaterialProvider
{
public const string FADE_KW = "FADE";
public static Material GetMaterial(bool isInteractiveGrassEnabled, bool isBillboardEnabled)
{
Material mat;
if (isInteractiveGrassEnabled)
{
mat = GetInteractiveGrassMaterial();
}
else
{
mat = GetNonInteractiveGrassMaterial(isBillboardEnabled);
}
if (mat != null)
{
mat.EnableKeyword(FADE_KW);
}
return mat;
}
private static Material GetInteractiveGrassMaterial()
{
GRenderPipelineType pipeline = GCommon.CurrentRenderPipeline;
if (pipeline == GRenderPipelineType.Builtin)
{
return GRuntimeSettings.Instance.foliageRendering.grassInteractiveMaterial;
}
else if (pipeline == GRenderPipelineType.Universal)
{
return GRuntimeSettings.Instance.foliageRendering.urpGrassInteractiveMaterial;
}
else
{
return null;
}
}
private static Material GetNonInteractiveGrassMaterial(bool isBillboardEnabled)
{
if (isBillboardEnabled)
{
return GetNonInteractiveBillboardGrassMaterial();
}
else
{
return GetNonInteractiveNonBillboardGrassMaterial();
}
}
private static Material GetNonInteractiveNonBillboardGrassMaterial()
{
GRenderPipelineType pipeline = GCommon.CurrentRenderPipeline;
if (pipeline == GRenderPipelineType.Builtin)
{
return GRuntimeSettings.Instance.foliageRendering.grassMaterial;
}
else if (pipeline == GRenderPipelineType.Universal)
{
return GRuntimeSettings.Instance.foliageRendering.urpGrassMaterial;
}
else
{
return null;
}
}
private static Material GetNonInteractiveBillboardGrassMaterial()
{
GRenderPipelineType pipeline = GCommon.CurrentRenderPipeline;
if (pipeline == GRenderPipelineType.Builtin)
{
return GRuntimeSettings.Instance.foliageRendering.grassBillboardMaterial;
}
else if (pipeline == GRenderPipelineType.Universal)
{
return GRuntimeSettings.Instance.foliageRendering.urpGrassBillboardMaterial;
}
else
{
return null;
}
}
}
}
#endif