Skip to main content

Τι είναι το buffer stencil;

Στον προγραμματισμό γραφικών υπολογιστών, ένα buffer stencil είναι μια περιοχή μνήμης που μπορεί να σχεδιαστεί και να χρησιμοποιηθεί σε σχέση με άλλα buffer γραφικών για την επίτευξη διαφορετικών αποτελεσμάτων ή για να καλύψει περιοχές μιας σκηνής, ώστε να μην επεξεργαστούν ή να αποδοθούν.Ένα ρυθμιστικό διάλυμα είναι ένα buffer ανά pixel παρόμοιο με μια ασπρόμαυρη εικόνα, στην οποία κάθε θέση στο buffer μπορεί να κρατήσει μια τιμή που είναι πιο συχνά 1 byte το πολύ, αλλά μπορεί να είναι τόσο μικρό όσο 1 bit.Το buffer αρχικά σχεδιάστηκε για να λειτουργήσει ως αληθινή ή ψευδή μάσκα, σαν ένα πραγματικό στένσιλ, έτσι ώστε οι περιοχές μιας σκηνής να μπορούν να καλύπτονται ή να αγνοηθούν με τον καθορισμό των τιμών των διαφόρων περιοχών του ρυθμιστικού διαλύματος στένσιλ σε τιμή διαφορετική από μηδέν.Υπάρχουν ορισμένες χρήσεις για το buffer πέρα από την απλή κάλυψη, συμπεριλαμβανομένης της σχεδίασης ενός όγκου σκιάς, εφαρμόζοντας halos γύρω από αντικείμενα ή εντοπισμό περιοχών όπου τα αντικείμενα επικαλύπτονται μεταξύ τους.Σε πολλές περιπτώσεις, το buffer διατηρείται στη μνήμη γραφικών σε μια κάρτα γραφικών, ώστε να μπορεί να προσπεραθεί γρήγορα κατά την απόδοση.Εφαρμόζεται σε μια τρισδιάστατη (3D) σκηνή καθώς οι κορυφές κινήθηκαν μέσω του αγωγού γραφικών.Εάν η θέση της 3ης κορυφής, μόλις ανακατασκευαστεί, που σχετίζεται με μια περιοχή του ρυθμιστικού διαλύματος μεμβράνης που δεν είχε ρυθμιστεί στο μηδέν, τότε αυτή η κορυφή θα μπορούσε να αγνοηθεί και η υπόλοιπη επεξεργασία του αγωγού παραλείπονται.Αυτό επέτρεψε στους προγραμματιστές έναν τρόπο να κάνουν μόνο μικρά μέρη μιας σκηνής ή να κάνουν μια εικόνα σε ένα ακανόνιστα διαμορφωμένο παράθυρο προβολής, όπως ένας προβληματισμός σε ένα μικρό καθρέφτη μέσα σε μια μεγαλύτερη σκηνή, όπου το σχήμα του καθρέφτη σχεδιάζεται ως στένσιλBuffer, και στη συνέχεια ο προβληματισμός τραβήχτηκε μέσα από αυτό το σχήμα. Η μνήμη των αφορά η μνήμη οδήγησε στην αρχική μορφή ενός ρυθμιστικού διαλύματος μεμβράνης που είναι ένα πλέγμα τιμών ενός bit στο οποίο κάθε εικονοστοιχείο στο buffer θα μπορούσε να είναι αληθινό ή ψευδές.Καθώς αναπτύχθηκαν κάρτες γραφικών, τα περισσότερα buffers έγιναν σε θέση να κατέχουν μια πλήρη τιμή byte σε κάθε θέση pixel, επιτρέποντας στους προγραμματιστές να έχουν πιο σύνθετες τιμές σε μια θέση.Αυτό μπορεί να επιτρέψει τη χρήση του buffer για την ανίχνευση περιοχών όπου τα αντικείμενα επικαλύπτονται, τα οποία μπορούν να γίνουν αυξάνοντας την τιμή του buffer σε μια θέση εάν ένα αντικείμενο καταλαμβάνει αυτό το εικονοστοιχείο στην οθόνη όταν αναστέλλεται.Μετά από αυτή τη λειτουργία, η τιμή κάθε θέσης εικονοστοιχείων στο buffer θα ισούται με τον αριθμό των αντικειμένων που διασχίζουν το εικονοστοιχείο σε μια οθόνη.

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