Τι είναι το φίλτρο στα παιχνίδια. Ανισότροπο φιλτράρισμα

Δοκιμές απόδοσης:

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

Διαμόρφωση υπολογιστή:
Επεξεργαστής: Intel Core 2 Quad Q6600 @ 3200MHz (400x8, 1,3125V)
Κάρτα βίντεο: Palit Nvidia GeForce 8800GT
Μητρική πλακέτα: Asus P5Q PRO TURBO
Μνήμη: 2x2048MB DDR2 Corsair XMS2 @ 1066MHz, 5-5-5-15
Τροφοδοτικό: Corsair CMPSU-850HXEU 850W
Ψύκτη CPU: Zalman CNPS9700 LED
Λειτουργικό σύστημα: Windows 7 Ultimate x64
Έκδοση προγράμματος οδήγησης βίντεο: Nvidia 195.62 x64

Το κύριο θέμα δοκιμής στη σημερινή μας δοκιμή ήταν το πολύ παλιό, αλλά όχι λιγότερο διάσημο Counter-Strike: Source, καθώς αυτό είναι ένα από τα λίγα πραγματικά διαδεδομένα παιχνίδια που παρέχει μια τεράστια γκάμα διαφορετικών ρυθμίσεων anti-aliasing και φιλτραρίσματος. Παρά την αρχαιότητα του κινητήρα (2004), αυτό το παιχνίδι μπορεί να φορτώσει καλά ακόμα και την πιο σύγχρονη πλατφόρμα. Εδώ είναι μια τέτοια πλούσια ποικιλία ρυθμίσεων που παρουσιάζονται στον χρήστη:

Πραγματοποιήθηκαν δοκιμές anti-aliasing και φιλτραρίσματος στο ενσωματωμένο σημείο αναφοράς, σε ανάλυση 1280x1024. Όλες οι άλλες ρυθμίσεις λήφθηκαν ως το μέγιστο, όπως στο παραπάνω στιγμιότυπο οθόνης. Για να φέρουμε το αποτέλεσμα όσο το δυνατόν πιο κοντά στην αλήθεια, κάθε παράμετρος δοκιμάστηκε τρεις φορές, μετά τις οποίες βρέθηκε ο αριθμητικός μέσος όρος των τιμών που προέκυψαν.

Και λοιπόν, τι πήραμε:

Τα αποτελέσματα ήταν αρκετά απροσδόκητα. Η τεχνολογία δειγματοληψίας κάλυψης (CSAA), η οποία εξ ορισμού θα πρέπει να καταναλώνει λιγότερους πόρους από το MSAA, δείχνει εδώ μια εντελώς αντίθετη εικόνα. Μπορεί να υπάρχουν πολλοί λόγοι για αυτό το φαινόμενο. Πρώτα απ 'όλα, θα πρέπει να ληφθεί υπόψη ότι η απόδοση κατά την ενεργοποίηση του anti-aliasing εξαρτάται σε μεγάλο βαθμό από την αρχιτεκτονική της GPU. Ναι, και η βελτιστοποίηση διαφόρων τεχνολογιών του ίδιου του παιχνιδιού και της έκδοσης προγράμματος οδήγησης διαδραματίζουν εξίσου σημαντικό ρόλο. Επομένως, τα αποτελέσματα κατά τη χρήση άλλων καρτών γραφικών ή ακόμη και διαφορετικής έκδοσης προγράμματος οδήγησης μπορεί να είναι εντελώς διαφορετικά.

Οι δοκιμές με απενεργοποιημένο το anti-aliasing (σημειωμένο με μπλε για ευκολία αντίληψης) έδειξαν περίπου ίση εικόνα, η οποία υποδηλώνει μια μικρή διαφορά στα φορτία στην κάρτα βίντεο.

Επιπλέον, υπάρχει σαφής αντιστοιχία μεταξύ των ενδείξεων FPS, όταν χρησιμοποιείται η ίδια μέθοδος κατά της παραμόρφωσης, για AF 8x και AF 16x. Ταυτόχρονα, η διαφορά κυμαίνεται από 1 έως 4 fps (με εξαίρεση το MSAA 8x, όπου η διαφορά είναι 11 fps). Αυτό υποδηλώνει ότι η χρήση φιλτραρίσματος 16x μπορεί να είναι πολύ χρήσιμη εάν χρειάζεται να βελτιώσετε την ποιότητα της εικόνας χωρίς σημαντική επιτυχία στην απόδοση.

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

Δοκιμές φωτογραφιών:

Και λοιπόν, τι έχουμε; Μάθαμε για τις επιπτώσεις των διαφορετικών διαμορφώσεων ρυθμίσεων στην απόδοση. «Μα γιατί είναι όλα αυτά απαραίτητα;» - εσύ ρωτάς. Για να βελτιώσω την ποιότητα της εικόνας που εμφανίζεται, θα απαντήσω. Υπάρχει καθόλου αύξηση; Για να απαντήσετε σε αυτήν την ερώτηση, προτείνω να ρίξετε μια ματιά στα ακόλουθα στιγμιότυπα οθόνης:

Διγραμμικό / MSAA 2xΤριγραμμικό / MSAA 2xAF 2x / MSAA 2x
AF 2x / CSAA 8xAF 2x / MSAA 8xAF 2x / CSAA 16x
AF 2x / CSAA 16xQAF 8x / MSAA x2AF 8x / CSAA 8x
AF 8x / MSAA 8xAF 8x / CSAA 16xAF 8x / CSAA 16xQ
AF 16x / MSAA 2xAF 16x / CSAA 8xAF 16x / MSAA 8x
AF 16x / CSAA 16xAF 16x / CSAA 16xQΔιγραμμικό / CSAA 16xQ

Όπως μπορείτε να δείτε, απλά δεν υπάρχει ιδιαίτερη διαφορά στους συνδυασμούς "υψηλότερης" AF 8x / MSAA 8x (CSAA 8x). Αλλά ταυτόχρονα, υπάρχει μια αξιοσημείωτη επιτυχία στην απόδοση, ειδικά όταν χρησιμοποιείτε το Coverage Sampling AntiAliasing.

Συμπεράσματα:

Σίγουρα ανάμεσα σε όσους διαβάζουν αυτό το άρθρο θα υπάρχουν παίκτες των Cs:s, HL2 και άλλων παιχνιδιών που βασίζονται στη μηχανή Source. Θα βρουν αυτό το άρθρο πιο ενδιαφέρον και κατατοπιστικό από τα υπόλοιπα. Ωστόσο, ο σκοπός αυτής της γραφής ήταν μόνο να μιλήσει για σύγχρονες τεχνολογίες που βοηθούν στη βελτίωση της οπτικής αντίληψης των παιχνιδιών. Και δοκιμές - ως ένας τρόπος να δείξουμε στην πράξη τη δηλωμένη θεωρία.

Φυσικά, για την αξιοπιστία της μαρτυρίας, χρειάστηκε να γίνουν δοκιμές απόδοσης τόσο σε άλλα τσιπ βίντεο όσο και σε πρόσθετα παιχνίδια.

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

Από το Stormcss


Κλωτσώντας με θυμό με τα πόδια

Με την εμφάνιση των παιχνιδιών 3D, άρχισαν να εμφανίζονται προβλήματα που δεν υπήρχαν στα παιχνίδια 2D: τελικά, τώρα πρέπει να εμφανίσετε μια τρισδιάστατη εικόνα σε μια επίπεδη οθόνη. Εάν το αντικείμενο είναι παράλληλο με το επίπεδο οθόνης κοντά του, δεν υπάρχει πρόβλημα: ένα pixel αντιστοιχεί σε ένα texel (το texel είναι ένα εικονοστοιχείο μιας δισδιάστατης εικόνας που τοποθετείται σε μια επιφάνεια 3D). Τι γίνεται όμως αν το αντικείμενο έχει κλίση ή είναι μακριά; Εξάλλου, τότε υπάρχουν πολλά texel ανά pixel, και δεδομένου ότι η οθόνη έχει περιορισμένο αριθμό pixel, το χρώμα του καθενός πρέπει να υπολογιστεί από πολλά texel μέσω μιας συγκεκριμένης διαδικασίας - φιλτραρίσματος.


Για να απλοποιήσουμε την κατανόηση, ας φανταστούμε ότι κάθε pixel είναι μια τετράγωνη «τρύπα» στην οθόνη, βγάζουμε «ακτίνες φωτός» από τα μάτια μας και τα texel βρίσκονται σε ένα τετράγωνο πλέγμα πίσω από την οθόνη. Αν τοποθετήσουμε το πλέγμα παράλληλα με την οθόνη αμέσως πίσω από αυτό, τότε το φως από ένα pixel θα καλύπτει μόνο ένα texel. Τώρα θα αρχίσουμε να μετακινούμε τη σχάρα - τι θα πάρουμε; Το γεγονός ότι το σημείο φωτός μας από ένα pixel θα καλύπτει περισσότερα από ένα texel. Τώρα ας περιστρέψουμε το πλέγμα - παίρνουμε το ίδιο πράγμα: ένα σημείο από ένα pixel θα καλύπτει πολλά texel. Αλλά τελικά, ένα pixel μπορεί να έχει ένα χρώμα και αν πέσουν πολλά texel σε αυτό, τότε χρειαζόμαστε έναν αλγόριθμο με τον οποίο θα προσδιορίσουμε το χρώμα του - ονομάζεται φιλτράρισμα υφής.


