Cum să redați scene 3D în imagini în .NET

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

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

Pasul 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

SymptomCauză posibilăRemediere
Imagine de ieșire neagrăNicio lumină în scenăAdăugați cel puțin un nod Light
Obiectul nu este vizibilCamera este orientată greșitVerificați coordonatele țintă LookAt
Scena redă goalăGeometria nu este atașată unui nodApelați CreateChildNode(name, entity)

Resurse conexe

Vezi și:

 Română