Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Το DirectX 12 κυκλοφόρησε μαζί με τα Windows 10 το 2015. Με την κυκλοφορία του, το DirectX 12 της Microsoft εγκαινίασε μια νέα εποχή για παίκτες και προγραμματιστές παιχνιδιών. Με τη δυνατότητα να μειώνει το κόστος της CPU ενώ ενισχύει την απόδοση της GPU, το DirectX 12 έκανε γρήγορα όνομα.

Ωστόσο, η αύξηση της απόδοσής σας είναι πραγματικά τόσο απλή όσο η μετάβαση από το DirectX 11 στο DirectX 12; Ας μάθουμε εξετάζοντας τις διαφορές μεταξύ του DirectX 11 και του 12.

Τι είναι το DirectX της Microsoft;

Όπως εξηγείται στο την επισκόπηση του Microsoft DirectX, το DirectX είναι μια συλλογή από API που χρησιμοποιούνται για το χειρισμό εργασιών που σχετίζονται με πολυμέσα. Αυτό περιλαμβάνει προγραμματισμό παιχνιδιών σε πλατφόρμες που βασίζονται στη Microsoft, όπως τα Windows και το Xbox. Για να παρέχουμε κάποιο πλαίσιο, ας μιλήσουμε εν συντομία για τα API.

instagram viewer

Μια διεπαφή προγραμματισμού εφαρμογών (API) καθιστά δυνατή την επικοινωνία δύο ή περισσότερων προγραμμάτων υπολογιστή μεταξύ τους, την οποία συζητάμε στο την επισκόπηση των API. Σκεφτείτε το σαν ένα τηλέφωνο. Εάν η μαμά σας σας στείλει ένα μήνυμα με μια λίστα παντοπωλείων, το τηλέφωνό σας θα λάβει αυτά τα δεδομένα και θα τα εμφανίσει για εσάς. Αυτό είναι βασικά ένα API.

Ποιες είναι οι διαφορές μεταξύ του DirectX 11 και του DirectX 12;

Λοιπόν, ποιες είναι οι διαφορές μεταξύ του DirectX 11 και του DirectX 12; Με απλά λόγια, το DirectX 12 είναι η πιο πρόσφατη έκδοση του DirectX. Μία από τις πιο αξιοσημείωτες διαφορές μεταξύ των δύο είναι ο τρόπος αλληλεπίδρασης με το υλικό σας. Τα περισσότερα παιχνίδια που αναπτύχθηκαν με το DirectX 11 χρησιμοποιούν μόνο δύο έως τέσσερα Πυρήνες CPU. Ένας από αυτούς τους πυρήνες είναι συνήθως αφιερωμένος στο να λέει στην GPU τι να κάνει.

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

Το DirectX 12 έρχεται επίσης με μερικά φανταχτερά κουδούνια και σφυρίχτρες. Αυτό περιλαμβάνει ασύγχρονους υπολογισμούς και αντικείμενα κατάστασης αγωγών (PSO). Ο ασύγχρονος υπολογισμός αυξάνει τη χρήση της GPU επιτρέποντας σε πολλαπλούς φόρτους εργασίας να λειτουργούν παράλληλα. Αυτό ουσιαστικά ξεκλειδώνει το πλήρες δυναμικό της GPU σας.

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

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

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

Το DirectX 12 εισήγαγε επίσης PSO. Με το DirectX 11, όταν η γεωμετρία ενός παιχνιδιού υποβάλλεται στη GPU στο να αποδοθεί, μια ποικιλία ρυθμίσεων υλικού είναι υπεύθυνες για την ερμηνεία και την απόδοση αυτού δεδομένα. Αυτό αναφέρεται ως η διοχέτευση γραφικών και είναι η ροή των εισόδων και εξόδων δεδομένων που εμφανίζονται καθώς η GPU σας αποδίδει τα πλαίσια. Ωστόσο, η σειρά γραφικών του DirectX 11 δεν είναι τέλεια.

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

Για να το ξεπεράσει αυτό, το DirectX 12 εισήγαγε τα PSO, τα οποία είναι αντικείμενα που περιγράφουν την κατάσταση ολόκληρης της γραμμής γραφικών. Τα PSO είναι σαν ένα μπουκάλι που περιέχει τις διάφορες καταστάσεις και τα συστατικά που απαιτούνται για τη δημιουργία μιας εικόνας. Αυτό επιτρέπει στη GPU να προ-επεξεργάζεται κάθε εξαρτημένη κατάσταση αντί να χρειάζεται να επανυπολογίζει συνεχώς καταστάσεις με βάση την τρέχουσα διοχέτευση γραφικών.

