Rendre facilement des panoramas 3D avec Aspose.3D pour .NET

Introduction

Créer des scènes 3D captivantes et les transformer en vues panoramiques est devenu un aspect essentiel des applications modernes. Aspose.3D pour .NET fournit une solution robuste pour les développeurs cherchant à intégrer de manière transparente des fonctionnalités de rendu 3D dans leurs projets. Dans ce didacticiel, nous explorerons le processus de rendu d’une vue panoramique d’une scène 3D à l’aide d’Aspose.3D pour .NET.

Conditions préalables

Avant de plonger dans le didacticiel, assurez-vous que les conditions préalables suivantes sont remplies :

  • Aspose.3D pour .NET : téléchargez et installez la bibliothèque Aspose.3D. Vous pouvez trouver la bibliothèque et la documentation ici .
  • Environnement de développement .NET : assurez-vous de disposer d’un environnement de développement .NET fonctionnel configuré sur votre ordinateur.
  • Exemple de scène 3D : téléchargez un exemple de fichier de scène 3D, par exemple “VirtualCity.glb”, que nous utiliserons pour le rendu de la vue panoramique.

Importer des espaces de noms

Dans votre projet .NET, importez les espaces de noms nécessaires pour travailler avec 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;

Étape 1 : Charger la scène 3D

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

Chargez la scène 3D à l’aide d’Aspose.3D. Remplacez “VirtualCity.glb” par le chemin d’accès au fichier de scène 3D souhaité.

Étape 2 : configurer la caméra et les lumières

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

Configurez la caméra et les lumières pour capturer la scène 3D de manière appropriée.

Étape 3 : Créer un moteur de rendu et des cibles de rendu

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

Créez un moteur de rendu et définissez des cibles de rendu pour la carte cubique et l’image panoramique finale.

Étape 4 : configurer la fenêtre d’affichage et le rendu

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

Configurez la fenêtre à l’aide de la caméra et restituez la carte du cube.

Étape 5 : Appliquer le post-traitement pour la vue panoramique

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

Appliquez un post-traitement de projection équirectangulaire pour générer la vue panoramique.

Étape 6 : Enregistrer le panorama rendu

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

Enregistrez l’image panoramique rendue dans un répertoire de sortie spécifié.

Conclusion

Avec Aspose.3D pour .NET, le rendu d’une vue panoramique d’une scène 3D devient un processus simple. Améliorez vos applications en incorporant des visualisations 3D immersives de manière transparente.

Questions fréquemment posées

Q : Puis-je utiliser ma scène 3D personnalisée pour le rendu de panoramas ?

Oui, remplacez simplement le chemin du fichier de scène exemple par le chemin d’accès à votre scène 3D personnalisée.

Q : Des effets de post-traitement supplémentaires sont-ils disponibles ?

Aspose.3D pour .NET fournit divers effets de post-traitement pour améliorer vos images rendues.

Q : Comment puis-je optimiser les performances de rendu ?

Ajustez les paramètres de rendu et les dimensions cibles en fonction des exigences de votre application.

Q : Puis-je intégrer ce tutoriel dans une application web ?

Oui, en incorporant Aspose.3D pour .NET dans votre projet Web .NET.

Q : Existe-t-il un forum communautaire pour le support d’Aspose.3D ?

Oui, visitez le Forum Aspose.3D pour le soutien de la communauté.