تخصيص تحويل مواد بخلاف PBR إلى PBR قبل توفير 3D مشاهد إلى تنسيق GLTF 2.0 في C#

Non-PBR إلى PBateraterateron

يوضح مثال الشفرة C# هذا كيفية تحويل المادة إلى مادة PBR ، ثم يوفر مشهد 3D بتنسيق GLTF مع معالجة الملف C# 3D وتحويله API:

C#

 // initialize a new 3D scene

var s = new Scene();

var box = new Box();

s.RootNode.CreateChildNode("box1", box).Material = new PhongMaterial() {DiffuseColor = new Vector3(1, 0, 1)};

GLTFSaveOptions opt = new GLTFSaveOptions(FileFormat.GLTF2);

//Custom material converter to convert PhongMaterial to PbrMaterial

opt.MaterialConverter = (Material material) => {
    var pbr = PbrMaterial.FromMaterial(material);
    //customize your own PBR material here, you can get the original OBJ's material from the parameter mat.
    //to create a compatible material with obj2gltf, use following definition:
    pbr.MetallicFactor = 0;
    pbr.RoughnessFactor = 0.98;
    return pbr;
};

// save in GLTF 2.0 format

s.Save("test.gltf", opt);

Resources

  1. البرنامج التعليمي عبر الإنترنت