Εισαγωγή

Η δημιουργία καθηλωτικών, πανοραμικών τρισδιάστατων σκηνών αποτελεί πρωτοποριακή λύση για τους προγραμματιστές που θέλουν να αναβαθμίσουν τις εφαρμογές τους με εκπληκτικά οπτικά εφέ. Είτε εργάζεστε σε μια μηχανή παιχνιδιών, αρχιτεκτονική οπτικοποίηση είτε σε καθηλωτικές εμπειρίες ιστού, η απόδοση τρισδιάστατων σκηνών ως πανοράματα επιτρέπει στους χρήστες να βιώσουν μια δυναμική προβολή από όλες τις γωνίες. Το Aspose.3D για .NET είναι το τέλειο εργαλείο για την απρόσκοπτη ενσωμάτωση αυτής της λειτουργίας στα έργα σας .NET. Αυτός ο ολοκληρωμένος οδηγός θα σας καθοδηγήσει στη διαδικασία απόδοσης ενός πανοράματος από μια τρισδιάστατη σκηνή χρησιμοποιώντας το Aspose.3D για .NET.

Προαπαιτούμενα

Πριν ξεκινήσετε τη διαδικασία απόδοσης, βεβαιωθείτε ότι έχετε θέσει τα εξής σε εφαρμογή:

  • Aspose.3D για .NET: Για να ξεκινήσετε, πρέπει να εγκαταστήσετε το Aspose.3D, το οποίο παρέχει όλα τα απαραίτητα εργαλεία για τον χειρισμό τρισδιάστατων στοιχείων και την απόδοση. Λήψη Aspose.3D για .NET για να ξεκινήσετε.
  • Περιβάλλον ανάπτυξης .NET: Απαιτείται ένα πλήρως διαμορφωμένο περιβάλλον ανάπτυξης .NET. Βεβαιωθείτε ότι έχετε το Visual Studio ή οποιοδήποτε άλλο συμβατό IDE.
  • Δείγμα αρχείου σκηνής 3D: Μπορείτε να χρησιμοποιήσετε οποιαδήποτε σκηνή 3D σε μορφές όπως .glb, .fbx, ή .objΓια αυτό το σεμινάριο, θα χρησιμοποιήσουμε ένα απλό αρχείο “VirtualCity.glb”.

Μόλις καλύψετε αυτές τις προϋποθέσεις, μπορούμε να προχωρήσουμε στη δημιουργία του σκηνικού.

Εισαγωγή απαραίτητων χώρων ονομάτων

Για να εργαστούμε με το Aspose.3D, θα χρειαστεί να εισαγάγουμε αρκετούς χώρους ονομάτων στο έργο μας. Αυτοί οι χώροι ονομάτων σάς επιτρέπουν να χειρίζεστε αποτελεσματικά τρισδιάστατα αντικείμενα, ρυθμίσεις κάμερας και επιλογές απόδοσης.

using Aspose.ThreeD;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Render;
using Aspose.ThreeD.Utilities;
using System;
using System.Drawing;
using System.Drawing.Imaging;

Αυτοί οι χώροι ονομάτων είναι απαραίτητοι για τη φόρτωση της τρισδιάστατης σκηνής, τη διαμόρφωση της κάμερας, τον φωτισμό και τη ρύθμιση των υφών απόδοσης που σχηματίζουν την πανοραμική θέα.

Βήμα 1: Φορτώστε την τρισδιάστατη σκηνή στην εφαρμογή σας

Το πρώτο βήμα είναι να φορτώσετε την τρισδιάστατη σκηνή στην εφαρμογή σας. Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας το Scene κλάση που παρέχεται από το Aspose.3D. Αντικατάσταση "VirtualCity.glb" με τη διαδρομή προς το αρχείο της τρισδιάστατης σκηνής σας.

Scene scene = new Scene("path_to_your_scene/VirtualCity.glb");

Ο Scene Το αντικείμενο φορτώνει την τρισδιάστατη σκηνή στη μνήμη, επιτρέποντάς σας να αλληλεπιδράσετε με αυτήν και να εφαρμόσετε τεχνικές απόδοσης.

Βήμα 2: Ρύθμιση της κάμερας και των φώτων

Για να διασφαλίσετε ότι η τρισδιάστατη σκηνή σας έχει καταγραφεί σωστά, θα χρειαστεί να ρυθμίσετε μια κάμερα και τον κατάλληλο φωτισμό. Η κάμερα σάς επιτρέπει να ελέγχετε την προοπτική της σκηνής, ενώ τα φώτα βοηθούν στον φωτισμό των αντικειμένων.

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);
  • Ρύθμιση κάμερας: Τα κοντινά και μακρινά επίπεδα της κάμερας έχουν ρυθμιστεί ώστε να καθορίζουν την ορατή εμβέλεια στην τρισδιάστατη σκηνή.
  • Ρύθμιση φωτισμού: Προστίθενται δύο φώτα—ένα σημειακό φως και ένα άλλο με συγκεκριμένο χρώμα για να προσθέσουν βάθος και ρεαλισμό στη σκηνή.

Βήμα 3: Ρύθμιση του Renderer και ορισμός στόχων απόδοσης

