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

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

Τι νέο υπάρχει στο DirectX 12;

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

Αφαίρεση υλικού χαμηλότερου επιπέδου

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

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

Βελτιωμένη απόδοση Multicore

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

Σχεδίαση μειωμένης κλήσης κλήσης

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

Explicit Multiadapter

Το DirectX 12 έχει τη δυνατότητα να συνδυάζει πολλαπλές GPU (προσαρμογείς οθόνης AKA) σε μια ενιαία λογική μονάδα. Αυτή η δυνατότητα, που ονομάζεται Explicit Multiadapter, επιτρέπει πολλαπλές GPUs να διδαχθούν από το λογισμικό σαν μια ενιαία GPU. Για παράδειγμα, με το DirectX 12, η ​​ενσωματωμένη GPU στο μηχάνημά σας μπορεί πλέον να επισημάνει την ομάδα με τη διακριτή GPU, προσδίδοντας τη δική της δύναμη επεξεργασίας. Μεγαλύτερη υποστήριξη API μπορεί επίσης να σημαίνει μεγαλύτερη αξιοπιστία και αποδοτικότητα σε ρυθμίσεις πολλαπλών GPU SLI / CrossFire. Στη δοκιμή της Microsoft, χρησιμοποιώντας ενσωματωμένα γραφικά σε συνδυασμό με διακριτά γραφικά, παρέχεται μια μικρή αλλά αξιοσημείωτη άκρη στα σημεία αναφοράς.

Πόσο σημαίνει το DirectX 12 για τους παίκτες;

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