openGL και opensuse

barney90 | Τετ, 12/02/2009 - 18:33 | 1' | 9

καλησπέρα παιδιά,
Θελω να ξεκινήσω openGL με C++ και εδω και μέρες ψάχνω στο internet να βρω πως θα το περάσω και δεν εχω βγάλει ακρη με τα glut , glee , glew κτλ. Τι σχέση εχουν αυτά με το opengl ?
Mετα, δε βρισκω στο yast libraries σχετικα με opengl οποτε μαλλον ψάχνω λάθος ! Μπορεί καποιος να με καθοδηγήσει λίγο γιατι εχω χαθεί?

Φόρουμ
Δώσε αστέρια!
Σχόλια

Λογικό είναι να μην βρίσκεις τίποτα. Πολύ απλά γιατί δεν υπάρχει τίποτα σε πακέτο με την ίδια ονομασία. Τα τεχνικά και τα προγραμματιστικά του θέματος δεν τα γνωρίζω καθόλου, θα σου πω λίγα πράγματα που ξέρω.

Για αρχή το openGL είναι μέρος των drivers της κάθε κάρτας. Δηλ ο driver υποστηρίζει ή όχι κάποια extensions του openGL, δεν είναι ένα πρόγραμμα που κατεβάζεις και παίζεις (πχ DirectX). Oπότε εσύ γράφεις τον κώδικά σου και αν τον υποστηρίζουν οι drivers θα παίξει (το λέω λίγο χοντρά).

Επίσης το δεύτερο που θέλω να σου πω είναι οτι οι ανοιχτού κώδικα drivers δεν έχουν openGL. Έχουν την μη επίσημη υλοποίηση που λέγεται mesa. Για να πει κάποιος οτι υποστηρίζεi το οpenGL ή για να μπει το σηματάκι σε ένα προιόν πρέπει να ρίξει πολλά λεφτά και να περάσει και διάφορους ελέγχους. Παρόλα αυτά η εταιρία που τώρα έχει το openGL αφήνει (και υποστηρίζει απο την αρχή) την ύπαρξη του mesa. Επίσης ξέρω οτι πολλοί developers τεστάρουνε σε Mesa αυτά που γράφουνε καθώς εκτός οτι έχει δυνατότητα για software rendering, δεν έχει ξεχωριστές extensions ανάλογα με το hardware. Η nvidia για παράδειγμα έχει κάποιες που χρησιμοποιεί μόνο αυτή, οι οποίες δεν υπάρχουν και στην επίσημη υλοποιήση.

Οπότε κάπως έτσι έχει η κατάσταση (αν τα λέω σωστά βεβαίως, διατηρώ κάποιες επιφυλάξεις). Δοκίμασε τα απλά "hello world" και δες αν σου παίζουν.

Δεν ξέρω πολλά από προγραμματισμό, αλλά όλα όσα αναφέρεις είναι εργαλεία (glut) και τα υπόλοιπα βιβλιοθήκες που διευκολείνουν στον προγραμματισμό με OpenGL(ή, καλύτερα, mesa στο linux, που είναι το free implemantation του OpenGL). Αρα, κατεβάζεις τα dev αρχεία του mesa από το yast, και το ρίχνεις στο διάβασμα... Τώρα, αν δεν υπάρχουν τα dev αρχεία, τότε σου λοίπουν repositories του opensuse.

Υ.Σ Πολύ σωστά και επεξηγηματικά είναι και αυτά που γράφει ο Teddy.

και δηλαδή οποιεσδήποτε συναρτήσεις και includes ειναι ίδιa με του openGL ??

barney90]

καλησπέρα παιδιά,
Θελω να ξεκινήσω openGL με C++ και εδω και μέρες ψάχνω στο internet να βρω πως θα το περάσω και δεν εχω βγάλει ακρη με τα glut , glee , glew κτλ. Τι σχέση εχουν αυτά με το opengl ?
Mετα, δε βρισκω στο yast libraries σχετικα με opengl οποτε μαλλον ψάχνω λάθος ! Μπορεί καποιος να με καθοδηγήσει λίγο γιατι εχω χαθεί?

Γειά σου barney90.

Όπως σου είπαν τα παιδιά, δεν υπάρχει πακέτο με όνομα opengl (αν και υπάρχουν πακέτα για άλλες γλώσσες όπως η Python που δίνουν bindings για opengl και περιλαμβάνουν και τη λέξη opengl στο όνομά τους).

