Anpassa icke-PBR- konvertering till PBR- material innan du sparar 3D Scener till GLTF 2. 0 Format
Contents
[
Hide
]
The
Scene class of the Aspose.3D for Java API represents a 3D scene and developers can build a 3D scene by adding various entities. GLTF 2.0 only supports PBR (Physically Based Rendering) materials, Aspose.3D API internally converts non-PBR materials into PBR materials before exporting into GLTF 2.0 (the materials in the scene will remain unchanged during the export), and the developers can provide custom convert function to override the default behavior.
Omvandling av material som inte omfattas av PBR till PBR
Det här kodexemplet visar hur man konverterar material till PBR-material, och sparar sedan 3D-scenen i GLTF-formatet:
// The path to the documents directory.
String MyDir = RunExamples.getDataDir();
/* initialize a new 3D scene */
Scene s = new Scene();
Box box = new Box();
PhongMaterial mat = new PhongMaterial();
mat.setDiffuseColor(new Vector3(1, 0, 1));
s.getRootNode().createChildNode("box1", box).setMaterial(mat);
GLTFSaveOptions opt = new GLTFSaveOptions(FileFormat.GLTF2);
//Custom material converter to convert PhongMaterial to PbrMaterial
opt.setMaterialConverter(new MaterialConverter() {
@Override
public Material call(Material material) {
PhongMaterial m = (PhongMaterial) material;
PbrMaterial ret = new PbrMaterial();
ret.setAlbedo(m.getDiffuseColor());
return ret;
}
});
// save in GLTF 2.0 format
s.save(MyDir + "Non_PBRtoPBRMaterial_Out.gltf", opt);