// material main surface inputs
 public override void DrawSurfaceInputs(Material material)
 {
     base.DrawSurfaceInputs(material);
     LitTessellationGUI.SurfaceInputs(litProperties, materialEditor, material);
     DrawEmissionProperties(material, true);
     DrawTileOffset(materialEditor, baseMapProp);
 }
        // material geoemtry foldout
        public virtual void DrawGeometryFoldout(Material material)
        {
            m_GeometryFoldout.value = EditorGUILayout.BeginFoldoutHeaderGroup(m_GeometryFoldout.value, LitTessellationGUI.Styles.geometryLabel);
            if (m_GeometryFoldout.value)
            {
                LitTessellationGUI.GeometryInputs(litProperties, materialEditor, material);

                // geometry custom st
                EditorGUI.BeginChangeCheck();
                EditorGUI.showMixedValue = litProperties.geometryCustomST.hasMixedValue;
                var geometryCustomST = EditorGUILayout.Toggle(LitTessellationGUI.Styles.geometryCustomSTText, litProperties.geometryCustomST.floatValue == 1f) ? 1f : 0f;
                if (EditorGUI.EndChangeCheck())
                {
                    litProperties.geometryCustomST.floatValue = geometryCustomST;
                }
                EditorGUI.showMixedValue = false;

                // tile and offset
                if (geometryCustomST == 1f)
                {
                    DrawTileOffset(materialEditor, litProperties.tessellationMap);
                }
            }
            EditorGUILayout.EndFoldoutHeaderGroup();
        }