OpenGL


Linus Torvalds: NVidia άντε γ… (και γιατί μπορεί να το έχετε πει και εσείς) 2

Δεν με πιστεύετε έτσι; Και όμως ο κύριος Torvalds με κάθε “μεγαλοπρέπεια” στέλνει τη NVidia να πάει να γ…

OK, κάποιος τα έχει πάρει με την NVidia όμως ποιός; Και γιατί;

Λοιπόν ο κύριος Linus Torvalds μπορεί να έχει κερδίσει το σεβασμό από πολύ κόσμο μιας και είχε την ιδέα να αρχίσει πάνω σε αυτό που λέμε πυρήνας του Linux, ή απλά πυρήνα, ή kernel. Χωρίς αυτό το απαραίτητο συστατικό ενός λειτουργικού συστήματος ο υπολογιστής δεν μπορεί να κάνει τίποτα. Ναι μπορεί πειραχτικά να οι προγραμματιστές του πυρήνα να τον ονομάζουν Καλοκάγαθο Δικτάκτορα και ναι δεν είναι και ο πλέον εύκολος άνθρωπος. Έχει κατά καιρούς γκρινιάξει για το KDE 4, το Gnome 3, τις ρυθμίσεις της OpenSUSE και πάει λέγοντας.

Βλέπετε η NVidia σύμφωνα με τον κύριο Torvalds είναι μια από τις χειρότερες εταιρείες που έχουν δουλέψει με τους προγραμματιστές του πυρήνα. Δεν είναι ότι η NVidia είναι μια από τις εταιρείες που δεν νοιάζονται για το Linux, ούτε μια εταιρεία που υπολογίζει ότι η αγορά του Linux είναι μικρή κάθε άλλο. Βλέπετε η NVidia έχει κάνει μια τρομερή επένδυση στην αγορά του Linux, ειδικότερα ειδικά για την αγορά των βασισμένων σε Android/Linux Tablet έχει σχεδιάσει την νέα σειρά chipset Tegra 2 και 3. Θα περίμενε κανείς η συγκεκριμένη εταιρεία να παρέχει εκτεταμένη τεκμηρίωση ώστε τα προϊόντα της να λειτουργούν όσο το δυνατόν καλύτερα αν όχι αντί να δίνει ανοιχτού κώδικα drivers όπως η Intel.

Κάποιος θα πει ότι η NVidia πριν μερικά χρόνια (μιλάμε για πριν 2-3 χρόνια) ήταν η μόνη βιώσιμη λύση ή θα έσπαγε να νεύρα του με τους driver της ATI, τελικά όμως η ATI άνοιξε τους drivers της και δουλεύουν αρκετά καλύτερα από πριν όσο αφορά για την Nvidia ναι αν έχετε μια σχετικά καινούρια κάρτα (όχι πολύ καινούρια όμως) είστε OK, εγκαθιστάτε το driver και δουλεύετε μια χαρά σωστά; Χμ, όχι ακριβώς βλέπετε οι κλειστού κώδικα drivers της Nvidia συχνά δουλεύουν υπό κάποιες συνθήκες λίγο αλλοπρόσαλλα.

Βλέπετε ειδικά πριν μερικά χρόνια το flash, το KDE ακόμη και το απλούστερο OpenGL παιχνίδι απλά δεν δούλευε πάντα και μπορούσε μέχρι και να κολλήσει ένα σύστημα με παλιά Nvidia. Φυσικά τα χρόνια περάσαν και πλέον το project Nouveau, μια προσπάθεια αντίστροφης μηχανικής των driver της Nvidia άρχισε να αποφέρει καρπούς (μάλιστα στα περισσότερα σενάρια χρήσης του, τουλάχιστον στο δικό μου μηχάνημα, δουλεύει μια χαρούλα). Όχι όμως χάρης την βοήθεια της NVidia.