Αυτό μειώνει σημαντικά την επιβάρυνση της CPU που βρίσκεται στο DirectX 11 και βελτιώνει την απόδοση. Λοιπόν, πώς μοιάζει στην πραγματικότητα αυτή η διαφορά; Λοιπόν, σύμφωνα με τη Microsoft, το DirectX 12 μειώνει την επιβάρυνση της CPU έως και 50 τοις εκατό και βελτιώνει την απόδοση της GPU έως και 20 τοις εκατό. Αν και αυτές είναι μερικές ουσιαστικές βελτιώσεις, αυτό δεν σημαίνει ότι θα δείτε τα ίδια αποτελέσματα.

Γιατί η εναλλαγή από το DirextX 11 στο DirectX 12 δεν είναι απλή

Το DirectX 11 κυκλοφόρησε για πρώτη φορά για Windows Vista στις 27 Οκτωβρίου 2009. Έτσι, με το DirectX 12 να ακολουθεί το 2015, αυτό είναι ένα κενό έξι ετών μεταξύ του DirectX 11 και του DirectX 12. Κατά τη διάρκεια αυτής της περιόδου, χιλιάδες παιχνίδια έχουν αναπτυχθεί χρησιμοποιώντας το DirectX 11. Δυστυχώς, η μετάβαση από το DirectX 11 στο DirectX 12 κάθε άλλο παρά εύκολη είναι.

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

Τούτου λεχθέντος, ένα παιχνίδι που αναπτύχθηκε στο DirectX 12 θα μπορούσε να καταλήξει με χειρότερη απόδοση ανάλογα με τις γνώσεις του προγραμματιστή για το API. Υπάρχουν βελτιώσεις που συνοδεύουν το DirectX 12, αλλά στην πραγματικότητα εξαρτάται από το πόσο καλά μπορεί να το εφαρμόσει ένας προγραμματιστής. Για αυτόν τον λόγο, πολλοί προγραμματιστές επιλέγουν να παραμείνουν σε API υψηλού επιπέδου όπως το DirectX 11.

Πρέπει να επιλέξετε DirectX 11 ή DirectX 12;

Η απάντηση εξαρτάται από μερικά πράγματα, όπως το παιχνίδι που προσπαθείτε να εκτελέσετε. Για παράδειγμα, το Guild Wars 2 εκτελείται σεDirectX 11. Ακόμα κι αν το λειτουργικό σύστημα και το υλικό σας χρησιμοποιούν DirectX 12, δεν θα έχετε την επιλογή να επιλέξετε το DirectX 11 στο Guild Wars 2, επειδή το παιχνίδι δεν το υποστηρίζει. Αυτή είναι εξ ολοκλήρου απόφαση του προγραμματιστή, ArenaNet.

Πίστωση εικόνας: Martin Kerstein/Guild Wars 2

Είτε το πιστεύετε είτε όχι, χρειάστηκαν εννέα χρόνια για να κάνει η ArenaNet τη μετάβαση από το DirectX 9 στο DirectX 11. Ωστόσο, υπάρχουν ορισμένα παιχνίδια που υποστηρίζουν τόσο το DirectX 11 όσο και το DirectX 12. Fortnite (διαβάστε το φύλλο εξαπάτησης του Fortnite), για παράδειγμα. Μέσω των ρυθμίσεων του παιχνιδιού, οι χρήστες μπορούν να κάνουν εναλλαγή μεταξύ των δύο εκδόσεων. Συνοψίζοντας, δεν υποστηρίζουν όλα τα παιχνίδια τόσο το DirectX 11 όσο και το DirectX 12. Για όσους το κάνουν, αλλάξτε μεταξύ των δύο και καθορίστε μόνοι σας ποιο αποδίδει καλύτερα στον υπολογιστή σας.

Το αν μπορείτε να επιλέξετε μεταξύ DirectX 11 και DirectX 12 θα εξαρτηθεί επίσης από το υλικό σας. Σχεδόν κάθε σύγχρονη GPU θα υποστηρίζει DirectX 12, αλλά δεν μπορούμε να πούμε το ίδιο για παλαιότερες GPU όπως το Radeon HD 4870. Κυκλοφόρησε το 2008, αυτή η GPU υποστηρίζει μόνο έως το DirectX 10. Αυτό σημαίνει ότι θα ήταν ανίκανο να τρέξει τα περισσότερα σύγχρονα παιχνίδια, τα οποία εκτελούνται με DirectX 11 και DirectX 12.

Είναι το DirectX 12 η σωστή επιλογή για εσάς;

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