Come rendere scene 3D in immagini in .NET

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.FOSS

Passo 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 origin

Passo 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

SymptomProbabile causaCorrezione
Immagine di output neraNessuna luce nella scenaAggiungi almeno un nodo Light
Oggetto non visibileFotocamera puntata nella direzione sbagliataVerifica le coordinate di destinazione di LookAt
Il rendering della scena è vuotoGeometria non collegata a un nodoChiama CreateChildNode(name, entity)

Risorse correlate

Vedi anche

 Italiano