Τώρα που η σκηνή, η κάμερα και τα φώτα έχουν ρυθμιστεί, το επόμενο βήμα είναι να δημιουργήσετε το πρόγραμμα απόδοσης (renderer) και να ορίσετε τους στόχους απόδοσης (rendering). Το πρόγραμμα απόδοσης (renderer) είναι υπεύθυνο για τη δημιουργία των τρισδιάστατων εικόνων και οι στόχοι απόδοσης (rendering targets) καθορίζουν πού θα αποθηκευτεί το τελικό αποτέλεσμα.

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);
}
  • Υφή απόδοσης κύβου: Χρησιμοποιείται για την απόδοση ενός χάρτη κύβου για την πανοραμική προβολή. Εδώ ορίζουμε μια υφή 512x512.
  • Τελική Υφή Απόδοσης: Αυτή είναι η υφή που θα διατηρήσει την τελική ισόπλευρη πανοραμική όψη.

Βήμα 4: Διαμόρφωση του Viewport και απόδοση της σκηνής

Αφού δημιουργήσουμε τις υφές απόδοσης, πρέπει να διαμορφώσουμε το παράθυρο προβολής, το οποίο καθορίζει την περιοχή της τρισδιάστατης σκηνής που θα καταγράψει η κάμερα.

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

Αυτός ο κώδικας ορίζει το παράθυρο προβολής για τον χάρτη κύβου και αποδίδει τη σκηνή σε rt υφή απόδοσης.

Βήμα 5: Εφαρμογή μετεπεξεργασίας για ισοορθογώνια προβολή

Σε αυτό το σημείο, πρέπει να εφαρμόσουμε μετα-επεξεργασία για να μετατρέψουμε τον χάρτη κύβου σε μια ισόπλευρη πανοραμική όψη. Αυτός ο μετασχηματισμός διασφαλίζει ότι η τελική εικόνα θα είναι ένα σωστό πανόραμα.

PostProcessing equirectangular = renderer.GetPostProcessing("equirectangular");
equirectangular.Input = rt.Targets[0];
renderer.Execute(equirectangular, final);
  • Ισοορθογώνια Προβολή: Αυτό το εφέ μετεπεξεργασίας παίρνει τον χάρτη κύβου και τον μετατρέπει σε μια ισοορθογώνια πανοραμική προβολή, παρέχοντας μια απρόσκοπτη προβολή 360 μοιρών.

Βήμα 6: Αποθήκευση του πανοράματος που έχει αποδοθεί

Μόλις ολοκληρωθεί η απόδοση και η μετεπεξεργασία, το τελευταίο βήμα είναι να αποθηκεύσετε το τελικό πανόραμα σε ένα αρχείο εικόνας, όπως ένα PNG.

((ITexture2D)final.Targets[0]).Save("Your_Output_Directory/panorama.png", ImageFormat.Png);

Αυτό αποθηκεύει την πανοραμική εικόνα στον καθορισμένο κατάλογο, επιτρέποντάς σας να την ενσωματώσετε στην εφαρμογή σας ή να την εμφανίσετε σε έναν ιστότοπο.

Σύναψη

Η απόδοση πανοραμικών προβολών τρισδιάστατων σκηνών δεν ήταν ποτέ ευκολότερη με το Aspose.3D για .NET. Ακολουθώντας τα βήματα που περιγράφονται παραπάνω, μπορείτε εύκολα να φορτώσετε μια τρισδιάστατη σκηνή, να διαμορφώσετε την κάμερα και τα φώτα, να αποδώσετε τη σκηνή και να εφαρμόσετε εφέ μετεπεξεργασίας για να δημιουργήσετε καθηλωτικές πανοραμικές εικόνες. Το Aspose.3D για .NET παρέχει τη δύναμη και την ευελιξία να ζωντανέψετε τις τρισδιάστατες απεικονίσεις σας και να τις ενσωματώσετε απρόσκοπτα στις εφαρμογές σας.

Συχνές ερωτήσεις

Μπορώ να χρησιμοποιήσω τη δική μου τρισδιάστατη σκηνή για την απόδοση πανοραμάτων;

Απολύτως. Απλώς αντικαταστήστε τη διαδρομή του αρχείου δείγματος σκηνής με τη θέση της προσαρμοσμένης τρισδιάστατης σκηνής σας.

Υπάρχουν διαθέσιμα πρόσθετα εφέ μετεπεξεργασίας;

Ναι, το Aspose.3D προσφέρει μια σειρά από εφέ μετεπεξεργασίας, όπως βάθος πεδίου, άνθιση και άλλα, που μπορούν να εφαρμοστούν για να βελτιώσουν τις εικόνες που αποδίδετε.

Πώς μπορώ να βελτιστοποιήσω την απόδοση της απόδοσης;

Η απόδοση της απόδοσης μπορεί να βελτιστοποιηθεί προσαρμόζοντας παραμέτρους όπως το μέγεθος και την ανάλυση της υφής της απόδοσης, καθώς και τροποποιώντας τα κοντινά και μακρινά επίπεδα της κάμερας.

Μπορώ να το ενσωματώσω σε μια διαδικτυακή εφαρμογή;

Ναι, το Aspose.3D για .NET μπορεί να ενσωματωθεί στις εφαρμογές web .NET για δυναμική απόδοση τρισδιάστατων πανοραμάτων.

Υπάρχει κάποιο φόρουμ κοινότητας για υποστήριξη Aspose.3D;

Ναι, μπορείτε να επισκεφθείτε το Φόρουμ Aspose.3D για υποστήριξη και συζητήσεις στην κοινότητα.