Hogyan rendereljünk 3D jeleneteket képekké a .NET segítségével
Hogyan rendereljünk 3D jeleneteket képekké .NET-ban
Ez a cikk elmagyarázza, hogyan állíthatunk elő raszteres képet egy 3D jelenetből a Aspose.3D használatával a .NET számára. A minimális beállításhoz szükség van egy Camera, legalább egy Light, és egy hívásra a Scene.Render.
1. lépés — A csomag telepítése
dotnet add package Aspose.3D.FOSS2. lépés — Jelenet betöltése vagy felépítése
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));3. lépés — Kamera hozzáadása
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 origin4. lépés — Fények hozzáadása
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);5. lépés — Renderelés képfájlba
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: A JPEG kisebb fájlokat eredményez képernyőképekhez. Használja
"jpg"helyett"png"ha a veszteségmentes minőség nem szükséges.
Troubleshooting
| Symptom | Valószínű ok | Javítás |
|---|---|---|
| Fekete kimeneti kép | Nincsenek fények a jelenetben | Adj hozzá legalább egy Light csomópontot |
| Az objektum nem látható | A kamera rossz irányba mutat | Ellenőrizd a LookAt célkoordinátákat |
| A jelenet üresen renderel | A geometria nincs csomóponthoz csatolva | Hívd meg a CreateChildNode(name, entity) |
Kapcsolódó erőforrások
- 3D jelenetek renderelése — fejlesztői útmutató a API teljes részleteiről
- Anyagok és árnyékolás kezelése — az anyag beállítása befolyásolja a renderelés eredményét