public static MToonDefinition FromVrm0x(GltfFormat.VrmMaterial material, List <Texture> textures)
        {
            var definition = new MToonDefinition
            {
                Meta = new MetaDefinition
                {
                    Implementation = MToonUtils.Implementation,
                    VersionNumber  = material.GetInt(MToonUtils.PropVersion),
                },
                Rendering = new RenderingDefinition
                {
                    RenderMode = GetBlendMode(material),
                    CullMode   = GetCullMode(material),
                    RenderQueueOffsetNumber = GetRenderQueueOffset(material, GetRenderQueueOriginMode(material)),
                },
                Color = new ColorDefinition
                {
                    LitColor             = ToLinear(material, MToonUtils.PropColor),
                    LitMultiplyTexture   = GetTexture(material, MToonUtils.PropMainTex, textures),
                    ShadeColor           = ToLinear(material, MToonUtils.PropShadeColor),
                    ShadeMultiplyTexture = GetTexture(material, MToonUtils.PropShadeTexture, textures),
                    CutoutThresholdValue = GetValue(material, MToonUtils.PropCutoff),
                },
                Lighting = new LightingDefinition
                {
                    LitAndShadeMixing = new LitAndShadeMixingDefinition
                    {
                        ShadingShiftValue                          = GetValue(material, MToonUtils.PropShadeShift),
                        ShadingToonyValue                          = GetValue(material, MToonUtils.PropShadeToony),
                        ShadowReceiveMultiplierValue               = GetValue(material, MToonUtils.PropReceiveShadowRate),
                        ShadowReceiveMultiplierMultiplyTexture     = GetTexture(material, MToonUtils.PropReceiveShadowTexture, textures),
                        LitAndShadeMixingMultiplierValue           = GetValue(material, MToonUtils.PropShadingGradeRate),
                        LitAndShadeMixingMultiplierMultiplyTexture = GetTexture(material, MToonUtils.PropShadingGradeTexture, textures),
                    },
                    LightingInfluence = new LightingInfluenceDefinition
                    {
                        LightColorAttenuationValue = GetValue(material, MToonUtils.PropLightColorAttenuation),
                        GiIntensityValue           = GetValue(material, MToonUtils.PropIndirectLightIntensity),
                    },
                    Normal = new NormalDefinition
                    {
                        NormalTexture    = GetTexture(material, MToonUtils.PropBumpMap, textures),
                        NormalScaleValue = GetValue(material, MToonUtils.PropBumpScale),
                    },
                },
                Emission = new EmissionDefinition
                {
                    EmissionColor           = ToLinear(material, MToonUtils.PropEmissionColor),
                    EmissionMultiplyTexture = GetTexture(material, MToonUtils.PropEmissionMap, textures),
                },
                MatCap = new MatCapDefinition
                {
                    AdditiveTexture = GetTexture(material, MToonUtils.PropSphereAdd, textures),
                },
                Rim = new RimDefinition
                {
                    RimColor             = ToLinear(material, MToonUtils.PropRimColor),
                    RimMultiplyTexture   = GetTexture(material, MToonUtils.PropRimTexture, textures),
                    RimLightingMixValue  = GetValue(material, MToonUtils.PropRimLightingMix),
                    RimFresnelPowerValue = GetValue(material, MToonUtils.PropRimFresnelPower),
                    RimLiftValue         = GetValue(material, MToonUtils.PropRimLift),
                },
                Outline = new OutlineDefinition
                {
                    OutlineWidthMode              = GetOutlineWidthMode(material),
                    OutlineWidthValue             = GetValue(material, MToonUtils.PropOutlineWidth),
                    OutlineWidthMultiplyTexture   = GetTexture(material, MToonUtils.PropOutlineWidthTexture, textures),
                    OutlineScaledMaxDistanceValue = GetValue(material, MToonUtils.PropOutlineScaledMaxDistance),
                    OutlineColorMode              = GetOutlineColorMode(material),
                    OutlineColor            = ToLinear(material, MToonUtils.PropOutlineColor),
                    OutlineLightingMixValue = GetValue(material, MToonUtils.PropOutlineLightingMix),
                },
                TextureOption = new TextureUvCoordsDefinition
                {
                    MainTextureLeftBottomOriginScale  = material.GetTextureScale(MToonUtils.PropMainTex),
                    MainTextureLeftBottomOriginOffset = material.GetTextureOffset(MToonUtils.PropMainTex),
                    UvAnimationMaskTexture            = GetTexture(material, MToonUtils.PropUvAnimMaskTexture, textures),
                    UvAnimationScrollXSpeedValue      = GetValue(material, MToonUtils.PropUvAnimScrollX),
                    UvAnimationScrollYSpeedValue      = GetValue(material, MToonUtils.PropUvAnimScrollY),
                    UvAnimationRotationSpeedValue     = GetValue(material, MToonUtils.PropUvAnimRotation),
                },
            };

            return(definition);
        }