您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

206 行
5.5 KiB

using UnityEngine;
namespace VRMShaders.VRM10.MToon10.Runtime
{
public sealed class MToon10Context
{
private readonly Material _material;
public MToon10Context(Material material)
{
_material = material;
}
public void Validate()
{
new MToonValidator(_material).Validate();
}
// Rendering
public MToon10AlphaMode AlphaMode
{
get => (MToon10AlphaMode) _material.GetInt(MToon10Prop.AlphaMode);
}
public MToon10TransparentWithZWriteMode TransparentWithZWriteMode
{
get => (MToon10TransparentWithZWriteMode) _material.GetInt(MToon10Prop.TransparentWithZWrite);
}
public float AlphaCutoff
{
get => _material.GetFloat(MToon10Prop.AlphaCutoff);
}
public int RenderQueueOffsetNumber
{
get => _material.GetInt(MToon10Prop.RenderQueueOffsetNumber);
}
public MToon10DoubleSidedMode DoubleSidedMode
{
get => (MToon10DoubleSidedMode) _material.GetInt(MToon10Prop.DoubleSided);
}
// Lighting
public Color BaseColorFactorSrgb
{
get => _material.GetColor(MToon10Prop.BaseColorFactor);
}
public Texture BaseColorTexture
{
get => _material.GetTexture(MToon10Prop.BaseColorTexture);
}
public Color ShadeColorFactorSrgb
{
get => _material.GetColor(MToon10Prop.ShadeColorFactor);
}
public Texture ShadeColorTexture
{
get => _material.GetTexture(MToon10Prop.ShadeColorTexture);
}
public Texture NormalTexture
{
get => _material.GetTexture(MToon10Prop.NormalTexture);
}
public float NormalTextureScale
{
get => _material.GetFloat(MToon10Prop.NormalTextureScale);
}
public float ShadingShiftFactor
{
get => _material.GetFloat(MToon10Prop.ShadingShiftFactor);
}
public Texture ShadingShiftTexture
{
get => _material.GetTexture(MToon10Prop.ShadingShiftTexture);
}
public float ShadingShiftTextureScale
{
get => _material.GetFloat(MToon10Prop.ShadingShiftTextureScale);
}
public float ShadingToonyFactor
{
get => _material.GetFloat(MToon10Prop.ShadingToonyFactor);
}
// GI
public float GiEqualizationFactor
{
get => _material.GetFloat(MToon10Prop.GiEqualizationFactor);
}
// Emission
public Color EmissiveFactorLinear
{
// Emissive factor is stored in Linear space
get => _material.GetColor(MToon10Prop.EmissiveFactor);
}
public Texture EmissiveTexture
{
get => _material.GetTexture(MToon10Prop.EmissiveTexture);
}
// Rim Lighting
public Color MatcapColorFactorSrgb
{
get => _material.GetColor(MToon10Prop.MatcapColorFactor);
}
public Texture MatcapTexture
{
get => _material.GetTexture(MToon10Prop.MatcapTexture);
}
public Color ParametricRimColorFactorSrgb
{
get => _material.GetColor(MToon10Prop.ParametricRimColorFactor);
}
public float ParametricRimFresnelPowerFactor
{
get => _material.GetFloat(MToon10Prop.ParametricRimFresnelPowerFactor);
}
public float ParametricRimLiftFactor
{
get => _material.GetFloat(MToon10Prop.ParametricRimLiftFactor);
}
public Texture RimMultiplyTexture
{
get => _material.GetTexture(MToon10Prop.RimMultiplyTexture);
}
public float RimLightingMixFactor
{
get => _material.GetFloat(MToon10Prop.RimLightingMixFactor);
}
// Outline
public MToon10OutlineMode OutlineWidthMode
{
get => (MToon10OutlineMode) _material.GetInt(MToon10Prop.OutlineWidthMode);
}
public float OutlineWidthFactor
{
get => _material.GetFloat(MToon10Prop.OutlineWidthFactor);
}
public Texture OutlineWidthMultiplyTexture
{
get => _material.GetTexture(MToon10Prop.OutlineWidthMultiplyTexture);
}
public Color OutlineColorFactorSrgb
{
get => _material.GetColor(MToon10Prop.OutlineColorFactor);
}
public float OutlineLightingMixFactor
{
get => _material.GetFloat(MToon10Prop.OutlineLightingMixFactor);
}
// UV Animation
public Texture UvAnimationMaskTexture
{
get => _material.GetTexture(MToon10Prop.UvAnimationMaskTexture);
}
public float UvAnimationScrollXSpeedFactor
{
get => _material.GetFloat(MToon10Prop.UvAnimationScrollXSpeedFactor);
}
public float UvAnimationScrollYSpeedFactor
{
get => _material.GetFloat(MToon10Prop.UvAnimationScrollYSpeedFactor);
}
public float UvAnimationRotationSpeedFactor
{
get => _material.GetFloat(MToon10Prop.UvAnimationRotationSpeedFactor);
}
// etc
public Vector2 TextureScale
{
get => _material.GetTextureScale(MToon10Prop.BaseColorTexture);
}
public Vector2 TextureOffset
{
get => _material.GetTextureOffset(MToon10Prop.BaseColorTexture);
}
}
}