Αυτός είναι ο απλούστερος αλγόριθμος φιλτραρίσματος: βασίζεται στο γεγονός ότι παίρνουμε το χρώμα texel που βρίσκεται πιο κοντά στο κέντρο της φωτεινής κηλίδας από το pixel ως χρώμα pixel. Το πλεονέκτημα αυτής της μεθόδου είναι προφανές - φορτώνει την κάρτα βίντεο λιγότερο. Υπάρχουν επίσης πολλά μειονεκτήματα - το χρώμα ενός κεντρικού texel μπορεί να διαφέρει σημαντικά από το χρώμα δεκάδων, ακόμη και εκατοντάδων άλλων texel που πέφτουν στο σημείο από το pixel. Επιπλέον, το σχήμα του ίδιου του σημείου μπορεί να αλλάξει σοβαρά, ενώ το κέντρο του μπορεί να παραμείνει στην ίδια θέση, και ως αποτέλεσμα, το χρώμα του pixel δεν θα αλλάξει. Λοιπόν, το κύριο μειονέκτημα είναι το πρόβλημα της "μπλοκαρίσματος": όταν υπάρχουν λίγα texel ανά pixel (δηλαδή ένα αντικείμενο δίπλα στη συσκευή αναπαραγωγής), τότε έχουμε ότι με αυτήν τη μέθοδο φιλτραρίσματος, ένα αρκετά μεγάλο μέρος της εικόνας γεμίζει με ένα χρώμα, το οποίο οδηγεί σε ευδιάκριτα "μπλοκ" του ίδιου χρώματος στην οθόνη. Η τελική ποιότητα εικόνας είναι... απλά τρομερή:


Επομένως, δεν προκαλεί έκπληξη το γεγονός ότι τέτοιο φιλτράρισμα δεν χρησιμοποιείται πλέον σήμερα.


Με την ανάπτυξη των καρτών βίντεο, η δύναμή τους άρχισε να αυξάνεται, έτσι οι προγραμματιστές παιχνιδιών προχώρησαν περισσότερο: αν πάρετε ένα texel για το χρώμα ενός pixel, τότε αποδεικνύεται άσχημα. Εντάξει - ας πάρουμε το μέσο χρώμα από 4 texels και ας το ονομάσουμε διγραμμικό φιλτράρισμα; Από τη μια πλευρά, τα πράγματα θα βελτιωθούν - το μπλοκάρισμα θα εξαφανιστεί. Αλλά ο εχθρός νούμερο δύο θα έρθει - η θολή εικόνα κοντά στον παίκτη: αυτό οφείλεται στο γεγονός ότι η παρεμβολή απαιτεί περισσότερα texel από τέσσερα.

Αλλά αυτό δεν είναι το κύριο πρόβλημα: το διγραμμικό φιλτράρισμα λειτουργεί καλά όταν το αντικείμενο είναι παράλληλο με την οθόνη: τότε μπορείτε πάντα να επιλέξετε 4 texel και να πάρετε ένα "μέσο" χρώμα. Αλλά εδώ το 99% των υφών γέρνει προς τη συσκευή αναπαραγωγής και αποδεικνύεται ότι προσεγγίζουμε 4 ορθογώνια κουτιά (ή τραπεζοειδή) ως 4 τετράγωνα, κάτι που δεν είναι σωστό. Και όσο πιο λοξή είναι η υφή, τόσο χαμηλότερη είναι η ακρίβεια του χρώματος και τόσο ισχυρότερο είναι το θάμπωμα:


Εντάξει, είπαν οι προγραμματιστές παιχνιδιών - αφού τα 4 texels δεν είναι αρκετά, ας πάρουμε δύο φορές τέσσερα και για πιο ακριβές χρωματικό χτύπημα θα χρησιμοποιήσουμε τεχνολογία MIP-texturing. Όπως έγραψα παραπάνω, όσο πιο μακριά είναι η υφή από τη συσκευή αναπαραγωγής, τόσο περισσότερα texel θα υπάρχουν στο pixel και τόσο πιο δύσκολο είναι για την κάρτα βίντεο να επεξεργαστεί την εικόνα. Η υφή MIP, από την άλλη πλευρά, σημαίνει αποθήκευση της ίδιας υφής σε διαφορετικές αναλύσεις: για παράδειγμα, εάν το αρχικό μέγεθος υφής είναι 256x256, τότε τα αντίγραφά της αποθηκεύονται στη μνήμη σε διαστάσεις 128x128, 64x64 και ούτω καθεξής, έως και 1x1:


Και τώρα, όχι μόνο η ίδια η υφή, αλλά και το mipmap λαμβάνεται για φιλτράρισμα: ανάλογα με το αν η υφή είναι πιο μακριά ή πιο κοντά από τη συσκευή αναπαραγωγής, λαμβάνεται είτε μικρότερο είτε μεγαλύτερο mipmap της υφής και 4 texels πιο κοντά στο κέντρο του εικονοστοιχείου έχουν ήδη ληφθεί σε αυτό, και ένα διγραμμικό φιλτράρισμα. Στη συνέχεια, παίρνουμε 4 texels πιο κοντά στο pixel, ήδη την αρχική υφή, και πάλι παίρνουμε το "μέσο" χρώμα. Μετά από αυτό, το "μέσο" χρώμα λαμβάνεται από τα μέσα χρώματα του mipmap και της αρχικής υφής και αποδίδεται στο pixel - έτσι λειτουργεί ο αλγόριθμος τριγραμμικού φιλτραρίσματος. Ως αποτέλεσμα, φορτώνει την κάρτα βίντεο κάπως περισσότερο από το διγραμμικό φιλτράρισμα (χρειάζεται επίσης να επεξεργαστείτε το mipmap), αλλά η ποιότητα της εικόνας αποδεικνύεται καλύτερη:


Όπως μπορείτε να δείτε, το τριγραμμικό φιλτράρισμα είναι πολύ καλύτερο από το διγραμμικό φιλτράρισμα, και ακόμη περισσότερο το φιλτράρισμα σημείου, αλλά η εικόνα εξακολουθεί να «πλένει» σε μεγάλες αποστάσεις. Και η ασαφής εικόνα προκύπτει λόγω του γεγονότος ότι δεν λαμβάνουμε υπόψη το γεγονός ότι η υφή μπορεί να έχει κλίση σε σχέση με τη συσκευή αναπαραγωγής - και αυτό ακριβώς είναι το πρόβλημα που λύνει το ανισότροπο φιλτράρισμα. Εν συντομία, η αρχή λειτουργίας του ανισότροπου φιλτραρίσματος έχει ως εξής: λαμβάνεται μια υφή MIP που ορίζεται κατά μήκος της κατεύθυνσης προβολής, μετά την οποία οι τιμές των χρωμάτων του υπολογίζονται κατά μέσο όρο με το χρώμα ενός συγκεκριμένου αριθμού texel κατά μήκος της κατεύθυνσης προβολής . Ο αριθμός των texel ποικίλλει από 16 (για φιλτράρισμα x2) έως 128 (για x16). Για να το θέσω απλά, αντί για τετράγωνο φίλτρο (όπως στο διγραμμικό φιλτράρισμα), χρησιμοποιείται ένα επίμηκες φίλτρο, το οποίο σας επιτρέπει να επιλέξετε το επιθυμητό χρώμα για ένα pixel οθόνης με καλύτερη ποιότητα. Δεδομένου ότι μπορεί να υπάρχουν ένα εκατομμύριο ή ακόμα περισσότερα pixel στην οθόνη και κάθε texel ζυγίζει τουλάχιστον 32 bit (χρώμα 32 bit), το ανισότροπο φιλτράρισμα απαιτεί τεράστιο εύρος ζώνης μνήμης βίντεο - δεκάδες gigabyte ανά δευτερόλεπτο. Τέτοιες μεγάλες απαιτήσεις μνήμης μειώνονται λόγω συμπίεσης υφής και προσωρινής αποθήκευσης, αλλά και πάλι σε κάρτες βίντεο με μνήμη DDR ή δίαυλο 64-bit, η διαφορά μεταξύ τριγραμμικού και ανισότροπου φιλτραρίσματος x16 μπορεί να φτάσει το 10-15% fps, αλλά η εικόνα μετά από τέτοιο φιλτράρισμα είναι το καλύτερο:

Φιλτράρισμα υφής.

Το φιλτράρισμα επιλύει το πρόβλημα του προσδιορισμού του χρώματος ενός pixel με βάση τα διαθέσιμα texel από μια εικόνα υφής.

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

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

Δεύτερη μέθοδος - διγραμμικό φιλτράρισμα(Δι-γραμμικό φιλτράρισμα) συνίσταται στη χρήση μιας τεχνικής παρεμβολής. Για τον προσδιορισμό των texel που πρέπει να χρησιμοποιηθούν για παρεμβολή, χρησιμοποιείται το κύριο σχήμα του φωτεινού σημείου - ένας κύκλος. Ουσιαστικά, ο κύκλος προσεγγίζεται κατά 4 texel. Το διγραμμικό φιλτράρισμα είναι μια τεχνική για την αφαίρεση της παραμόρφωσης της εικόνας (φιλτράρισμα), όπως οι «μπλοκαρισμένες» υφές όταν μεγεθύνονται. Όταν το αντικείμενο περιστρέφεται ή κινείται αργά (πλησιάζοντας/αφαιρώντας), τα εικονοστοιχεία μπορεί να «πηδούν» από το ένα μέρος στο άλλο, π.χ. εμφανίζεται μπλοκάρισμα. Για να αποφευχθεί αυτό το φαινόμενο, χρησιμοποιείται διγραμμικό φιλτράρισμα, το οποίο χρησιμοποιεί τον σταθμισμένο μέσο όρο του χρώματος τεσσάρων γειτονικών texel για να καθορίσει το χρώμα κάθε pixel και, ως αποτέλεσμα, καθορίζει το χρώμα της υφής επικάλυψης. Το προκύπτον χρώμα pixel προσδιορίζεται μετά την εκτέλεση τριών λειτουργιών ανάμειξης: πρώτα, τα χρώματα δύο ζευγών texel αναμειγνύονται και στη συνέχεια τα δύο χρώματα που προκύπτουν αναμειγνύονται.

Το κύριο μειονέκτημα του διγραμμικού φιλτραρίσματος είναι ότι η προσέγγιση εκτελείται σωστά μόνο για πολύγωνα που είναι παράλληλα με την οθόνη ή το σημείο παρατήρησης. Εάν το πολύγωνο περιστρέφεται υπό γωνία (και είναι στο 99% των περιπτώσεων), χρησιμοποιείται λανθασμένη προσέγγιση, καθώς μια έλλειψη πρέπει να προσεγγιστεί.

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

