Hur man renderar 3D-scener till bilder i .NET

Hur man renderar 3D-scener till bilder i .NET

Hur man renderar 3D-scener till bilder i .NET

Den här artikeln förklarar hur man producerar en rasterbild från en 3D-scen med Aspose.3D för .NET. Den minsta konfigurationen kräver en Camera, minst en Light och ett anrop till Scene.Render.


Steg 1 — Installera paketet

dotnet add package Aspose.3D.FOSS

Steg 2 — Ladda eller bygg en 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));

Steg 3 — Lägg till en kamera

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

Steg 4 — Lägg till ljus

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);

Steg 5 — Rendera till en bildfil

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");

Tips: JPEG producerar mindre filer för skärmdumpar. Använd "jpg" istället för "png" när förlustfri kvalitet inte krävs.


Troubleshooting

SymptomTrolig orsakLösning
Svart utdata bildIngen belysning i scenenLägg till minst en Light nod
Objektet är inte synligtKameran pekar åt fel hållKontrollera LookAt målkoordinater
Scenen renderas tomGeometri är inte fäst vid en nodAnropa CreateChildNode(name, entity)

Relaterade resurser

Se även

 Svenska