Τελικά είχαμε λίγο χρόνο πριν τις εξετάσεις και κατάφερα να στριμώξω ακόμα ένα εργαστήριο για το μάθημα Γραφικά με Υπολογιστές, σχετικά με τα συστήματα σωματιδίων αυτή τη φορά. Μιας και τέλειωσε το εξάμηνο αυτό είναι όντως το τελευταίο μέρος της εισαγωγής στην OpenGL.
Αρχείο για την κατηγορία ‘OpenGL’
Εισαγωγή στην OpenGL: μέρος 6o (πραγματικά τελευταίο)
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιανουαρίου 28, 2009
Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | 2 σχόλια »
Ένα (απλοϊκό) παιχνίδι σε OpenGL
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Δεκεμβρίου 18, 2008
Ως τελική αναφορά στο προγραμματισμό σε OpenGL ανεβάζω τον κώδικα ενός απλού παιχνιδιού που αναπτύξαμε στα πλαίσια του εργαστηρίου Γραφικών. Απόγονος του Space Invaders, το παιχνίδι αυτό απαιτεί από το παίκτη να υπερασπίσει τη Γη από την ξένη εισβολή:
“Οι κάτοικοι του Πλούτωνα, που βαρέθηκαν το απόλυτο ψύχος που επικρατεί εκεί, επιτίθενται στην Γη με σκοπό να την καταλάβουν και να την κάνουν τουριστικό θέρετρο (οι τιμές οικοπέδων στον Ερμή είναι απλησίαστες!).
Αν δεν θέλετε να περάσετε την υπόλοιπη ζωή σας σερβίροντας φραπέ στους Πλουτωνίτες πρέπει να πάρετε το ολοκαίνουργιο διαστημόπλοιο σας και να τους αποκρούσετε κάπου μετά τον Άρη.
Σκοπός του παιχνιδιού είναι να σκοτώσετε όσο περισσότερους εισβολείς μπορείτε και να μείνετε όσο μπορείτε ζωντανοί αποφεύγοντας τα πυρά τους και τους αστεροειδείς που γυρνούν στην περιοχή του Άρη (το διαστημόπλοιο το έχετε πάρει με δόσεις και δεν το έχετε ξεχρεώσει ακόμα).»
Το παιχνίδι βασίζεται στα προηγούμενα άρθρα πάνω στην OpenGL και παρουσιάζει μεθόδους φόρτωσης και απεικόνισης τρισδιάστατων μοντέλων, απλή ανίχνευση σύγκρουσης, εφέ εκρήξεων, και απεικόνιση κειμένου στο παράθυρο.
Το παιχνίδι τελειώνει είτε αν ο παίχτης χάσει και τις 3 ζωές του, ή αν αφήσει να περάσουν 50 διαστημόπλοια χωρίς να τα καταστρέψει.
Δοκιμάστε πόση ώρα θα καταφέρετε να παίξετε πριν χάσετε. Στο εργαστήριο το ρεκόρ των φοιτητών ήταν περίπου 7 λεπτά. Δημοσιεύστε στο blog το σκορ σας!
Για να τρέξετε το κώδικα του παραδείγματος πρέπει να εγκαταστήσετε το περιβάλλον ανάπτυξης Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2 και στην συνέχεια να το παραμετροποίησετε ώς εξής:
1. Τρέξτε το Dev-Cpp που μόλις εγκαταστήσατε και μόλις ξεκινήσει, από το μενού Tools, επιλέξτε Check for Updates/Packages.
2. Στο Select devpack server επιλέξτε devpack.org και πατήστε το Check for Updates κάτω αριστερά
3. Σαν Group επιλέξτε OpenGL
4. Από την λίστα που θα εμφανιστεί επιλέξτε να εγκαταστήσετε το πακέτο freeglut
Στην συνέχεια αποσυμπιέστε να αρχεία game.zip και shared.zip σε αντίστοιχα folder (με ονόματα dev-cpp/game και dev-cpp/shared δηλαδή), και ανοίξτε το αρχείο game.dev του καταλόγου game. Αν όλα πήγαν καλά, με F9 ο κώδικας πρέπει να εκτελεστεί και να δείτε το παράθυρο του παιχνιδιού.
Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | Leave a Comment »
Εισαγωγή στην OpenGL: μέρος 5ο (και τελευταίο)
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Δεκεμβρίου 15, 2008
Σκιές και Ανακλάσεις
Στο άρθρο αυτό μελετάμε την δημιουργία σκιάς με προβολή του αντικειμένου και μια απλοική μέθοδο δημιουργίας ανακλάσεων. Στην πορεία μαθαίνουμε για το stencil buffer και πως χρησιμοποιείται στην OpenGL.
Tο άρθρο αυτό είναι το τελευταίο στην σειρά “Εισαγωγή στην OpenGL”, ελπίζω να έδωσε το ερέθισμα στον ενδιαφερόμενο να ασχοληθεί περισσότερο με την OpenGL και τα γραφικά γενικότερα. Στο επόμενο άρθρο θα δημοσιεύσουμε το κώδικα ενός απλού παιχνιδιού σε OpenGL που εφαρμόζει τις αρχές που είδαμε στα προηγούμενα άρθρα.
Κώδικας παραδείγματος
Για να τρέξετε το κώδικα του παραδείγματος πρέπει να εγκαταστήσετε το περιβάλλον ανάπτυξης Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2 και στην συνέχεια να το παραμετροποίησετε ώς εξής:
1. Τρέξτε το Dev-Cpp που μόλις εγκαταστήσατε και μόλις ξεκινήσει, από το μενού Tools, επιλέξτε Check for Updates/Packages.
2. Στο Select devpack server επιλέξτε devpack.org και πατήστε το Check for Updates κάτω αριστερά
3. Σαν Group επιλέξτε OpenGL
4. Από την λίστα που θα εμφανιστεί επιλέξτε να εγκαταστήσετε το πακέτο freeglut
Στην συνέχεια αποσυμπιέστε να αρχεία lab5.zip και shared.zip σε αντίστοιχα folder (με ονόματα dev-cpp/lab5 και dev-cpp/shared δηλαδή), και ανοίξτε το αρχείο lab5.dev του καταλόγου lab5. Αν όλα πήγαν καλά, με F9 ο κώδικας πρέπει να εκτελεστεί και να δείτε το παράθυρο της εφαρμογής.
Με μικρές αλλαγές ο κώδικας μπορεί να τρέξει σε οποιοδήποτε περιβάλλον προγραμματισμού C/C++ διαθετετε.
Δείτε επίσης
Εισαγωγή στην OpenGL: μέρος 1ο
Εισαγωγή στην OpenGL: μέρος 2ο
Εισαγωγή στην OpenGL: μέρος 3ο
Εισαγωγή στην OpenGL: μέρος 4ο
Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | 4 σχόλια »
Εισαγωγή στην OpenGL: μέρος 4ο
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Δεκεμβρίου 9, 2008
Απεικόνιση με Υφές (texture mapping)
Στο άρθρο αυτό εισάγουμε τις βασικές μεθόδους απεικόνισης υφής σε OpenGL. Η απεικόνιση υφής είναι η κύρια μέθοδος απόδοσης μιας επιφάνειας ενός αντικειμένου και βασικό συστατικό κάθε εφαρμογής γραφικών σήμερα.
Δεν είδα αντιδράσεις στην δημοσίευση του άρθρου σε pdf (δεν είδα αντιδράσεις γενικότερα, βρίσκει κανένας τα άρθρα αυτά χρήσιμα;), οπότε συνεχίζω να δημοσιεύω τα άρθρα στη μορφή αυτή.
Κώδικας παραδείγματος
Για να τρέξετε το κώδικα του παραδείγματος πρέπει να εγκαταστήσετε το περιβάλλον ανάπτυξης Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2 και στην συνέχεια να το παραμετροποίησετε ώς εξής:
1. Τρέξτε το Dev-Cpp που μόλις εγκαταστήσατε και μόλις ξεκινήσει, από το μενού Tools, επιλέξτε Check for Updates/Packages.
2. Στο Select devpack server επιλέξτε devpack.org και πατήστε το Check for Updates κάτω αριστερά
3. Σαν Group επιλέξτε OpenGL
4. Από την λίστα που θα εμφανιστεί επιλέξτε να εγκαταστήσετε το πακέτο freeglut
Στην συνέχεια αποσυμπιέστε να αρχεία lab4.zip και shared.zip σε αντίστοιχα folder (με ονόματα dev-cpp/lab4 και dev-cpp/shared δηλαδή), και ανοίξτε το αρχείο lab4.dev του καταλόγου lab4. Αν όλα πήγαν καλά, με F9 ο κώδικας πρέπει να εκτελεστεί και να δείτε το παράθυρο της εφαρμογής.
Με μικρές αλλαγές ο κώδικας μπορεί να τρέξει σε οποιοδήποτε περιβάλλον προγραμματισμού C/C++ διαθετετε.
Δείτε επίσης
Εισαγωγή στην OpenGL: μέρος 1ο
Εισαγωγή στην OpenGL: μέρος 2ο
Εισαγωγή στην OpenGL: μέρος 3ο
Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | 2 σχόλια »
Εισαγωγή στην OpenGL: μέρος 3o
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Νοεμβρίου 26, 2008
Υλικά, φωτισμός και χρωματισμός
Στο άρθρο αυτό θα δούμε το μοντέλο φωτισμού που υποστηρίζει η OpenGL, και πώς να αλλάζουμε τις ιδιότητες των υλικών των τριδιάστατων μοντέλων στη σκηνή.
Επειδή το μέγεθος των tutorials είναι μάλλον μεγάλο για άρθρο blog, δοκιμάζω να δημοσιεύσω το σημερινό άρθρο σε μορφή pdf.
Αν οι αναγνώστες προτιμούν να έχουν το άρθρο μορφοποιημένο για το blog, ας εκφράσουν την προτίμηση με σχόλιο.
Κώδικας παραδείγματος
Για να τρέξετε το κώδικα του παραδείγματος πρέπει να εγκαταστήσετε το περιβάλλον ανάπτυξης Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2 και στην συνέχεια να το παραμετροποίησετε ώς εξής:
1. Τρέξτε το Dev-Cpp που μόλις εγκαταστήσατε και μόλις ξεκινήσει, από το μενού Tools, επιλέξτε Check for Updates/Packages.
2. Στο Select devpack server επιλέξτε devpack.org και πατήστε το Check for Updates κάτω αριστερά
3. Σαν Group επιλέξτε OpenGL
4. Από την λίστα που θα εμφανιστεί επιλέξτε να εγκαταστήσετε το πακέτο freeglut
Στην συνέχεια αποσυμπιέστε να αρχεία lab3.zip και shared.zip σε αντίστοιχα folder (με ονόματα dev-cpp/lab3 και dev-cpp/shared δηλαδή), και ανοίξτε το αρχείο lab3.dev του καταλόγου lab3. Αν όλα πήγαν καλά, με F9 ο κώδικας πρέπει να εκτελεστεί και να δείτε το παράθυρο της εφαρμογής.
Με μικρές αλλαγές ο κώδικας μπορεί να τρέξει σε οποιοδήποτε περιβάλλον προγραμματισμού C/C++ διαθετετε.
Δείτε επίσης
Εισαγωγή στην OpenGL: μέρος 1ο
Εισαγωγή στην OpenGL: μέρος 2ο
Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | Leave a Comment »
Εισαγωγή στην OpenGL: μέρος 2ο
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Νοεμβρίου 10, 2008
Στο άρθρο αυτό θα δούμε πρακτικά πως εφαρμόζονται οι μετασχηματισμοί κατά την δημιουργία γραφικών με την OpenGL και τι επίδραση έχουνε στα τριδιάστατα αντικείμενα.
Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | 1 σχόλιο »
Εισαγωγή στην OpenGL: μέρος 1ο
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Νοεμβρίου 5, 2008
Με μια σειρά από άρθρα στο blog αυτό, θα κάνουμε μια μικρή εισαγωγή στην OpenGL η οποία μπορεί να χρησιμοποιηθεί για να αναπτυχθούν παιχνίδια. Τα άρθρα αυτά βασίζονται σε υλικό που ανέπτυξα και χρησιμοποιώ για τα εργαστήρια «Γραφικά με Υπολογιστή» στο Τμήμα Πληροφορικής του Ιονίου Πανεπιστημίου. Στο τέλος θα ανεβάσω το κώδικα για ένα απλό παιχνίδι σε OpenGL.
Ελπίζω να βρείτε την σειρά άρθρων αυτή χρήσιμη.
Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | 7 σχόλια »