Τα παρακάτω ορθογώνια με διγραμμική υφή μπορούν να χρησιμεύσουν ως απεικόνιση του περιγραφόμενου εφέ:

Ρύζι. 13.29. Σκίαση αντικειμένου χρησιμοποιώντας τη μέθοδο διγραμμικού φιλτραρίσματος.Η εμφάνιση τεχνουργημάτων που «παράλληλα βάθους» εκφράζεται στο γεγονός ότι πολλά τετράγωνα συγχωνεύονται σε ένα.

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

Το Mip-texture (mip-map) αποτελείται από ένα σύνολο προφιλτραρισμένων και κλιμακωμένων εικόνων. Σε μια εικόνα που σχετίζεται με ένα επίπεδο mip-map, ένα pixel αντιπροσωπεύεται ως ο μέσος όρος τεσσάρων εικονοστοιχείων από το προηγούμενο επίπεδο υψηλότερης ανάλυσης. Ως εκ τούτου, η εικόνα που σχετίζεται με κάθε επίπεδο mipmap είναι τέσσερις φορές μικρότερη από το προηγούμενο επίπεδο mipmap.

Ρύζι. 13.30. Οι εικόνες που σχετίζονται με κάθε επίπεδο mip-map της κυματικής υφής.

Από αριστερά προς τα δεξιά, έχουμε επίπεδα mip-map 0, 1, 2 και ούτω καθεξής. Όσο μικρότερη γίνεται η εικόνα, τόσο περισσότερη λεπτομέρεια χάνεται, μέχρι να πλησιάσει στο τέλος, όταν τίποτα δεν φαίνεται παρά ένα θάμπωμα από γκρίζα pixel.

Το Επίπεδο Λεπτομέρειας, ή απλά LOD, χρησιμοποιείται για να προσδιορίσει ποιο επίπεδο mip-map (ή επίπεδο λεπτομέρειας) θα πρέπει να επιλεγεί για την υφή του αντικειμένου. Το LOD πρέπει να ταιριάζει με τον αριθμό των texel που εφαρμόζονται ανά pixel. Για παράδειγμα, εάν η δημιουργία υφής εμφανίζεται σε αναλογία κοντά στο 1:1, τότε το LOD θα είναι 0, πράγμα που σημαίνει ότι θα χρησιμοποιηθεί το επίπεδο mip-map με την υψηλότερη ανάλυση. Εάν 4 texel επικαλύπτουν ένα pixel, τότε το LOD θα είναι 1 και θα χρησιμοποιηθεί το επόμενο επίπεδο mip χαμηλότερης ανάλυσης. Συνήθως, όταν απομακρύνεστε από την οπτική γωνία, το αντικείμενο που αξίζει τη μεγαλύτερη προσοχή έχει υψηλότερη τιμή LOD.

Ενώ η mipmapping επιλύει το πρόβλημα των σφαλμάτων "depth-aliasing", η χρήση της μπορεί να εισάγει άλλα τεχνουργήματα. Καθώς το αντικείμενο απομακρύνεται περισσότερο από την οπτική γωνία, υπάρχει μια μετάβαση από ένα χαμηλό επίπεδο mip-map σε ένα υψηλό. Όταν ένα αντικείμενο βρίσκεται σε μεταβατική κατάσταση από το ένα επίπεδο mip-map στο άλλο, εμφανίζεται ένας ειδικός τύπος σφάλματος απόδοσης, γνωστός ως "mip-banding" - banding ή layering, δηλ. ξεκάθαρα διακριτά όρια μετάβασης από το ένα επίπεδο mip-map στο άλλο.

Ρύζι. 13.31. Η ορθογώνια κορδέλα αποτελείται από δύο τρίγωνα με ανάγλυφη εικόνα που μοιάζει με κύμα, όπου τα τεχνουργήματα "mip-banding" υποδεικνύονται με κόκκινα βέλη.

Το πρόβλημα των σφαλμάτων "mip-banding" είναι ιδιαίτερα έντονο στα κινούμενα σχέδια, λόγω του γεγονότος ότι το ανθρώπινο μάτι είναι πολύ ευαίσθητο στις μετατοπίσεις και μπορεί εύκολα να παρατηρήσει τη θέση μιας απότομης μετάβασης μεταξύ των επιπέδων φιλτραρίσματος όταν κινείται γύρω από ένα αντικείμενο.

Τριγραμμικό φιλτράρισμα(τριγραμμικό φιλτράρισμα) είναι η τρίτη μέθοδος που αφαιρεί τα τεχνουργήματα "mip-banding" που εμφανίζονται όταν χρησιμοποιείται η υφή mip. Με το τριγραμμικό φιλτράρισμα, για τον προσδιορισμό του χρώματος ενός εικονοστοιχείου, λαμβάνεται η μέση τιμή χρώματος των οκτώ texel, τέσσερις από δύο γειτονικές υφές, και ως αποτέλεσμα επτά λειτουργιών ανάμειξης, προσδιορίζεται το χρώμα του εικονοστοιχείου. Όταν χρησιμοποιείτε τριγραμμικό φιλτράρισμα, είναι δυνατή η εμφάνιση ενός αντικειμένου με υφή στην οθόνη με ομαλές μεταβάσεις από το ένα επίπεδο mip στο επόμενο, το οποίο επιτυγχάνεται με τον προσδιορισμό του LOD με παρεμβολή δύο γειτονικών επιπέδων mip-map. Έτσι λύνονται τα περισσότερα από τα προβλήματα που σχετίζονται με το mip-texturing και τα σφάλματα που οφείλονται σε λανθασμένο υπολογισμό του βάθους της σκηνής ("depth aliasing").

Ρύζι. 13.32. Πυραμιδικός χάρτης MIP

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

Ρύζι. 13.33. Ορθογώνιο με υφή κυμάτων που αποδόθηκε με χρήση mipmapping και τριγραμμικό φιλτράρισμα.

Υπάρχουν διάφοροι τρόποι δημιουργίας υφών MIP. Το ένα είναι απλώς να τα προετοιμάσετε εκ των προτέρων χρησιμοποιώντας πακέτα γραφικών όπως το Adobe PhotoShop. Ένας άλλος τρόπος είναι να δημιουργήσετε υφές MIP on the fly, δηλ. κατά την εκτέλεση του προγράμματος. Οι υφές προ-MIPed σημαίνουν επιπλέον 30% του χώρου στο δίσκο υφής στην εγκατάσταση του βασικού παιχνιδιού, αλλά επιτρέπουν πιο ευέλικτο έλεγχο στη δημιουργία τους και σας επιτρέπουν να προσθέσετε διαφορετικά εφέ και πρόσθετες λεπτομέρειες σε διαφορετικά επίπεδα MIP.

Αποδεικνύεται ότι η τριγραμμική mipmapping είναι το καλύτερο που μπορεί να γίνει;

Φυσικά και όχι. Μπορεί να φανεί ότι το πρόβλημα δεν είναι μόνο στην αναλογία μεγεθών pixel και texel, αλλά και στο σχήμα καθενός από αυτά (ή, για να είμαστε πιο ακριβείς, στις αναλογίες σχήματος).

Η μέθοδος mipmapping λειτουργεί καλύτερα για πολύγωνα που είναι άμεσα "πρόσωπο με πρόσωπο" με την οπτική γωνία. Ωστόσο, τα πολύγωνα που είναι λοξά ως προς την οπτική γωνία παραμορφώνουν την υφή επικάλυψης, έτσι ώστε τα εικονοστοιχεία να μπορούν να επικαλύπτονται με περιοχές διαφορετικής εμφάνισης και τετράγωνου σχήματος της εικόνας υφής. Η μέθοδος miptexturing δεν το λαμβάνει υπόψη αυτό και έχει ως αποτέλεσμα να θολώνει υπερβολικά την εικόνα της υφής, σαν να χρησιμοποιήθηκαν λάθος texel. Η λύση σε αυτό το πρόβλημα είναι η δειγματοληψία περισσότερων texel που συνθέτουν την υφή και αυτά τα texel θα πρέπει να επιλέγονται λαμβάνοντας υπόψη το "χαρτογραφημένο" σχήμα του pixel στο χώρο υφής. Αυτή η μέθοδος ονομάζεται ανισότροπο φιλτράρισμα(«ανισότροπο φιλτράρισμα»). Η κανονική υφή mip ονομάζεται "ισότροπη" (ισότροπη ή ομοιόμορφη) επειδή φιλτράρουμε πάντα μαζί τετράγωνες περιοχές που αποτελούνται από texels. Ανισότροπο φιλτράρισμα σημαίνει ότι το σχήμα της περιοχής texel που χρησιμοποιούμε αλλάζει ανάλογα με τις περιστάσεις.

Περιγραφή αλγορίθμων υφής: φιλτράρισμα υφής

Φιλτράρισμα υφής

Πρόσφατα, οι εταιρείες τρισδιάστατων γραφικών υπολογιστών προσπαθούν συνεχώς να αυξάνουν τη λεπτομέρεια και την ποιότητα της εικόνας στην απόδοση σε υπολογιστή. Νέες τεχνολογίες και αρχιτεκτονικές τρισδιάστατης απόδοσης αναπτύσσονται συνεχώς, βελτιώνονται και εκσυγχρονίζονται οι αλγόριθμοι συμπίεσης για την αύξηση του εύρους ζώνης μνήμης, ενώ η αρχιτεκτονική μνήμης υφίσταται επίσης αλλαγές. Δυστυχώς, το χάσμα μεταξύ προηγμένων ιδεών στα τρισδιάστατα γραφικά και των συνηθισμένων υπολογιστών είναι αρκετά μεγάλο: ρεαλισμός στα σύγχρονα παιχνίδια κ.λπ. κατασκευασμένο με χρήση τεχνολογιών που αναπτύχθηκαν πριν από 1-2 χρόνια. Επιπλέον, η ισχύς των συνηθισμένων υπολογιστών είναι πολύ περιορισμένη, γι 'αυτό χρησιμοποιούνται πολύ απλοί αλγόριθμοι για παιχνίδια, τους οποίους θα συζητήσουμε σε αυτό το άρθρο: αυτό είναι η υφή και, πιο αναλυτικά, το φιλτράρισμα υφής.

