Come rendere scene 3D in immagini in .NET
Come renderizzare scene 3D in immagini in .NET
Questo articolo spiega come produrre un’immagine raster da una scena 3D usando Aspose.3D per .NET. La configurazione minima richiede un Camera, almeno un Light e una chiamata a Scene.Render.
Passo 1 — Installa il pacchetto
dotnet add package Aspose.3D.FOSSPasso 2 — Carica o costruisci una scena
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));Passo 3 — Aggiungi una camera
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 originPasso 4 — Aggiungi luci
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);Passo 5 — Renderizza in un file immagine
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");Suggerimento: JPEG produce file più piccoli per gli screenshot. Usa
"jpg"invece di"png"quando non è richiesta la qualità lossless.
Troubleshooting
| Symptom | Probabile causa | Correzione |
|---|---|---|
| Immagine di output nera | Nessuna luce nella scena | Aggiungi almeno un nodo Light |
| Oggetto non visibile | Fotocamera puntata nella direzione sbagliata | Verifica le coordinate di destinazione di LookAt |
| Il rendering della scena è vuoto | Geometria non collegata a un nodo | Chiama CreateChildNode(name, entity) |
Risorse correlate
- Rendering di scene 3D — guida per sviluppatori con tutti i dettagli di API
- Lavorare con i Materiali e l’Ombreggiatura — la configurazione del materiale influisce sull’output del rendering