Εφαρμογή οπτικών εφέ σε θύρες προβολής 3D
Εισαγωγή
Η ενίσχυση της οπτικής ελκυστικότητας των τρισδιάστατων σκηνών είναι μια κρίσιμη πτυχή της δημιουργίας καθηλωτικών εμπειριών. Το Aspose.3D for .NET παρέχει ένα ισχυρό σύνολο εργαλείων για την εφαρμογή οπτικών εφέ σε θύρες προβολής 3D. Σε αυτό το σεμινάριο, θα ακολουθήσουμε τη διαδικασία εφαρμογής διαφόρων εφέ σε μια τρισδιάστατη σκηνή, συμπεριλαμβανομένων των εικονοστοιχείων, της κλίμακας του γκρι, της ανίχνευσης άκρων και του θολώματος.
Προαπαιτούμενα
Πριν βουτήξετε στο σεμινάριο, βεβαιωθείτε ότι έχετε τα εξής:
- Γνώση εργασίας για ανάπτυξη C# και .NET.
- Εγκαταστάθηκε το Aspose.3D για τη βιβλιοθήκη .NET. Μπορείτε να το κατεβάσετε από εδώ .
- Ένα αρχείο σκηνής 3D (π.χ. “scene.obj”) για πειραματισμό.
Εισαγωγή χώρων ονομάτων
Για να ξεκινήσετε, εισαγάγετε τους απαραίτητους χώρους ονομάτων για το Aspose.3D και άλλες εξαρτήσεις. Προσθέστε τις ακόλουθες γραμμές στον κώδικά σας:
using System;
using System.IO;
using System.Collections;
using Aspose.ThreeD;
using System.Drawing;
using System.Drawing.Imaging;
using Aspose.ThreeD.Entities;
using Aspose.ThreeD.Render;
using Aspose.ThreeD.Utilities;
Βήμα 1: Φορτώστε μια υπάρχουσα τρισδιάστατη σκηνή
Scene scene = new Scene(RunExamples.GetDataFilePath("scene.obj"));
Φορτώστε την τρισδιάστατη σκηνή σας χρησιμοποιώντας τοScene
τάξη.
Βήμα 2: Δημιουργήστε μια κάμερα
Camera camera = new Camera();
scene.RootNode.CreateChildNode("camera", camera).Transform.Translation = new Vector3(2, 44, 66);
camera.LookAt = new Vector3(50, 12, 0);
Δημιουργήστε μια παρουσία κάμερας και ορίστε τη θέση και τον στόχο της.
Βήμα 3: Προσθέστε φως στη σκηνή
scene.RootNode.CreateChildNode("light", new Light() { Color = new Vector3(Color.White), LightType = LightType.Point }).Transform.Translation = new Vector3(26, 57, 43);
Εισαγάγετε φωτισμό για να βελτιώσετε τα οπτικά εφέ.
Βήμα 4: Δημιουργήστε έναν στόχο απόδοσης και απόδοσης
using (var renderer = Renderer.CreateRenderer())
{
// Διαμόρφωση ρυθμίσεων απόδοσης
renderer.EnableShadows = false;
// Δημιουργήστε έναν στόχο απόδοσης
using (IRenderTexture rt = renderer.RenderFactory.CreateRenderTexture(new RenderParameters(), 1, 1024, 1024))
{
// Διαμόρφωση θύρας προβολής
Viewport vp = rt.CreateViewport(camera, new RelativeRectangle() { ScaleWidth = 1, ScaleHeight = 1 });
// Αποδώστε τη σκηνή σε υφή
renderer.Render(rt);
// Αποθηκεύστε την υφή που αποδόθηκε σε ένα αρχείο
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "Original_viewport_out.png", ImageFormat.Png);
// Συνεχίστε με τα εφέ μετά την επεξεργασία...
}
}
Δημιουργήστε ένα renderer και έναν στόχο απόδοσης για να καταγράψετε τη σκηνή.
Βήμα 5: Εφαρμόστε εφέ μετά την επεξεργασία
Βήμα 5.1 Εφέ Pixelation
// Δημιουργία εφέ pixelation
PostProcessing pixelation = renderer.GetPostProcessing("pixelation");
renderer.PostProcessings.Add(pixelation);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_pixelation_out.png", ImageFormat.Png);
Εφαρμόστε εφέ pixelation και αποθηκεύστε το αποτέλεσμα.
Βήμα 5.2 Εφέ κλίμακας του γκρι
// Δημιουργήστε εφέ κλίμακας του γκρι
PostProcessing grayscale = renderer.GetPostProcessing("grayscale");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(grayscale);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_grayscale_out.png", ImageFormat.Png);
Εφαρμόστε εφέ κλίμακας του γκρι και αποθηκεύστε το αποτέλεσμα.
Βήμα 5.3 Συνδυάστε εφέ
// Συνδυάστε εφέ κλίμακας του γκρι και pixelation
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(grayscale);
renderer.PostProcessings.Add(pixelation);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_grayscale+pixelation_out.png", ImageFormat.Png);
Συνδυάστε πολλαπλά εφέ για μοναδικά αποτελέσματα.
Βήμα 5.4 Εφέ ανίχνευσης άκρων
// Δημιουργία εφέ ανίχνευσης άκρων
PostProcessing edgedetection = renderer.GetPostProcessing("edge-detection");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(edgedetection);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_edgedetection_out.png", ImageFormat.Png);
Εφαρμόστε εφέ ανίχνευσης άκρων και αποθηκεύστε το αποτέλεσμα.
Βήμα 5.5 Εφέ θολώματος
// Δημιουργία εφέ θολώματος
PostProcessing blur = renderer.GetPostProcessing("blur");
renderer.PostProcessings.Clear();
renderer.PostProcessings.Add(blur);
renderer.Render(rt);
((ITexture2D)rt.Targets[0]).Save("Your Output Directory" + "VisualEffect_blur_out.png", ImageFormat.Png);
Εφαρμόστε εφέ θολώματος και αποθηκεύστε το αποτέλεσμα.
συμπέρασμα
Ο πειραματισμός με οπτικά εφέ σε θύρες προβολής 3D προσθέτει βάθος και δημιουργικότητα στις σκηνές σας. Το Aspose.3D for .NET απλοποιεί αυτή τη διαδικασία, προσφέροντας μια σειρά από εφέ μετά την επεξεργασία για να αναβαθμίσετε τα έργα σας.
Συχνές ερωτήσεις
Ε1: Μπορώ να εφαρμόσω πολλαπλά εφέ ταυτόχρονα;
A1: Ναι, μπορείτε να συνδυάσετε διαφορετικά εφέ μετά την επεξεργασία για μοναδικά και σύνθετα αποτελέσματα.
Ε2: Πώς μπορώ να προσαρμόσω την ένταση των οπτικών εφέ;
A2: Κάθε εφέ μπορεί να έχει παραμέτρους που μπορείτε να τροποποιήσετε για να ελέγξετε την έντασή του. Ανατρέξτε στην τεκμηρίωση για συγκεκριμένες λεπτομέρειες.
Ε3: Είναι το Aspose.3D κατάλληλο για ανάπτυξη παιχνιδιών;
A3: Ενώ το Aspose.3D έχει σχεδιαστεί κυρίως για τρισδιάστατη μοντελοποίηση και απόδοση, μπορεί να χρησιμοποιηθεί σε ορισμένες πτυχές της ανάπτυξης παιχνιδιών.
Ε4: Υπάρχουν διαθέσιμα πρόσθετα εφέ μετά την επεξεργασία;
A4: Το Aspose.3D παρέχει μια ποικιλία από ενσωματωμένα εφέ μετά την επεξεργασία και μπορείτε να δημιουργήσετε προσαρμοσμένα εφέ χρησιμοποιώντας τη βιβλιοθήκη.
Ε5: Μπορώ να χρησιμοποιήσω το Aspose.3D για εμπορικά έργα;
A5: Ναι, μπορείτε να χρησιμοποιήσετε το Aspose.3D για εμπορικούς σκοπούς. Αναφέρομαι στο σελίδα αγοράς για λεπτομέρειες αδειοδότησης.