Προς το περιεχόμενο

java opengl


vicky5

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα..εχει κανεις σημειωσεις σε Java opengl? η αν δεν εχει απο που θα μπορουσα να ξεκινησω γιατι βλεπω η πλειοψηφια των tutorial ειναι σε c++ ...Aυτο που θέλω να κανω ειναι καποιο γραφημα με opengl που θα εξαρταται απο τις τιμες που θα δίνει ο χρηστης

Δημοσ.

καλησπέρα,

 

Ξέρετε να μου πειτε κανεναν Compiler για Java ;

 

javac και είσαι αρχηγός

 

Εάν εννοείς IDE, τότε NetBeans, Eclipse, Codeblocks κτλ...

Δημοσ.

καλησπέρα,

 

Ξέρετε να μου πειτε κανεναν Compiler για Java ;

 

Από εδώ μπορείς να κατεβάσεις σεταρισμένο eclipse για jogl. Έχει και 3 παραδειγματικά projects για αρχάριους.

 

@vicky5

To να μετατρέψεις κώδικα opengl c++ σε java δεν είναι τπτ δύσκολο, μη σε αποθαρρύνει. Είναι σχεδόν ίδιες οι εντολές, απλά συνήθως δηλώνεις αντικείμενα GL και GLU και καλείς από κει τις μεθόδους της opengl. Απλά πρέπει να δεις πώς να χρησιμοποιείς listeners στη java, αν δεν ξέρεις ήδη. Εδώ τα εξηγεί όλα αναλυτικότατα. Δες αν θες και το προηγούμενο λινκ που παρέθεσα για να μπεις στο νόημα με τα παραδείγματα, νομίζω για απλά γραφήματα θα είσαι γρήγορα σε θέση να τα αναπτύξεις.

Δημοσ.

Από εδώ μπορείς να κατεβάσεις σεταρισμένο eclipse για jogl. Έχει και 3 παραδειγματικά projects για αρχάριους.

 

@vicky5

To να μετατρέψεις κώδικα opengl c++ σε java δεν είναι τπτ δύσκολο, μη σε αποθαρρύνει. Είναι σχεδόν ίδιες οι εντολές, απλά συνήθως δηλώνεις αντικείμενα GL και GLU και καλείς από κει τις μεθόδους της opengl. Απλά πρέπει να δεις πώς να χρησιμοποιείς listeners στη java, αν δεν ξέρεις ήδη. Εδώ τα εξηγεί όλα αναλυτικότατα. Δες αν θες και το προηγούμενο λινκ που παρέθεσα για να μπεις στο νόημα με τα παραδείγματα, νομίζω για απλά γραφήματα θα είσαι γρήγορα σε θέση να τα αναπτύξεις.

 

βασικα java ξερω αλλα δεν ξερω κατα ποσο μπορω να κανω τη μετατροπη αυτη που λες..εχει λιγο μπλεξιμο...παλια jogl καινουργια jogl..swt gl4 και τι αλλο δεν ξερω εχω δει...εχω χασει το μπουσουλα απο που να ξεκινησω :(

Δημοσ.

Θελω να φτιαξω ενα γραφημα σε Opengl ..το οποίο θα χρησιμεύει να παίρνει τιμες που θα δίνει ο χρήστης και να δημιουργεί τους αντιστοιχους κυλινδυς με το αντισοιχο ύψος των τιμών βασικα κατι τετοιο Link

απο εκει πηγα να το ανοιξω δεν εβγαλα ακρη και το κανω απο την αρχη να μαθω κιολας

  • 3 εβδομάδες αργότερα...
Δημοσ.

επανερχομαι στο θέμα με 2 ερωτήσεις η μια νομίζω απλη για παιδιά που δουλέυουν opengl

1) πως φ@#$%^& βαζω την καμερα σε αλλη οπτικη γωνία για να βλέπει το αντικείμενο μου...γιατι όταν χρησιμοποιήσω rotate για να κάνω μεταφορα χειροκινητη όλου του σχεδίου μου αλλάζει και τη θέση κάποιον αντικειμένων...σκεφτηκα αν αλλάξω απλα τη θέση της κάμερας θα μου λύσει το πρόβλημα αλλα δεν δουλεύυν οι εντολές που εχω χρησιμοποιήσει ώς τωρα

2) πως μπορω να κάνω σταδιακή σχεδίαση ενός κυλίνδρου? δηλαδη ενω δουλεύει το πρόγραμμα να παίρνει μια τιμή και να φτιάχνει ενα νέο σχήμα μέσα ?

Δημοσ.

Εχεις διαβάσει τις ιδιότητες της στροφής ;

Για να στρέψεις κάτι γύρω από τον άξονά του, απαιτούνται τρία βήματα :

α) να μεταφερθεί πρώτα στην αρχή των αξόνων,

β) το στρέφεις εκεί,

γ) το ξαναμεταφέρεις στην αρχική θέση του (στραμμένο πλέον).

Αν το στρέψεις χωρίς μεταφορά, θα στραφεί γύρω από την αρχή των αξόνων αντί γύρω από τον άξονά του (και θα γίνει μπάχαλο).

 

Αν δεν θες να στρέψεις τα αντικείμενα, πρέπει να στρέψεις την κάμερα, δηλ. την θέση παρατήρησης.

Η χρήση της rotate συνήθως είναι άβολη γι' αυτήν την δουλειά.

Για να αλλάξεις οπτική γωνία χρησιμοποίησε την gluLookAt :

δέχεται ως παραμέτρους την θέση και προσανατολισμό της κάμερας καθώς και το σημείο στόχευσης.

Αν υπάρχουν πολλά αντικέιμενα στην σκηνή, πρέπει να στοχεύει κάπου κεντρικά και με άνοιγμα γωνίας τέτοιο ώστε να τα έχει στο οπτικό πεδίο της.

