Cum să redați scene 3D în imagini în .NET
Cum să redai scene 3D în imagini în .NET
Acest articol explică cum să produceți o imagine raster dintr-o scenă 3D utilizând Aspose.3D pentru .NET. Configurația minimă necesită un Camera, cel puțin un Light și un apel la Scene.Render.
Pasul 1 — Instalați pachetul
dotnet add package Aspose.3D.FOSSPasul 2 — Încărcați sau construiți o scenă
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));Pasul 3 — Adăugați o cameră
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 originPasul 4 — Adăugați lumini
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);Pasul 5 — Redă într-un fișier imagine
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");Sugestie: JPEG produce fișiere mai mici pentru capturi de ecran. Folosiți
"jpg"în loc de"png"când calitatea fără pierderi nu este necesară.
Troubleshooting
| Symptom | Cauză posibilă | Remediere |
|---|---|---|
| Imagine de ieșire neagră | Nicio lumină în scenă | Adăugați cel puțin un nod Light |
| Obiectul nu este vizibil | Camera este orientată greșit | Verificați coordonatele țintă LookAt |
| Scena redă goală | Geometria nu este atașată unui nod | Apelați CreateChildNode(name, entity) |
Resurse conexe
- Redarea scenelor 3D — ghid pentru dezvoltatori cu detalii complete API
- Lucrul cu Materiale și Umbrire — configurarea materialului afectează rezultatul randării