Scène renderen in Cubemap met zes gezichten

Invoering

Welkom bij deze stapsgewijze handleiding voor het renderen van een scène in een kubuskaart met zes vlakken met behulp van Aspose.3D voor .NET. In deze zelfstudie leiden we u door het proces van het maken van een verbluffende cubemap door een 3D-scène weer te geven. Aspose.3D is een krachtige .NET API die de manipulatie van 3D-afbeeldingen vereenvoudigt, en met deze handleiding kunt u de mogelijkheden ervan benutten om boeiende cubemaps te maken.

Vereisten

Voordat we in de tutorial duiken, moet je ervoor zorgen dat je aan de volgende vereisten voldoet:

  • Een praktische kennis van C# en .NET-ontwikkeling.
  • Aspose.3D voor .NET geïnstalleerd. Je kunt het downloaden hier .
  • Een 3D-scènebestand in GLB-indeling (bijvoorbeeld “VirtualCity.glb”) voor weergave.

Naamruimten importeren

Begin met het importeren van de benodigde naamruimten voor Aspose.3D in uw C#-code:

using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Render;
using Aspose.ThreeD.Utilities;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;

Stap 1: Laad de scène

Laad het 3D-scènebestand met de volgende code:

Scene scene = new Scene(RunExamples.GetDataFilePath("VirtualCity.glb"));

Stap 2: Maak camera en verlichting

Maak een camera en twee lampen om de scène te verlichten:

Camera cam = new Camera(ProjectionType.Perspective)
{
    NearPlane = 0.1,
    FarPlane = 200,
    RotationMode = RotationMode.FixedDirection
};
scene.RootNode.CreateChildNode(cam).Transform.Translation = new Vector3(5, 6, 0);
scene.RootNode.CreateChildNode(new Light() { LightType = LightType.Point }).Transform.Translation = new Vector3(-10, 7, -10);
scene.RootNode.CreateChildNode(new Light()
{
    Color = new Vector3(Color.CadetBlue)
}).Transform.Translation = new Vector3(49, 0, 49);

Stap 3: Maak Renderer en Render Target

Maak een renderer en een renderdoel voor een kubuskaart met dieptetextuur:

using (var renderer = Renderer.CreateRenderer())
{
    IRenderTexture rt = renderer.RenderFactory.CreateCubeRenderTexture(new RenderParameters(false), 512, 512);
    rt.CreateViewport(cam, RelativeRectangle.FromScale(0, 0, 1, 1));
    renderer.Render(rt);
    ITextureCubemap cubemap = rt.Targets[0] as ITextureCubemap;

Stap 4: Bewaar Cubemap-gezichten

Bewaar elk vlak van de cubemap op schijf met gespecificeerde bestandsnamen:

CubeFaceData<string> fileNames = new CubeFaceData<string>()
{
    Right = "Your Output Directory" + "right.png",
    Left = "Your Output Directory" + "left.png",
    Back = "Your Output Directory" + "back.png",
    Front = "Your Output Directory" + "front.png",
    Bottom = "Your Output Directory" + "bottom.png",
    Top = "Your Output Directory" + "top.png"
};
cubemap.Save(fileNames, ImageFormat.Png);

Conclusie

Gefeliciteerd! U hebt met succes een 3D-scène omgezet in een cubemap met behulp van Aspose.3D voor .NET. Ontdek verdere aanpassingsopties en verbeter uw grafische 3D-projecten met deze krachtige API.

Veel Gestelde Vragen

Vraag: Kan ik Aspose.3D voor .NET gebruiken met andere 3D-bestandsindelingen?

Ja, Aspose.3D ondersteunt verschillende 3D-bestandsformaten, waardoor u flexibiliteit in uw projecten krijgt.

Vraag: Hoe kan ik ondersteuning krijgen voor Aspose.3D?

Bezoek de Aspose.3D-forum voor gemeenschapsondersteuning en discussies.

Vraag: Is er een gratis proefversie beschikbaar?

Ja, u heeft toegang tot de gratis proefperiode hier .

Vraag: Kan ik scènes met animaties renderen met Aspose.3D?

Absoluut! Aspose.3D ondersteunt het weergeven van geanimeerde 3D-scènes.

Vraag: Waar kan ik gedetailleerde documentatie vinden?

Verwijs naar de Aspose.3D-documentatie voor diepgaande informatie.