Τελικά λοιπόν, είχε δίκιο ο Linus; Από την μία, πιστεύω ότι επειδή έδινε μια ενδιαφέρουσα ομιλία δεν θα έπρεπε να αντιδράσει έτσι, ειδικά τώρα που υπάρχει μια προσπάθεια από την NVidia να υποστήριξει ανοιχτού κώδικα projects (η NVidia από όσο γνωρίζω, και μπορεί να κάνω και λάθος, έχει μόλις από τα μέσα Μάρτιου φτιάξει μια μικρή ομάδα developer για αυτή την δουλειά). Από την άλλη σήμερα είπα να δω ένα video σε flash αλλά έκανα το λάθος να το δω σε μια δοκιμαστική εγκατάσταση που δεν το είχα τσεκάρει και πολύ καλά με ένα λίγο παλιότερο driver της Nvidia που δεν τα πάει καθόλου καλά με το Flash σε Linux. Θέλετε να μαντέψτε τι έγινε; Κάποιος έβριζε την NVidia και την Adobe… αντί να βρίζω τον εαυτό μου που δεν τα απέφυγα :S

Όταν ήρθα στα συγκαλά μου και bootάρα στην κύρια διανομή μου όλα δούλευαν ρολόι. Πριν κλείσω να ευχαριστήσω τον φίλο Κώστα Μπουκουβάλα που περιμένει δημοσίευση άμεσα.

Επίσης επειδή η ομιλία του Torvalds είναι πάνω από μια ώρα και το θέμα με την NVidia 2-3 λεπτά αξίζει να δείτε ολόκληρο το βίντεο, εκτός αν είστε ανυπόμονοι και θέλετε να πάτε κατευθείαν στην σχετική απάντηση του Torvalds στο θέμα της NVidia.

(more…)


Snow Globe: φτιάξτε την δική σας ανοιχτού κώδικα ψηφιακή υδρόγειο σφαίρα 3

Πριν αρκετά χρόνια θυμάμαι ως μαθητής να κοιτάω με ένα φίλο μια παλιά πλαστική υδρόγειο με τον πολιτικό χάρτη της υφηλίου και να σχολιάζουμε τις αλλαγές που είχαν συντελεστεί από τότε που φτιάχτηκε εκείνη η υδρόγειος μέχρι την στιγμή που μιλούσαμε. Βέβαια με το Google Earth αλλά και με ανοιχτού κώδικα projects όπως το marble έχουμε την δυνατότητα να δούμε στον υπολογιστή μας τρισδιάστατους χάρτες όχι μόνο πολιτικούς και γεωγραφικούς αλλά με μια σειρά δεδομένων όπως το πως φαίνεται η Γη την νύχτα, με απεικόνιση της μέσης θερμοκρασίας, ακόμη με απεικόνιση των νεφών πάνω στην ψηφιακή υδρόγειο της.

Με την λογική που χρησιμοποιούμε προγράμματα όπως το Marble στον υπολογιστή μας, έτσι και εκπαιδευτικοί και επιστημονικοί οργανισμοί χρησιμοποιούν τέτοιου είδους σφαιρικές “οθόνες” για την εκπαιδευτικά προγράμματα (και όχι μόνο) όπως τα εξαιρετικά συστήματα OmniGlobe είναι αρκετά ακριβά (η τιμή “λίστας” για μια τέτοια σφαιρική οθόνη 32 ιντσών είναι γύρω στα 44.000 δολάρια) και απαγορευτική για τα περισσότερα σχολεία η εκπαιδευτικά ιδρύματα και μικρά μουσεία φυσικής ιστορίας δύσκολα θα μπορούσαν να επενδύσουν ποσά τέτοιου ύψους.

