Comment rendre des scènes 3D en images dans .NET

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

SymptomCause probableSolution
Image de sortie noirePas de lumière dans la scèneAjoutez au moins un nœud Light
Objet non visibleCaméra pointant dans la mauvaise directionVérifiez les coordonnées cibles de LookAt
Le rendu de la scène est videGéométrie non attachée à un nœudAppelez CreateChildNode(name, entity)

Ressources associées

Voir aussi

 Français