Ενώ το Metal είναι η τεχνολογία γρήγορης απόδοσης γραφικών της Apple για παιχνίδια, το MetalFX προσθέτει βελτιώσεις για να το κάνει να λάμπει στο Apple Silicon. Δείτε πώς λειτουργεί το MetalFX.

Το 2014 η Apple παρουσίασε τη νέα της τεχνολογία απόδοσης γραφικών και παιχνιδιών που ονομάζεται Metal.

Το Metal είναι ένα API απόδοσης που παρέχει γρήγορη απόδοση βελτιστοποιημένη για το υλικό της Apple. Με την εμφάνιση των GPU Silicon της Apple, το Metal λαμβάνει ακόμη μεγαλύτερη ώθηση στην απόδοση.

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

Το Metal API είναι ένα Apple C++ API που έχει τη δική του γλώσσα σκίασης που ονομάζεται, όπως θα περίμενε κανείς, Metal Shading Language (MSL). Το Metal API έχει συγκριθεί με το DirectX 12 στα Windows ή με τη βιβλιοθήκη απόδοσης γραφικών τρίτου κατασκευαστή Vulkan.

Υπάρχουν επίσης εκδόσεις Swift και Objective-C του Metal API.

Ωστόσο, δεδομένου ότι το Metal προέρχεται από την Apple και έχει σχεδιαστεί για υλικό Apple, παρέχει την καλύτερη απόδοση απόδοσης γραφικών από οποιαδήποτε διαθέσιμη τεχνολογία απόδοσης σε αυτές τις συσκευές.

Μπορείτε να δείτε ένα δείγμα απόδοσης μετάλλων σε δράση κάθε φορά που ξεκινάτε ένα παιχνίδι Apple Arcade σε συσκευή iOS ή tvOS-το σύντομο κινούμενο σχέδιο αναπήδησης με το λογότυπο Apple Arcade που εκτελείται πριν από κάθε παιχνίδι Apple Arcade απόδοση με χρήση Metal.

Πολλά παιχνίδια χρησιμοποιούν επιτάχυνση υλικού GPU και προυπολογισμένα shaders για να επιταχύνουν την απόδοση των γραφικών. Στο Metal, οι εντολές γραφικών κωδικοποιούνται εκ των προτέρων και στη συνέχεια υποβάλλονται σε GPU για απόδοση.

Προϋπολογισμένες καταστάσεις απόδοσης ενημερώνουν εκ των προτέρων τη GPU πώς να διαμορφώσει τη γραμμή απόδοσης για μέγιστη απόδοση.

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

Οι Shader εισήχθησαν για πρώτη φορά σε εμπορικό λογισμικό το 1988 με το λογισμικό RenderMan της Pixar, το οποίο έχει μακρά ιστορία στο Mac που χρονολογείται δεκαετίες πίσω.

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

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

Όλα αυτά συμβαίνουν δεκάδες φορές το δευτερόλεπτο σε σύγχρονο υλικό GPU.

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

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

Το 2020 η Apple ανακοίνωσε ότι είχε μεταφέρει το Metal σε CPU και GPU Silicon της Apple για να παρέχει πολύ πιο γρήγορη απόδοση. Στο WWDC 2022, η Apple παρουσίασε μια νέα δυνατότητα στο Metal που ονομάζεται MetalFX.

Το MetalFX επιτρέπει ταχύτερη και ακριβέστερη απόδοση σκηνών με επανυπολογισμό και αντιπαραβολή ορισμένων καρέ για τον επανυπολογισμό και την ομαλή απόδοση των άκρων των αντικειμένων.

Το μυστικό όπλο του MetalFX είναι μια τεχνολογία που ονομάζεται αναβάθμιση.

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

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

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

Ένα παράδειγμα αναβάθμισης MetalFX. Το πλαίσιο στα δεξιά εμφανίζεται πιο ευκρινές.

Το MetalFX χρησιμοποιεί δύο διαφορετικούς τύπους αναβάθμισης: χωρική αναβάθμιση και χρονική αναβάθμιση κλιμάκωσης.

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

Όταν καλείται η κωδικοποίηση, το αντικείμενο MTLFXSpatialScaler δημιουργεί και στέλνει εντολές απόδοσης σε ένα αντικείμενο MTLCommandBuffer για απόδοση. Αυτή η διαδικασία επαναλαμβάνεται για κάθε καρέ σε μια σκηνή.

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

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

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

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

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

Ακολουθεί ένα άλλο παράδειγμα αναβάθμισης κατά της παραμόρφωσης από την παρουσίαση WWDC της Apple:

1080p, αριστερά-και 4K αναβαθμισμένα στα δεξιά με anti-aliasing upscaling.

Οι περισσότερες επεξεργασίες αναβάθμισης MetalFX θα πρέπει να πραγματοποιούνται μετά την απόδοση αλλά πριν από οποιαδήποτε τελική μετα-επεξεργασία γίνεται σε πλαίσια.

Μια χρήση της αναβάθμισης κατά της αναβάθμισης του MetalFX είναι η αύξηση της ανάλυσης των καρέ 1080p έτσι ώστε να προσεγγίζουν την ανάλυση 4K.

Ακριβώς όπως και με τη χωρική αναβάθμιση, το MetalFX παρέχει δύο κατηγορίες για αναβάθμιση κλιμάκωσης anti-aliasing: MTLFXTemporalScalerDescriptor και MTLFXTemporalScaler.

Η πλήρης τεκμηρίωση του MetalFX είναι διαθέσιμη στον ιστότοπο προγραμματιστών της Apple. Η Apple διοργάνωσε επίσης ένα βίντεο συνεδρίας MetalFX στο WWDC’22 με τίτλο”Boost performance with MetalFX Upscaling”το οποίο περιγράφει τη χρήση του MetalFX λεπτομερώς, συμπεριλαμβανομένου του δείγματος κώδικα.

Πολλοί τίτλοι παιχνιδιών AAA, συμπεριλαμβανομένου του No Man’s Sky, χρησιμοποιούν ήδη το MetalFX σε συσκευές Apple.

Το MetalFX υπόσχεται σύγχρονες τεχνικές υπολογισμού γραφικών για να αυξήσει τόσο την ανάλυση σκηνής όσο και την απόδοση του παιχνιδιού σε σύγχρονο υλικό GPU. Είναι πιθανό η νέα τεχνολογία Metal να φέρει επανάσταση στα παιχνίδια σε συσκευές Apple.

Categories: IT Info