(Παρεμπιπτόντως, η gluLookAt έχει γίνει deprecated στις νεώτερες εκδόσεις του opengl αλλά δεν νομίζω να σε νοιάζει αυτό)

 

 

Το δεύτερο ερώτημα δεν είναι σαφές. Τι εννοείς "να φτιάχνει ένα νέο σχήμα μέσα" ;

 

-

Δημοσ.

εχω καταλαβει και διορθωσε με αν κανω λαθος το εξης..με glTranslatef(-1f, -1.7f, -8f) πχ μεταφερω το απο που ξεκιναει το σχεδιο χ ψ ζ αντιστοιχα οι τιμες.αυτο εννοουμε μεταφερω τον αξονα? ...gl.glRotated(30, 3, -10, 0); ειναι οτι κατα 30 μοιρες το στρεφει στον αξονα χ κατα 3 δηλαδη δεξιοστροφα δηλαδη και κατα -10 στον ψ αξονα...τι αλλο πρεπει να εχω καταλαβει??? ..χρησιμοποιησα και το Glulookat και μου κανει ακριβως το ιδιο προβλημα...δηλαδη εχω 3 αξονες σχεδιασμενους και σαν φοντο εχω σχεδιασει τετραγωνο απο πισω με γραμμες..οταν το μεταφερω ομως μου αλλαζει εντελως θέση του τετραγωνου απο πισω.. σκεψου παλευω να κανω αυτο Link.οπως βλεπεις την εικονα το γκρι φοντο με τις γραμμες του χ αξονα οτι και να κανω δεν τους πειραζει...του ζ του αλλαζει τα ματια

 

β) οταν λεω να κατασκευαζεται σταδιακα εννοω..ξερω να βαζω στο σχεδιο κυλινδρους...εμενα οπως η εργασια λεει να παιρνει ενω δουλευει το προγραμμα τιμες απο το χρηστη και να δημιουργει εκεινη τη στιγμη τον κυλινδρο απο κατω προς τα πανω σταδιακα μεχρι να φτασει ο κυλινδρος στο υψος της τιμης που εχει δωσει ο χρηστης..το μονο που σκεφτηκα ειναι καποια while?αλλα τι θα φτιαχνει κυλινδρακια και θα τα ενωνει..κατη σκεφτομαι λαθος νομιζω :(

 

διαβαζω μονη μου Opengl και τα εχω βρει λιγο σκουρα..μπορει καποια πραγματα που λεω να φαινονται χαζα αλλα δεν εχω καποιον να ρωτησω :)ευχαριστω για την οποια βοηθεια

Δημοσ.

Αν έχεις ένα αντικείμενο στην θέση (x,y,z) ενός καθολικού συστήματος συντεταγμένων και θέλεις να

στρέψεις το αντικείμενο γύρω από τον άξονά του (του αντικειμένου), πρέπει πρώτα να το μεταφέρεις στην θέση (0,0,0)

του καθολικού συστήματος. Δηλ. κάνεις glTranslate(-x,-y,-z).

Το στρέφεις εκεί οπότε στρέφεται πράγματι γύρω από τον άξονά του και μετά με glTranslate(x,y,z) το ξαναμεταφέρεις στραμμένο πλέον

στην αρχική θέση του.

 

Εδώ που βρίσκομαι τώρα δεν μπορώ να σου πω πολλά.

 

Αλλά σου λέω το εξής.

Πάρε το manual του openg (είναι το λεγόμενο 'κόκκινο' βιβλίο) και διάβασε από εκεί τα βασικά για τις glRotate, glTranslate και gluLookΑt.

Έχει και απλά παραδείγματα.

Αν δεν έχεις διαβάσει τον χειρισμό και την συμπερισφορά των βασικών μετασχηματισμών,παλεύεις άσκοπα. Στην τύχη είναι δύσκολο να σου βγει.

Υπάρχουν κι' αλλά καλά (ή καλύτερα) βιβλία όπως το Opengl SuperBible αλλά το 'κοκκινο' βιβλίο είναι πιθανόν ότι θα υπάρχει στην βιβλιοθήκη...

(εκδόσεις μέχρι και την 2.1 έχουν τα παραπάνω - από την 3.0 και μετά δεν ξέρω)

 

-

Δημοσ.

το κατάλαβα και το έκανα..έχω άλλο ένα θέμα που ασχολούμαι από χτες βραδυ και δεν μπορώ να καταλάβω καν αν γίνεται...έχω το panel μου το οποιο γεμίζει με ένα σύστημα αξόνων απο μια αλλαη κλαση ...παίρνω μια τιμή από το χρηστη και θέλω να πάω να το προσθέσει μέσα στο panel..όταν πάω λοιπόν να κάνω gluCylinder(qobj, 1.0, 1.0, 0.4, 1, 16); μου πετάει exception opengl.GLException: No OpenGL context current on this thread ...δεν μπορώ να "προστεσω" κάποιο αντικείμενο κατά τι διάρκεια που τρέχει?

Δημοσ.

Φαντάζομαι να μην χρησιμοποιείς μόνη της την gluCylinder().

Πρέπει να κληθεί η gluNewQuadric() πρώτα και να οριστούν κάποιες ιδιότητες.

 

Αν αυτά τα κάνεις σωστά, το πρόβλημα πιθανόν αφορά κάτι σχετικό με την java (που δεν την ξέρω).

 

Γενικά από διδακτικής πλευράς το opengl πρέπει να μαθαίνεται στις C/C++ που υπάρχει μεγάλη και πολύ καλή τεκμηρίωση.

Εκεί δεν θα είχες τέτοια προβλήματα και θα ήταν και πιο εύκολο να βρεις βοήθεια.

 

-

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...