makaveli21 Δημοσ. 14 Ιουλίου 2010 Δημοσ. 14 Ιουλίου 2010 Καλημέρα παίδες!!! Όπως γράφω και στον τίτλο έχω ενα ανεκδιήγητο πρόβλημα. Δουλεύω την πτυχιακή μου αυτό τον καιρό και έχω ένα θέμα. Η πτυχιακή είναι υλοποίηση του αλγορίθμου K-means και υλοποίηση με OpenGL. Το θέμα μου είναι το εξής. Ενω δουλεύω στον η/υ μου με DEVC++ 4.9.9.2 και με windows xp professional και έχοντας κάνει downloas τα updates για opengl, ο κώδικας μου δουλεύει μια χαρά χωρίς κανένα πρόβλημα. Το θέμα μου όμως είναι ότι όταν πάω να τρέξω τον ίδιο ακριβώς κώδικα σε οποιοδήποτε άλλο η/υ δεν μου πάιζουν τα γραφικα και δεν μπορώ να καταλάβω καθόλου την αιτία. Ότι δικιμή έχω κάνει την έχω κάνει σε υπολογιστές και με το ίδιο λειτουργικό αλλά και με την ίδια έκδοση του DEVC++ Μπορεί κάποιος να δώσει μια ιδέα για ποιο λόγο και αιτία μπορεί να συμβαίνει κάτι τέτοιο????
TheELF Δημοσ. 14 Ιουλίου 2010 Δημοσ. 14 Ιουλίου 2010 Αν δουλεύεις με software render,τότε μάλλον είναι κάποια libraries που επικαλείσαι και λείπουν στους άλλους PC. Αν κάνεις hardware render μάλλον φταίνε η κάρτες γραφικών,η τα drivers.
makaveli21 Δημοσ. 14 Ιουλίου 2010 Μέλος Δημοσ. 14 Ιουλίου 2010 τι εννοείς με το software render γιατί δεν τον ξέρω τον συγκρεκριμένο όρο και δεν το έπιασα αυτό....
TheELF Δημοσ. 14 Ιουλίου 2010 Δημοσ. 14 Ιουλίου 2010 Γενικά για κάρτες που δεν έχουν ενσωματωμένο openGL υπάρχει σύστημα software που μεταφράζει όλες τις εντολές που είναι για το openGL σε εντολές που τις καταλαβαίνει και εκτελεί ο κεντρικός επεξεργαστής,αυτό είναι πιο αργό μεν,αλλα σου επιτρέπει να εκτελείς κώδικα openGL σε μηχανήματα που δεν έχουν πραγματικό openGL.Αυτό λέγεται software render,όχι μονο για openGL,και το ΜΑΜΕ για παράδειγμα κάνει software render όλα τα γραφικά,από όλα τα συστήματα που υποστηρίζει.
makaveli21 Δημοσ. 15 Ιουλίου 2010 Μέλος Δημοσ. 15 Ιουλίου 2010 μια ακόμα αξιοσημείωτη παρατήρηση που ίσως βοηθήσει κάποιον για να λύσει το προβλημά μου είναι το εξής: Ο επεξεργαστής στον οποίο έχει στηθεί το project είναι amd Δοκίμασε ένας φίλος μου επίσης να τρέξει τον κώδικα με τα ίδια βήματα που είχα κάνει και εγώ και τα έχω αναφέρει και του έπαιξε άψογα. Ενώ όλοι οι άλλοι η/υ που το έχω δοκιμάσει εγώ είναι με επεξεργαστή intel.
georgemarios Δημοσ. 15 Ιουλίου 2010 Δημοσ. 15 Ιουλίου 2010 εγω πάλι δε καταλαβα τι εννοεις "δε σου παιζουν τα γραφικα"? Σου εμφανιζεται ας πουμε μια ασπρη οθονη; Πεταγεται κανενα ερρορ? Λειπει καμια βιβλιοθηκη/dll απο τα αλλα συστήματα; Θες να ποσταρεις το προγραμμα να δοκιμασουμε στα δικα μας να δουμε;
makaveli21 Δημοσ. 15 Ιουλίου 2010 Μέλος Δημοσ. 15 Ιουλίου 2010 όταν εννοώ δεν μου πάιζουν τα γραφικά εννοώ ότι δεν τρέχει ο αλγόριθμος έτσι όπως θα έπρεπε να πάιζει και να έχω την φραφική απεικόνιση των σημείων και των ομαδοποιήσεων του. Το compile & run είναι εντάξει, όπως και οι βιλιοθήκες δεν παρουσιάζουν κάνενα απολύτως πρόβλημα. Μετά που ανοίγει το παράθυρο των γραφικών πετάει μια άσπρη οθόνη και όπως σου είπα δεν έχω την απεικόνιση του αλγορίθμου. Συγνώμη, αλλα επείδη δεν είναι 100% δικιά μου η εργασία (μαζί με άλλον την έχω) δεν μπορώ να την ποστάρω. ευχαριστώ πάντως για την βοήθεια και αν σου έρχεται κάμια λύση, ευπρόσδεκτη
georgemarios Δημοσ. 15 Ιουλίου 2010 Δημοσ. 15 Ιουλίου 2010 Υποθέτοντας πως development περιβαλλον εχεις μονο στο βασικο σου μηχανημα, αυτο που μπορω να προτεινω (και να επιμεινω), ειναι να κανεις το προγραμμα σου να κανει ενα λεπτομερες logging σε καποιο αρχειο κατα την εκτελεση και να καταγραφεις βημα-βημα τα αποτελεσματα απο τα διαφορα σταδια του αλγοριθμου σου. Μετα συγκρινε τα αρχεια μεταξυ συστημάτων. Αν ο αλγοριθμος ειναι οκ αλλα τα γραφικα μονο δε δουλευουν, ψαξε να βρεις ποια κομματια του κωδικα σου ειναι system specific (πχ να χρησιμιοποιεις extensions που υποστηριζονται μονο απο τη καρτα γραφικων σου) και κανε τα παραμετροποιησιμα ή έστω υλοποιησε ενα fallback plan (ex reduced graphics quality for less powerful systems than yours) Το σεναριο που λες για διαφορετικους επεξργαστες παιζει στην περιπτωση πο χρησιμοποιεις καποια features του επεξεργαστη σου που δεν υπαρχουν στους αλλους, εσυ πρεπει να το βρεις αυτο.... Καλη συνεχεια
kickeras Δημοσ. 15 Ιουλίου 2010 Δημοσ. 15 Ιουλίου 2010 Από την εμπειρία μου σπανίως παίζει θέμα ο επεξεργαστής. Εφ'όσον έχεις πρόβλημα με την απεικόνιση κοίτα τα εξής: - Κάρτες γραφικών στο μηχάνημα develop και στα άλλα (ati ή nvidia). Παρουσιάζονται προβλήματα πολλές φορές αν φτιάξεις κάτι π.χ. σε nvidia κ πας να το τρέξεις σε ati. Δε ξέρω αν έχεις χρησιμοποιήσει shaders αλλά γενικά η ati είναι πιο strict από την nvidia. - Δες τι version opengl έχουν οι άλλες κάρτες. Ίσως να είναι θέμα drivers αν έχεις πολύ φρέσκια opengl με παλιούς drivers ή σε παλιές κάρτες. - Όπως είπε ο φίλος απο πάνω δοκίμασε κάποιο logging στον κώδικά σου και εφ'όσον είναι ίδιες οι τιμές που περνάς στην gpu παίξε με κανα gDEBugger (να δεις τιμές pixels σε textures, etc). - Δοκίμασε να τρέξεις τον κώδικά σου κανονικά από ένα μηχάνημα που δε δουλεύει.
makaveli21 Δημοσ. 16 Ιουλίου 2010 Μέλος Δημοσ. 16 Ιουλίου 2010 georgemarios & kickeras, σας ευχαριστώ πολύ για το ενδιάφερον σας. Είδα τις απαντήσεις σας αλλά για να είμαι ειλικρινής δεν τις πολυκατάλαβα. Είναι ευκόλο να μου εξηγήσετε λιγάκι πιο αναλυτικά τι πρέπει να κάνω; Ευχαριστώ....
kickeras Δημοσ. 16 Ιουλίου 2010 Δημοσ. 16 Ιουλίου 2010 Με λίγα λόγια, πιστεύω ότι το πρόβλημά σου είναι ότι στο pc που γράφεις τον κώδικα έχεις κάρτα π.χ. nvidia και σε αυτό που το δοκιμάζεις ati. Εάν είναι αυτό, δοκίμασε να τρέξεις τον κώδικα και όχι το εκτελέσιμο, στο μηχάνημα που έχεις το πρόβλημα. Αν οι κάρτες είναι της ίδιας εταιρίας, ίσως στα μηχανήματα που δε τρέχει να είναι παλιές ή με outdated drivers. Επιπλέον, δοκίμασε να κάνεις print τις τιμές των συναρτήσεών σου σε ένα αρχείο και σύγκρινές τες στα διαφορετικά μηχανήματα.
redLizard Δημοσ. 17 Ιουλίου 2010 Δημοσ. 17 Ιουλίου 2010 μια ακόμα αξιοσημείωτη παρατήρηση που ίσως βοηθήσει κάποιον για να λύσει το προβλημά μου είναι το εξής: Ο επεξεργαστής στον οποίο έχει στηθεί το project είναι amdΔοκίμασε ένας φίλος μου επίσης να τρέξει τον κώδικα με τα ίδια βήματα που είχα κάνει και εγώ και τα έχω αναφέρει και του έπαιξε άψογα. Ενώ όλοι οι άλλοι η/υ που το έχω δοκιμάσει εγώ είναι με επεξεργαστή intel. Μήπως κάνεις compile σε 64bit λειτουργικό και προσπαθείς να το τρέξεις σε 32bit συστήματα?
makaveli21 Δημοσ. 17 Ιουλίου 2010 Μέλος Δημοσ. 17 Ιουλίου 2010 οχι redlizard δεν είναι αυτό που μου λες. Σε ευχαριστώ πάντως για το ενδιαφέρον σου. Και το αξιοπερίεργο είναι ότι το μηχάνημα στο οποίο παίζει είναι αρκετά παλιό....
TheELF Δημοσ. 17 Ιουλίου 2010 Δημοσ. 17 Ιουλίου 2010 Μήπως θα ήταν καλή ηδέα να ρωτούσες τον συνεργάτη σου τη εντολές έβαλε; Γιατί δίπλα στο OpenGL υπάρχει και το OpenCL και το CUDA κατεβασε το GPU Caps Viewer για να δεις τη από αυτά έχει το δικό σου μηχάνημα,και τι έχουν τα υπόλοιπα, τέρμα κάτω έχει και κάποια demo που τρέχουν μόνο αν έχεις την κατάλληλη υποστήριξη στο μηχάνημά σου.
V.I.Smirnov Δημοσ. 17 Ιουλίου 2010 Δημοσ. 17 Ιουλίου 2010 Χωρίς κώδικα, μόνον εικασίες μπορούμε να κάνουμε. Δεν μας λες τι χαρακτηριστικά του opengl χρησιμοποιείς και πώς. Πιθανόν λείπει κάποια βιβλιοθήκη ή υπάρχει κάποια τοπική ρύθμιση της κάρτας ή δεν διαβάζεται κάποιο από τα δεδομένα που αφορούν την εικόνα (π.χ. κάποιο αρχείο bitmap, ή υφές) επειδή δεν βρίσκει την δοιαδρομή του. Η τελευταία περίπτωση είναι συχνή : στο ίδιο μηχάνημα το πρόγραμμα τρέχει μέσα από τον compiler αλλά όχι και το exe του. Μπορεί να λυθεί τελεσίδικα ενσωματώνοντας όλα τα αρχεία που χρειάζεται (bitmaps κλπ) στο exe. Ωστόσο μπορείς να δοκιμάσεις το εξής . Σε έναν από τους υπολογιστές που δεν τρέχει το πρόγραμμά σου, τρέξε ένα άλλο opengl πρόγραμμα (τόσο το exe του όσο και μέσα από τον compiler.) Eκτελείται σωστά ; Aν ναι, αντικατέστησε τον πηγαίο κώδικα του σωστά εκτελούμενου προγράμματος με τον δικό σου και δες τι γίνεται. Πριν από αυτό καλό είναι όσο το δυνατόν να απογυμνώσεις τον δικό σου κώδικα από πράγματα που δεν χρειάζονται για τον πιο πάνω έλεγχο. Προσπάθησε να χρησιμοποιείς σε αμφότερες τις περιπτώσεις όμοια χαρακτηριστικά και ρυθμίσεις ( διότι αν κάποιο χαρακτηριστικό που χρησιμοποιείς εσύ δεν το εφαρμόζει το άλλο πρόγραμμα και δεν δουλεύει στον άλλο υπολογιστή, δεν θα μπορείς να ελέγξεις αν δεν δουλεύει λόγω δικού σου σφάλματος ). Εξάλλου, δεν μπορείς όπως λες να δώσεις τον κώδικα εδώ διότι δεν είναι δικός σου, μπορείς να τον δώσεις έχοντας βγάλει το υπολογιστικό μέρος και να δοκιμάσουν και τα παιδιά αυτό που σου είπα...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.