Wie man 3D-Szenen in Bilder rendert in .NET
Wie man 3D-Szenen in Bilder rendert in .NET
Dieser Artikel erklärt, wie man ein Rasterbild aus einer 3D-Szene mit Aspose.3D für .NET erzeugt. Die minimale Einrichtung erfordert ein Camera, mindestens ein Light und einen Aufruf von Scene.Render.
Schritt 1 — Paket installieren
dotnet add package Aspose.3D.FOSSSchritt 2 — Szene laden oder erstellen
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));Schritt 3 — Kamera hinzufügen
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 originSchritt 4 — Lichter hinzufügen
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);Schritt 5 — Rendern zu einer Bilddatei
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");Tipp: JPEG erzeugt kleinere Dateien für Screenshots. Verwenden Sie
"jpg"statt"png"wenn verlustfreie Qualität nicht erforderlich ist.
Troubleshooting
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Schwarzes Ausgabebild | Keine Lichter in der Szene | Fügen Sie mindestens einen Light-Knoten hinzu |
| Objekt nicht sichtbar | Kamera zeigt in die falsche Richtung | Überprüfen Sie die Zielkoordinaten von LookAt |
| Szene rendert leer | Geometrie ist nicht an einen Knoten angehängt | Rufen Sie CreateChildNode(name, entity) auf |
Verwandte Ressourcen
- Rendern von 3D-Szenen — Entwicklerhandbuch mit vollständigen API-Details
- Arbeiten mit Materialien und Shading — Materialsetup beeinflusst die Renderausgabe