55 lines
1.6 KiB
C#
55 lines
1.6 KiB
C#
using UnityEngine;
|
|
|
|
using static Misaki.HdrpToon.UTSPropertyName;
|
|
|
|
namespace Misaki.HdrpToon.Editor
|
|
{
|
|
internal static class MaterialHelpers
|
|
{
|
|
public static ShadingMode GetShadingMode(this Material material)
|
|
{
|
|
if (!material.HasProperty(SurfaceOptions.SHADING_MODE))
|
|
{
|
|
return ShadingMode.Standard;
|
|
}
|
|
|
|
return (ShadingMode)material.GetInteger(SurfaceOptions.SHADING_MODE);
|
|
}
|
|
|
|
public static PBRMode GetPBRMode(this Material material)
|
|
{
|
|
if (!material.HasProperty(SurfaceOptions.PBR_MODE))
|
|
{
|
|
return PBRMode.Off;
|
|
}
|
|
|
|
return (PBRMode)material.GetInteger(SurfaceOptions.PBR_MODE);
|
|
}
|
|
|
|
public static MaterialType GetMaterialType(this Material material)
|
|
{
|
|
if (!material.HasProperty(SurfaceOptions.MATERIAL_TYPE))
|
|
{
|
|
return MaterialType.Standard;
|
|
}
|
|
|
|
return (MaterialType)material.GetInteger(SurfaceOptions.MATERIAL_TYPE);
|
|
}
|
|
|
|
public static bool HasFeature(this Material material, SurfaceFeature feature)
|
|
{
|
|
if (!material.HasProperty(SurfaceOptions.SURFACE_FEATURE))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
var value = (SurfaceFeature)material.GetInteger(SurfaceOptions.SURFACE_FEATURE);
|
|
return (value & feature) != 0;
|
|
}
|
|
|
|
public static bool IsHairBlendingTarget(this Material material)
|
|
{
|
|
return material.GetShaderPassEnabled(UTSPassName.HAIR_BLENDING_TARGET_PASS_NAME);
|
|
}
|
|
}
|
|
} |