Με έναν ιδανικό υπολογιστή με πολύ ανώτερη απόδοση, θα μπορούσαμε να προβάλλουμε μια εικόνα σε πραγματικό χρόνο με μια πολύ ρεαλιστική απόδοση. Θα ήταν δυνατό να μετρηθούν εκατομμύρια, ακόμη και δισεκατομμύρια pixel, ώστε καθένα από αυτά να ορίσει το δικό του χρώμα - σε αυτήν την περίπτωση, η εικόνα απλά δεν μπορεί να διακριθεί από το πραγματικό βίντεο. Αλλά δυστυχώς, μέχρι στιγμής αυτά είναι μόνο όνειρα: για τους υπάρχοντες υπολογιστές, εξακολουθεί να είναι πολύ δύσκολο να επεξεργάζονται ταυτόχρονα το σχέδιο αντικειμένων κατά την κίνηση κ.λπ. Επιπλέον, μέχρι στιγμής υπάρχει μια καταστροφική έλλειψη εύρους ζώνης μνήμης. Για τη διασφάλιση καλής ποιότητας σε εφαρμογές 3D, αναπτύσσονται τεχνολογίες που απλοποιούν τη διαδικασία σχεδίασης μιας εικόνας.

Μία από τις πιο χρησιμοποιούμενες τεχνολογίες που απλοποιούν τον υπολογισμό μιας εικόνας με αρκετά καλή ποιότητα είναι η υφή. Η υφή είναι μια εικόνα 2D που τοποθετείται σε ένα τρισδιάστατο αντικείμενο ή σε οποιαδήποτε επιφάνεια. Ας πάρουμε ως παράδειγμα την ακόλουθη κατάσταση: είστε προγραμματιστής και θέλετε ο χρήστης να δει έναν τοίχο από τούβλα. Δημιουργείται ένα τρισδιάστατο πλαίσιο τοίχου και μπορείτε να επιλέξετε τα τούβλα ξεχωριστά. Τώρα παίρνουμε μια 2D εικόνα ενός τούβλου και το βάζουμε σε ένα τούβλο σε ένα πλαίσιο 3D και ούτω καθεξής - ολόκληρο τον τοίχο. Το αποτέλεσμα είναι ένας κανονικός τοίχος 3D και το τσιπ γραφικών δεν χρειάζεται να σχεδιάζει και να υπολογίζει κάθε pixel - υπολογίζει τις συντεταγμένες του 3D wireframe, στο οποίο είναι προσαρτημένη η 2D εικόνα.

Υπάρχει μια ακόμη έννοια στο texturing που πρέπει να συζητηθεί. Κατά την επικάλυψη μιας εικόνας 2D, χωρίζεται σε πολλά χρωματιστά θραύσματα. Αυτό γίνεται για να κλιμακωθεί το αντικείμενο - η υφή είναι 2-διάστατη και το τρισδιάστατο αντικείμενο πρέπει να αλλάζει όταν πλησιάζετε ή απομακρύνεστε. Η υφή πρέπει επίσης να αλλάξει για να διατηρηθεί ο ρεαλισμός και η ποιότητα. Έτσι, η υφή χωρίζεται σε πολλά χρωματιστά θραύσματα, τα οποία ονομάζονται texels (texels - στοιχεία υφής). Στο μέλλον, για παράδειγμα, όταν πλησιάζετε ένα αντικείμενο, δεν χρειάζεται να φορτώσετε ξανά μια νέα υφή: τα texel λαμβάνονται από την αρχική υφή και αυξάνονται. Φυσικά, η ποιότητα χάνεται, αλλά παραμένει σε αρκετά υψηλό επίπεδο, επιπλέον, με αυτήν την προσέγγιση, ο επεξεργαστής γραφικών και η μνήμη εκφορτώνονται σημαντικά.

Mip-Mapping (mip-mapping)

Η κίνηση είναι χαρακτηριστικό όλων των αποδοθέντων αντικειμένων. ακόμα κι αν το ίδιο το αντικείμενο είναι ακίνητο, εξακολουθεί να αλλάζει όταν αλλάζει η οπτική γωνία του χαρακτήρα λόγω της κίνησής του. Επομένως, η υφή που τοποθετείται στο αντικείμενο πρέπει επίσης να κινείται - αυτό συνεπάγεται ορισμένες επιπλοκές και πρόσθετη επεξεργασία. Τι γίνεται όμως αν κοιτάξουμε το αντικείμενο από κάποια γωνία, για παράδειγμα, στο πάτωμα; Το δάπεδο μπορεί να καταλάβει μεγάλη επιφάνεια και για να διατηρηθεί ο ρεαλισμός, όσο πιο μακριά είναι από εμάς, τόσο μικρότερα είναι τα εξαρτήματά του (για παράδειγμα, πλακάκια). Για να διασφαλιστεί αυτό, η υφή πρέπει να μειωθεί με συγκεκριμένο τρόπο. Δυστυχώς, η απλή αλλαγή της ανάλυσης των υφών μπορεί να οδηγήσει σε ένα μάλλον δυσάρεστο αποτέλεσμα, όταν μια υφή συγχωνεύεται οπτικά με μια άλλη. Ένα άλλο δυσάρεστο αποτέλεσμα μπορεί να προκύψει εάν το texel είναι μεγαλύτερο από τον απαιτούμενο αριθμό pixel. Αυτό συμβαίνει όταν κοιτάτε μια υφή που είναι πολύ μακριά. Και οι δύο καταστάσεις προκύπτουν όταν εφαρμόζεται το παραδοσιακό anti-aliasing. Και εδώ είναι πραγματικά παραδείγματα αυτών των περιπτώσεων: σε αυτήν την περίληψη δεν υπάρχουν

Για να μετριαστούν τέτοιες καταστάσεις, δημιουργήθηκε mip-mapping (mip-mapping). Αυτή η τεχνολογία λειτουργεί πολύ απλά: η αρχική υφή δημιουργείται σε διάφορες καταστάσεις με τέτοιο τρόπο ώστε να εμφανίζεται σωστά η υφή σε διαφορετικές αποστάσεις και σε διαφορετικές γωνίες θέασης. Όταν πλησιάζετε ένα αντικείμενο, εμφανίζεται μια υφή με υψηλότερη ανάλυση και όταν απομακρύνεστε - με χαμηλή. Έτσι, η αντιστοίχιση mip βελτιώνει την ποιότητα της εικόνας και μειώνει την οδοντότητα. Ακολουθούν οι ίδιες εικόνες, μόνο με ενεργοποιημένη τη χαρτογράφηση mip: δεν υπάρχουν εικόνες σε αυτήν την περίληψη.

Παρατηρήσατε βελτίωση στην ποιότητα; Είναι ιδιαίτερα αισθητό στη δεύτερη εικόνα με κιτρινοκόκκινο σχέδιο. Παρακαλώ σημειώστε: όχι μόνο η ποιότητα των μακρινών υφών έχει βελτιωθεί: και οι κοντινές φαίνονται πολύ καλύτερες. Γενικά, η εικόνα με mip-mapping φαίνεται πολύ καλύτερη από ό,τι χωρίς αυτήν: δεν υπάρχουν πολλές παραμορφώσεις και παραμορφώσεις που είναι αισθητές κατά την κανονική εμφάνιση.

Διήθηση

Η υφή με κουκκίδες είναι, ίσως, ο κύριος τύπος υφής. Στην υφή σημείου, επιλέγεται ένα μόνο κομμάτι υφής (texel) και χρησιμοποιείται ως τιμή χρώματος για pixel. Το γεγονός είναι ότι αυτή η μέθοδος συνεπάγεται κάποια ανακρίβεια και, ως αποτέλεσμα, επιδείνωση της ποιότητας της εικόνας. Μια τέτοια εικόνα με τα υπάρχοντα πρότυπα είναι απλώς απαράδεκτη. Παρακάτω είναι μια υφή που έχει υποστεί επεξεργασία με σημειακή υφή (κάτω μέρος της εικόνας). Η εικόνα δείχνει τη θεωρητική υποβάθμιση της ποιότητας όταν επιλέγετε ένα πολύ μεγάλο μέγεθος texel.

Διγραμμικό φιλτράρισμα

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

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

Τριγραμμικό φιλτράρισμα

Το διγραμμικό φιλτράρισμα έλαβε τη δεύτερη γέννησή του με τη μορφή τριγραμμικού φιλτραρίσματος, η αρχή του οποίου είναι ακριβώς η ίδια, αλλά χρησιμοποιείται ένας βελτιωμένος αλγόριθμος υπολογισμού, ο οποίος αυξάνει την ακρίβεια σχεδίασης. Το τριγραμμικό φιλτράρισμα, όπως και το διγραμμικό φιλτράρισμα, χρησιμοποιεί μπλοκ των 4 texels, όπως και στο διγραμμικό φιλτράρισμα, η εικόνα κανονικοποιείται και, στη συνέχεια, η εικόνα κανονικοποιείται από το όριο των 4 texel. Το τελευταίο βήμα είναι η ανάλυση του ορίου και των δύο μπλοκ, με αποτέλεσμα να διορθώνονται πιθανά σφάλματα και ασυνέπειες στα όρια αυτών των 2 μπλοκ. Στο διγραμμικό φιλτράρισμα, είναι αρκετά συνηθισμένο να βλέπουμε γραμμές να εμφανίζονται στα όρια του μπλοκ που εξαφανίζονται όταν χρησιμοποιείται τριγραμμικό φιλτράρισμα. Επιπλέον, όταν χρησιμοποιείται τριγραμμικό φιλτράρισμα, οι παραμορφώσεις και οι ανωμαλίες αφαιρούνται καλύτερα κατά την κίνηση και κατά την αλλαγή της γωνίας θέασης. Παρακάτω είναι ένα διάγραμμα χρήσης τριγραμμικού φιλτραρίσματος και είναι σε δράση.

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

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

