Comment rendre des scènes 3D en images dans .NET
Comment rendre des scènes 3D en images dans .NET
Cet article explique comment produire une image raster à partir d’une scène 3D en utilisant Aspose.3D pour .NET. La configuration minimale nécessite un Camera, au moins un Light, et un appel à Scene.Render.
Étape 1 — Installer le paquet
dotnet add package Aspose.3D.FOSSÉtape 2 — Charger ou créer une scène
using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
// Load an existing model
var scene = Scene.FromFile("model.fbx");
// Or build a scene in code
var scene = new Scene();
scene.RootNode.CreateChildNode("box", new Box(1, 1, 1));Étape 3 — Ajouter une caméra
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Utilities;
var camera = new Camera(ProjectionType.Perspective);
camera.FieldOfViewY = 45.0;
camera.NearPlane = 0.1;
camera.FarPlane = 500.0;
Node camNode = scene.RootNode.CreateChildNode("camera", camera);
camNode.Transform.Translation = new Vector3(0, 5, 10);
camNode.Transform.EulerAngles = new Vector3(-30, 0, 0); // tilt down toward originÉtape 4 — Ajouter des lumières
var sun = new Light("sun") { LightType = LightType.Directional };
Node sunNode = scene.RootNode.CreateChildNode("sun", sun);
sunNode.Transform.EulerAngles = new Vector3(45, -30, 0);
var fill = new Light("fill") { LightType = LightType.Point, Intensity = 100 };
Node fillNode = scene.RootNode.CreateChildNode("fill", fill);
fillNode.Transform.Translation = new Vector3(-4, 6, 4);Étape 5 — Rendre vers un fichier image
using Aspose.ThreeD.Utilities;
// size is Vector2; format is a string ("png", "jpg", "bmp")
scene.Render(camera, "output.png", new Vector2(1280, 720), "png");
Console.WriteLine("Rendered: output.png");Conseil : JPEG produit des fichiers plus petits pour les captures d’écran. Utilisez
"jpg"au lieu de"png"lorsqu’une qualité sans perte n’est pas requise.
Troubleshooting
| Symptom | Cause probable | Solution |
|---|---|---|
| Image de sortie noire | Pas de lumière dans la scène | Ajoutez au moins un nœud Light |
| Objet non visible | Caméra pointant dans la mauvaise direction | Vérifiez les coordonnées cibles de LookAt |
| Le rendu de la scène est vide | Géométrie non attachée à un nœud | Appelez CreateChildNode(name, entity) |
Ressources associées
- Rendu de scènes 3D — guide du développeur avec les détails complets de API
- Travailler avec les matériaux et le shading — la configuration du matériau affecte le rendu