WebGL ( Web Graphics Library ) API JavaScript για γραφικά

WebGL ( Web Graphics Library ) API JavaScript για γραφικά

Το WebGL (Web Graphics Library) είναι ένα API JavaScript για την απόδοση διαδραστικών γραφικών 2D και 3D σε οποιοδήποτε συμβατό πρόγραμμα περιήγησης στο Web χωρίς τη χρήση plug-ins.

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

Τα προγράμματα WebGL αποτελούνται από κώδικα ελέγχου γραμμένο σε JavaScript και κώδικα shader που είναι γραμμένο σε OpenGL ES Shading Language(GLSL ES), μια γλώσσα παρόμοια με C ή C ++ , και εκτελείται στη μονάδα επεξεργασίας γραφικών (GPU) ενός υπολογιστή. Σχεδιάστηκε και συντηρείται από τον μη κερδοσκοπικό όμιλο Khronos.

WebGL 1.0 και WebGL 2.0

Το WebGL 1.0 βασίζεται στο OpenGL ES 2.0 και παρέχει ένα API για γραφικά 3D. Χρησιμοποιεί το στοιχείο καμβά HTML5 και προσπελάζεται χρησιμοποιώντας διεπαφές μοντέλου αντικειμένων εγγράφου (DOM Object Model).

Το WebGL 2.0 βασίζεται στο OpenGL ES 3.0 και παρέχει εγγυημένη διαθεσιμότητα πολλών προαιρετικών επεκτάσεων του WebGL 1.0 και εκθέτει νέα API.

Η αυτόματη διαχείριση μνήμης παρέχεται έμμεσα από τη JavaScript.

WebGL - csc.com.gr - μαθήματα προγραμματισμού & πληροφορικής πανελλαδικά

Όπως το OpenGL ES 2.0, δεν διαθέτει τα API σταθερής λειτουργίας που έχουν εισαχθεί στο OpenGL 1.0 και έχουν καταργηθεί στο OpenGL 3.0. Αυτή η λειτουργικότητα, εάν απαιτείται, πρέπει να εφαρμοστεί από τον τελικό προγραμματιστή, παρέχοντας τον κώδικα shader και τη διαμόρφωση των δεσμεύσεων δεδομένων στη γλώσσα JavaScript.

Οι Shaders εκφράζονται απευθείας στο GLSL και μεταβιβάζονται στο API ως string κειμένου. Η εφαρμογή μεταγλωττίζει αυτές τις οδηγίες shader σε κώδικα GPU. Αυτός ο κώδικας εκτελείται για κάθε κορυφή που στέλνεται μέσω του API και για κάθε εικονοστοιχείο που ραστεροποιείται στην οθόνη.

Η δημιουργία περιεχομένου για σκηνές WebGL σημαίνει συχνά τη χρήση ενός κανονικού εργαλείου δημιουργίας τρισδιάστατου περιεχομένου και την εξαγωγή της σκηνής σε μορφή που μπορεί να διαβαστεί από τη θεατή ή τη βοηθητική βιβλιοθήκη. Το λογισμικό δημιουργίας επιφάνειας εργασίας 3D, όπως το Blender , το Autodesk Maya ή το SimLab Composer, μπορούν να χρησιμοποιηθούν για το σκοπό αυτό.

Υπάρχουν επίσης 2D βιβλιοθήκες που έχουν χτιστεί πάνω από το WebGL όπως το Cocos2d -x ή το Pixi.js, οι οποίες υλοποιήθηκαν με αυτόν τον τρόπο για λόγους απόδοσης, σε μια κίνηση που συμπίπτει με το τι συνέβη με το Starling Framework πάνω από το Stage3D στον κόσμο του Flash. Οι 2D βιβλιοθήκες που βασίζονται στο WebGL επιστρέφουν στον καμβά HTML5 όταν αυτό δεν είναι διαθέσιμο.

Δείτε ένα όμορφο demo προσομείωσης νερού επιλέγοντας τον σύνδεσμο εδώ.