Hoe 3D-scènes renderen naar afbeeldingen in .NET
Hoe 3D-scènes naar afbeeldingen renderen in .NET
Dit artikel legt uit hoe je een rasterafbeelding produceert vanuit een 3D-scène met behulp van Aspose.3D voor .NET. De minimale setup vereist een Camera, ten minste één Light, en een aanroep van Scene.Render.
Stap 1 — Installeer het pakket
dotnet add package Aspose.3D.FOSSStap 2 — Laad of bouw een scène
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));Stap 3 — Voeg een camera toe
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 originStap 4 — Voeg verlichting toe
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);Stap 5 — Renderen naar een afbeeldingsbestand
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");Tip: JPEG produceert kleinere bestanden voor screenshots. Gebruik
"jpg"in plaats van"png"wanneer lossless kwaliteit niet vereist is.
Troubleshooting
| Symptom | Waarschijnlijke oorzaak | Oplossing |
|---|---|---|
| Zwarte uitvoerafbeelding | Geen lichten in de scène | Voeg minstens één Light node toe |
| Object niet zichtbaar | Camera wijst in de verkeerde richting | Controleer de doelcoördinaten van LookAt |
| Scene rendert leeg | Geometrie niet gekoppeld aan een node | Roep CreateChildNode(name, entity) aan |
Gerelateerde bronnen
- Renderen van 3D Scenes — ontwikkelaarsgids met volledige API details
- Werken met materialen en shading — materiaalkonfiguratie beïnvloedt render output