Wie man 3D-Szenen in Bilder rendert in .NET

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

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

Schritt 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

SymptomWahrscheinliche UrsacheLösung
Schwarzes AusgabebildKeine Lichter in der SzeneFügen Sie mindestens einen Light-Knoten hinzu
Objekt nicht sichtbarKamera zeigt in die falsche RichtungÜberprüfen Sie die Zielkoordinaten von LookAt
Szene rendert leerGeometrie ist nicht an einen Knoten angehängtRufen Sie CreateChildNode(name, entity) auf

Verwandte Ressourcen

Siehe auch

 Deutsch