Ανισότροπο φιλτράρισμα

Το σχήμα των αντικειμένων με υφή, τόσο με διγραμμικό όσο και με τριγραμμικό φιλτράρισμα, μπορεί να παραμορφωθεί, επειδή Και τα δύο αυτά φιλτραρίσματα είναι ισότροπα - η εικόνα φιλτράρεται σε ένα συγκεκριμένο σχήμα - σε σχήμα τετραγώνου. Τα περισσότερα από τα σχηματισμένα αντικείμενα δεν ταιριάζουν σε αυτό το καθορισμένο και αμετάβλητο σχήμα: για την υψηλής ποιότητας επεξεργασία τους, είναι απαραίτητο να χρησιμοποιηθεί ένας άλλος τύπος φιλτραρίσματος - ανισότροπος. Η ανισοτροπία αποτελείται από πολλές λέξεις στα λατινικά και κυριολεκτικά σημαίνει "Ani" - όχι, "iso" - μια ορισμένη μορφή και "tropia" - ένα μοντέλο - δηλ. ακαθόριστα μοντέλα. Το όνομα αυτής της τεχνολογίας αντικατοπτρίζει την τεχνική εφαρμογή της. Το ανισότροπο φιλτράρισμα συνήθως λειτουργεί με τουλάχιστον 8 texels, προς όλες τις κατευθύνσεις των επιπέδων mip-map, ενώ χρησιμοποιεί εκ των προτέρων ένα μοντέλο αόριστου σχήματος. Ως αποτέλεσμα, ο θόρυβος και η παραμόρφωση των αντικειμένων αφαιρούνται και η εικόνα στο σύνολό της είναι καλύτερης ποιότητας.

Συγκρίνετε τις δύο εικόνες: στην πρώτη χρησιμοποιήθηκε ανισότροπο φιλτράρισμα 16-texel, με τη βοήθεια του οποίου εξαφανίστηκαν οι παραμορφώσεις μεταξύ των επιπέδων mip-map και του θορύβου της εικόνας, στη δεύτερη εικόνα, το ανισότροπο φιλτράρισμα απενεργοποιήθηκε.

Δώστε προσοχή στις μακρινές αποστάσεις της εικόνας: οι διαφορές μεταξύ ανισότροπου και ισοτροπικού φιλτραρίσματος είναι εμφανείς. Η ποιότητα υφής με ανισότροπο φιλτράρισμα παραμένει παρόμοια με την αρχική ακόμα και σε μεγάλες αποστάσεις. με το ισότροπο φιλτράρισμα, υπάρχει η τάση να «λειαίνει» η εικόνα, με αποτέλεσμα να χάνεται η ποιότητα. Το ανισότροπο φιλτράρισμα, όπως το τριγραμμικό φιλτράρισμα, μειώνει την τραχύτητα της υφής. Αλλά όταν χρησιμοποιείτε ανισότροπο φιλτράρισμα, η ποιότητα είναι ακόμα καλύτερη, γιατί. for χρησιμοποιεί πολύ μεγαλύτερο αριθμό μπλοκ για σύγκριση. Ακολουθεί ένα άλλο παράδειγμα που δείχνει το ανισότροπο φιλτράρισμα σε δράση:

Για πολύ καιρό, οι κάρτες γραφικών καταναλωτικής ποιότητας δεν έχουν δείξει την ποιότητα εικόνας που είναι δυνατή με το ανισότροπο φιλτράρισμα. Με την εμφάνιση τσιπ γραφικών όπως το NVIDIA GeForce2 και το ATI Radeon, κατέστη δυνατή η χρήση ανισότροπου φιλτραρίσματος, το οποίο αναλύει μπλοκ 16 texels σε υλικό. Οι κάρτες γραφικών GeForce3 και Radeon 8500 χρησιμοποιούν ήδη ανισότροπο φιλτράρισμα 32 texel. Η παρακάτω εικόνα δείχνει μια εικόνα που είναι κοντά σε αυτό που θα λαμβανόταν με το επαγγελματικό ανισότροπο φιλτράρισμα 64 texel:

Μελλοντικός…

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

Επιπροσθέτως:

Anti-aliasing και ανισότροπο φιλτράρισμα σήμερα: τι, πού και πόσο; Μέρος πρώτο

Στην πραγματικότητα, ένα άρθρο με τέτοιο τίτλο θα μπορούσε να ξεκινήσει με κάποια κοινοτοπία, όπως "κάθε χρήστης υπολογιστή έχει δει ποτέ τη δουλειά τέτοιων τεχνικών βελτίωσης τρισδιάστατης εικόνας όπως το anti-aliasing ή το ανισότροπο φιλτράρισμα". Ή αυτό: «ενώ τα πλοία μας οργώνουν το διάστημα, οι προγραμματιστές της NVIDIA και της ATI αναζητούν τρόπους για να βελτιώσουν την απόδοση γνωστών τεχνικών βελτίωσης εικόνας». Η δεύτερη κοινοτοπία έχει πολύ περισσότερες πιθανότητες να είναι ζωντανή με την έννοια ότι είναι ήδη ιντριγκαδόρικο με ένα είδος εμφάνισης του γεγονότος ότι θα διερευνήσουμε το ερώτημα ποιος και πόσο "βελτιστοποιήθηκε" στους οδηγούς τους.

Ωστόσο, εμείς, ίσως, θα κάνουμε χωρίς κοινοτοπίες καθόλου. Επειδή είναι πολύ πιο ενδιαφέρον να κάνουμε εικασίες σχετικά με το πόσες τεχνικές βελτίωσης εικόνας έχουν γίνει διαθέσιμες τώρα για έναν απλό χρήστη ή, θα ήταν πιο σωστό να πούμε, για έναν απλό παίκτη. Σήμερα οι παίκτες είναι οι πιο ενεργοί καταναλωτές όλων των νέων τεχνολογιών και καινοτομιών στο 3D. Σε γενικές γραμμές, σήμερα ένας ισχυρός επιταχυντής 3D χρειάζεται μόνο για την αναπαραγωγή των πιο πρόσφατων παιχνιδιών υπολογιστή με ισχυρούς κινητήρες 3D που λειτουργούν με πολύπλοκα shader διαφόρων εκδόσεων. Τώρα δεν θα εκπλήξετε κανέναν με το παιχνίδι με pixel shaders έκδοση 2.0 - στον κόσμο του gaming, μια τέτοια διασκέδαση γίνεται σιγά σιγά καθημερινό φαινόμενο. Τα περισσότερα παιχνίδια εξακολουθούν να κυκλοφορούν στο shader μοντέλο 1.1, επειδή το πιο σημαντικό πράγμα για τους προγραμματιστές παιχνιδιών είναι να διασφαλίσουν ότι το παιχνίδι τους τρέχει ανεκτά καλά με το υλικό που διαθέτει η συντριπτική πλειοψηφία των παικτών. Η κατασκευή ενός υπερ-σοφιστικέ κινητήρα τώρα είναι μεγάλη σπατάλη, ακόμη και κίνδυνος. Κρίνετε μόνοι σας: η ανάπτυξη ενός κινητήρα κατηγορίας Doom 3 ή Half-Life 2 (καλά, ας προσθέσουμε εδώ τον πρωτοπόρο του shaders 2.0 σε όλο του το μεγαλείο, το πνευματικό τέκνο της Crytek - FarCry, για να αποκτήσετε μια αληθινή πανταχού παρούσα τριάδα) ένα τεράστιο χρονικό διάστημα, το οποίο φέρνει στην ανάπτυξη πρόσθετες δυσκολίες - είναι απαραίτητο να αναπτυχθεί ο κινητήρας σε τέτοιο χρόνο ώστε οι καινοτομίες και οι πρωτότυπες εξελίξεις να μην καταστούν παρωχημένες κατά τη δημιουργία του κινητήρα.

Εάν αμφιβάλλετε ότι αυτό μπορεί να συμβεί, τότε είναι εντελώς μάταιο - στην περίπτωση του Half-Life 2, όλα ήταν ακριβώς έτσι (και το Doom 3 αναπτύχθηκε με προσοχή στο GeForce 3 και βγήκε όταν το GeForceFX). Επίσης, η ανάπτυξη κινητήρων αυτής της κατηγορίας συνδέεται με υψηλό κόστος ανάπτυξης: οι ταλαντούχοι προγραμματιστές δεν είναι φθηνοί σήμερα. Και τον τελευταίο καιρό, έχει δοθεί μεγάλη προσοχή (ακόμη και περισσότερο από όσο χρειάζεται) στην «πολιτική» όσον αφορά τις μηχανές παιχνιδιών.

