KHR_Specular.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using SharpGLTF.SchemaReflection;
  5. namespace SharpGLTF
  6. {
  7. class SpecularExtension : SchemaProcessor
  8. {
  9. private static string SchemaUri => KhronosExtensions.KhronosExtensionPath("KHR_materials_specular", "material.KHR_materials_specular.schema.json");
  10. private const string ExtensionRootClassName = "KHR_materials_specular glTF Material Extension";
  11. public override IEnumerable<(string, SchemaType.Context)> ReadSchema()
  12. {
  13. var ctx = SchemaProcessing.LoadExtensionSchemaContext(SchemaUri);
  14. ctx.FindClass(ExtensionRootClassName)
  15. .GetField("specularColorFactor")
  16. .SetDataType(typeof(System.Numerics.Vector3), true)
  17. .SetDefaultValue("Vector3.One")
  18. .SetItemsRange(0);
  19. yield return ("ext.pbrSpecular.g", ctx);
  20. }
  21. public override void PrepareTypes(CodeGen.CSharpEmitter newEmitter, SchemaType.Context ctx)
  22. {
  23. newEmitter.SetRuntimeName(ExtensionRootClassName, "MaterialSpecular");
  24. }
  25. }
  26. }