Créer une scène 3D avec C#

Une scène 3D simple est une représentation graphique tridimensionnelle de données géométriques. Dans cet article, nous allons apprendre à créer une scène 3D en utilisant C # à partir de rien sans avoir à installer de logiciel de modélisation ou de rendu 3D. Nous enregistrerons la scène 3D au format de fichier FBX, un format de fichier 3D populaire utilisé pour échanger des formats 3D. Le FBX peut être enregistré sur un disque sous forme de fichier de données binaire ou ASCII.

Les sujets suivants seront traités dans cet article :

  1. API C# pour créer une scène 3D - Téléchargement gratuit
  2. Créer une scène 3D simple en C#
  3. Lire la scène 3D à l’aide de C #

API C# pour créer une scène 3D - Téléchargement gratuit

Pour créer et lire une scène 3D, nous utiliserons l’API Aspose.3D for .NET. Il permet de créer et d’enregistrer une scène 3D dans les formats pris en charge. Il permet également de travailler avec la géométrie et la hiérarchie des scènes, d’animer des objets dans une scène et de convertir des formats de fichiers 3D.

L’API fournit la classe Scene qui est un objet de niveau supérieur qui contient les nœuds, les géométries, les matériaux, les textures, l’animation, les poses, les sous-scènes, etc. La méthode CreateChildNode(Entity) crée un nouveau nœud enfant avec une entité donnée attachée. L’API fournit le modèle d’ombrage pour LambertMaterial, PhongMaterial et ShaderMaterial. La lumière éclaire la scène, la classe Light de l’API permet d’ajouter de la lumière à la scène.

Veuillez soit télécharger la DLL de l’API ou l’installer à l’aide de NuGet.

PM> Install-Package Aspose.3D

Créer une scène 3D simple en C#

Nous pouvons créer une scène 3D simple en suivant les étapes ci-dessous :

  1. Créez une instance de la classe Scene.
  2. Appelez la méthode CreateChildNode() pour ajouter une géométrie, une forme à afficher à l’écran, par exemple Cylindre.
  3. Définissez les propriétés du nœud enfant telles que Material.
  4. Initialiser un objet de classe Light.
  5. Appelez la méthode CreateChildNode() pour ajouter l’entité Light.
  6. Enfin, enregistrez la scène au format FBX à l’aide de la méthode Save(). Il prend le chemin du fichier de sortie et FileFormat.FBX7500ASCII comme arguments.

L’exemple de code suivant montre comment créer une scène 3D simple à l’aide de C#.

// Cet exemple de code montre comment créer une scène 3D simple dans un fichier FBX.
// Initialiser la scène 3D
var scene = new Scene();

// Initialiser l'objet Cylindre
var cylinder = new Cylinder();
cylinder.Name = "Cylinder";

// Créer un nœud enfant et ajouter un objet Cylindre
var node = scene.RootNode.CreateChildNode(cylinder);

// Définir les propriétés du nœud enfant
var material = new LambertMaterial() { DiffuseColor = new Vector3(Color.LightBlue) };
material.Name = "Lambert";
node.Material = material;

// Ajouter une entité Lumière
var light = new Light() { LightType = LightType.Point };
light.Name = "Light";
scene.RootNode.CreateChildNode(light).Transform.Translation = new Vector3(10, 0, 10);

// Chemin du fichier de sortie
var output = @"C:\Files\3D\document.fbx";

// Enregistrer le document de scène 3D
scene.Save(output, FileFormat.FBX7500ASCII);

Lire la scène 3D en utilisant C

Nous pouvons lire une scène 3D à partir du document FBX en suivant les étapes ci-dessous :

  1. Créez une instance de la classe Scene.
  2. Chargez un document 3D existant à l’aide de la méthode Open().
  3. Boucle dans les propriétés ChildNodes
  4. Enfin, affichez les valeurs des propriétés.

L’exemple de code suivant montre comment charger et lire une scène 3D à l’aide de C#.

// Cet exemple de code montre comment lire une scène 3D à partir d'un fichier FBX
// Initialiser un objet de classe Scene
Scene scene = new Scene();

// Charger un document 3D existant
scene.Open(@"C:\Files\3D\document.fbx");

foreach(var node in scene.RootNode.ChildNodes)
{
    var entity = node.Entity;
    Console.WriteLine("{0}", entity.Name); 

    if (node.Material != null)
    {
        Material material = node.Material;
        Console.WriteLine("{0}", material.Name);

        PropertyCollection props = material.Properties;
        //Lister toutes les propriétés en utilisant foreach
        foreach (var prop in props)
        {
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
        //ou en utilisant une boucle for ordinale
        for (int i = 0; i < props.Count; i++)
        {
            var prop = props[i];
            Console.WriteLine("{0} = {1}", prop.Name, prop.Value);
        }
    }
}

Obtenez une licence temporaire gratuite

Vous pouvez obtenir une licence temporaire gratuite pour essayer Aspose.3D pour .NET sans limitations d’évaluation.

Conclusion

Dans cet article, nous avons appris à :

  • créer une scène 3D par programmation ;
  • ajouter des objets/entités à la scène 3D tels que Cylindre, matériau, lumière, etc. ;
  • lire les notes et les propriétés des enfants de la scène 3D en C#.

En outre, vous pouvez en savoir plus sur Aspose.3D pour l’API .NET en utilisant la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum.

Voir également