Ναι, σωστά, καλά ακούσατε, το 3D έχει από καιρό τη δική του πολιτική που βασίζεται, φυσικά, στα συμφέροντα δύο κολοσσών στη δομή των επεξεργαστών γραφικών: ATI και NVIDIA. Ο Σοβαρός Καναδάς αγωνίζεται εδώ και πολύ καιρό ενάντια στην ηλιόλουστη Καλιφόρνια και μέχρι στιγμής δεν υπάρχει τέλος σε αυτή την αντιπαράθεση, η οποία φυσικά ωφελεί μόνο εμάς, τους απλούς καταναλωτές. Τώρα δεν αρκεί να αναπτύξετε μια δροσερή μηχανή - για να πετύχετε, πρέπει να ζητήσετε την υποστήριξη είτε της ντίβας της Καλιφόρνιας NVIDIA είτε της καναδικής ATI, ευτυχώς, τώρα και η πρώτη και η δεύτερη έχουν τα δικά τους προγράμματα συνεργατών για προγραμματιστές παιχνιδιών. Η NVIDIA αποκαλεί ένα τέτοιο πρόγραμμα "The way it's meant to play", ενώ η ATI το αποκαλεί "Get it in the game". Όλα είναι πολύ εύγλωττα και ξεκάθαρα: Η NVIDIA λέει ότι "πρέπει να παίξεις έτσι" και καθόλου έτσι, και η ATI διαβεβαιώνει ότι ό,τι θέλουμε, σίγουρα θα μπούμε στο ίδιο το παιχνίδι. Αρκετά δελεαστικό, έτσι δεν είναι; Οι κινητήρες της κατηγορίας "Doom 3" και "Half-Life 2" (στην περίπτωση του τελευταία, ο κινητήρας ονομάζεται Source, ωστόσο για ευκολία αντίληψης, θα τον ονομάσουμε "Half-Life 2" για να διατηρήσουμε τη σωστή συσχέτιση) και αρχικά αναπτύχθηκαν σε στενή συνεργασία με μηχανικούς κατασκευαστών τσιπ γραφικών, ώστε τα παιχνίδια να λειτουργούν καλύτερα στο GPU ενός κατασκευαστή.

Ως εκ τούτου, όπως μπορούμε να δούμε, είναι πολύ προβληματικό να κάνουμε επαναστάσεις στον τομέα των νέων μηχανών γραφικών 3D, και επομένως αυτές οι ίδιες οι επαναστάσεις στον κόσμο των μηχανών παιχνιδιών δεν συμβαίνουν τόσο συχνά. Ωστόσο, η ποιότητα της εικόνας πρέπει να βελτιωθεί με κάποιο τρόπο. Εάν απλώς αυξήσουμε τον αριθμό των πολυγώνων στο πλαίσιο, λαμβάνοντας έτσι μια οπτικά πιο όμορφη εικόνα για αντίληψη, τότε στο τέλος θα καταλήξουμε στο συμπέρασμα ότι ο επιταχυντής δεν θα μπορεί να επεξεργαστεί τη σκηνή με αποδεκτό ρυθμό καρέ, αλλά κάτι θα λείπει ακόμα στην εικόνα. Οι σκάλες των pixel θα παραμείνουν και η ποιότητα των υφών δεν θα βελτιωθεί. Υπάρχουν λιγότερο προφανείς τρόποι βελτίωσης της ποιότητας μιας τρισδιάστατης εικόνας σε μια οθόνη - ανισότροπο φιλτράρισμα και αντι-αλλοίωση. Αυτές οι τεχνικές βελτίωσης εικόνας δεν έχουν καμία σχέση απευθείας με τον ίδιο τον κινητήρα 3D και, φυσικά, δεν μπορούν να κάνουν τον ίδιο τον κινητήρα πιο όμορφο, αλλά μπορούν να λειτουργήσουν με υφές και εικόνες με τέτοιο τρόπο ώστε στην έξοδο, δηλαδή στην στην οθόνη, μπορούμε να δούμε μια οπτικά πιο όμορφη και απαλή εικόνα.

Είναι στον τομέα του ανισότροπου φιλτραρίσματος και της αντιπαραβολής που πραγματοποιείται ένας τεράστιος αριθμός βελτιστοποιήσεων προγραμμάτων οδήγησης τόσο από την NVIDIA όσο και από την ATI. Οι εταιρείες έχουν διαφορετικές προσεγγίσεις και πολιτικές σχετικά με αυτές τις βελτιστοποιήσεις, μερικές φορές όχι εντελώς δίκαιες για τους χρήστες. Ωστόσο, το άρθρο μας έχει σχεδιαστεί απλώς για να καταλάβει τι είναι καλό και τι είναι κακό στις προσεγγίσεις και των δύο κατασκευαστών GPU και τι μπορεί σήμερα να βελτιώσει την ποιότητα της εικόνας σε παιχνίδια 3D.

Τι είναι το anti-aliasing και με τι τρώγεται;

Πριν αρχίσουμε να μπαίνουμε σε λεπτομέρειες σχετικά με ένα τόσο φλέγον θέμα όπως η βελτιστοποίηση του anti-aliasing και των διαφόρων τύπων φιλτραρίσματος υφής, δεν βλάπτει (και ακόμη περισσότερο, είναι απαραίτητο) να αποκτήσουμε κάποιες θεωρητικές γνώσεις σχετικά με το θέμα της σημερινής μας συνομιλίας.

Λοιπόν, antialiasing - τι είναι και γιατί χρειάζεται. Πρώτα απ 'όλα, στη λέξη "anti-aliasing" είναι απαραίτητο να επισημανθεί το μέρος της - "anti". Είναι πολύ ξεκάθαρο ότι αυτό το μέρος της λέξης υπονοεί ότι το ίδιο το φαινόμενο του «anti-aliasing» αποσκοπεί στην καταπολέμηση κάτι. Όπως μπορείτε να μαντέψετε, στην περίπτωσή μας - με το "aliasing". Επομένως, για εμάς αυτή τη στιγμή είναι σημαντικό να καταλάβουμε ξεκάθαρα τι είναι το περιβόητο "aliasing".

Αρχικά, πρέπει να κατανοήσετε ξεκάθαρα ότι η εικόνα που εμείς και εσείς μπορούμε να παρατηρούμε καθημερινά στις οθόνες των οθονών μας αποτελείται από τα λεγόμενα μικρά σωματίδια, τα οποία συνήθως ονομάζονται pixel. Μια καλή αναλογία με αυτή την έννοια είναι το παράδειγμα του καρό χαρτιού. Η εικόνα στην οθόνη είναι το ίδιο καρό χαρτί, μόνο που σε αυτή την περίπτωση είναι πολύ πολύ μικρά. Αν λένε ότι η ανάλυση οθόνης είναι 1024x768 με χρώμα 32 bit, τότε αυτό σημαίνει ότι 1024 κουκκίδες ταιριάζουν οριζόντια στην οθόνη και 768 κουκκίδες κάθετα. Επιπλέον, κάθε κουκκίδα μπορεί να βαφτεί με ένα χρώμα διαθέσιμο στην παλέτα 32 bit . Προς το παρόν, το χρώμα 32 bit είναι το όριο αυτού που μπορούμε να επιτύχουμε σε μια οθόνη υπολογιστή. Τα καλύτερα μυαλά της ανθρωπότητας (όπως το Carmack) μιλούν ήδη για την ανάγκη μετάβασης σε χρώμα 64-bit και επισημαίνουν τα προφανή μειονεκτήματα της παλέτας 32-bit. Κάποτε, κατά τη μετάβαση από το χρώμα 16-bit σε 32-bit, αυτή η ανάγκη ήταν σαφώς δικαιολογημένη και υπήρχαν πραγματικοί λόγοι για τους οποίους θα άξιζε τη μετάβαση σε 32-bit. Η μετάβαση σε χρώμα 64-bit σήμερα είναι περισσότερο υπερβολική. Ακριβώς όπως στην περίπτωση των 16 και των 32 bit, θα πρέπει να περιμένει κανείς πολύ καιρό για να μπορέσουν οι επιταχυντές όλων των επιπέδων να επεξεργαστούν χρώμα 64 bit με αποδεκτή ταχύτητα.

Η συντριπτική πλειονότητα των άρθρων που ασχολούνται με τον ένα ή τον άλλο τρόπο με τις αρχές της κατασκευής εικόνων σε 3D και όπου γίνεται συζήτηση για το anti-aliasing είναι γεμάτα με ένα απλό, αλλά ταυτόχρονα το πιο αποτελεσματικό παράδειγμα, που μπορεί να χρησιμοποιηθεί για να καταλάβουμε πολύ καλά τι είναι το anti-aliasing. Κοιτάξτε τη μεγεθυμένη επιγραφή "Αναβάθμιση", που έγινε στο Word'e και, στη συνέχεια, απλά μεγεθύνθηκε στο Photoshop. Δεν φαίνεται πολύ καλό, έτσι δεν είναι; Στα πλαϊνά των γραμμάτων είναι ορατή η λεγόμενη χτένα ή, όπως ονομάζεται επίσης, «σκάλα». Ουσιαστικά, αυτή ακριβώς η «χτένα» ή η «σκάλα» είναι αλιευτική. Μπορείτε να φανταστείτε ένα άλλο παράδειγμα με τη μορφή ενός γεωμετρικού αντικειμένου, για παράδειγμα, μιας πυραμίδας. Κατά μήκος των άκρων του, η ίδια «χτένα» είναι επίσης ευδιάκριτη. Τώρα δείτε μια άλλη εικόνα της ίδιας πυραμίδας, αλλά διπλασιασμένη σε ανάλυση. Φαίνεται ήδη πολύ καλύτερα, και η "χτένα" είναι σχεδόν αόρατη. Όπως προαναφέρθηκε, αυτό το εφέ, που εξομαλύνει τη «χτένα», επιτεύχθηκε λόγω του ότι αυξήσαμε την ανάλυση κατά 2 φορές.

Τι σημαίνει αυτό? Ας υποθέσουμε ότι έχουμε αποδώσει μια πυραμίδα με ανάλυση 200x200 pixels (παραπάνω έχουμε ήδη διευκρινίσει λεπτομερώς το ερώτημα τι είναι τα pixel και γιατί χρειάζονται). Αυξήσαμε τον αριθμό των κουκκίδων κάθετα και οριζόντια κατά ακριβώς 2 φορές, δηλαδή πήραμε μια εικόνα με ανάλυση 400 κουκκίδες κάθετα και 400 κουκκίδες οριζόντια. Αυτό σημαίνει επίσης ότι ο αριθμός των σημείων στο αντικείμενο μας που ήταν στη σκηνή έχει διπλασιαστεί. Τι έδωσε σε σχέση με το aliasing εφέ μας; Προφανώς, έχει γίνει ελάχιστο, δηλαδή εξομαλύνθηκε - άλλωστε, ο αριθμός των σημείων κατά μήκος των άκρων του αντικειμένου έχει επίσης διπλασιαστεί. Η λέξη "ισοπεδωμένο" είναι το κλειδί εδώ. Εξάλλου, το anti-aliasing ονομάζεται anti-aliasing με διαφορετικό τρόπο, το οποίο αντανακλά την ίδια την ουσία της τεχνολογίας που εξομαλύνει την ίδια τη «σκάλα» κατά μήκος των άκρων των τρισδιάστατων αντικειμένων.

