95 lines
2.8 KiB
C#
95 lines
2.8 KiB
C#
#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
|