Rendera 3D-scener

Rendering av 3D-scener

Aspose.3D för .NET kan rendera en scen till en rasterbild. Render-pipeline kräver en Camera (synvinkel), en eller flera Light-källor, och ImageRenderOptions (utdataupplösning och format). Renderer-klassen driver renderpasset.


Ställa in en kamera

Lägg till en Camera-entitet till ett scennod. Ställ in kamerans position via nodens Transform, och rikta den mot ett mål med LookAt:

using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Utilities;

var scene = new Scene();

// Create the camera entity
var camera = new Camera(ProjectionType.Perspective);
camera.NearPlane = 0.1;
camera.FarPlane = 1000.0;
camera.FieldOfViewY = 45.0;

// Attach to a node and position it
Node cameraNode = scene.RootNode.CreateChildNode("main_camera", camera);
cameraNode.Transform.Translation = new Vector3(0, 5, 10);
// Aim the camera toward the scene origin by rotating around the X axis
cameraNode.Transform.EulerAngles = new Vector3(-30, 0, 0);

För ortografisk rendering, ställ in ProjectionType.Orthographic och ange OrthoHeight.


Lägga till ljus

Scener utan ljus renderas helt mörka. Lägg till minst en Light för att belysa geometrin:

using Aspose.ThreeD.Entities;

// Directional (sun-like) light
var sunLight = new Light("sun");
sunLight.LightType = LightType.Directional;
sunLight.Color = new Vector3(1.0, 1.0, 0.95); // slightly warm white
Node sunNode = scene.RootNode.CreateChildNode("sun", sunLight);
sunNode.Transform.EulerAngles = new Vector3(45, -30, 0); // direction in degrees

// Point light
var pointLight = new Light("fill");
pointLight.LightType = LightType.Point;
pointLight.Intensity = 150.0;
Node pointNode = scene.RootNode.CreateChildNode("fill_light", pointLight);
pointNode.Transform.Translation = new Vector3(-3, 4, 3);

Rendera till en bildfil

Använd Scene.Render med ImageRenderOptions för att skapa en PNG-, JPEG- eller BMP-bild:

using Aspose.ThreeD;
using Aspose.ThreeD.Utilities;

// Render to a PNG file at 1280x720 — size is Vector2, format is a string
scene.Render(camera, "output.png", new Vector2(1280, 720), "png");

Tips: För produktionsbruk, se till att minst ett riktat eller omgivande ljus finns. En utan ljus scen renderas som en silhuett eller en helt svart yta beroende på materialet.


API Quick Reference

MemberBeskrivning
new Camera(projectionType)Skapa en kamera; använd ProjectionType.Perspective eller Orthographic
camera.FieldOfViewYVertikalt synfält i grader (endast perspektiv)
camera.NearPlaneAvstånd till närmaste beskärningsplan
camera.FarPlaneAvstånd till fjärrbeskärningsplan
new Light(name)Skapa en ljuskälla
light.LightTypeDirectional, Point eller Spot
light.IntensityLjusintensitet (positiv flyttal)
light.ColorRGB-färg som Vector3
new ImageRenderOptions()Renderingsutdata konfiguration (bakgrundsfärg, skuggor)
scene.Render(camera, path, size, format)Rendera scenen från kamerans synvinkel; size är Vector2, format är "png", "jpg", osv.

Se även

 Svenska