Μάλιστα, μετά την αύξηση της ανάλυσης, η «σκάλα» από την άκρη της πυραμίδας δεν έχει πάει πουθενά - παραμένει εκεί όπως πριν. Ωστόσο, λόγω του γεγονότος ότι αυξήσαμε την ανάλυση (που σημαίνει αύξηση των σημείων που δαπανώνται για την εμφάνιση της πυραμίδας), το φαινόμενο «σκάλας» εξομαλύνθηκε λόγω των ιδιαιτεροτήτων της ανθρώπινης όρασης, η οποία δεν βλέπει πλέον pixel στο την άκρη του αντικειμένου πιο καθαρά. Είναι απολύτως σαφές ότι εάν αυξήσετε την ανάλυση όλο και περισσότερο, τότε το αποτέλεσμα του aliasing θα παρατηρηθεί σε όλο και μικρότερο βαθμό. Πιο συγκεκριμένα, το ανθρώπινο μάτι θα αρχίσει να το παρατηρεί σε όλο και μικρότερο βαθμό, αφού το ίδιο το φαινόμενο aliasing δεν θα πάει πουθενά. Αλλά είναι επίσης απολύτως σαφές ότι δεν θα είναι δυνατή η επ' αόριστον αύξηση της ανάλυσης, επειδή οι οθόνες, ακόμη και οι πιο σύγχρονες, έχουν πεπερασμένες αναλύσεις, και όχι τόσο μεγάλες, που δεν θα μας επιτρέψουν να αυξάνουμε συνεχώς τον αριθμό των σημείων. Με απλά λόγια, το απλούστερο αποτέλεσμα κατά της παραμόρφωσης μπορεί να επιτευχθεί αυξάνοντας απλώς την ανάλυση της οθόνης, αλλά η ανάλυση δεν μπορεί να αυξηθεί επ' αόριστον. Φαίνεται ότι δεν υπάρχει διέξοδος; Ωστόσο, στην πραγματικότητα βρέθηκε, και βασίζεται στο ίδιο χαρακτηριστικό της ανθρώπινης όρασης.

Αυτό επιτεύχθηκε χάρη στις ομαλές μεταβάσεις των χρωμάτων στην εικόνα. Στην πραγματικότητα, η οπτική βελτίωση της εικόνας δεν οφείλεται σε φυσική αύξηση της ανάλυσης, αλλά σε, ας πούμε, αύξηση χρώματος στην ανάλυση. Σε αυτό το άρθρο, δεν θα περιγράψουμε τους αλγόριθμους για τον υπολογισμό αυτών των σημείων και δεν θα πάμε στα βάθη των μαθηματικών υπολογισμών, αλλά θα μιλήσουμε μόνο για την αρχή λειτουργίας μιας τέτοιας αντι-αλλοίωσης. Η σκάλα στα όρια των αντικειμένων είναι ορατή μόνο επειδή τις περισσότερες φορές οι άκρες των τρισδιάστατων αντικειμένων ξεχωρίζουν πολύ έντονα χρωματικά από την υπόλοιπη εικόνα και αντιπροσωπεύουν λεπτές γραμμές ενός pixel. Αυτό μπορεί να αντισταθμιστεί τοποθετώντας έναν αριθμό κουκκίδων με χρώματα που υπολογίζονται από τον τύπο των τιμών χρώματος της ίδιας της άκρης και των σημείων δίπλα σε αυτήν την άκρη. Δηλαδή, εάν η άκρη του αντικειμένου είναι μαύρη και το φόντο λευκό, τότε η επιπλέον κουκκίδα δίπλα στη γραμμή της μαύρης άκρης θα γίνει γκρι. Όσο περισσότερα από αυτά τα πρόσθετα σημεία κοντά στην άκρη οποιουδήποτε τρισδιάστατου αντικειμένου, τόσο πιο λείες φαίνονται οι άκρες του και τόσο λιγότερο ορατή η σκάλα. Αυτή η μέθοδος ονομάζεται αντιμετάθεση άκρων. Η ποιότητα του σετ anti-aliasing στο πρόγραμμα οδήγησης της κάρτας γραφικών, όπως: 2x, 4x, 6x, 8x σημαίνει τον αριθμό των επιπλέον εικονοστοιχείων που πρέπει να τοποθετηθούν γύρω από τη γραμμή που χρειάζεται anti-aliasing.

Ανισότροπο φιλτράρισμα: ένα μίνι εκπαιδευτικό πρόγραμμα για αρχάριους

Για να καταλάβετε τι είναι φιλτράρισμα, πρέπει να έχετε κάποιες βασικές γνώσεις. Έχουμε ήδη ανακαλύψει ότι η εικόνα στην οθόνη αποτελείται από πολλά pixel, ο αριθμός των οποίων καθορίζεται από την ανάλυση. Για να εμφανίσετε μια έγχρωμη εικόνα, η κάρτα γραφικών σας πρέπει να καθορίσει το χρώμα κάθε pixel. Το χρώμα του καθορίζεται με την επικάλυψη εικόνων υφής σε πολύγωνα που βρίσκονται σε τρισδιάστατο χώρο. Οι εικόνες υφής αποτελούνται από pixel, ή μάλλον, texels, δηλαδή, ένα texel είναι ένα pixel μιας δισδιάστατης εικόνας που τοποθετείται σε μια επιφάνεια 3D. Το κύριο δίλημμα είναι: ποια texel ή texel καθορίζουν το χρώμα ενός pixel στην οθόνη. Για να αναπαραστήσουμε το πρόβλημα φιλτραρίσματος, ας φανταστούμε μια εικόνα. Ας υποθέσουμε ότι η οθόνη σας είναι μια πλάκα με πολλές στρογγυλές τρύπες, καθεμία από τις οποίες είναι ένα pixel. Για να προσδιορίσετε τι χρώμα έχει ένα pixel σε σχέση με την τρισδιάστατη σκηνή πίσω από την πλάκα, απλώς κοιτάξτε μέσα από μια από τις τρύπες.

Και τώρα ας φανταστούμε μια δέσμη φωτός που περνά μέσα από μια από τις τρύπες και χτυπά το ανάγλυφο πολύγωνό μας. Αν η τελευταία είναι παράλληλη με την οπή από την οποία διέρχεται η φωτεινή δέσμη, τότε η φωτεινή κηλίδα θα έχει σχήμα κύκλου. Διαφορετικά, εάν το πολύγωνο δεν είναι παράλληλο με την τρύπα, το φωτεινό σημείο παραμορφώνεται και έχει ελλειπτικό σχήμα. Πιστεύουμε ότι πολλοί αναγνώστες αυτή τη στιγμή θέτουν ένα ερώτημα: "πώς σχετίζονται όλες αυτές οι πλάκες, μια τρύπα, μια ακτίνα φωτός με το πρόβλημα του προσδιορισμού του χρώματος ενός pixel;" Προσοχή! Φράση κλειδί: όλα τα πολύγωνα που βρίσκονται στο φωτεινό σημείο καθορίζουν το χρώμα του εικονοστοιχείου. Όλα τα παραπάνω είναι οι απαραίτητες βασικές γνώσεις που χρειάζονται για την κατανόηση των διαφόρων αλγορίθμων φιλτραρίσματος.

Και τώρα, για να κατανοήσετε καλύτερα σε τι χρησιμεύει το φιλτράρισμα, ας εξετάσουμε τις συνεχιζόμενες διαδικασίες χρησιμοποιώντας το παράδειγμα του θρυλικού Quake 3 Arena. Φανταστείτε κάποιου είδους διάδρομο με πολλά τετράγωνα και διάφορα στολίδια (ευτυχώς, αυτό είναι αρκετό στο Quake 3 Arena). Το στολίδι στην αρχή του διαδρόμου είναι πολύ λεπτομερές, και προς το τέλος του διαδρόμου (ορίζοντα), τα στοιχεία του στολισμού γίνονται όλο και μικρότερα, δηλ. εμφανίζονται με λιγότερα pixel. Ως αποτέλεσμα, χάνονται λεπτομέρειες όπως ραφές μεταξύ διακοσμητικών στοιχείων, γεγονός που, κατά συνέπεια, οδηγεί σε υποβάθμιση της ποιότητας της εικόνας.

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

Σημειακή δειγματοληψία

Η δειγματοληψία σημείου είναι ο ευκολότερος τρόπος προσδιορισμού του χρώματος ενός pixel. Αυτός ο αλγόριθμος βασίζεται σε μια εικόνα υφής: επιλέγεται μόνο ένα texel, το οποίο βρίσκεται πιο κοντά στο κέντρο του φωτεινού σημείου και το χρώμα του εικονοστοιχείου καθορίζεται από αυτό. Δεν είναι δύσκολο να μαντέψει κανείς ότι αυτό δεν είναι απολύτως αλήθεια. Πρώτον, το χρώμα ενός pixel καθορίζεται από πολλά texel και επιλέξαμε μόνο ένα. Δεύτερον, το σχήμα της φωτεινής κηλίδας μπορεί να αλλάξει και ο αλγόριθμος δεν το λαμβάνει υπόψη. Αλλά μάταια!

Το κύριο μειονέκτημα της δειγματοληψίας ροής είναι το γεγονός ότι όταν το πολύγωνο είναι κοντά στην οθόνη, ο αριθμός των pixel θα είναι πολύ μεγαλύτερος από τον αριθμό των texel, κάτι που θα επηρεάσει πολύ την ποιότητα της εικόνας. Το λεγόμενο φαινόμενο αποκλεισμού, όπως πιστεύουμε, πολλοί θα μπορούσαν να παρατηρήσουν σε παλιά παιχνίδια υπολογιστή, για παράδειγμα, στο ίδιο θρυλικό Doom.

