Jak renderovat 3D scény do obrázků v .NET

Jak renderovat 3D scény do obrázků v .NET

Jak renderovat 3D scény do obrázků v .NET

Tento článek vysvětluje, jak vytvořit rastrový obrázek z 3D scény pomocí Aspose.3D pro .NET. Minimální nastavení vyžaduje Camera, alespoň jeden Light a volání Scene.Render.


Krok 1 — Nainstalovat balíček

dotnet add package Aspose.3D.FOSS

Krok 2 — Načíst nebo vytvořit scénu

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

Krok 3 — Přidat kameru

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

Krok 4 — Přidat světla

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

Krok5—Vykreslit do souboru obrázku

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 vytváří menší soubory pro snímky obrazovky. Použijte "jpg" namísto "png" když není vyžadována bezeztrátová kvalita.


Troubleshooting

SymptomPravděpodobná příčinaOprava
Černý výstupní obrázekV scéně nejsou žádné světlaPřidejte alespoň jeden Light uzel
Objekt není viditelnýKamera směřuje špatným směremZkontrolujte LookAt cílové souřadnice
Scéna se vykresluje prázdněGeometrie není připojena k uzluZavolejte CreateChildNode(name, entity)

Související zdroje

Viz také:

 Čeština