Οι περισσότεροι gamer έχουμε ακούσει για το DirectX της Microsoft, όμως λίγοι γνωρίζουμε σε τι ακριβώς χρησιμεύει και πώς επηρεάζει τα παιχνίδια. Τώρα μάλιστα, που έχει αποκτήσει ένα αντίπαλον δέος στη μορφή του Vulkan, τα πράγματα μπερδεύονται ακόμα περισσότερο. Σε αυτό τον οδηγό θα δούμε τι είναι το DirectX, τι είναι το Vulkan, και πώς επηρεάζουν τα παιχνίδια στον υπολογιστή μας.
Προτάσεις συνεργασίας
Τα νέα άρθρα του PCsteps
Γίνε VIP μέλος στο PCSteps
Βασικές Πληροφορίες για τα APIs
Για να μπορέσουμε να μιλήσουμε για το DirectX και το Vulkan, πρέπει να καταλάβουμε αρχικά τι είναι ένα API.
Το ακρωνύμιο προέρχεται από τους αγγλικούς όρους “Application Programming Interface”, που σημαίνει “Διεπαφή προγραμματισμού εφαρμογών”.
Μια διεπαφή σχεδιάζεται για να βοηθήσει στην “επικοινωνία” μεταξύ δύο οντοτήτων. Ένα παράδειγμα είναι η γραφική διεπαφή των Windows. Η διεπαφή διαδραματίζει τον ρόλο του μεσάζοντα μεταξύ του λειτουργικού συστήματος και του χρήστη.
Αυτό που κάνει στην ουσία η διεπαφή, είναι να μας παρέχει ένα φιλικό προς τον άνθρωπο περιβάλλον. Μέσω αυτού του περιβάλλοντος, χρησιμοποιούμε το λειτουργικό σύστημα, χωρίς να γνωρίζουμε πώς υλοποιούνται οι εργασίες-λειτουργίες στο παρασκήνιο.
Μια διεπαφή προγραμματισμού εφαρμογών (API) τώρα, διαδραματίζει πάλι τον ρόλο του μεσάζοντα. Αυτή τη φορά όμως, ο χρήστης μπορεί να είναι μια μηχανή (Η/Υ) ή ένα άλλο πρόγραμμα, και όχι ένας άνθρωπος.
Τα APIs χρησιμοποιούνται σχεδόν παντού, και παρέχουν στους προγραμματιστές έτοιμα “εργαλεία” για να δημιουργήσουν το πρόγραμμά τους.
Ένα απλό παράδειγμα API, που έχουμε χρησιμοποιήσει οι περισσότεροι, είναι όταν κάνουμε εγγραφή και σύνδεση σε μια ιστοσελίδα με το λογαριασμό μας των Social Media, αντί να φτιάξουμε χειροκίνητα ένα λογαριασμό.
Σε τέτοιες περιπτώσεις, η ιστοσελίδα αξιοποιεί ένα API μέσα από το οποίο επικοινωνεί με το δίκτυο της επιλογής μας, πχ το Facebook ή το Twitter, προκειμένου να πάρει τα στοιχεία (όνομα, email, πιθανώς και άλλα) για τη δημιουργία λογαριασμού.
Υπάρχουν όμως αμέτρητες άλλες εφαρμογές των API, για κάθε είδους συνεργασία μεταξύ εφαρμογών ή υπολογιστών, σε συστήματα βάσεων δεδομένων, λειτουργικά συστήματα, και βιβλιοθήκες λογισμικού.
Στην προκειμένη περίπτωση, η χρήση των API βρίσκει εφαρμογή στο υλικό του υπολογιστή μας, και συγκεκριμένα στην κάρτα γραφικών.
Τα DirectX και Vulcan ουσιαστικά βελτιώνουν τον τρόπο επικοινωνίας ανάμεσα στην εφαρμογή (παιχνίδι) και την GPU, ώστε να έχουμε καλύτερη απόδοση στα γραφικά.
Microsoft DirectX
Με την κυκλοφορία των Windows 95 και το προστατευμένο μοντέλο μνήμης, οι προγραμματιστές δεν είχαν την ίδια πρόσβαση σε πόρους όπως στο MS-DOS.
Εκεί έκανε την εμφάνισή του το DirectX, ένα σύνολο από API ειδικά για ανάπτυξη εφαρμογών πολυμέσων, άρα και παιχνιδιών.
Τα ονόματα των επιμέρους στοιχείων του DirectX ξεκινούν με τη λέξη Direct, από την άμεση πρόσβαση που έδιναν στους πόρους του συστήματος. Μερικά παραδείγματα αποτελούν το Direct3D για τα γραφικά και το DirectSound για τον ήχο.
Το X “αναπαριστά” στην ουσία κάποιο API στη συλλογή, συστεγάζοντας έτσι όλα τα API κάτω από το όνομα DirectX. Η συλλογή επηρέασε και το όνομα της κονσόλας της εταιρίας, το αρχικό γράμμα της οποίας είναι το καταληκτήριο Χ του DirectX.
Αυτό φυσικά φανερώνει τη στενή σχέση του με την κονσόλα της Microsoft.
Η πιο πρόσφατη μάλιστα έκδοσή του, DirectX 12, η οποία φέρνει σημαντικές βελτιώσεις, υποστηρίζεται μόνο στα Windows 10 και στην τελευταία κονσόλα της εταιρίας, το Xbox One.
Το Direct3D αποτελεί την κορωνίδα του DirectX, και είναι υπεύθυνο για την αποτύπωση των τρισδιάστατων σχημάτων στην οθόνη μας. Ακόμη, είναι αυτό που επιτρέπει την προβολή των παιχνιδιών σε πλήρη οθόνη, καθώς και τη χρήση hardware accelerators.
Η τελευταία μέθοδος επιτρέπει την υλοποίηση ορισμένων λειτουργιών πιο αποδοτικά από ότι εκτελούνται στο λογισμικό, εκμεταλλευόμενη το hardware του υπολογιστή μας. Στη συγκεκριμένη περίπτωση, την κάρτα γραφικών μας.
Khronos Vulkan
Από την άλλη μεριά, η Khronos Group παρουσίασε για πρώτη φορά το 2015 το δικό της API ονόματι Vulkan – ένα χαμηλού επιπέδου API για σχεδίαση γραφικών εφαρμογών υψηλών απαιτήσεων. Η πρώτη σταθερή έκδοσή του ήρθε τον Αύγουστο του 2016.
Να διευκρινίσουμε πως όταν λέμε “χαμηλού επιπέδου”, δεν αναφερόμαστε στην ποιότητα, αλλά πως το Vulkan λειτουργεί πολύ κοντά στο επίπεδο του υλικού.
Μεταξύ των μελών της Khronos βρίσκονται κορυφαία ονόματα όπως η Google, η Intel, η Sony, η Nvidia, και η AMD. Η τελευταία μάλιστα έδωσε το δικό της API ονόματι Mantle στην Khronos για να επιταχύνει την ανάπτυξη του Vulkan.
Το OpenGL, ένα γνωστό API για σχεδίαση γραφικών εφαρμογών, είναι επίσης δημιούργημα της Khronos. Και αυτό παρουσιάζει πολλά από τα χαρακτηριστικά του Vulkan. Ωστόσο, η αποδοχή από τους σχεδιαστές παιχνιδιών δεν ήταν η αναμενόμενη.
Ένα δυνατό χαρακτηριστικό του Vulkan αποτελεί το γεγονός ότι είναι ανοιχτού κώδικα. Η συμβατότητα με πολλαπλές πλατφόρμες και οι επιδόσεις του αποτελούν δύο ακόμα χαρακτηριστικά τα οποία το κάνουν πιο ελκυστικό σε σχέση με το DirectX.
Εδώ μπορείτε να δείτε την πλήρη λίστα με τα ονόματα που απαρτίζουν την Khronos. Έτσι, με βάση το Mantle αναπτύχθηκε το Vulkan, το οποίο τη στιγμή που γράφονται αυτές οι γραμμές, βρίσκεται στην έκδοση 1.1.
Πώς επηρεάζουν τα παιχνίδια
Καλά όλα αυτά για τα APIs, τη Microsoft και την Khronos, αλλά πώς αυτά πρόκειται να επηρεάσουν τα παιχνίδια;
Επιδόσεις
Και τα δύο APIs έχουν πετύχει μεγάλες βελτιώσεις όσον αφορά τις επιδόσεις. Το DirectX φαίνεται να έχει συνολικά καλύτερες επιδόσεις μέχρι στιγμής, αλλά το Vulkan το πλησιάζει με γοργά βήματα.
Η Microsoft ισχυρίζεται οτι το DirectX 12 ρίχνει τα επίπεδα χρήσης του επεξεργαστή κατά 50% σε σχέση με με το DirectX 11. Από την άλλη, και το Vulkan επιδεικνύει περισσότερες ικανότητες σε σχέση με τον προκάτοχό του.
Και μιας και είπαμε για προκατόχους, το DirectX 11 και το OpenGL φτιάχτηκαν με γνώμονα μονοπύρηνους επεξεργαστές, κάτι όχι τόσο φιλικό για τους καινούργιους πολυπύρηνους.
Ως αποτέλεσμα, ένας πυρήνας φέρνει σε πέρας το μεγαλύτερο μέρος των εργασιών, ενώ οι άλλοι λειτουργούν από ελάχιστα έως και καθόλου, ανάλογα με τον φόρτο εργασίας και το πλήθος των πυρήνων.
Αμφότερα τα δύο APIs, DirectX 12 και Vulkan, υποστηρίζουν καλύτερα επεξεργαστές με πολλαπλούς πυρήνες και threads, ώστε να εκμεταλλεύονται σε μεγαλύτερο βαθμό τις δυνατότητές τους.
Επιπρόσθετα, μετατοπίζουν μεγάλο μέρος των απαιτητικών διεργασιών για τις ανάγκες των γραφικών από τον επεξεργαστή στην κάρτα γραφικών, προσφέροντας έτσι μια πιο ισορροπημένη χρήση.
Ο συνδυασμός των παραπάνω δύο στοιχείων μπορεί να επηρεάσει σημαντικά τα τις μελλοντικές συνθέσεις υπολογιστών για παιχνίδια.
Ήδη η κάρτα γραφικών είναι σε μεγάλο βαθμό σημαντικότερη από τον επεξεργαστή όσον αφορά τα παιχνίδια. Γι' αυτό και στον οδηγό για την αναβάθμιση υπολογιστή προτείνουμε η GPU να έχει πάντοτε υψηλότερο κόστος από τον επεξεργαστή.
Στο μέλλον, και με την περαιτέρω ανάπτυξη των gaming API, δεν αποκλείεται ο επεξεργαστής να είναι ακόμα λιγότερο σημαντικός για τα παιχνίδια, και άρα και με ένα μικρότερο μοντέλο να έχουμε καλή απόδοση χωρίς bottleneck.
Υποστήριξη Πολλαπλών Καρτών Γραφικών
Εδώ η Khronos Group κάλυψε ένα σημαντικό κενό ανάμεσα στα δύο APIs με την υποστήριξη της χρήσης πολλαπλών καρτών γραφικών (Explicit Multi-GPU usage).
Μπορούμε να κάνουμε χρήση διαφορετικών καρτών, αρκεί τα chip τους να έχουν παρόμοια αρχιτεκτονική και να χρησιμοποιούν τον ίδιο driver. Αυτό θα δίνει την δυνατότητα σε διαφορετικές κάρτες να επεξεργάζονται διαφορετικό κομμάτι της οθόνης.
Η Microsoft το πάει ένα βήμα παραπάνω, επιτρέποντας τη χρήση πολλαπλών καρτών γραφικών ακόμα και από διαφορετικό κατασκευαστή, πράγμα που συναντάμε πιο συχνά, αφού τα περισσότερα συστήματα έχουν μια ανεξάρτητη και μια ενσωματωμένη GPU.
Εδώ να τονίσουμε πως αυτές οι υλοποιήσεις είναι διαφορετικές από τις δυνατότητες SLI και Crossfire των Nvidia και AMD αντίστοιχα, που εφαρμόζονται μέσα από τους drivers και ειδικά στην περίπτωση του SLI απαιτούν πανομοιότυπες κάρτες γραφικών.
Shaders
Οι shaders είναι μικρά προγράμματα που τρέχουν στην κάρτα γραφικών μας. Είναι υπεύθυνα για ορισμένα χαρακτηριστικά των αντικειμένων στην 3D σκηνή. Η σκίαση, η ομίχλη και ο φωτισμός σε ένα παιχνίδι είναι όλα αποτελέσματα κάποιου shader.
To Vulkan χρησιμοποιεί μια ενδιάμεση αναπαράσταση (intermediate representation) για τους shaders που ονομάζεται SPIR-V. Η δυαδική μορφή του είναι κάτι αντίστοιχο με τον DX bytecode του DirectX.
Στην έκδοση 1.3 του SPIR-V παρουσιάστηκε το SPIR-V opt, ένα εργαλείο για τη μείωση του μεγέθους των shaders. Το μέγεθος που επιτεύχθηκε φτάνει στο +40% αυτού των DX bytecode της αντίστοιχης αναπαράστασης για το DirectX.
Επίσης, κάποιες δομές στην HLSL, μια γλώσσα υψηλού επιπέδου για shaders σχεδιασμένη από τη Microsoft, δεν υποστηρίζονταν κατευθείαν από ορισμένες κάρτες γραφικών.
Η HLSL χρησιμοποιείται ευρέως από το DirectX από την έκδοση 9, στην οποία χρησιμοποιήθηκε ως προσθήκη για την ήδη υπάρχουσα γλώσσα shader assembly. Με τη νέα έκδοση του SPIR-V, το Vulkan υποστηρίζει τη γλώσσα.
Έτσι, οι προγραμματιστές θα μπορούν να χρησιμοποιήσουν υπάρχον κώδικα για τους shaders τους, και δεν θα χρειάζεται να επανεφευρίσκουν τον τροχό. Κατ' επέκταση, η μεταφορά των τίτλων από πλατφόρμα σε πλατφόρμα θα γίνεται πιο εύκολα.
Συμβατότητα με πολλαπλές πλατφόρμες
Και μιας και είπαμε για πλατφόρμες, το μεγάλο πλεονέκτημα του Vulkan είναι η υποστήριξη Windows, Linux, Mac OS, Android, και iOS. Το DirectX 12 από την άλλη, υποστηρίζεται μόνο στα Windows 10 και στο Xbox One.
Για να δρέψουμε τις βελτιώσεις που προσφέρει το DirectX 12 δηλαδή, θα χρειαστεί είτε να αναβαθμίσουμε το λειτουργικό μας σύστημα σε Windows 10, είτε να είμαστε κάτοχοι της καινούργιας κονσόλας της εταιρίας.
Σε περίπτωση που θέλετε να δοκιμάσετε το DirectX 12 και δεν προλάβατε την προθεσμία αναβάθμισης σε Windows 10, δείτε τον αναλυτικό μας οδηγό για τις μεθόδους αναβάθμισης που ισχύουν ακόμα.
Δωρεάν Windows 10: Οι Μέθοδοι που Ισχύουν ΑκόμαΕίχατε Windows 7 ή 8.1 και χάσατε την προθεσμία της Microsoft για να αναβαθμίσετε δωρεάν στα Windows 10; Μήπως αποφασίσατε να μείνετε σε κάποια προηγούμενη…
Πίσω στο θέμα μας. Αυτό σημαίνει ότι η μεταφορά ενός τίτλου που υποστηρίζεται από το Vulkan API θα είναι αισθητά πιο εύκολη σε σχέση με τη μεταφορά κάποιου που υποστηρίζεται από το DirectX.
Έτσι, αφενός θα έχουμε διαθέσιμους τίτλους σε περισσότερες πλατφόρμες, αφετέρου δίνεται η ευκαιρία σε άλλα λειτουργικά συστήματα να φιλοξενήσουν τα παιχνίδια μας.
Ένας λόγος άλλωστε που το Linux δεν είναι τόσο δημοφιλές ως λειτουργικό σύστημα, είναι η υπεροχή των Windows στον τομέα του gaming.
Μια διανομή Linux θα μπορούσε να αποτελεί καλύτερη επιλογή για να φιλοξενήσει τα παιχνίδια μας, αφού μπορεί να προσαρμοστεί ακριβώς γι' αυτόν το σκοπό. Το Steam OS αποτελεί μια τέτοια προσπάθεια εξειδικευμένου λειτουργικού μόνο για παιχνίδια.
Αν δεν έχετε αποφασίσει ποιο είναι το καλύτερο λειτουργικό σύστημα για εσάς, ρίξτε μια ματιά στον οδηγό μας:
Το Καλύτερο Λειτουργικό Σύστημα για PCΤο ότι τα Windows έχουν το μεγαλύτερο μερίδιο αγοράς δεν σημαίνει απαραιτήτως πως είναι το καλύτερο λειτουργικό σύστημα για PC. Στον οδηγό αυτό θα δούμε…
Σκεφτείτε το εξής: Μια εταιρία σκέφτεται να φτιάξει ένα λογισμικό για ανάπτυξη παιχνιδιών και θέλει να υποστηρίξει ένα API. Ποιο θα διάλεγε;
Και τα δύο έχουν παρόμοιες αποδόσεις στην ισχύ. Και τα δύο είναι καλύτερα από τους προκατόχους τους. Και τα δύο παρέχουν ρητή χρήση της κάρτας γραφικών.
Το Vulkan υποστηρίζει όλες τις πλατφόρμες συμπεριλαμβανομένων και των Windows 10 και Xbox one, ενώ το DirectX υποστηρίζει μόνο τα δύο τελευταία.
Virtual Reality
Το Vulkan δείχνει να βελτιώνεται και όσον αφορά το Virtual Reality. Σε μια VR εφαρμογή χρειάζεται rendering μιας συγκεκριμένης 3D σκηνής από δύο διαφορετικές προοπτικές – μία για κάθε μάτι.
Αυτό μέχρι σήμερα γινόταν υποβάλλοντας όλες τις εντολές για σχηματισμό της 3D εικόνας για την μία προοπτική στην κάρτα γραφικών μας, και έπειτα όλες τις εντολές για την δεύτερη προοπτική.
Το Vulkan στην έκδοση 1.1, μας δίνει τη δυνατότητα με ένα σετ εντολών για render, να σχηματίσουμε πολλαπλές, ελαφρώς διαφορετικές εξόδους (εικόνες), κάτι που συνεπάγεται με καλύτερη απόδοση σε VR εφαρμογές.
Ανάπτυξη-Προοπτικές
Θα ήταν παράλειψη αν δεν αναφέραμε εδώ την ανάπτυξη των δύο APIs. Στη μια μεριά, έχουμε το ώριμο DirectX, με παραπάνω από 20 χρόνια ανάπτυξης. Στον αντίποδα, το Vulkan μετράει χονδρικά 3 χρόνια από το 2015.
Το γεγονός ότι το Vulkan είναι ανοιχτού κώδικα μπορεί να επηρεάσει αρκετά τους ρυθμούς ανάπτυξής του. Βέβαια, οι συντελεστές της Khronos φαίνεται να έχουν πάρει στα σοβαρά την ανάπτυξη του API, καθώς τα επίπεδα βελτίωσης είναι εντυπωσιακά.
Από την άλλη, οποιοσδήποτε στον χώρο μπορεί να δημιουργήσει και να δώσει πίσω στην κοινότητα καινούργια εργαλεία ή και βελτιώσεις του API, βοηθώντας έτσι στην πιο γρήγορη ανάπτυξή του. Κομμάτι στο οποίο το DirectX υστερεί.
Έτσι, παρά τα χρόνια ανάπτυξής του, το Vulkan χρησιμοποιείται σήμερα σε περίπου 40 τίτλους, καταλαμβάνοντας μεγάλο μέρος της αγοράς. Μερικοί από αυτούς είναι το Quake, το Roblox, το The Talos Principle, και το Dota 2.
Σε συνολικές επιδόσεις, το Vulkan πλησιάζει το DirectX, και υπάρχουν και ορισμένες περιπτώσεις που υπερτερεί. Τρανταχτά παραδείγματα των επιδόσεων του Vulkan είναι οι τίτλοι Doom…
…και Ashes of the Singularity.
Το Vulkan έχει επεκτείνει την υποστήριξή του σε ΑΑΑ τίτλους όπως το Wolfenstein II, ενώ δεν λείπει η παρουσία του με VR τίτλους όπως το Doom VR και τη σειρά Serious Sam VR.
Εδώ θα δείτε την αναλυτική λίστα με τα παιχνίδια που υποστηρίζει. Εδώ θα βρείτε τους τίτλους παιχνιδιών με την υποστήριξη του DirectX 12.
Και τα δύο APIs έχουν κάνει σημαντικές βελτιώσεις όσον αφορά τις επιδόσεις. H βελτιωμένη χρήση πολλαπλών καρτών γραφικών και η μικρότερη χρήση CPU έρχονται να αυξήσουν την απόδοση των συστημάτων μας.
Φήμες θέλουν επίσης τη νέα σειρά καρτών γραφικών από την Nvidia να κυκλοφορεί μέχρι το τέλος του καλοκαιριού, και να ξεπερνά σημαντικά τη συνολική απόδοση των σημερινών high-end καρτών γραφικών, δίνοντας μεγαλύτερη ρευστότητα στα πράγματα.
Όπως και να έχει, αναμένουμε σύντομα εξελίξεις στον χώρο του gaming, και τα δύο API θα παίξουν σημαντικό ρόλο.
Ποια είναι η γνώμη σας για τα δύο APIs;
Γνωρίζατε για τα APIs Vulkan και DirectX; Η διαμάχη ανάμεσα στα δύο εντείνεται. Εσείς ποιο πιστεύετε ότι μπορεί να ωφελήσει περισσότερο τα παιχνίδια τα επόμενα χρόνια; Περιμένουμε τη γνώμη σας στα σχόλια.