Créer et lire une scène 3D existante

Aperçu

L’article explique les sujets suivants en utilisant la bibliothèque de manipulation des formats de fichiers C# 3D.

  • Créer une scène vide 3D dans C# à partir de zéro
  • Lire ou charger la scène 3D existante dans C#
  • Enregistrez la scène 3D dans les formats 3D pris en charge à l’aide de C#
  • Travailler avec 3D Propriétés de la scène dans C#

Créez une scène 3D vide et enregistrez dans les formats de fichier 3D pris en charge

Aspose.3D API prend en charge la création des nouvelles scènes 3D à partir de zéro, puis les sauvegarde dans n’importe quel format de fichier pris en charge. Les développeurs peuvent également charger une scène 3D existante à des fins de modification, d’ajout ou de traitement.

Création d’un document de scène 3D

Veuillez suivre ces étapes dans C# pour créer un document scène 3D en utilisant les API Aspose.3D:

  1. Créez une instance de la classe Scene qui représente un document de scène 3D.
  2. Générez un document de scène 3D en appelant la méthode Save de l’objet de classe Scene.
// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// Create an object of the Scene class
Scene scene = new Scene();
// Save 3D scene document
scene.Save("document.fbx");

Lecture d’une scène 3D

En utilisant Aspose.3D API, les développeurs peuvent charger tous les documents 3D pris en charge. Les constructeurs disponibles de la classe Scene le permettent et ils acceptent une chaîne de chemin de fichier valide. Les formats de fichiers lisibles pris en charge sont les suivants:

  1. FBX 7.5 (ASCII, binaire)
  2. FBX 7.4 (ASCII, binaire)
  3. FBX 7.3 (ASCII, binaire)
  4. FBX 7.2 (ASCII, binaire)
  5. FBX 6.1 (ASCII, binaire)
  6. STL (ASCII, binaire)
  7. WavefrontOBJ
  8. Discreet3DS
  9. Universal3D
  10. Collada
  11. glTF (ASCII, binaire)
  12. Maya (ASCII, binaire)
  13. OpenUSD (USD, USDZ)
  14. Mixeur
  15. DXF
  16. PLY (ASCII, binaire)
  17. X (ASCII, binaire)
  18. Draco
  19. 3MF
  20. RVM (Texte, Binaire)
  21. ASE

Les constructeurs de la classe Scene détectent le format de document 3D en interne.

// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
// The path to the documents directory.
// Initialize a Scene class object
Scene scene = new Scene();
// Load an existing 3D document
scene.Open("document.fbx");

Travailler avec 3D Propriétés de scène

Aspose.3D API vous permet de lire les propriétés de scène 3D en utilisant les nœuds enfants de la scène. L’exemple de code C# suivant illustre l’utilisation de cette fonctionnalité.

// For complete examples and data files, please go to https://github.com/aspose-3d/Aspose.3D-for-.NET
Scene scene = Scene.FromFile("EmbeddedTexture.fbx");
Material material = scene.RootNode.ChildNodes[0].Material;
PropertyCollection props = material.Properties;
//List all properties using foreach
foreach (var prop in props)
{
Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
}
//or using ordinal for loop
for (int i = 0; i < props.Count; i++)
{
var prop = props[i];
Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
}
//Get property value by name
var diffuse = props["Diffuse"];
Console.WriteLine(diffuse);
//modify property value by name
props["Diffuse"] = new Vector3(1, 0, 1);
//Get property instance by name
Property pdiffuse = props.FindProperty("Diffuse");
Console.WriteLine(pdiffuse);
//Since Property is also inherited from A3DObject
//It's possible to get the property of the property
Console.WriteLine("Property flags = {0}", pdiffuse.GetProperty("flags"));
//and some properties that only defined in FBX file:
Console.WriteLine("Label = {0}", pdiffuse.GetProperty("label"));
Console.WriteLine("Type Name = {0}", pdiffuse.GetProperty("typeName"));
//so traversal on property's property is possible
foreach (var pp in pdiffuse.Properties)
{
Console.WriteLine("Diffuse.{0} = {1}", pp.Name, pp.Value);
}