Renderizza facilmente panorami 3D con Aspose.3D per .NET

introduzione

Creare accattivanti scene 3D e trasformarle in viste panoramiche è diventato un aspetto essenziale delle applicazioni moderne. Aspose.3D per .NET fornisce una soluzione solida per gli sviluppatori che desiderano integrare perfettamente le funzionalità di rendering 3D nei loro progetti. In questo tutorial esploreremo il processo di rendering di una vista panoramica di una scena 3D utilizzando Aspose.3D per .NET.

Prerequisiti

Prima di immergerti nel tutorial, assicurati di disporre dei seguenti prerequisiti:

  • Aspose.3D per .NET: scarica e installa la libreria Aspose.3D. Potete trovare la biblioteca e la documentazione Qui .
  • Ambiente di sviluppo .NET: assicurati di avere un ambiente di sviluppo .NET funzionante configurato sul tuo computer.
  • Scena 3D di esempio: scarica un file di scena 3D di esempio, ad esempio “VirtualCity.glb”, che utilizzeremo per il rendering della vista panoramica.

Importa spazi dei nomi

Nel tuo progetto .NET, importa gli spazi dei nomi necessari per lavorare con Aspose.3D:

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;

Passaggio 1: carica la scena 3D

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

Carica la scena 3D usando Aspose.3D. Sostituisci “VirtualCity.glb” con il percorso del file di scena 3D desiderato.

Passaggio 2: imposta la fotocamera e le luci

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

Imposta la fotocamera e le luci per catturare la scena 3D in modo appropriato.

Passaggio 3: creazione del renderer e delle destinazioni di rendering

using (var renderer = Renderer.CreateRenderer())
{
    IRenderTexture rt = renderer.RenderFactory.CreateCubeRenderTexture(new RenderParameters(false), 512, 512);
    IRenderTexture final = renderer.RenderFactory.CreateRenderTexture(new RenderParameters(false, 32, 0, 0), 1024 * 3, 1024);

Crea un renderer e definisci le destinazioni di rendering per la mappa cubica e l’immagine panoramica finale.

Passaggio 4: Configura Viewport e Render

rt.CreateViewport(cam, RelativeRectangle.FromScale(0, 0, 1, 1));
renderer.Render(rt);

Configura il viewport utilizzando la fotocamera ed esegui il rendering della mappa del cubo.

Passaggio 5: applicare la post-elaborazione per la vista panoramica

PostProcessing equirectangular = renderer.GetPostProcessing("equirectangular");
equirectangular.Input = rt.Targets[0];
renderer.Execute(equirectangular, final);

Applicare la post-elaborazione della proiezione equirettangolare per generare la vista panoramica.

Passaggio 6: salva il panorama renderizzato

((ITexture2D)final.Targets[0]).Save("Your Output Directory" + "panorama.png", ImageFormat.Png);

Salva l’immagine panoramica renderizzata in una directory di output specificata.

Conclusione

Con Aspose.3D per .NET, il rendering di una vista panoramica di una scena 3D diventa un processo semplice. Migliora le tue applicazioni incorporando visualizzazioni 3D coinvolgenti senza soluzione di continuità.

Domande frequenti

D: Posso utilizzare la mia scena 3D personalizzata per il rendering dei panorami?

Sì, sostituisci semplicemente il percorso del file della scena di esempio con il percorso della scena 3D personalizzata.

D: Sono disponibili ulteriori effetti di post-elaborazione?

Aspose.3D per .NET fornisce vari effetti di post-elaborazione per migliorare le immagini renderizzate.

D: Come posso ottimizzare le prestazioni di rendering?

Regola i parametri di rendering e le dimensioni di destinazione in base ai requisiti della tua applicazione.

D: Posso integrare questo tutorial in un’applicazione web?

Sì, incorporando Aspose.3D per .NET nel tuo progetto web .NET.

D: Esiste un forum della community per il supporto di Aspose.3D?

Sì, visita il Forum Aspose.3D per il sostegno della comunità.