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

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

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

Διαμόρφωση υπολογιστή:
Επεξεργαστής: 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 16xQBilinear/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. Τώρα ας περιστρέψουμε το πλέγμα και ας έχουμε το ίδιο πράγμα: ένα σημείο από ένα εικονοστοιχείο θα καλύπτει πολλά texel. Αλλά ένα pixel μπορεί να έχει ένα χρώμα και αν υπάρχουν πολλά texel σε αυτό, τότε χρειαζόμαστε έναν αλγόριθμο με τον οποίο θα προσδιορίσουμε το χρώμα του - ονομάζεται φιλτράρισμα υφής.


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


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


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

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


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


Και τώρα, για το φιλτράρισμα, δεν λαμβάνεται μόνο η ίδια η υφή, αλλά και ο χάρτης mipm: ανάλογα με το αν η υφή είναι πιο μακριά ή πιο κοντά από το πρόγραμμα αναπαραγωγής, λαμβάνεται είτε μικρότερο είτε μεγαλύτερο mipmap υφής και ήδη πάνω του τα 4 texels πιο κοντά στο κέντρο του εικονοστοιχείου λαμβάνονται, και διενεργείται διγραμμική ανάλυση διήθησης. Στη συνέχεια, λαμβάνονται 4 texels πιο κοντά στο εικονοστοιχείο της αρχικής υφής και λαμβάνεται και πάλι το "μέσο" χρώμα. Μετά από αυτό, το "μέσο" χρώμα λαμβάνεται από τα μέσα χρώματα του 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 από την εικόνα υφής που βρίσκεται πιο κοντά στο κέντρο του φωτεινού σημείου. Παρουσιάζεται σφάλμα επειδή το χρώμα ενός pixel καθορίζεται από πολλά texel, αλλά επιλέχθηκε μόνο ένα.

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

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

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

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

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

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

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

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

Ρύζι. 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Mip-Mapping

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

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

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

Διήθηση

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

Διήθηση Bilineat

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Στην πραγματικότητα, ένα άρθρο με έναν τέτοιο τίτλο θα μπορούσε να ξεκινήσει με κάποια κοινοτοπία όπως «κάθε χρήστης υπολογιστή έχει δει κάποια στιγμή τη λειτουργία τεχνικών βελτίωσης τρισδιάστατης εικόνας, όπως το 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 και κυκλοφόρησε όταν το GeForce FX). Επίσης, η ανάπτυξη κινητήρων αυτής της κατηγορίας συνδέεται με υψηλό κόστος ανάπτυξης: οι ταλαντούχοι προγραμματιστές δεν είναι φθηνοί σήμερα. Και πρόσφατα, έχει δοθεί μεγάλη προσοχή (ακόμη και περισσότερο από όσο χρειάζεται) στην, ας πούμε, «πολιτική» σε σχέση με τις μηχανές παιχνιδιών.

Ναι, ναι, σωστά, σωστά ακούσατε, το 3D πεδίο έχει από καιρό τη δική του πολιτική, βασισμένη, φυσικά, στα συμφέροντα των δύο κολοσσών στον σχεδιασμό των επεξεργαστών γραφικών: ATI και NVIDIA. Η Harsh Canada μάχεται ενάντια στην ηλιόλουστη Καλιφόρνια εδώ και πολύ καιρό και μέχρι στιγμής δεν φαίνεται τέλος σε αυτή την αντιπαράθεση, η οποία φυσικά ωφελεί μόνο εμάς, τους απλούς καταναλωτές. Τώρα δεν αρκεί να αναπτύξετε μια δροσερή μηχανή - για να πετύχετε, πρέπει να ζητήσετε την υποστήριξη είτε της ντίβας της Καλιφόρνια NVIDIA είτε της καναδικής ATI, ευτυχώς, τώρα και η πρώτη και η δεύτερη έχουν τα δικά τους προγράμματα συνεργασίας για προγραμματιστές παιχνιδιών. Η NVIDIA αποκαλεί ένα τέτοιο πρόγραμμα "Ο τρόπος που πρέπει να παιχτεί" και η ATI το αποκαλεί "Αποκτήστε το στο παιχνίδι" Όλα είναι αρκετά εύγλωττα και ξεκάθαρα: η NVIDIA λέει ότι "πρέπει να παίξετε έτσι" και όχι καθόλου έτσι, και η ATI διαβεβαιώνει ότι σίγουρα θα πάρουμε όλα όσα θέλουμε στο ίδιο το παιχνίδι, δεν είναι οι κινητήρες της κατηγορίας "Doom 3" και "Half-Life 2". του τελευταίου, ο κινητήρας ονομάζεται Source, ωστόσο για ευκολία κατανόησης, θα τον ονομάσουμε "Half-Life 2" για να διατηρήσουμε τη σωστή συσχέτιση) και αναπτύχθηκαν αρχικά σε στενή συνεργασία με μηχανικούς από κατασκευαστές τσιπ γραφικών). ότι τα παιχνίδια θα λειτουργούσαν καλύτερα στη GPU ενός κατασκευαστή.

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

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

Τι είναι το anti-aliasing και σε τι χρησιμοποιείται;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κρίνοντας από πληροφορίες για φόρουμ και άρθρα στο Διαδίκτυο, η ATI κάνει κόλπα με τριγραμμικό φιλτράρισμα υφής στη νέα GPU X800. Υπάρχουν όμως και αυτοί που υπερασπίζονται λυσσαλέα την ΑΤΙ. Γενικά, τέτοιες συζητήσεις μας θυμίζουν το σκάνδαλο με την nVidia πριν από ένα χρόνο.

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

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

Θα υπάρξει συνέχεια; Ίσως, δεδομένου ότι η διαμάχη σχετικά με το πρόσφατο ανακαλυφθέν γραμμικό φιλτράρισμα στις κάρτες 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 με την τριγραμμική βελτιστοποίησή της. Ας ελπίσουμε σε περαιτέρω παρόμοια βήματα!

ΚΑΤΗΓΟΡΙΕΣ

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

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