Στην περίπτωσή σου, πρέπει να εγκαταστήσεις το πακέτο: freeglut-devel (υπάρχει σίγουρα στα αποθετήρια του opensuse) το οποίο σύμφωνα με την περιγραφή του προσφέρει:

This package contains all necessary include files and libraries needed
to compile and link applications for the freeglut library.

freeglut is a completely open source alternative to the OpenGL Utility
Toolkit (GLUT) library. GLUT was originally written by Mark Kilgard to
support the sample programs in the second edition OpenGL Redbook. Since
then, GLUT has been used in a wide variety of practical applications
because it is simple, universally available, and highly portable.

 

Ουσιαστικά με αυτό το πακέτο, μπορείς να ακολουθήσεις όλα τα tutorials του nuclear (που δημοσιεύονταν παλιότερα στο Ελληνικό Linux Format). Αν δεν έχεις τα περιοδικά, μπορεις να διαβάσεις τα άρθρα σε PDF στο site του Γιαννη:

http://codelab.wordpress.com/category/articles/

Εάν έχεις πρόβλημα στο compile, υπάρχει ήδη αντίστοιχο thread, με οδηγίες από τον ίδιο τον Γιάννη και τον gnulabis::

http://www.linuxinsider.gr/forum/opengl-tutorials

 

Me liga logia:

- OpenGL einai ena standard API gia na kaneis render 3D (alla kai 2D) grafika me tin texniki tou polygon rasterization. An thes na matheis perisotera gia to pos mporeis na xrisimopoiiseis to OpenGL, proteino to "OpenGL Programming Guide" i "red book". Episis eixa grapsei mia seira apo 4 eisagogika arthra prin ligo kairo sto linux format, opote an exeis ayta ta teyxi mporeis na ta xrisimopoiiseis san starting point.

- GLUT (GL Utility Toolkit) einai mia voithitiki vivliothiki pou analambanei na xeiristei olo to interfacing metaksy OpenGL kai tou window system, oste na min xreiazetai na asxolitheis me X11 event processing, window creation, dimiourgia OpenGL context kai syndesi tou me to X window pou thes, klp. Me to GLUT kaleis 2-3 aples synartiseis sto initialization gia na tou peis ti eidous context grafikon thes, kai poso megalo na kanei to parathyro, orizeis callback functions gia otan symvainoun sygkekrimena events (keyboard, mouse, klp) kai to GLUT analambanei olo to event processing kai kalei ta callbacks pou exeis orisei otan prepei.

- glew kai glee einai episis voithitikes vivliothikes gia "pio eykolo" access sta extensions tou OpenGL. To OpenGL exei mixanismo oste kathe implementor na mporei na prosthesei to diko tou functionality, xoris na xreiazetai kainourio revision tou API (opos px ginetai me to Direct3D).

--
John Tsiombikas
http://nuclear.sdf-eu.org

αρα ουσιαστικα δεν γινεται να εχω απ'ευθείας access σε συναρτήσεις του opengl παρα μόνο μεσω interface , σωστά? Επίσης με ποια μου προτείνετε να ξεκινήσω μιας και δέν εχω ασχολιθεί καθόλου με προγραμματισμό με καποιο ΑΡΙ (εκτός κ αν ειναι τ ιδια ολά)?

Oxi, den katalabes.

Sto OpenGL apeythias access exeis. Apla to OpenGL apo mono tou den einai poly xrisimo, an den mporeis na blepeis to apotelesma tou rendering se ena parathyro.
To OpenGL einai cross-platform, den kserei apo parathyra tou kathe systimatos. To kathe window system exei kai ena tropo na ftiaxneis OpenGL context kai na to "syndeeis" me ena parathyro.

Sto X Window System, ayto ginetai me to GLX extension, kai safos mporeis na xrisimopoiiseis apeythias Xlib kai GLX, alla einai "pio eykolo" na xrisimopoiiseis mia voithitiki vivliothiki opos i GLUT, pou analambanei na kanei to parapano + event processing poly pio apla.

--
John Tsiombikas
http://nuclear.sdf-eu.org

Ευχαριστώ πάρα πολυ για τις απαντήσεις σας . πιστέυω ξεμπέρδεψα καποια πράγματα :)