Το Point Sampling έχει ένα πλεονέκτημα. Λόγω του γεγονότος ότι το χρώμα των εικονοστοιχείων καθορίζεται από ένα μόνο texel, αυτή η μέθοδος δεν είναι κρίσιμη για το εύρος ζώνης της μνήμης και αυτό δίνει αυτόματα σε αυτήν τη μέθοδο φιλτραρίσματος τεράστια μερίσματα με την έννοια ότι πολύ λίγοι πόροι 3D επιταχυντή δαπανώνται για το φιλτράρισμα σύμφωνα με αυτό. σχέδιο..

Διγραμμικό φιλτράρισμα

Το Bi-Linear Filtering είναι ένα διγραμμικό φιλτράρισμα που βασίζεται στη μέθοδο χρήσης της τεχνικής παρεμβολής. Για τον προσδιορισμό των επιθυμητών texel, χρησιμοποιείται το κύριο σχήμα του φωτεινού σημείου, δηλαδή ένας κύκλος. Στο παράδειγμά μας με έναν κύκλο, ο τελευταίος προσεγγίζεται κατά 4 texel. Όπως μπορείτε να δείτε, τα πράγματα είναι κάπως καλύτερα εδώ από ό,τι με το Point Sampling. Το διγραμμικό φιλτράρισμα χρησιμοποιεί ήδη 4 texel.

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

Η ασάφεια δεν είναι σε καμία περίπτωση το κύριο πρόβλημα του διγραμμικού φιλτραρίσματος. Το γεγονός είναι ότι η προσέγγιση εκτελείται σωστά μόνο για αντικείμενα που βρίσκονται παράλληλα με την οθόνη ή το σημείο παρατήρησης, ενώ το 99% των αντικειμένων σε οποιοδήποτε παιχνίδι υπολογιστή δεν είναι παράλληλα με το σημείο παρατήρησης. Από αυτό μπορούμε να συμπεράνουμε ότι το 99% των αντικειμένων θα προσεγγιστούν λανθασμένα. Πάρτε, για παράδειγμα, τον κύκλο μας - το πολύγωνο δεν είναι παράλληλο με το σημείο παρατήρησης, επομένως πρέπει να προσεγγίσουμε την έλλειψη, και προσεγγίζουμε τον κύκλο, κάτι που είναι εξαιρετικά λάθος. Επιπλέον, το διγραμμικό φιλτράρισμα είναι πολύ πιο απαιτητικό για το εύρος ζώνης των δεδομένων μνήμης, κάτι που, γενικά, είναι κάτι παραπάνω από λογικό, δεδομένου ότι το διγραμμικό φιλτράρισμα χρησιμοποιεί ήδη 4 texels για τον προσδιορισμό του χρώματος ενός pixel.

Κρίνοντας από τις πληροφορίες στα φόρουμ και από άρθρα στο Διαδίκτυο, το ATi είναι δύσκολο με το τριγραμμικό φιλτράρισμα υφής στον νέο επεξεργαστή γραφικών X800. Ωστόσο, υπάρχουν επίσης σθεναρά υπερασπιζόμενοι ATi. Σε γενικές γραμμές, τέτοιες συζητήσεις μας θυμίζουν ένα σκάνδαλο χρόνων με την nVidia.

Αφορμή για μια τόσο έντονη συζήτηση ήταν ένα άρθρο στο γερμανικό site Computerbase. Έδειξε πώς το ATi χρησιμοποιεί βελτιστοποιημένο τριγραμμικό φιλτράρισμα υφής, που συχνά αποκαλείται "brilinear" (brilinear) λόγω ενός μείγματος διγραμμικού και τριγραμμικού φιλτραρίσματος, στους επεξεργαστές γραφικών Radeon 9600 και X800. Τα νέα ήταν πραγματικά εκπληκτικά, καθώς η ATi πάντα μιλούσε για τη χρήση αληθινού τριγραμμικού φιλτραρίσματος.

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

Θα υπάρξει συνέχεια; Ίσως, επειδή η διαμάχη σχετικά με το φιλτράρισμα briline που ανακαλύφθηκε πρόσφατα στις κάρτες Radeon 9600 και X800 δεν υποχωρεί. Θα πρέπει να δοθεί πίστωση στην ATi για το γεγονός ότι η ποιότητα εικόνας των καρτών δεν υποφέρει οπτικά λόγω αυτού του φιλτραρίσματος. Τουλάχιστον δεν έχουμε παραδείγματα για το αντίθετο. Ενώ το φιλτράρισμα με βραλίνη εκδηλώνεται κάτω από τεχνητά δημιουργημένες εργαστηριακές συνθήκες. Ταυτόχρονα, το ATi δεν επιτρέπει πλήρες τριγραμμικό φιλτράρισμα για τις αναφερόμενες κάρτες, είτε είναι προσαρμοστικό είτε όχι. Λόγω του νέου φιλτραρίσματος, οι τιμές απόδοσης στις δοκιμές δεν δείχνουν το πλήρες δυναμικό του X800, αφού οι τιμές FPS λαμβάνονται μετά από βελτιστοποίηση, η επίδραση των οποίων στην ταχύτητα είναι δύσκολο να εκτιμηθεί. Και η λέξη «προσαρμοστικό» αφήνει μια πικρή επίγευση. Η ATi δεν μας έδωσε πληροφορίες για τον μηχανισμό του προγράμματος οδήγησης και έχει δηλώσει πολλές φορές ότι η κάρτα παρέχει πλήρες τριγραμμικό φιλτράρισμα. Μόνο μετά την προαναφερθείσα αποκάλυψη, η ATi παραδέχτηκε ότι το φιλτράρισμα είχε βελτιστοποιηθεί. Ας ελπίσουμε ότι σε άλλα μέρη δεν υπάρχει τέτοιος οδηγός «προσαρμοστικότητας».

Ωστόσο, οι κατασκευαστές κινούνται αργά αλλά σταθερά προς τη στιγμή που θα ξεπεραστεί το επίπεδο ανοχής. Η "προσαρμοστικότητα" ή ο ορισμός της εφαρμογής που εκκινείται δεν επιτρέπει στα δοκιμαστικά προγράμματα να δείχνουν την πραγματική απόδοση της κάρτας στα παιχνίδια. Η ποιότητα της εικόνας στο παιχνίδι μπορεί να διαφέρει από το ένα πρόγραμμα οδήγησης στο άλλο. Οι κατασκευαστές είναι ελεύθεροι να παίζουν με τον οδηγό, ανάλογα με την απόδοση που χρειάζεται το τμήμα μάρκετινγκ αυτή τη στιγμή. Λοιπόν, το δικαίωμα του καταναλωτή να γνωρίζει τι πραγματικά αγοράζει δεν ενδιαφέρει πλέον κανέναν εδώ. Όλα αυτά αφήνονται στα ΜΜΕ - ας εκπληρώσουν την εκπαιδευτική τους αποστολή. Και τα κόλπα φιλτραρίσματος που συζητήσαμε στο άρθρο μας είναι μόνο οι πιο διάσημες από αυτές τις περιπτώσεις. Τι άλλο κρύβεται από την προσοχή μας, μπορούμε μόνο να μαντέψουμε.

Κάθε κατασκευαστής αποφασίζει μόνος του ποιο επίπεδο ποιότητας εικόνας θα παρέχει ως στάνταρ. Ωστόσο, οι κατασκευαστές θα πρέπει να τεκμηριώνουν τις βελτιστοποιήσεις που χρησιμοποιούν, ειδικά εάν είναι κρυμμένες από γνωστές δοκιμές, όπως στο πρόσφατο παράδειγμα ATi. Η λύση είναι προφανής: να είναι δυνατή η απενεργοποίηση των βελτιστοποιήσεων! Τότε ο καταναλωτής θα μπορεί να αποφασίσει μόνος του τι είναι πιο σημαντικό για αυτόν - περισσότερα FPS ή καλύτερη ποιότητα. Δεν μπορείτε να βασιστείτε στη Microsoft ούτε ως διαιτητή. Οι δοκιμές WHQL δεν καθορίζουν πολλά πράγματα και μπορούν εύκολα να παρακαμφθούν: γνωρίζετε την έννοια της λέξης "προσαρμοστικό";

Επί του παρόντος γνωστές βελτιστοποιήσεις φιλτραρίσματος
ATi nVidia
Τρίγραμμος
βελτιστοποίηση
R9600
Χ800
GF FX5xxx
(GF 6xxx)*
Γωνιακή βελτιστοποίηση
ανισότροπο φιλτράρισμα
R9xxx
Χ800
GF 6xxx
Προσαρμοστικό
ανισότροπο φιλτράρισμα
R9xxx
Χ800
GF FX5xxx
GF 6xxx
Βελτιστοποίηση σταδίου R9xxx
Χ800
GF FX5xxx
Βελτιστοποίηση LOD R9xxx
X800(?)

Γενικά, τέτοιες συζητήσεις έχουν τα πλεονεκτήματά τους: οι αγοραστές και πιθανώς οι πελάτες OEM αρχίζουν να ακούν το πρόβλημα. Δεν έχουμε καμία αμφιβολία ότι η μανία για αχαλίνωτες βελτιστοποιήσεις θα συνεχιστεί. Ωστόσο, μια ακτίνα φωτός εμφανίστηκε στο σκοτεινό βασίλειο, κάτι που αποδείχθηκε ξεκάθαρα από την nVidia με την τριγραμμική βελτιστοποίησή της. Ας ελπίσουμε για τα επόμενα βήματα!

ΚΑΤΗΓΟΡΙΕΣ

Δημοφιλή ΑΡΘΡΑ

2022 "kingad.ru" - υπερηχογραφική εξέταση ανθρώπινων οργάνων