Όμως αυτό δεν σημαίνει ότι δεν μπορεί κάποιος να φτιάξει-μόνος-του κάτι μικρότερο και απλούστερο αλλά αρκετά εντυπωσιακό και πολύ φθηνότερο, έτσι ο Nirav Patel όχι μόνο έφτιαξε μια αλλά έδωσε οδηγίες για το πως το κάνει και φυσικά διέθεσε τον απαραίτητο κώδικα κάτω από άδεια παρόμοια με την BSD. Τι χρειάζεται;

  • Μια μπάλα από οπάλ γυαλί (νομίζω ότι και η ακρυλική κάνει αν είναι αρκετά αδιάφανη) που είναι πολύ φθηνά και μπορείτε να τα βρείτε σχεδόν παντού.
  • Ένα laser pico projector (προσοχή χρειάζεται laser projector (όχι DLP ή LED)
  • Ένα fisheye φακό 180′ για φωτογραφική μηχανή με αρκετά μεγάλο άνοιγμα για να προβάλει μέσα από αυτόν (ο Nirav χρησιμοποίησε ένα φακό Opteka)
  • Φυσικά θα πρέπει να έχετε ένα υπολογιστή, και είναι χρήσιμο να έχετε πρόσβαση σε ένα 3D printer (προσωρινά έχει ένα Cupcake CNC στο hackerspace.gr στην Αθήνα και σύντομα θα ολοκληρωθεί και ένα RepRap Mendel ως μόνιμο εργαλείο εκεί)

Με τον 3D εκτυπωτή σας θα μπορείτε να φτιάξτε μια βάση για να τοποθετήστε τον fisheye φακό σας με γωνία 12.15 μοιρών όσο η κλίση του άξονα περιστροφής της Γης. Μετά αφού συνδέστε τον προτζέκτορα σας και μένει να καλιμπράρετε το δημιούργημα σας ώστε να μην παραμορφώνεται πολύ έντονα η σφαιρική μας εικόνα. Φυσικά όλα τα 3D σχέδια για τον εκτυπωτή και ο κώδικας για το πρόγραμμα καλιμπραρίσματος καθώς και ο κώδικας ελέγχου της σφαίρας είναι διαθέσιμα στο αντίστοιχο repο στο github.

ΟΚ δεν φαίνεται και πολύ εντυπωσιακό αυτό έτσι δεν είναι; Ο Nirav Patel όμως εμπνευσμένος από το πρόγραμμα Science On a Sphere του NOAA (National Oceanic and Atmospheric Administration), στο οποίο χρησιμοποιούνται τα πανάκριβα συστήματα που λέγαμε ποιο πάνω και καθώς η συντριπτική πλειοψηφία των datasets του Science On a Sphere είναι με copyright public domain (καθώς η NOAA είναι κρατική υπηρεσία στις ΗΠΑ). Χρησιμοποιώντας SDL, OpenGL, GLSL και την libvlc κατάφερε να μετατρέπει εικόνες και βίντεο από τα δημόσια datasets. (αν δείτε το κώδικα του sosg ο δημιουργός αναφέρεται και σε παραδείγματα κώδικα από tutorial του Γιάννη Τσιωμπίκα)

Παρακάτω ακολουθεί ένα βίντεο με την Snow Globe να παρουσιάζει στοιχεία από datasets του Science One Sphere.

(more…)


το Kinect απέκτησε ανοιχτού κώδικα drivers… μέσω αμοιβής 5

Libfreeneck-Verify

Αν θυμάστε μόλις εχθές αναφερόμουν στην αμοιβή 3000$ που έδινε η εταιρεία Adafruit για την δημιουργία ανοιχτού driver του Kinect.  Όπως μπορείτε να φανταστείτε η παραπάνω φωτογραφία είναι από το desktop ενός προγραμματιστή που επιβεβαιώνει την επιτυχία του εγχειρήματος. Ο προγραμματιστής που πρώτος έφτιαξε τον εν λόγω driver αναφέρει ότι αν και κάπως ασταθής ο οδηγός αποδεικνύει ότι είναι εφικτή η δημιουργία ενός έστω αρχικού οδηγού για το Kinect σε όλα τα λειτουργικά συστήματα (μάλιστα ο κώδικας του δουλεύει με το OpenGL)

Για τους δύσπιστους υπάρχει και βίντεο του οδηγού του Kinect σε λειτουργία σε περιβάλλον Linux (που άλλου;)

Η Adafruit μάλιστα θα δώσει άλλα 2000 δολάρια στο Electronic Frontier Foundation (ένα μη κερδοσκοπικό οργανισμό που έχει σκοπό την προστασία των δικαιωμάτων των χρηστών στο ψηφιακό κόσμο). Αυτή η συμβολική κίνηση έχει σαν στόχο απαντήσει σε πιθανά νομικά ή άλλα μέτρα που ίσως έχει σκοπό να πάρει κατασκευάστρια του Kinect Microsoft όπως είχε απειλήσει ότι θα κάνει.

Αν θέλετε να ασχοληθείτε με το Kinect για να το χρησιμοποιήστε για δικά σας project ή για να βελτιώστε τον οδηγό του μπορείτε να δείτε το Google Group που έχει στηθεί για αυτό το σκοπό. Ελπίζω σύντομα να δούμε ενδιαφέρουσες εφαρμογές όπως έχουμε δει με το Nintent WiiMote όπως το infrael ή σαν το WiiMote Whiteboard και ελπίζω να γράψω γρήγορα και για αυτές.


Το Direct3D 10 και 11 στο Linux; …και γιατί μας νοιάζει; 3

But It Is, Like, Right ThereΟ φίλος Σέργιος από την Θεσσαλονίκη, (aka Linuxman) από το GreekLUG με ενημέρωσε για ένα εξαιρετικό νέο. Την υλοποίηση με native κώδικα του Direct3D στις εκδώσεις 10 και 11 μέσω του Gallium3D στο Linux.

Κατ’αρχάς το Gallium3D είναι μια ανοιχτού κώδικα (άδεια MIT) βιβλιοθήκη που λειτουργεί ουσιαστικά ως διαμεσολαβητής μεταξύ του Application Programming Interface των γραφικών  και του λειτουργικού συστήματος. Πρόσφατα, μεταξύ διάφορων προσθηκών κώδικα που έγιναν στο Gallium 3D προστέθηκε η υποστήριξη Direct3D 10 και 11.

Πρώτος στόχος είναι να η υποστήριξη από το Gallium3D πολλαπλών API, και από την άλλη να παρέχεται ένα API που μπορεί να υλοποιείται απλά από το Gallium3D χωρίς τις περιπλοκότητες που χρειάζονται στην περίπτωση του OpenGL.Ο δεύτερος στόχος είναι να μπορέσουν παιχνίδια φτιαγμένα για να τρέχουν με το Direct3D 10 και 11 να τρέχουν πιο εύκολα στο Linux μέσω Wine. Τρίτος στόχος είναι η διάθεση ενός σύγχρονου API όπως το Direct3D 10 και μετά καθώς το OpenGL έχει αρχίσει και δείχνει τα χρόνια του.

Να τονίσω εδώ ότι το καλοκαίρι του 2008 η έκδοση του OpenGL 3.0 (που αναμενόταν από καιρό το Σεπτέμβριο του 2007 και με την Khronos Group που αναπτύσσει το OpenGL να μην κάνει ανακοινώσεις) έφερε κύματα απογοήτευσης σε πολλούς προγραμματιστές 3D εφαρμογών και παιχνιδιών με αποτέλεσμα πολλοί προγραμματιστές (μερικά,παραδείγματα) καθώς πολλά στοιχεία που θα δοκιμαζόταν στην περίφημη έκδοση Longs Peak (όπως ονομαζόταν κατά την φάση της ανάπτυξης του το OpenGL 3.0).

Υλοποιήσεις βασισμένες στο Gallium και στο Direct3D 10 και 11 πλέον θα είναι σε θέση να υποστηριχτούν σε λειτουργικά συστήματα όπως το Linux, το πιο αστείο είναι ότι η Microsoft δεν υποστηρίζει το Direct3D 10 και 11 στα Windows XP αλλά μόνο στα Vista και τα Windows 7.

Θα αλλάξει αυτό το τρόπο που προσεγγίζουμε το 3D στο Linux; Αυτό θα εξαρτηθεί από πολλούς παράγοντες, σημαντικό ρολό θα παίξουν οι developers του Wine αλλά και από άλλους developers ανοιχτού κώδικα. Από την άλλη πρέπει να τονιστεί ότι το project είναι πρακτικά μια ανοιχτού κώδικα υλοποίηση του API του Direct3D μέσω του Gallium3D αυτό έχει σαν αποτέλεσμα να μην πρόκειται για κλειστού κώδικα λογισμικό ωστόσο υπάρχει ένα κομμάτι του που κατεβάζει το Microsoft HLSL compiler στο σύστημα σας.

Εσείς τί λέτε; Είναι το Direct3D κάτι που θα φέρει στο Linux ακόμη περισσότερες δυνατότητες και χρήστες ή είναι μπορεί να λειτουργήσει αρνητικά στην ανάπτυξη του ελεύθερου λογισμικού;