public static void AddTessellationShaderProperties(PropertyCollector collector, TessellationMode tessellationMode, float tessellationFactorMinDistance, float tessellationFactorMaxDistance, float tessellationFactorTriangleSize, float tessellationShapeFactor, float tessellationBackFaceCullEpsilon, float tessellationMaxDisplacement) { collector.AddShaderProperty(new Vector1ShaderProperty { overrideReferenceName = kTessellationMode, floatType = FloatType.Enum, value = (int)tessellationMode, enumNames = { "None", "Phong" }, enumValues = { (int)TessellationMode.None, (int)TessellationMode.Phong }, hidden = true, overrideHLSLDeclaration = true, hlslDeclarationOverride = HLSLDeclaration.DoNotDeclare, }); collector.AddFloatProperty(kTessellationFactorMinDistance, tessellationFactorMinDistance, HLSLDeclaration.UnityPerMaterial); collector.AddFloatProperty(kTessellationFactorMaxDistance, tessellationFactorMaxDistance, HLSLDeclaration.UnityPerMaterial); collector.AddFloatProperty(kTessellationFactorTriangleSize, tessellationFactorTriangleSize, HLSLDeclaration.UnityPerMaterial); collector.AddSliderProperty(kTessellationShapeFactor, "Tessellation shape factor", tessellationShapeFactor, new Vector2(0.0f, 1.0f), HLSLDeclaration.UnityPerMaterial); collector.AddSliderProperty(kTessellationBackFaceCullEpsilon, "Tessellation back face epsilon", tessellationBackFaceCullEpsilon, new Vector2(-1.0f, 0.0f), HLSLDeclaration.UnityPerMaterial); collector.AddFloatProperty(kTessellationMaxDisplacement, tessellationMaxDisplacement, HLSLDeclaration.UnityPerMaterial); }