GRAPHICS AND CODE DESIGN
|
|
- Σέργιος Καρράς
- 8 χρόνια πριν
- Προβολές:
Transcript
1 GRAPHICS AND CODE DESIGN Author: A.E.M: 2231
2 Περιεχόμενα σελ: Τι είναι γραφικά;...1 Γραφικά ηλεκτρονικών υπολογιστών...1 Τα είδη των γραφικών...2 Πλέγματα πολυγώνων...4 Computer Animation...5 Rendering...6 Τρισδιάστατη Προβολή (3D Projection)...8 Ray Tracing...8 Σκίαση (Shading)...9 Χαρτογράφηση Υφής (Texture Mapping)...9 Anti-Aliasing...10 OpenGL...11 Το OpenGL ως μηχανή καταστάσεων...12 Πίνακες Μετασχηματισμού...13 Μετασχηματισμοί στο Fixed Function Pipeline του OpenGL...17 Σχεδιάζοντας μία Game Engine...26 Διάγραμμα UML της Game Engine...30 Πρόγραμμα απεικόνισης κύβου σε C (OpenGL)...31 Πηγές...36
3 Τι είναι Γραφικά (Graphics); Γραφικά (Graphics) είναι η παραγωγή οπτικών δηλώσεων πάνω σε κάποια επιφάνεια, όπως τοίχος, καμβάς, αγγείο, οθόνη υπολογιστή, χαρτί, πέτρα κτλ.. Περιλαμβάνει οτιδήποτε αφορά τη δημιουργία συμβόλων, διαγραμμάτων, logo, γράφων, σχεδίων (γραμμικών και μη γραμμικών), συμβόλων, γεωμετρικών σχεδίων και ούτω καθεξής. Γραφικά Ηλεκτρονικών Υπολογιστών (Computer Graphics). Τα γραφικά ηλεκτρονικών υπολογιστών είναι γραφικά που δημιουργούνται χρησιμοποιώντας ηλεκτρονικούς υπολογιστές οι οποίοι αναπαριστούν τα δεδομένα εικόνας, με τη βοήθεια ειδικού υλικού ή λογισμικού γραφικών. Η κατανόηση των υπολογιστών και η αλληλεπίδραση με αυτούς καθώς και η ερμηνεία των δεδομένων έχει γίνει ευκολότερη λόγω των γραφικών ηλεκτρονικών υπολογιστών. Η ανάπτυξη των γραφικών ηλεκτρονικών υπολογιστών είχε σημαντικό αντίκτυπο σε πολλούς τύπους πολυμέσων και έχουν φέρει επανάσταση στο animation, στις ταινίες και στη βιομηχανία βιντεοπαιχνιδιών. Ο όρος γραφικά ηλεκτρονικών υπολογιστών έχει χρησιμοποιηθεί με μία ευρεία έννοια για να περιγράψει σχεδόν οτιδήποτε αφορά τους υπολογιστές και δεν είναι κείμενο ή ήχος. Τυπικά, ο όρος αυτός αναφέρεται σε πολλά διαφορετικά πράγματα όπως: 1
4 Στην αντιπροσώπευση και τον χειρισμό δεδομένων εικόνας από έναν ηλεκτρονικό υπολογιστή. Στις διάφορες τεχνολογίες που χρησιμοποιούνται για τη δημιουργία και την επεξεργασία εικόνων. Στο υπο-τμήμα της πληροφορικής το οποίο ασχολείται με μεθόδους που χρησιμοποιούνται για την ψηφιακή σύνθεση και επεξεργασία οπτικού περιεχομένου. Τα είδη των γραφικών. Δισδιάστατα (2D Computer Graphics) Τα δισδιάστατα γραφικά είναι η βασισμένη στους ηλεκτρονικούς υπολογιστές δημιουργία των ψηφιακών εικόνων. Χρησιμοποιούνται κυρίως σε εφαρμογές που αναπτύχθηκαν αρχικά πάνω σε παραδοσιακές τεχνολογίες εκτύπωσης και σχεδίου, όπως η τυπογραφία. Σ' αυτές τις εφαρμογές, η δισδιάστατη εικόνα δεν είναι απλά μία αντιπροσώπευση ενός αντικειμένου στον πραγματικό κόσμο, αλλά είναι ένα ανεξάρτητο τεχνούργημα με επιπρόσθετη σημασιολογική αξία. Γι' αυτό το λόγο προτιμώνται τα δισδιάστατα μοντέλα επειδή παρέχουν πιο άμεσο έλεγχο της εικόνας απ' ότι τα τρισδιάστατα γραφικά, των οποίων η προσέγγιση πλησιάζει πιο πολύ την φωτογραφία απ' ότι την τυπογραφία. Τέχνη με Pixels (Pixel Art) Ένα μεγάλο τμήμα της ψηφιακής τέχνης είναι η Τέχνη με Pixels. Δημιουργείται με τη χρήση προγραμμάτων γραφικών raster, όπου οι εικόνες επεξεργάζονται σε 2
5 επίπεδο pixel. Τα γραφικά στα περισσότερα (ή σε σχετικά περιορισμένα) βιντεοπαιχνίδια, ειδικά αυτά που τρέχουν σε παλιές κινητές συσκευές χρησιμοποιούν Pixel Art. Διανυσματικά Γραφικά (Vector Graphics) Τα formats των διανυσματικών γραφικών είναι συμπληρωματικά των γραφικών raster. Τα γραφικά raster είναι η αντιπροσώπευση των εικόνων ως πίνακες από pixels και τυπικά χρησιμοποιούνται για την απεικόνιση φωτογραφικών εικόνων. Τα διανυσματικά γραφικά συνίστανται στην κωδικοποίηση πληροφοριών που αφορούν σχήματα και χρώματα που αποτελούν την εικόνα, γεγονός που επιτρέπει μεγαλύτερη ευελιξία στην απόδοσή (rendering) της. Ανάλογα με την περίπτωση προτιμάται η χρήση είτε διανυσματικών γραφικών είτε γραφικών raster. Σε ορισμένες περιπτώσεις χρησιμοποιούνται και τα δύο αυτά είδη γραφικών. Η κατανόηση των πλεονεκτημάτων και των περιορισμών της κάθε τεχνολογίας, και της σχέσης μεταξύ τους είναι απαραίτητη για την αποτελεσματική χρήση των εργαλείων επεξεργασίας τους. Τρισδιάστατα Γραφικά (3D Graphics) Τα τρισδιάστατα γραφικά αν συγκριθούν με τα δισδιάστατα γραφικά, είναι γραφικά τα οποία χρησιμοποιούν τρισδιάστατη αντιπροσώπευση 3
6 γεωμετρικών δεδομένων. Για να επιτευχθεί καλύτερη απόδοση τα δεδομένα αυτά αποθηκεύονται στον υπολογιστή. Παρ' όλες τις διαφορές μεταξύ τρισδιάστατων και δισδιάστατων γραφικών, τα τρισδιάστατα γραφικά βασίζονται σε παρόμοιους αλγόριθμους με αυτούς των δισδιάστατων γραφικών. Στα λογισμικά γραφικών η διάκριση μεταξύ δισδιάστατων και τρισδιάστατων γραφικών δεν είναι ξεκάθαρη σε ορισμένες περιπτώσεις. Δισδιάστατες εφαρμογές μπορεί να χρησιμοποιήσουν τρισδιάστατες τεχνικές για να πετύχουν εφέ όπως ο φωτισμός, ενώ τα τρισδιάστατα γραφικά μπορεί κυρίως να χρησιμοποιήσουν δισδιάστατες τεχνικές απεικόνισης. Τα τρισδιάστατα γραφικά είναι παρόμοια με τα τρισδιάστατα μοντέλα. Τα μοντέλα περιέχονται μέσα σε αρχεία γραφικών δεδομένων. Το τρισδιάστατο μοντέλο είναι η αντιπροσώπευση οποιουδήποτε τρισδιάστατου αντικειμένου. Μέχρι τη στιγμή της απεικόνισής του ένα μοντέλο δεν θεωρείται γραφικό. Λόγω της τρισδιάστατης εκτύπωσης τα τρισδιάστατα μοντέλα δεν περιορίζονται μόνο στον εικονικό χώρο. Τέλος, μπορούν να χρησιμοποιηθούν και σε μη γραφικές εξομοιώσεις και σε διάφορους υπολογισμούς. Πλέγματα Πολυγώνων (Polygon Meshes) Το πλέγμα πολυγώνων είναι μία συλλογή από κορυφές (vertices), πλευρές (edges) και όψεις (faces), η οποία ορίζει το σχήμα ενός πολύεδρου αντικειμένου στα γραφικά ηλεκτρονικών υπολογιστών και στον μοντελισμό στερεών αντικειμένων. Οι όψεις συνήθως αποτελούνται από 4
7 τρίγωνα, τετράπλευρα ή άλλα απλά κυρτά πολύγωνα, μιας και απλοποιεί το rendering. Computer Animation Το computer animation είναι η τέχνη της δημιουργίας κινούμενων εικόνων χρησιμοποιώντας ηλεκτρονικούς υπολογιστές. Η χρήση τρισδιάστατων γραφικών για την δημιουργία animation γίνεται όλο και μεγαλύτερη, παρ' όλα αυτά χρησιμοποιούνται ακόμα δισδιάστατα γραφικά για στιλιστικούς λόγους και για για λόγους καλύτερης απόδοσης σε εφαρμογές rendering πραγματικού χρόνου. Μερικές φορές τα animation χρησιμοποιούνται στους ηλεκτρονικούς υπολογιστές, μερικές φορές όμως χρησιμοποιούνται και σε άλλα μέσα, όπως 5
8 οι ταινίες. Το animation είναι επίσης γνωστό ως CGI (Computer-Generated Imagery or Computer-Generated imaging), ειδικά όταν χρησιμοποιείται σε ταινίες. Οι εικονικές οντότητες που χρησιμοποιούνται στο animation μπορεί να περιέχουν ή να ελέγχονται από διάφορα γνωρίσματα (attributes), όπως τιμές μετασχηματισμών (location, orientation, scale) αποθηκευμένα μέσα στον πίνακα μετασχηματισμού του αντικειμένου. Το animation είναι η αλλαγή ενός γνωρίσματος του αντικειμένου στον χρόνο. Υπάρχουν πολλοί τρόποι για να επιτευχθεί αυτό. Ο ποιό στοιχειώδης είναι βασισμένος στη δημιουργία και την επεξεργασία των keyframes, από τα οποία το καθ' ένα αποθηκεύει μία τιμή σε μία χρονική στιγμή ανά γνώρισμα που θα μεταβληθεί. Τα λογισμικά επεξεργασίας και δημιουργίας γραφικών (ή και μία δικιά σας game engine) δημιουργούν ενδιάμεσες τιμές των γνωρισμάτων ανάλογα με τον χρόνο χρησιμοποιώντας διάφορες τεχνικές μαθηματικής παρεμβολής (interpolation). Για να δημιουργηθεί η ψευδαίσθηση της κίνησης, προβάλλονται στην οθόνη διαφορετικά στιγμιότυπα της εικόνας με μεγάλη ταχύτητα. Αυτή η τεχνική είναι ακριβώς η ίδια με την ψευδαίσθηση της κίνησης που δημιουργεί η τηλεόραση ή τα κινούμενα σχέδια. Rendering Το rendering είναι η διαδικασία απεικόνισης ενός τρισδιάστατου ή δισδιάστατου μοντέλου χρησιμοποιώντας προγράμματα υπολογιστών. Ένα αρχείο σκηνής περιέχει αντικείμενα που ορίζονται σε μία αυστηρά ορισμένη γλώσσα ή δομή. Περιέχει δηλαδή πληροφορίες για τη γεωμετρία, την οπτική γωνία, τα textures, το φωτισμό, τη σκίαση κ.ο.κ της σκηνής. Τα δεδομένα αυτά έπειτα στέλνονται σε ένα πρόγραμμα rendering για να υποστούν επεξεργασία και να εξαχθεί το αποτέλεσμα σε μία ψηφιακή εικόνα η σε μία εικόνα raster (bitmap). Το πρόγραμμα rendering είναι συνήθως χτισμένο πάνω σε κάποιο λογισμικό γραφικών. Παρ' ότι το γεγονός ότι οι τεχνικές λεπτομέρειες των μεθόδων rendering διαφέρουν μεταξύ τους, η γενική 6
9 πρόκληση που τίθεται είναι η παραγωγή μιας δισδιάστατης εικόνας από μία τρισδιάστατη αντιπροσώπευση μίας σκηνής αποθηκευμένης σε ένα αρχείο. Η διαδικασία αντιμετώπισης αυτής της πρόκλησης αναφέρεται συνήθως με το όνομα αγωγός γραφικών (Graphics Pipeline) και επιτελείται με τη βοήθεια μίας συσκευής rendering, όπως μία GPU (Κάρτα γραφικών). Η GPU είναι μία συσκευή που έχει την ικανότητα να βοηθήσει την CPU (Κεντρική Μονάδα Επεξεργασίας) στην εκτέλεση υπολογισμών. Αν θέλουμε μία σκηνή να φανεί σχετικά ρεαλιστική χρησιμοποιώντας εικονικό φωτισμό, το λογισμικό rendering πρέπει να επιλύσει την εξίσωση του rendering. Η εξίσωση του rendering περιγράφει τη συνολική ποσότητα φωτός που εκπέμπεται από ένα σημείο x προς μία συγκεκριμένη οπτική γωνία χρησιμοποιώντας μία συνάρτηση για το εισερχόμενο φως και μια συνάρτηση κατανομής αμφίδρομης ανακλαστικότητας (Bidirectional Reflectance Distribution Function). Η εξίσωση του rendering δεν υπολογίζει όλα τα φυσικά φαινόμενα του φωτισμού, αλλά είναι ένα γενικό μοντέλο φωτισμού για computer-generated εικόνες. Ο όρος rendering χρησιμοποιείται επίσης για να περιγράψει την διαδικασία του υπολογισμού των εφέ σε αρχεία επεξεργασίας βίντεο, για να παραχθεί το τελικό αποτέλεσμα. 7
10 Τρισδιάστατη προβολή (3D Projection) H τρισδιάστατη προβολή είναι μία μέθοδος χαρτογράφησης τρισδιάστατων σημείων σε ένα δισδιάστατο επίπεδο. Οι περισσότερες πρόσφατες μέθοδοι που χρησιμοποιούνται για προβολή γραφικών δεδομένων είναι βασισμένες στη χρήση δισδιάστατων μέσων απεικόνισης. Γι' αυτό το λόγο η χρήση αυτής της μεθόδου είναι ιδιαίτερα δημοφιλής, ειδικά στα γραφικά ηλεκτρονικών υπολογιστών. Ray Tracing Το ray tracing είναι μία τεχνική δημιουργίας εικόνων ακολουθώντας τη διαδρομή του φωτός μέσα από τα pixels στο επίπεδο μίας εικόνας. Η τεχνική αυτή είναι ικανή να παράγει έναν πολύ υψηλό βαθμό φωτορεαλισμού αλλά με μεγάλο υπολογιστικό κόστος. 8
11 Σκίαση (Shading) Ο όρος σκίαση αναφέρεται στην απεικόνιση του βάθους των τρισδιάστατων μοντέλων ή εικόνων μεταβάλλοντας τα επίπεδα της σκοτεινότητας. Είναι μία διαδικασία που χρησιμοποιείται στη ζωγραφική για την απεικόνιση των επιπέδων της σκοτεινότητας. Στα γραφικά ηλεκτρονικών υπολογιστών χρησιμοποιούνται ειδικοί αλγόριθμοι με τους οποίους επιτυγχάνεται αυτό το αποτέλεσμα. Κάποιοι από αυτούς τους αλγορίθμους είναι ο αλγόριθμος Flat Shading (Επίπεδης Σκίασης), ο αλγόριθμος του Gouraud, ο αλγόριθμος του Phong κ.α. Χαρτογράφηση Υφής (Texture Mapping) Η χαρτογράφηση υφής είναι μία μέθοδος για πρόσδοση ρεαλισμού, υφής η χρώματος στις επιφάνειες ενός τρισδιάστατου μοντέλου. Η εφαρμογή της τεχνικής αυτής στα γραφικά ηλεκτρονικών υπολογιστών εφευρέθηκε και εφαρμόστηκε από τον Dr. Edwin Catmull το Ένας χάρτης υφής εφαρμόζεται στην επιφάνεια ενός σχήματος 9
12 ή πολυγώνου. Η εφαρμογή πολλών τέτοιων υφών στις επιφάνειες ονομάζεται Mutlitexturing. Anti-aliasing (AA) Η οπτικοποίηση οντοτήτων που είναι ανεξάρτητες από την ανάλυση (όπως τα τρισδιάστατα μοντέλα) πάνω σε μία pixel-based συσκευή όπως μία LCD οθόνη αναπόφευκτα δημιουργεί aliasing artifacts, κυρίως στις άκρες της γεωμετρίας και στα άκρα των texture maps. Οι μέθοδοι που εφαρμόζουν anti-aliasing επιλύουν αυτά τα προβλήματα, έχοντας ως αποτέλεσμα εικόνες πιο ευχάριστες στην όψη για το θεατή, αλλά μπορεί να είναι πιο ακριβές υπολογιστικά. 10
13 OpenGL (Open Graphics Library) Το OpenGL είναι μία διαγλωσσική, multi-platform διεπαφή προγραμματισμού εφαρμογών (Application Programming Interaface API) που χρησιμοποιείται για οπτικοποίηση δισδιάστατων και τρισδιάστατων διανυσματικών γραφικών. Το API τυπικά χρησιμοποιείται για αλληλεπίδραση με μία GPU, ώστε να επιτευχθεί hardware-accelerated οπτικοποίηση. Για τον προγραμματιστή το OpenGL είναι ένα σύνολο εντολών που επιτρέπουν τον προσδιορισμό των προγραμμάτων shader (ή για συντομία shaders), των δεδομένων που χρησιμοποιούνται από τους shaders και τις ρυθμιστικές πτυχές του OpenGL εκτός του πεδίου εφαρμογής των shaders. Συνήθως τα δεδομένα αντιπροσωπεύουν γεωμετρία σε δύο ή τρεις διαστάσεις και εικόνες υφής (textures), ενώ οι shaders ελέγχουν τη γεωμετρική μεταποίηση, το rasterization της γεωμετρίας, τον φωτισμό και τη σκίαση των fragments (pixels) που δημιουργούνται από το rasterization, με αποτέλεσμα να γίνεται απεικόνιση της γεωμετρίας στον framebuffer. Ένα τυπικό πρόγραμμα που χρησιμοποιεί OpenGL αρχίζει με τις κλήσεις για να ανοίξει ένα παράθυρο στον frambuffer, στον οποίο το πρόγραμμα θα ζωγραφίσει. Στη συνέχεια, γίνονται κλήσεις για να δημιουργηθεί το πλαίσιο του OpenGL, κλήσεις για να προσδιοριστούν οι shaders, η γεωμετρία και τα textures. Τις κλήσεις αυτές ακολουθούν εντολές οι οποίες ζωγραφίζουν τη γεωμετρία μεταφέροντας συγκεκριμένα κομμάτια της στους shaders. Οι εντολές που χρησιμοποιούνται για να ζωγραφίζουν γεωμετρία προσδιορίζουν απλά γεωμετρικά αντικείμενα όπως σημεία, ευθύγραμμα τμήματα και πολύγωνα, τα οποία μπορούν να επεξεργαστούν περαιτέρω οι shaders. Υπάρχουν επίσης εντολές οι οποίες μπορούν να ελέγχουν άμεσα τον framebuffer διαβάζοντας και γράφοντας pixels. 11
14 Το OpenGL machine). ως μηχανή καταστάσεων (state To OpenGL είναι μία μηχανή καταστάσεων. Μπορεί κανείς να θέσει στη μηχανή αυτή διάφορες καταστάσεις οι οποίες παραμένουν ενεργές μέχρι να αλλαχθούν από τον προγραμματιστή. Ένα παράδειγμα μίας μεταβλητής (variable) καταστάσεως στο OpenGL είναι το τρέχον χρώμα. Μπορούμε να θέσουμε το τρέχον χρώμα σε κόκκινο, άσπρο ή οποιοδήποτε άλλο χρώμα, και από κει και μετά κάθε αντικείμενο ζωγραφίζεται με το χρώμα που θέσαμε στο OpenGL μέχρι να θέσουμε ένα διαφορετικό τρέχον χρώμα. Το τρέχον χρώμα είναι μία μόνο από τις μεταβλητές καταστάσεων που περιέχει το OpenGL. Άλλες ελέγχουν τους τρέχοντες μετασχηματισμούς view και projection, τα μοτίβα των γραμμών και των πολυγώνων, τη θέση και τα χαρακτηριστικά του φωτός, τις ιδιότητες των υλικών των αντικειμένων που ζωγραφίζονται κ.α. Πολλές μεταβλητές καταστάσεων αναφέρονται σε καταστάσεις οι οποίες μπορούν να ενεργοποιηθούν ή να απενεργοποιηθούν με τις εντολές glenable() ή gldisable(). Κάθε μεταβλητή καταστάσεως έχει μία προκαθορισμένη τιμή, και σε οποιαδήποτε χρονική στιγμή μπορούμε να ζητήσουμε από το σύστημα να μας δώσει την τρέχουσα τιμή της. Τυπικά χρησιμοποιούμε μία από τις έξι εντολές που ακολουθούν για το κάνουμε αυτό: glgetbooleanv(), glgetdoublev(), glgetfloatv(), glgetintegerv, glgetpointerv ή gllsenabled(). Το ποια από τις παραπάνω εντολές θα χρησιμοποιήσουμε εξαρτάται από τον τύπο των δεδομένων που θέλουμε να μας επιστρέψει το σύστημα. Επιπρόσθετα μπορούμε να σώσουμε μία συλλογή από μεταβλητές καταστάσεως σε μία στοίβα γνωρισμάτων (attribute stack), με τις εντολές glpushattrib() ή glpushclientattrib(), να τις τροποποιήσουμε προσωρινά, και αργότερα να επαναφέρουμε τις τιμές τους χρησιμοποιώντας τις αντίστοιχες εντολές glpopattrib() ή glpopclientattrib(). 12
15 Πίνακες Matrices) Μετασχηματισμών (Transformation Στα γραφικά των ηλεκτρονικών υπολογιστών η χρήση πινάκων μετασχηματισμού είναι ιδιαίτερα ευρεία. Αυτό συμβαίνει κυρίως γιατί είναι εύκολη η υλοποίησή τους προγραμματιστικά και γιατί η υπολογιστική ισχύς που χρειάζεται δεν είναι ιδιαίτερα μεγάλη. Επίσης είναι πιο εύκολα κατανοητή σαν μέθοδος, σε σύγκριση με άλλες μεθόδους. Οι πίνακες μετασχηματισμού έχουν πολλές χρήσεις, αλλά εμείς θα αναφερθούμε στους μετασχηματισμούς μετακίνησης (translation), στους μετασχηματισμούς περιστροφής (rotation) και στους μετασχηματισμούς κλίμακας (scaling). Πριν αναφερθούμε όμως ειδικότερα στους πίνακες μετασχηματισμού είναι απαραίτητο να αναφερθούμε στις κορυφές (vertices). Οι κορυφές δεν είναι τίποτα άλλο από τρισδιάστατα διανύσματα. Τα διανύσματα τριών διαστάσεων όπως είναι γνωστό αποτελούνται από μία τριπλέτα αριθμών (x, y, z). Στα γραφικά όμως εισάγουμε και έναν ακόμα αριθμό στο διάνυσμα αυτό, το w, οπότε το διάνυσμά μας πλέον παίρνει τη μορφή (x, y, z, w). Αυτό θα γίνει πιο ξεκάθαρο παρακάτω, αλλά για τώρα να θυμάστε αυτό: Αν τo w = 1 τότε το διάνυσμα (x, y, z, 1) είναι ένα σημείο στο χώρο. Αν το w = 0 τότε το διάνυσμα (x, y, z, 0) είναι μία κατεύθυνση. Τι μας προσφέρει λοιπόν αυτό το w; Για μία περιστροφή το w δεν προσφέρει τίποτα. Είτε το διάνυσμα είναι σημείο του χώρου, είτε δηλώνει κατεύθυνση, παίρνουμε το ίδιο αποτέλεσμα. Παρ' όλα αυτά, για μία μετακίνηση (όπου μετακινούμε ένα σημείο σε μία συγκεκριμένη κατεύθυνση), τα πράγματα είναι διαφορετικά. Τι θα σήμαινε Μετακίνησε μία κατεύθυνση ; Όχι και πολλά!!! 13
16 Στα τρισδιάστατα γραφικά χρησιμοποιούμε πίνακες 4x4. Μας επιτρέπουν να μετασχηματίσουμε τα (x, y, z, w) διανύσματά μας. Αυτό επιτυγχάνεται πολλαπλασιάζοντας το διάνυσμα με τον πίνακα: Πίνακας * Διάνυσμα (με αυτή τη σειρά!!!) = Μετασχηματισμένο Διάνυσμα Πίνακες μετασχηματισμού μετακίνησης (Translation Matrices) Αυτοί είναι οι πιο απλοί στην κατανόησή τους πίνακες μετασχηματισμού. Ένας πίνακας μετακίνησης έχει την εξής μορφή: Όπου X, Y, Z, οι τιμές που θέλουμε να προσθέσουμε στην υπάρχουσα θέση. Οπότε αν θέλαμε να μετακινήσουμε το διάνυσμα (10, 10, 10, 1), 10 μονάδες στον άξονα Χ θα κάναμε το εξής: Ο μοναδιαίος πίνακας μετασχηματισμού (Identity matrix) Ο μοναδιαίος πίνακας μετασχηματισμού είναι μία ειδική περίπτωση! Δεν κάνει απολύτως τίποτα! Αλλά είναι ιδιαίτερα σημαντικός, όσο 14
17 σημαντικό είναι να ξέρει κανείς ότι αν πολλαπλασιάσουμε το Α με το 1 θα πάρουμε Α. Η πραγματική χρησιμότητα του μοναδιαίου πίνακα μετασχηματισμού θα φανεί στο παράδειγμα του προγράμματος που ακολουθεί παρακάτω. Πίνακες μετασχηματισμού κλίμακας Οι πίνακες μετασχηματισμού κλίμακας χρησιμοποιούνται για να αυξήσουμε την κλίμακα ενός διανύσματος (μέγεθος ή μέτρο). Οπότε αν θελήσουμε να αυξήσουμε την κλίμακα ενός διανύσματος (θέσης ή διεύθυνσης) κατά 2.0 προς όλες τις κατευθύνσεις, θα κάναμε το εξής: Όπως παρατηρείτε το w δεν έχει αλλάξει. Τώρα μπορεί να σας δημιουργηθεί η απορία: Ποια είναι η σημασία της αύξησης της κλίμακας μίας κατεύθυνσης ; Η απάντηση θα ήταν: Συνήθως καμία, και γι' αυτό συνήθως δεν κάνουμε τέτοιο μετασχηματισμό. Υπάρχουν όμως μερικές σπάνιες 15
18 περιπτώσεις που μπορεί να φανεί χρήσιμος. Παρατηρείστε ότι ο μοναδιαίος πίνακας είναι μία ειδική περίπτωση των πινάκων μετασχηματισμού κλίμακας, με τα Χ, Υ, Ζ = (1, 1, 1). Είναι επίσης μία ειδική περίπτωση των πινάκων μετασχηματισμού μετακίνησης όπου Χ, Υ, Ζ = (0, 0, 0). Πίνακες μετασχηματισμού περιστροφής. Οι πίνακες περιστροφής, όπως υποδηλώνει και η ονομασία τους, χρησιμοποιούνται για την περιστροφή ενός σετ σημείων που ανήκουν σε ένα σύστημα συντεταγμένων. Ενώ το κάθε σημείο αποκτά τις καινούριες του συντεταγμένες, οι σχετικές τους αποστάσεις δεν αλλάζουν. Όλες οι περιστροφές ορίζονται χρησιμοποιώντας τις τριγωνομετρικές συναρτήσεις του ημιτόνου (sine) και του συνημιτόνου (cosine). Για ένα δισδιάστατο σύστημα συντεταγμένων ο πίνακας περιστροφής είναι κάπως έτσι, και ουσιαστικά επιτελεί τη λειτουργία που χιουμοριστικά απεικονίζεται στην παρακάτω εικόνα: Ένωση πινάκων μετασχηματισμού (Matrix Concatenation) Τώρα που πλέον γνωρίζουμε πως να περιστρέφουμε, να μετακινούμε και να αλλάζουμε την κλίμακα των διανυσμάτων μας, θα ήταν πολύ καλό να μπορούσαμε να συνδυάσουμε αυτούς τους μετασχηματισμούς. Αυτό επιτυγχάνεται πολλαπλασιάζοντας τους πίνακες μετασχηματισμού μεταξύ τους: 16
19 TransformedVector = TranslationMatrix * RotationMatrix * ScaleMatrix * OriginalVector; ΠΡΟΣΟΧΗ: Η παραπάνω γραμμή πραγματοποιεί πρώτα την αλλαγή κλίμακας, έπειτα την περιστροφή και τελευταία τη μετακίνηση διότι έτσι δουλεύει ο πολλαπλασιασμός πινάκων. Κάνοντας τις πράξεις με άλλη σειρά δεν θα είχε το ίδιο αποτέλεσμα. Δοκιμάστε το και μόνοι σας: Κάντε ένα βήμα μπροστά και μετά στρίψτε αριστερά. Στρίψτε αριστερά και μετά κάντε ένα βήμα μπροστά. Η πραγματικότητα είναι ότι για ένα χαρακτήρα ή άλλα αντικείμενα σε ένα video game θα χρειαζόμασταν τη δεύτερη επιλογή, δηλαδή: Αλλαγή κλίμακας πρώτα και αν χρειάζεται. Στη συνέχεια περιστροφή για να αλλάξουμε την κατεύθυνση. Τέλος μετακίνηση. Μετασχηματισμοί στο Fixed Function Pipeline του OpenGL. Το OpenGL αν δεν οριστούν shaders χρησιμοποιεί μία προκαθορισμένη διαδικασία επεξεργασίας των vertices και των μετασχηματισμών τους. Στη συνέχεια θα αναφερθούμε στους μετασχηματισμούς που πραγματοποιούνται σε ένα τρισδιάστατο μοντέλο για να μπορέσει να απεικονιστεί στην οθόνη χρησιμοποιώντας το fixed function pipeline του OpenGL. Τα τρισδιάστατα μοντέλα αρχικά ορίζονται σε ένα τοπικό σύστημα συντεταγμένων (local coordinate system). 17
20 Ο ρόλος του τοπικού συστήματος συντεταγμένων είναι να μας διευκολύνει στον ορισμό των πολυγώνων. Για να τοποθετηθούν τα αντικείμενα στη σκηνή, όπου το κάθε ένα πρέπει να έχει τη δική του θέση, τη δική του γωνία περιστροφής και τη δική του κλίμακα μέσα στη σκηνή, χρησιμοποιούμε τον world ή modeling μετασχηματισμό, και μεταφέρονται στο world ή global σύστημα συντεταγμένων. 18
21 Το κάθε τρισδιάστατο αντικείμενο λοιπόν έχει το δικό του world ή modeling μετασχηματισμό, ο οποίος το τοποθετεί μέσα στη σκηνή. Έπειτα για να μπορέσει να πραγματοποιηθεί εύκολα η προβολή των τρισδιάστατων αντικειμένων στο επίπεδο της οθόνης, μεταφέρουμε τα αντικείμενα στο view σύστημα συντεταγμένων, στο οποίο αρχικά η camera βρίσκεται στην αρχή των αξόνων, δηλαδή το σημείο XYZ: (0, 0, 0), και έχει κατεύθυνση (στο OpenGL) τον άξονα -Z. 19
22 Για όλη τη σκηνή υπάρχει ένας μόνο μετασχηματισμός view που έχει να κάνει με το που βρίσκεται αρχικά ο παρατηρητής. Στο OpenGL ο model μετασχηματισμός και ο view μετασχηματισμός θεωρείται ένας συνολικός μετασχηματισμός με το όνομα modelview και δημιουργείται ένας συνολικός πίνακας μετασχηματισμού που προκύπτει από τον πολλαπλασιασμό του model με τον view πίνακα μετασχηματισμού. Στη συνέχεια μέσω του μετασχηματισμού projection, μεταφέρουμε τη σκηνή μας σε ένα άλλο σύστημα συντεταγμένων που ονομάζεται homogenous clipspace και οι συντεταγμένες έχουν πλέον τιμές από το -1 έως το 1. Για να γίνει πιο κατανοητή η διαδικασία του μετασχηματισμού projection ακολουθεί το εξής παράδειγμα: 20
23 Έχουμε τα μπλε αυτά αντικείμενα ορισμένα σε view space και το κόκκινο αντιπροσωπεύει το εύρος θέασης του παρατηρητή. 21
24 Πολλαπλασιάζοντας τα πάντα με τον πίνακα μετασχηματισμού projection παίρνουμε το εξής αποτέλεσμα: Σ' αυτή την εικόνα, ο κώνος θέασης είναι πλέον ένας τέλειος κύβος (με συντεταγμένες από -1 έως 1 σε όλους τους άξονες), και όλα τα μπλε αντικείμενα έχουν παραμορφωθεί με τον ίδιο τρόπο. Έτσι τα αντικείμενα που είναι κοντά στην camera (δηλαδή στην όψη του κύβου που δεν μπορούμε να δούμε) είναι μεγάλα, τα υπόλοιπα είναι μικρότερα. Μοιάζει με την πραγματικότητα!!! 22
25 Ας δούμε λοιπόν πως φαίνεται η σκηνή πίσω από τον κώνο θέασης. 23
26 Στη συνέχεια ακολουθεί ένας τελευταίος μετασχηματισμός που μεταφέρει τη σκηνή από το homogenous clipspace σε screen space και λέγεται μετασχηματισμός viewport. 24
27 Συνοψίζοντας, το OpenGL ακολουθεί την εξής διαδικασία για να απεικονίσει μια τρισδιάστατη σκηνή στην οθόνη. 25
28 Σχεδιάζοντας μία Game Engine. Εφόσον αναφέραμε ορισμένες βασικές έννοιες γενικότερα για τα γραφικά και ειδικότερα για το OpenGL, ήρθε η ώρα να σκεφτούμε έναν τρόπο να χρησιμοποιήσουμε αυτά τα εργαλεία για να δημιουργήσουμε το δικό μας video game! Αρχικά το πρώτο πράγμα που πρέπει να σκεφτούμε πριν ξεκινήσουμε τη σχεδίαση της game engine είναι το τι ακριβώς θέλουμε να πετύχουμε με αυτήν. Έχοντας εξ' αρχής ένα ξεκάθαρο σχέδιο για το τι θέλουμε να είναι ικανή να πραγματοποιήσει η engine μας είναι ιδιαίτερα σημαντικό, πρώτον γιατί μας βοηθάει στο να σχεδιάσουμε τις ανάλογες κλάσεις και δεύτερον γλιτώνουμε ένα μεγάλο μέρος της αλλαγής κώδικα που αναπόφευκτα θα χρειαστεί να κάνουμε, είτε διότι άλλαξε κάτι στην αρχική ιδέα που είχαμε για το πως θα λειτουργεί το game μας, είτε διότι κάναμε κάποιο σχεδιαστικό λάθος το οποίο μας εμποδίζει στην υλοποίηση καινούριων features. Το game development είναι μία δυναμική διαδικασία. Τίποτα δεν είναι χαραγμένο σε πέτρα. Είναι σχεδόν αδύνατον κάνοντας develop ένα video game, να κατασταλάξει το development team σε ένα συγκεκριμένο game design και να μην αλλάξει απολύτως τίποτα μέχρι το τέλος της ανάπτυξής του. DISCLAIMER: Ότι θα αναφερθεί παρακάτω είναι αντικατόπτριση της έως τώρα εμπειρίας μου με το game engine design και αποτέλεσμα πολλών ορών refactoring κώδικα λόγω των σχεδιαστικών λαθών που έκανα προσπαθώντας να πετύχω ένα καλό αποτέλεσμα. Ας ξεκινήσουμε λοιπόν από τις ποιο βασικές κλάσεις απ' όλες. Δεν είναι καθόλου δύσκολο να μας έρθει στο μυαλό η δημιουργία αυτών των κλάσεων. Κατασκευάζουμε μία game engine η οποία θέλουμε να επεξεργάζεται δισδιάστατα ή τρισδιάστατα διανυσματικά γραφικά και προφανώς θέλουμε να μπορούμε να τα μετασχηματίζουμε αναλόγως στην οθόνη. Οι κλάσεις αυτές λοιπόν είναι: 26
29 Η κλάση Vector. Η κλάση Matrix. Η κλάση Quaternion. Η κλάση Vector θα ορίζει τα διανύσματά μας και θα πραγματοποιεί operations μεταξύ τους, η κλάση Matrix θα ορίζει και θα χειρίζεται τους πίνακες μετασχηματισμού, ενώ η κλάση Quaternion θα ορίζει και θα χειρίζεται operations μεταξύ Quaternions. Αυτές οι κλάσεις μπορούν να χρησιμοποιούνται ανεξάρτητα μέσα στην game engine οπουδήποτε χρειάζεται. Επίσης θα ήταν καλό σχεδιαστικά να ορίσουμε και μία κλάση Math η οποία θα υλοποιεί διάφορες αριθμητικές μεθόδους όπως interpolations, splines, noise functions κ.α. Στη συνέχεια θα ορίσουμε μία κλάση η οποία θα είναι η ραχοκοκαλιά της game engine μας. Η κλάση αυτή είναι: Η κλάση TransformNode. Στη engine μας θεωρούμε οτιδήποτε θα υποστεί μετασχηματισμούς ότι είναι TransformNode αντικείμενο, χρησιμοποιώντας κληρονομικότητα. Αυτή η κλάση θα χειρίζεται όλους τους μετασχηματισμούς του κάθε node σύμφωνα με το χρόνο. Οι κλάσεις που κληρονομούν την TransformNode είναι: Light (Αποθηκεύει δεδομένα για τα φώτα) Camera (Αποθηκεύει πληροφορίες για την camera) ParticleSystem (Υπεύθυνη για να ζωγραφίζει εφέ όπως π.χ. φωτιά) UIComponent (Αντιπροσωπεύει ένα αντικείμενο του UI) StaticObject (Αντιπροσωπεύει τα στατικά αντικείμενα) Entity (Αντιπροσωπεύει τις οντότητες όπως π.χ εχθροί) Αν θέλουμε να έχουμε animations στα γραφικά μας, και ειδικά στη περίπτωση που το κάθε μοντέλο στη σκηνή μας θέλουμε να έχει περισσότερα 27
30 από ένα, καλή πρακτική είναι να σχεδιάσουμε μία κλάση που να αποθηκεύει τις πληροφορίες για τα keyframes και να μην είναι υπεύθυνη γι' αυτό η κλάση TransformNode. Γι' αυτό το λόγο ορίζουμε την κλάση Animation. Instances αυτής της κλάσης περιέχονται μέσα στην TransformNode η οποία και τα χειρίζεται. Τώρα που έχουμε χειριστεί όλους τους μετασχηματισμούς στη game engine μας, χρειαζόμαστε μία κλάση η οποία θα αποθηκεύει μέσα της την γεωμετρία (3d model) που θα μετασχηματίσουμε. Η κλάση αυτή είναι η κλάση Mesh. Είναι υπεύθυνη να δηλώσει στο OpenGL το πως θέλουμε να ζωγραφιστεί η γεωμετρία, και τέλος να τη ζωγραφίσει με τις ανάλογες κλήσεις στο OpenGL. Πλέον μπορούμε ουσιαστικά να φορτώσουμε και να ζωγραφίσουμε στην οθόνη τρισδιάστατα μοντέλα, αλλά θέλουμε να τα έχουμε μαζί μέσα σε μία σκηνή. Όποτε δημιουργούμε την κλάση Scene η οποία κρατάει μέσα της αυτή την πληροφορία. Τα περισσότερα video games που σέβονται τον εαυτό τους έχουν περισσότερες από μία πίστες γι' αυτό το λόγο χρειαζόμαστε μία κλάση Stage η οποία θα αντιπροσωπεύει μία πίστα του game μας και περιέχει μέσα τις διάφορες σκηνές. Επίσης ανάλογα με τις ανάγκες του game μας μπορεί να χρειαστούμε και μία κλάση Player η οποία θα αποθηκεύει στοιχεία για τον παίχτη του παιχνιδιού (Health Points, Experience Points, Unlocks, Achievements κ.α.). Όπως έχετε παρατηρήσει, στα περισσότερα games ποτέ σχεδόν δεν ξεκινάει το παιχνίδι αμέσως. Υπάρχουν διάφορα screens που ελέγχουν τη ροή του (Menu Screen, Pause Screen, Splash Screen). Για να πετύχουμε το ίδιο και στη δικιά μας game engine δημιουργούμε την κλάση Screen η οποία κρατάει πληροφορίες όπως τον χρόνο από την στιγμή ενεργοποίησης της. Η κλάση Screen είναι η Base class όλων των υπόλοιπων Screen κλάσεων που την κληρονομούν και υπερφορτώνουν τις συναρτήσεις της (πολυμορφισμός). Τι κάνουμε όμως στην περίπτωση που χρειάζεται να ζωγραφίσουμε ένα UI πάνω στο GameScreen μας; (κλάση η οποία ζωγραφίζει και ελέγχει το 28
31 input για την ενεργή πίστα). Αν δημιουργήσουμε μία νέα κλάση η οποία απλά θα κληρονομεί την Screen και θα ζωγραφίζει το UI τότε θα σταματήσει να ζωγραφίζεται η GameScreen. Για να μπορέσουμε λοιπόν να ζωγραφίσουμε UI όπως για παράδειγμα ένα Pause Menu χωρίς να χαθεί η εικόνα του game μας, δημιουργούμε μία κλάση OverlayScreen η οποία εκτός από τον εαυτό της ζωγραφίζει και το Screen που της έχουμε θέσει σαν πατέρα (parent). Την κλάση αυτή την κληρονομούν όλες οι κλάσεις που χρειάζεται να ζωγραφίζουν κάτι πάνω από ένα οποιοδήποτε άλλο Screen. Τέλος, η base class Screen περιέχει μέσα της virtual συναρτήσεις, τις οποίες της υπερφορτώνουν οι derived classes, για να χειρίζεται τα inputs από το ποντίκι και το πληκτρολόγιο. Με αυτό το design κάθε Screen derived class μπορεί να έχει τα δικά τις controls. Αυτός λοιπόν είναι ο σκελετός μίας σχετικά απλής game engine. Προφανώς κάθε game engine μπορεί να έχει διαφορές στο design, η επιλογή του οποίου είναι στα χέρια του κάθε προγραμματιστή γραφικών! Ακολουθεί διάγραμμα UML με το game engine design που αναφέρθηκε παραπάνω: 29
32 30
33 Στη συνέχεια ακολουθεί πρόγραμμα σε γλώσσα C που ζωγραφίζει έναν κύβο χρησιμοποιώντας το fixed function pipeline του OpenGL χρησιμοποιώντας τεχνική immediate mode: Έκδοση για Linux #include <GL/glut.h> #include <stdlib.h> #include <stdio.h> #include <assert.h> void draw_cube(); void display(); void idle(); void reshape(int x, int y); void mouse_move(int x, int y); void key_down(unsigned char key, int x, int y); float rot_x, rot_y; int main(int argc, char **argv) { /*Initialize GLUT*/ glutinit(&argc, argv); /*Initialize the Display Mode*/ glutinitdisplaymode(glut_rgb GLUT_DEPTH GLUT_DOUBLE); /*Initialize the Window Size*/ glutinitwindowsize(600, 400); /*Create the Display Window*/ glutcreatewindow("cube Example"); //function callbacks /*display function callback*/ glutdisplayfunc(display); /*Idle function callback*/ glutidlefunc(idle); 31
34 /*Motion function callback*/ glutmotionfunc(mouse_move); /*Keyboard function callback*/ glutkeyboardfunc(key_down); /*Calls the reshape funciton*/ glutreshapefunc(reshape); // /*Enables Depth Testing*/ glenable(gl_depth_test); /*Enables Back Face Culling*/ glenable(gl_cull_face); glutmainloop(); } void draw_cube() { /*State that we want to use quadrilaterals*/ glbegin(gl_quads); /*State the color we want to use *note that if we don't state the use of a different one, *all the faces of the cube will have the same color*/ glcolor3f(1.0, 0.0, 0.0); //red /*State the position of each vertex*/ glvertex3f(-1.0, -1.0, -1.0); glvertex3f(-1.0, 1.0, -1.0); glvertex3f(1.0, 1.0, -1.0); glvertex3f(1.0, -1.0, -1.0); glcolor3f(0.0, 1.0, 0.0); //green glvertex3f(1.0, -1.0, 1.0); glvertex3f(1.0, 1.0, 1.0); glvertex3f(-1.0, 1.0, 1.0); 32
35 glvertex3f(-1.0, -1.0, 1.0); glcolor3f(0.0, 0.0, 1.0); //blue glvertex3f(-1.0, -1.0, 1.0); glvertex3f(-1.0, 1.0, 1.0); glvertex3f(-1.0, 1.0, -1.0); glvertex3f(-1.0, -1.0, -1.0); glcolor3f(1.0, 1.0, 0.0); //yellow glvertex3f(1.0, 1.0, -1.0); glvertex3f(1.0, 1.0, 1.0); glvertex3f(1.0, -1.0, 1.0); glvertex3f(1.0, -1.0, -1.0); glcolor3f(1.0, 0.0, 1.0); //purple glvertex3f(-1.0, 1.0, 1.0); glvertex3f(1.0, 1.0, 1.0); glvertex3f(1.0, 1.0, -1.0); glvertex3f(-1.0, 1.0, -1.0); glcolor3f(0.5, 1.0, 0.3); //something... glvertex3f(-1.0, -1.0, -1.0); glvertex3f(1.0, -1.0, -1.0); glvertex3f(1.0, -1.0, 1.0); glvertex3f(-1.0, -1.0, 1.0); /*State that the drawing has ended*/ glend(); } void display() { /*Clears the Framebuffer*/ glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); /*Specifies the clear color*/ glclearcolor(0.1, 0.1, 0.1, 1.0); /*Set the matrix mode to MODELVIEW*/ glmatrixmode(gl_modelview); 33
36 /*Set the Modelview Matrix to identity*/ glloadidentity(); /*Translate the view -5.0 units on the Z axis.*/ gltranslatef(0.0, 0.0, -5.0); glrotatef(30.0, 1.0, 0.0, 0.0); glpushmatrix(); /*Use the cursor position as an angle value to rotate the view * on the x/y axis*/ glrotatef(rot_y, 1.0, 0.0, 0.0); glrotatef(rot_x, 0.0, 1.0, 0.0); /*Draw out cube with the applied transformations*/ draw_cube(); glpopmatrix(); /*Swap the buffers since we use Double buffering*/ glutswapbuffers(); /*Check for Opengl Errors*/ assert(glgeterror() == GL_NO_ERROR); } void idle() { /*Refresh the sceen and redisplay*/ glutpostredisplay(); } void reshape(int x, int y) { /*setup the OpenGL Viewport*/ glviewport(0, 0, x, y); /*Calulate the aspect ratio*/ float aspect = (float)x / (float)y; 34
37 /*Set the matrix mode to Projection*/ glmatrixmode(gl_projection); /*Set the projection matrix to identity*/ glloadidentity(); /*Calculate the projection matrix*/ gluperspective(45.0, aspect, 1.0, 100); } void mouse_move(int x, int y) { rot_x = x; rot_y = y; } void key_down(unsigned char key, int x, int y) { switch (key) { case 27: exit(0); break; } } Πηγές: 35
38 1. What is Computer Graphics? Cornell University Program of Computer Graphics. 2. University of Leeds ISS (2002). What are Computer Graphics? 3. Blythe, David. Advanced Graphics Programming Techniques Using OpenGL. Siggraph Colin Smith, On Vertex-Vertex Meshes and Their Use in Geometric and Biological Modeling. 5. Bruce Baumgart, Winged-Edge Polyhedron Representation for Computer Vision. National Computer Conference, May Tobler & Maierhofer, A Mesh Data Structure for Rendering and Subdivision The OpenGL Programming Guide a.k.a the Red Book. 36
Οδηγίες σχεδίασης στο περιβάλλον Blender
Οδηγίες σχεδίασης στο περιβάλλον Blender Στον πραγματικό κόσμο, αντιλαμβανόμαστε τα αντικείμενα σε τρεις κατευθύνσεις ή διαστάσεις. Τυπικά λέμε ότι διαθέτουν ύψος, πλάτος και βάθος. Όταν θέλουμε να αναπαραστήσουμε
Εισαγωγή στην OpenGL
Εισαγωγή στην OpenGL Ε.1 Τι είναι η OpenGL; Ένας νέος χρήστης θα υποθέσει ότι η OpenGL είναι µια βιβλιοθήκη σχεδίασης γραφικών. Ωστόσο, µε τον όρο OpenGL δεν αναφερόµαστε σε µια συγκεκριµένη βιβλιοθήκη
OpenGL. Μετασχηματισμοί. Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα. Κατερίνα Παπαδοπούλου /
OpenGL Μετασχηματισμοί Κατερίνα Παπαδοπούλου / pakate@unipi.gr Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα Τύποι μετασχηματισμών Μετασχηματισμοί μοντέλου (modeling transformations) με glmatrixmode
7 ο Εργαστήριο Θόρυβος 2Δ, Μετακίνηση, Περιστροφή
7 ο Εργαστήριο Θόρυβος 2Δ, Μετακίνηση, Περιστροφή O θόρυβος 2Δ μας δίνει τη δυνατότητα να δημιουργίας υφής 2Δ. Στο παρακάτω παράδειγμα, γίνεται σχεδίαση γραμμών σε πλέγμα 300x300 με μεταβαλόμενη τιμή αδιαφάνειας
Εισαγωγή στο 3DS Max 2009
Μάθημα 1ο Εισαγωγή στο 3DS Max 2009 Σε αυτό το μάθημα πραγματοποιείται εκμάθηση του περιβάλλοντος του προγράμματος 3DS Max 2009. Το 3D Studio Max είναι ένα από τα ισχυρότερα προγράμματα δημιουργίας και
Εισαγωγή στην OpenGL
Εισαγωγή στην OpenGL Περιεχόµενα εισαγωγικής ενότητας: Γενικά χαρακτηριστικά της OpenGL Βιβλιοθήκες που της OpenGL Ένα τυπικό πρόγραµµα Τι είναι η OpenGL; Η OpenGL δεν είναι µια συγκεκριµένη βιβλιοθήκη
Συσκευές εισόδου. Φυσικές συσκευές εισόδου Λογικές συσκευές εισόδου
Αλληλεπίδραση Project sketchpad: πρώτο αλληλεπιδραστικό πρόγραµµα γραφικών Αλληλεπίδραση βασικό συστατικό προγραµµάτων γραφικών Η OpenGL δεν υποστηρίζει άµεσα αλληλεπίδραση (συναρτήσεις διαχείρισης παραθύρων
Εισαγωγή. Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω» (top-down). Βαθµίδα διασύνδεσης προγραµµατιστή εφαρµογών (API)
Εισαγωγή Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω» (top-down). Βαθµίδα διασύνδεσης προγραµµατιστή εφαρµογών (API) Γιατί OpenGL; Άλλα APIs: PHIGS (ANSI), GKS, Direct3D, VRML, JAVA-3D
Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 4η - 3Δ γραφικά
Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 4η - 3Δ γραφικά Ιόνιο Πανεπιστήμιο, Τμήμα Πληροφορικής, 2015 Κωνσταντίνος Οικονόμου, Επίκουρος Καθηγητής Βασίλειος Κομιανός, Υποψήφιος Διδάκτορας
3 ο Εργαστήριο Μεταβλητές, Τελεστές
3 ο Εργαστήριο Μεταβλητές, Τελεστές Μια μεταβλητή έχει ένα όνομα και ουσιαστικά είναι ένας δείκτης σε μια συγκεκριμένη θέση στη μνήμη του υπολογιστή. Στη θέση μνήμης στην οποία δείχνει μια μεταβλητή αποθηκεύονται
Προγραμματισμός γραφικών
Προγραμματισμός γραφικών Εισαγωγή ελάχιστου συνόλου συναρτήσεων Οχι αλληλεπίδραση από τον χρήστη Δισδιάστατα γραφικά: ειδική περίπτωση τρισδιάστατων γραφικών Παράδειγμα-εφαρμογή: η ταινίατου Sierpinski
Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering)
Υφή Η διαδικασία Παραγωγής Συνθετικής Εικόνας (Rendering) Θέσεις αντικειμένων και φωτεινών πηγών Θέση παρατηρητή 3D Μοντέλα 3Δ Μετασχ/σμοί Μοντέλου 3Δ Μετασχ/σμός Παρατήρησης Απομάκρυνση Πίσω Επιφανειών
Εισαγωγή στην OpenGL: μέρος 2ο
Εισαγωγή στην OpenGL: μέρος 2ο Μετασχηματισμοί στην OpenGL Η OpenGL υποστηρίζει μια σειρά μετασχηματισμών τους οποίους μπορούμε να χρησιμοποιήσουμε για να τοποθετήσουμε τα αντικείμενα μας στην οθόνη, να
Τμήμα Μηχανικών Σχεδίασης Προϊόντων & Συστημάτων ΓΡΑΦΙΚΑ (6151) ΕΝΔΕΙΚΤΙΚΕΣ ΠΡΟΑΙΡΕΤΙΚΕΣ ΑΣΚΗΣΕΙΣ
ΓΡΑΦΙΚΑ (6151) ΕΝΔΕΙΚΤΙΚΕΣ ΠΡΟΑΙΡΕΤΙΚΕΣ ΑΣΚΗΣΕΙΣ Άσκηση 1 (Βαρύτητα 30%. Ομάδες: μέχρι 2 ατόμων): Ανάπτυξη 2Δ παιχνιδιού τύπου «ποδοσφαιράκι» το οποίο θα έχει τις παρακάτω λειτουργίες/δυνατότητες: Μπάλα:
Υλικά, φωτισμός και χρωματισμός
Υλικά, φωτισμός και χρωματισμός Ζωγραφίζουμε, που; Είπαμε ότι ζωγραφίζουμε την σκηνή παίρνοντας κάθε σημείο και προβάλλοντας το στην οθόνη. Στην πραγματικότητα το αποθηκεύουμε σε μια περιοχή της μνήμης
ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί
ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί Πολλά προβλήματα λύνονται μέσω δισδιάστατων απεικονίσεων ενός μοντέλου. Μεταξύ αυτών και τα προβλήματα κίνησης, όπως η κίνηση ενός συρόμενου μηχανισμού.
Γραφικά & Οπτικοποίηση. Κεφάλαιο 1. Εισαγωγή. Γραφικά & Οπτικοπίηση: Αρχές & Αλγόριθμοι Κεφάλαιο 1
Γραφικά & Οπτικοποίηση Κεφάλαιο 1 Εισαγωγή Ιστορικά Ιστορική ανασκόπηση : 2 Ιστορικά (2) Ρυθμοί ανάπτυξης CPU και GPU 3 Εφαρμογές Ειδικά εφέ για ταινίες & διαφημίσεις Επιστημονική εξερεύνηση μέσω οπτικοποίησης
Texturing, Animation, Lighting, Rendering
Μάθημα 2ο Texturing, Animation, Lighting, Rendering Materials Σε αυτό το σημείο έχουμε τελειώσει με τη διαδικασία του modeling, και αυτό που έχουμε σαν αποτέλεσμα είναι ένα σύνολο από αντικείμενα, τα οποία
Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή
Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή Oι οπτικές επιδράσεις, που μπορεί να προκαλέσει μια εικόνα στους χρήστες, αποτελούν ένα από τα σπουδαιότερα αποτελέσματα των λειτουργιών γραφικών με Η/Υ. Τον όρο της οπτικοποίησης
Blender HSGR Lesson Series Lab 1. Presentation by Antony Riakiotakis, this document is licenced under CC BY-SA
Blender HSGR Lesson Series Lab 1 Presentation by Antony Riakiotakis, this document is licenced under CC BY-SA Όπως λένε και στο πρώτο μαθήμα οδήγησης Αυτό είναι ένα αυτοκίνητο Αυτό είναι το blender Τι
Δημιουργώντας γραφικά στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία
Δημιουργώντας γραφικά στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία Στην άσκηση αυτή θα μάθετε πώς να χρησιμοποιήσετε βασικά εργαλεία στο περιβάλλον 3Ds Max για να δημιουργήσετε ένα τρισδιάστατο
Εισαγωγή στην OpenGL: μέρος 1ο
Εισαγωγή στην OpenGL: μέρος 1ο Τι είναι η OpenGL Η OpenGL είναι ένα σύνολο εντολών (Application Programming Interface API) που μας επιτρέπει την δημιουργία τριδιάστατων γραφικών. Δεν είναι γλώσσα προγραμματισμού
Μοντελοποίηση τρισδιάστατου κόσμου σε πραγματικό κόσμο: το παράδειγμα του Kinect. ιδάσκων: Φ. Αζαριάδης Φοιτήτρια: Άρτεμις-Αγγελική Σφύρη
Μοντελοποίηση τρισδιάστατου κόσμου σε πραγματικό κόσμο: το παράδειγμα του Kinect ιδάσκων: Φ. Αζαριάδης Φοιτήτρια: Άρτεμις-Αγγελική Σφύρη Computer graphics Μοντελοποίηση τρισδιάστατου κόσμου 2d/3d computer
Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή
Γ Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή Η χρήση των ηλεκτρονικών υπολογιστών στο τεχνικό σχέδιο, και ιδιαίτερα στο αρχιτεκτονικό, αποτελεί πλέον μία πραγματικότητα σε διαρκή εξέλιξη, που επηρεάζει
1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα
1 ο Εργαστήριο Συντεταγμένες, Χρώματα, Σχήματα 1. Σύστημα Συντεταγμένων Το σύστημα συντεταγμένων που έχουμε συνηθίσει από το σχολείο τοποθετούσε το σημείο (0,0) στο σημείο τομής των δυο αξόνων Χ και Υ.
Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1
Εικόνα Εισαγωγή Ψηφιακή αναπαράσταση Κωδικοποίηση των χρωμάτων Συσκευές εισόδου και εξόδου Βάθος χρώματος και ανάλυση Συμβολική αναπαράσταση Μετάδοση εικόνας Σύνθεση εικόνας Ανάλυση εικόνας Τεχνολογία
Κεφάλαιο 7. Τρισδιάστατα Μοντέλα
Κεφάλαιο 7. 7.1 ομές εδομένων για Γραφικά Υπολογιστών. Οι δομές δεδομένων αποτελούν αντικείμενο της επιστήμης υπολογιστών. Κατά συνέπεια πρέπει να γνωρίζουμε πώς οργανώνονται τα γεωμετρικά δεδομένα, προκειμένου
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΓΡΑΦΙΚΑ ΥΠΟΛΟΓΙΣΤΩΝ Διδάσκων: Ν. ΝΙΚΟΛΑΙΔΗΣ 1 η Σειρά Ασκήσεων Πλαίσια, γεωμετρικοί μετασχηματισμοί και προβολές 1. Y B (-1,2,0) A (-1,1,0) A (1,1,0)
Γραφικά Ι. Ενότητα 1: Εισαγωγή. Θεοχάρης Θεοχάρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών
Γραφικά Ι Ενότητα 1: Εισαγωγή Θεοχάρης Θεοχάρης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ενότητα 1 Εισαγωγή Ιστορικά Ιστορική ανασκόπηση : 3 Ιστορικά (2) Ρυθμοί ανάπτυξης CPU και
Εισαγωγή. Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω»(topdown). Βαθμίδα διασύνδεσης προγραμματιστή εφαρμογών (API)
Εισαγωγή Γιατί γραφικά υπολογιστών; Προσέγγιση «από πάνω προς τα κάτω»(topdown). Βαθμίδα διασύνδεσης προγραμματιστή εφαρμογών (API) Γιατί OpenGL; Portable, παιδαγωγική, καλά τεκμηριωμένη, open standard,
Συστήματα συντεταγμένων
Κεφάλαιο. Για να δημιουργήσουμε τρισδιάστατα αντικείμενα, που μπορούν να παρασταθούν στην οθόνη του υπολογιστή ως ένα σύνολο από γραμμές, επίπεδες πολυγωνικές επιφάνειες ή ακόμη και από ένα συνδυασμό από
Εργαλεία Δημιουργίας Τρισδιάστατων Γραφικών
Τεχνικός Εφαρμογών Πληροφορικής Εργαλεία Δημιουργίας Τρισδιάστατων Γραφικών Εισαγωγή Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: http://moodleforall.ictlab.edu.gr/ Περιεχόμενα Τι είναι τα γραφικά Είδη
Ερωτήσεις Απαντήσεις επανάληψης κεφ.9 (Πολυμέσα).
14 ο Γυμνάσιο Περιστερίου 1 Ερωτήσεις Απαντήσεις επανάληψης κεφ.9 (Πολυμέσα). Μάθημα 9.1 Ο κόσμος των Πολυμέσων 1. Τι είναι μια Εφαρμογή Πολυμέσων. Λογισμικό στο οποίο χρησιμοποιούνται πολλά και διαφορετικά
Unity editor. Μέρος 2ο
Unity editor Μέρος 2ο Είδη εικόνων Textures: Εικόνες που χρησιμοποιούνται για να «ντύσουν» ένα τρισδιάστατο αντικείμενο. Μπορούν να είναι πολλαπλών τύπων (diffuse, normal map, height map etc). Sprites:
Ψηφιακή τέχνη DIGITAL ART
Μάθηµα Πολυµέσων, Υπερµέσων και Βίντεο-τέχνης - ΑΣΚΤ - Διδάσκουσα: Νεφέλη Δηµητριάδη, Δρ. Ψηφιακή τέχνη DIGITAL ART Ψηφιακή εικόνα DIGITAL IMAGE Ψηφιακή κινούμενη εικόνα DIGITAL ANIMATION Ψηφιακή τρισδιάστατη
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα CAD / CAM. Ενότητα # 6: Γραφικά
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα CAD / CAM Ενότητα # 6: Γραφικά Δημήτριος Τσελές Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Απεικόνιση Υφής. Μέρος B Δημιουργία Συντεταγμένων Υφής
Απεικόνιση Γραφικά ΥφήςΥπολογιστών Απεικόνιση Υφής Μέρος B Δημιουργία Συντεταγμένων Υφής Γ. Γ. Παπαϊωάννου, - 2008 Γενικά Είδαμε ότι μπορούμε να αποθηκεύσουμε συντεταγμένες υφής στις κορυφές των τριγώνων
Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS
Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS Δημιουργία επιπέδου σχεδίασης 1. Από το Menu Layer Create Layer New Shapefile Layer δημιουργούμε νέο επίπεδο. Στο παράθυρο που ανοίγει (Εικ. 1)
Γραφικά με Η/Υ / Εισαγωγή
Γραφικά με Η/Υ Εισαγωγή Πληροφορίες μαθήματος (1/4) Υπεύθυνος μαθήματος: Μανιτσάρης Αθανάσιος, Καθηγητής ιδάσκοντες: Μανιτσάρης Αθανάσιος: email: manits@uom.gr Μαυρίδης Ιωάννης: email: mavridis@uom.gr
DEVDAYS Ioannis Panagopoulos, MVP
DEVDAYS 2011 Ioannis Panagopoulos, MVP ipplos@gmail.com http://www.progware.org Για σήμερα... Main Game Loop Αρχές προγραμματισμού Framework Χωροχρόνος του WP7 και οργάνωση Timing, FPS, Display, Orientations,
Εισαγωγή στη σχεδίαση κινούμενων γραφικών
ΕΣΔ200 Δημιουργία Περιεχομένου ΙI Εισαγωγή στη σχεδίαση κινούμενων γραφικών Νικόλας Τσαπατσούλης Επίκουρος Καθηγητής Τμήμα Επικοινωνίας & Σπουδών Διαδικτύου Εισαγωγή Εφαρμογές Κύρια Χαρακτηριστικά Flash
Εισαγωγή στην Αριθμητική Ανάλυση
Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον
Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...
Περιεχόμενα ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»....2 Πλοήγηση στο χάρτη... 3 Σχεδίαση στο χάρτη... 4 Εκτύπωση του χάρτη... 6 Μετρήσεις επάνω στο χάρτη... 9 Εμφάνιση
Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές. Θέση παρατηρητή. 3Δ Μετασχ/σμός Παρατήρησης
Προβολές Προβολές Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε Δ συσκευές. Θέσεις αντικειμένων και φωτεινών πηγών Θέση παρατηρητή 3Δ Μαθηματικά Μοντέλα 3Δ Μετασχ/σμοί Μοντέλου 3Δ Μετασχ/σμός Παρατήρησης
ΦΩΤΟΡΕΑΛΙΣΜΟΣ & ΚΙΝΗΣΗ (ΘΕΩΡΙΑ)
ΦΩΤΟΡΕΑΛΙΣΜΟΣ & ΚΙΝΗΣΗ ΔΙΔΑΣΚΩΝ : ΝΤΙΝΤΑΚΗΣ ΙΩΑΝΝΗΣ (MSC) Καθηγητής Εφαρμογών ΚΑΡΔΙΤΣΑ 2013 ΤΙ ΕΙΝΑΙ ΦΩΤΟΑΠΟΔΟΣΗ: ΕΝΝΟΟΥΜΕ ΤΗ ΔΙΑΔΙΚΑΣΙΑ ΚΑΘΟΡΙΣΜΟΥ ΟΛΩΝ ΕΚΕΙΝΩΝ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΚΑΙ ΠΑΡΑΜΕΤΡΩΝ ΩΣΤΕ ΝΑ ΕΧΟΥΜΕ
2 ο Εργαστήριο Αλληλεπίδραση και Animation
2 ο Εργαστήριο Αλληλεπίδραση και Animation Τα προγράμματα που έχουμε δει μέχρι τώρα εκτελούν τον κώδικά τους μία φορά και το πρόγραμμα σταματάει. Ένα πρόγραμμα που δημιουργεί animation ή ανταποκρίνεται
Δημιουργώντας σχεδιοκίνηση στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία
Δημιουργώντας σχεδιοκίνηση στο περιβάλλον 3Ds Max χρησιμοποιώντας βασικά εργαλεία Στην άσκηση αυτή θα μάθετε πώς να χρησιμοποιήσετε βασικά εργαλεία στο περιβάλλον 3Ds Max για να δημιουργήσετε ένα τρισδιάστατο
Σύντομη παρουσίαση των Γραφικών με Η/Υ
ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ Οι ηλεκτρονικοί υπολογιστές και συνολικότερα τα προϊόντα της πληροφορικής έχουν μεταμορφώσει (με τρόπο ο οποίος γίνεται άμεσα ή έμμεσα αντιληπτός) τη ζωή δισεκατομμυρίων ανθρώπων στον
Προγραμματισμός. Το περιβάλλον του scratch
Προγραμματισμός Η τέχνη του να μπορούμε να γράφουμε τα δικά μας προγράμματα ονομάζεται προγραμματισμός. Γενικότερα ως προγραμματιστικό πρόβλημα θεωρούμε κάθε ζήτημα που τίθεται προς επίλυση, κάθε κατάσταση
21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι
21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα
ΕΡΓΑΣΤΗΡΙΟ ΠΟΛΥΜΕΣΩΝ ΚΑΙ ΓΡΑΦΙΚΩΝ
ΕΡΓΑΣΤΗΡΙΟ ΠΟΛΥΜΕΣΩΝ ΚΑΙ ΓΡΑΦΙΚΩΝ Εισαγωγή /4 Το σχήμα και το μέγεθος των δισδιάστατων αντικειμένων περιγράφονται με τις καρτεσιανές συντεταγμένες x, y. Με εφαρμογή γεωμετρικών μετασχηματισμών στο μοντέλο
Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites
Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά
2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ
2.0 ΒΑΣΙΚΕΣ ΓΝΩΣΕΙΣ-ΟΡΟΛΟΓΙΕΣ Η σάρωση ενός εγγράφου εισάγει στον υπολογιστή μια εικόνα, ενώ η εκτύπωση μεταφέρει στο χαρτί μια εικόνα από αυτόν. Για να αντιληφθούμε επομένως τα χαρακτηριστικά των σαρωτών
Σχεδιαστικά Προγράμματα Επίπλου
Σχεδιαστικά Προγράμματα Επίπλου Καθηγήτρια ΦΕΡΦΥΡΗ ΣΩΤΗΡΙΑ Τμήμα ΣΧΕΔΙΑΣΜΟΥ & ΤΕΧΝΟΛΟΓΙΑΣ ΞΥΛΟΥ - ΕΠΙΠΛΟΥ Σχεδιαστικά Προγράμματα Επίπλου Η σχεδίαση με τον παραδοσιακό τρόπο απαιτεί αυξημένο χρόνο, ενώ
Γραφικά Υπολογιστών: Προοπτικές Προβολές (Perspective Projections)
1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Προοπτικές Προβολές (Perspective Projections) Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Contents Μια ματιά για
4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος
4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το
Γραφικά Υπολογιστών: Βασικά Μαθηματικά
1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Βασικά Μαθηματικά Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Εισαγωγή Ένα μεγάλο κομμάτι των γραφικών αφορά βασίζονται-
Σύντομος οδηγός αναφοράς Για Windows Έκδοση 4.0
Σύντομος οδηγός αναφοράς Για Windows Έκδοση 4.0 Παράθυρα των εγγράφων Επιφάνεια του σχεδίου. Σχεδιάστε εδώ νέα αντικείμενα με τα εργαλεία σημείων, διαβήτη, σχεδίασης ευθύγραμμων αντικειμένων και κειμένου.
Οπτική Επικοινωνία 4 - Α.Ε Προτεινόμενες ρυθμίσεις V-Ray 3.4 για Rhino. Υλικά
Οπτική Επικοινωνία 4 - Α.Ε.2017-2018 Προτεινόμενες ρυθμίσεις V-Ray 3.4 για Rhino Υλικά Στα αρχεία Rhino που προορίζονται για Rendering συνιστάται να διαχωρίζετε τα αντικείμενα σε Layers ανάλογα με υλικό/υφή
App Inventor. Εφαρμογή 5 η. Σχεδιάζω
App Inventor Εφαρμογή 5 η Σχεδιάζω Εφαρμογή «Ζωγραφική»: Ακολουθώντας τα βήματα αυτού του φύλλου εργασίας, θα αναπτύξουμε σταδιακά μια απλή εφαρμογή ζωγραφικής με τα δάχτυλα. 2 3 Οδηγίες εφαρμογής: Βήμα
Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java
Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java Δρ. Απόστολος Γκάμας Λέκτορας (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1 Εισαγωγή
OpenGL. Εισαγωγή. Εξάμηνο: 2014Β. Διδάσκουσα: Κανελλοπούλου Χριστίνα_ΠΕ19 Πληροφορικής Ηλεκτρονική Τάξη: http://moodleforall.ictlab.edu.
Τεχνικός Εφαρμογών Πληροφορικής Εισαγωγή OpenGL Εξάμηνο: 2014Β Διδάσκουσα: Ηλεκτρονική Τάξη: http://moodleforall.ictlab.edu.gr/ Περιεχόμενα 1. Τι είναι η OpenGL 2. Μηχανή καταστάσεων 3. Η εξέλιξη της 4.
ΕΡΓΑΛΕΙΑ ΚΑΤΑΣΚΕΥΗΣ ΠΑΙΧΝΙΔΙΩΝ: Εργασία με το λογισμικό Valve Editor
Στην άσκηση αυτή θα δούμε πώς μπορούμε να δημιουργήσουμε ένα χάρτη/πίστα και να ενσωματώσουμε βασική λειτουργικότητα, χρησιμοποιώντας το λογισμικό Valve Editor. Ας ξεκινήσουμε λοιπόν! 1. Δημιουργήστε ένα
Γραφικά Υπολογιστών: Μέθοδοι Ανίχνευσης Επιφανειών (Surface Detection Methods)
1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Μέθοδοι Ανίχνευσης Επιφανειών (Surface Detection Methods) Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Περιεχόμενα
Απεικόνιση δεδομένων (data visualization)
Απεικόνιση δεδομένων (data visualization) Χρήση γραφικών για την αναπαράσταση δεδομένων από διάφορες πηγές Ιατρικές εφαρμογές (π.χ. αξονική τομογραφία) Μαθηματικά μοντέλα και συναρτήσεις Προσομοίωση διεργασιών
Γραφικά Υπολογιστών: Εισαγωγή
1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Εισαγωγή Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Περιγραφή Γραφικά Υπολογιστών Τι είναι? Περιοχές εφαρμογής
OpenGL. Εισαγωγή στην OpenGL Βασικά Γεωμετρικά Σχήματα Παράλληλη (ορθογραφική) προβολή. Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα
OpenGL Εισαγωγή στην OpenGL Βασικά Γεωμετρικά Σχήματα Παράλληλη (ορθογραφική) προβολή Κατερίνα Παπαδοπούλου / pakate@unipi.gr Μάθημα: Γραφικά Υπολογιστών και Εικονική Πραγματικότητα OpenGL Εισαγωγή Είναι
B) Ετοιμάζοντας μια Παρουσίαση
B) Ετοιμάζοντας μια Παρουσίαση Τι είναι μια παρουσίαση με τη βοήθεια ηλεκτρονικού υπολογιστή Ο υπολογιστής με την κατάλληλη εφαρμογή, μπορεί να μας βοηθήσει στη δημιουργία εντυπωσιακών εγγράφων, διαφανειών
3) το παράθυρο Πίνακας τιμών όπου εμφανίζονται οι τιμές που παίρνουν οι παράμετροι
Ο Δ Η Γ Ι Ε Σ Γ Ι Α Τ Ο M O D E L L U S 0.0 4. 0 5 Για να κατεβάσουμε το πρόγραμμα Επιλέγουμε Download στη διεύθυνση: http://modellus.co/index.php/en/download. Στη συνέχεια εκτελούμε το ModellusX_windows_0_4_05.exe
Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1
Εικόνες και γραφικά Περιγραφή στατικών εικόνων Αναπαράσταση γραφικών Υλικό γραφικών Dithering και anti-aliasing Σύνθεση εικόνας Ανάλυση εικόνας Μετάδοση εικόνας Τεχνολογία Πολυµέσων 05-1 Περιγραφή στατικών
Σχεδίαση με το AutoCAD
Σχεδίαση με το AutoCAD Δημιουργία Αποθήκευση Αρχείων, Σχεδίαση & Επεξεργασία Γεωμετρικών Σχημάτων. Το παράθυρο του AutoCAD Δημιουργία - Αποθήκευση Νέου Σχεδίου Από το menu εφαρμογής επιλέγετε New και εμφανίζεται
ΑΣΚΗΣΗ 2 ΒΑΣΙΚΑ ΚΑΙ ΣΥΝΘΕΤΑ ΣΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ - ΕΙΚΟΝΑΣ
ΑΣΚΗΣΗ 2 ΒΑΣΙΚΑ ΚΑΙ ΣΥΝΘΕΤΑ ΣΗΜΑΤΑ ΔΥΟ ΔΙΑΣΤΑΣΕΩΝ - ΕΙΚΟΝΑΣ Αντικείμενο: Κατανόηση και αναπαράσταση των βασικών σημάτων δύο διαστάσεων και απεικόνισης αυτών σε εικόνα. Δημιουργία και επεξεργασία των διαφόρων
ΜΕΤΡΩΝΤΑΣ ΤΟΝ ΠΛΑΝΗΤΗ ΓΗ
του Υποπυραγού Αλέξανδρου Μαλούνη* Μέρος 2 ο - Χαρτογραφικοί μετασχηματισμοί Εισαγωγή Είδαμε λοιπόν ως τώρα, ότι η γη θα μπορούσε να χαρακτηρισθεί και σφαιρική και αυτό μπορεί να γίνει εμφανές όταν την
Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro
Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη
Κεφάλαιο 2.3: Ρυθμίσεις των Windows
Κεφάλαιο 2.3: Ρυθμίσεις των Windows 2.3.1 Βασικές πληροφορίες συστήματος Για να δούμε βασικές πληροφορίες για τον υπολογιστή μας, πατάμε το κουμπί «Έναρξη» και επιλέγουμε διαδοχικά «Πίνακας Ελέγχου», «Σύστημα
ΟΔΗΓΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΤΡΙΣΔΙΑΣΤΑΤΩΝ ΓΡΑΦΙΚΩΝ ΜΕ ΧΡΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ POVRAY MODELER ΣΤΟ LINUX
ΟΔΗΓΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΤΡΙΣΔΙΑΣΤΑΤΩΝ ΓΡΑΦΙΚΩΝ ΜΕ ΧΡΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ POVRAY MODELER ΣΤΟ LINUX 65 ο ΓΥΜΝΑΣΙΟ ΑΘΗΝΑΣ ΟΔΗΓΟΣ ΔΗΜΙΟΥΡΓΙΑΣ ΤΡΙΣΔΙΑΣΤΑΤΩΝ ΓΡΑΦΙΚΩΝ ΕΙΣΑΓΩΓΗ Στο φυλλάδιο αυτό παρουσιάζεται μια σειρά
Απεικόνιση Υφής. Μέρος Α Υφή σε Πολύγωνα
Απεικόνιση Γραφικά ΥφήςΥπολογιστών Απεικόνιση Υφής Μέρος Α Υφή σε Πολύγωνα Γ. Γ. Παπαϊωάννου, - 2008 Τι Είναι η Υφή; Η υφή είναι η χωρική διαμόρφωση των ποιοτικών χαρακτηριστικών της επιφάνειας ενός αντικειμένου,
7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής
Μάθημα 7ο Πολυμέσα 7.Α.1 Παρουσιάσεις Οι παρουσιάσεις είναι μια εφαρμογή που χρησιμεύει στην παρουσίαση των εργασιών μας. Αποτελούν μια συνοπτική μορφή των εργασιών μας. Μέσω δημιουργίας διαφανειών, μορφοποιήσεων
5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος
5. Γραφήματα 5.1 Εισαγωγή 5.1.1 Περιγραφή των συστατικών τμημάτων ενός γραφήματος Το Discoverer παρέχει μεγάλες δυνατότητες στη δημιουργία γραφημάτων, καθιστώντας δυνατή τη διαμόρφωση κάθε συστατικού μέρους
ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design)
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ΣΧΕΔΙΑΣΗ ΜΗΧΑΝΟΛΟΓΙΚΩΝ ΚΑΤΑΣΚΕΥΩΝ ΜΕ Η/Υ (Computer Aided Design) Ενότητα # 2: Στερεοί Μοντελοποιητές (Solid Modelers) Δρ Κ. Στεργίου
Γραφικά Υπολογιστών. Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας και Θράκης. Γραφικά Υπολογιστών ΣΤ Εξάμηνο. Δρ Κωνσταντίνος Δεμερτζής
Τμήμα Μηχανικών Πληροφορικής ΤΕΙ Ανατολικής Μακεδονίας και Θράκης ΣΤ Εξάμηνο Δρ Κωνσταντίνος Δεμερτζής η Μετασχηματισμοί kdemertz@fmenr.duth.gr Μετασχηματισμοί Κατά τον σχηματισμό του εικονικού κόσμου
Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο
FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη
> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό
5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε
Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας
Οδηγίες για το Geogebra Μωυσιάδης Πολυχρόνης Δόρτσιος Κώστας Η πρώτη οθόνη μετά την εκτέλεση του προγράμματος διαφέρει κάπως από τα προηγούμενα λογισμικά, αν και έχει αρκετά κοινά στοιχεία. Αποτελείται
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Νέα γενιά της OpenGL: Η γλώσσα σκίασης GLSL
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΜΜΕ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Νέα γενιά της OpenGL: Η γλώσσα σκίασης GLSL ΑΙΚΑΤΕΡΙΝΗ ΧΑΧΛΙΟΥΤΑΚΗ ΕΠΟΠΤΕΥΩΝ ΚΑΘΗΓΗΤΗΣ:
Ενσωμάτωση εικόνας BMP σε σχέδιο
Ενσωμάτωση εικόνας BMP σε σχέδιο Εγχειρίδιο χρήσης Αθήνα, Οκτώβριος 2009 Version 1.0.1 Τι είναι. Με την λειτουργία αυτή εικόνες τύπου BMP είναι δυνατόν να εισαχθούν μέσα σε οποιαδήποτε αρχείο και να υποστούν
ΠΛΗΡΟΦΟΡΙΚΗ I. 7 η ΔΙΑΛΕΞΗ Γραφικά με Υπολογιστή
ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ - ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΣΑΓΩΓΙΚΗ ΚΑΤΕΥΘΥΝΣΗ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗ I 7 η ΔΙΑΛΕΞΗ Γραφικά με Υπολογιστή ΧΑΣΑΝΗΣ ΒΑΣΙΛΕΙΟΣ
Θεωρία μετασχηματισμών
Μήτρα Μετασχηματισμού Η γεωμετρία ενός αντικειμένου μπορεί να παρουσιαστεί από ένα σύνολο σημείων κατανεμημένων σε διάφορα επίπεδα. Έτσι λοιπόν ένα πλήθος δεδομένων για κάποιο αντικείμενο μπορεί να αναπαρασταθεί
Συσκευές εισόδου. Φυσικές συσκευές εισόδου Λογικές συσκευές εισόδου
Αλληλεπίδραση Project sketchpad: πρώτο αλληλεπιδραστικό πρόγραμμα γραφικών Αλληλεπίδραση βασικό συστατικό προγραμμάτων γραφικών Η OpenGL δεν υποστηρίζει άμεσα αλληλεπίδραση (συναρτήσεις διαχείρισης παραθύρων
Γραφικά Υπολογιστών: OpenGL
1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: OpenGL Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Περιεχόμενα Τι είναι η OpenGL; Μοντέλα αντικειμένων (object modeling)
App Inventor 8ο Μάθημα (Ζωγραφική με τα δάχτυλα)
App Inventor 8ο Μάθημα (Ζωγραφική με τα δάχτυλα) Υποπρόγραμμα διαδικασία (procedure) Λήψη φωτογραφιών Σχεδίαση κύκλων και γραμμών σε καμβά Αποθήκευση σχεδίου στη συσκευή. Θα κατασκευάσουμε μια εφαρμογή
Εφαρμογές Πληροφορικής
Εφαρμογές Πληροφορικής Κεφάλαιο 11 Πολυμέσα ΜΕΡΟΣ Α 1. Υπερκείμενο Ποιός είναι ο κόμβος, ποιός ο σύνδεσμος και ποιά η θερμή λέξη; 1 2. Υπερμέσα Χαρακτηριστικά Κόμβος (Node) Αποτελεί τη βάση πληροφοριών
Άσκηση 11 η Υλικά και Χάρτες. Στόχος της άσκησης
Άσκηση 11 η Υλικά και Χάρτες Στόχος της άσκησης Σκοπό της άσκησης αυτής είναι η δημιουργία υλικών με τη βοήθεια του Material Editor καθώς επίσης και η κατανόηση της χρήσης των συντεταγμένων χαρτογράφησης
Γραφικά Υπολογιστών: Θέαση στις 3D
1 ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής Γραφικά Υπολογιστών: Θέαση στις 3D Πασχάλης Ράπτης http://aetos.it.teithe.gr/~praptis praptis@it.teithe.gr 2 Περιεχόμενα Σήμερα θα δούμε τα παρακάτω θέματα: Μετασχηματισμοί
Openoffice.org Chart. Πνευματικά δικαιώματα
Openoffice.org Chart Πνευματικά δικαιώματα Μπορείτε να το διανείμετε ή/και να το τροποποιήσετε είτε υπό τους όρους της άδειας GNU General Public License έκδοση 2 ή νεότερη (http://www.gnu.org/licenses/gpl.html),
ΕΝΟΤΗΤΑ 6 ΜΟΤΙΒΑ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΥ 2, 5 ΚΑΙ 10. Αρ2.7 Ανακαλύπτουν, διατυπώνουν και εφαρμόζουν τα κριτήρια διαιρετότητας του 2, 5 και του 10.
ΜΟΤΙΒΑ ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΥ 2, 5 ΚΑΙ 10 ΔΕΙΚΤΕΣ ΕΠΙΤΥΧΙΑΣ ΑΡΙΘΜΟΙ Διερεύνηση αριθμών Αρ1.7 Αναπαριστούν εναδικά κλάσματα ( 1, 1, 1, 1, 1 ) ενός συνόλου ή μιας επιφάνειας, 2 3 4 6 8 χρησιμοποιώντας αντικείμενα,
Ας μετονομάσουμε τη γάτα που εμφανίζεται μόλις ανοίγουμε το Scratch. Επιλέγουμε το εικονίδιο Μορφή1 που βρίσκεται στη λίστα αντικειμένων.
Σχεδιάζοντας αντικείμενα Εισαγωγή στο περιβάλλον των αντικειμένων Όπως συζητήσαμε και στο προηγούμενο κεφάλαιο, τα αντικείμενα στο Scratch αποτελούν τους πρωταγωνιστές των έργων μας. Το πρώτο βήμα κατά
Σχεδιοκίνηση με ενδιάμεση παραγωγή κίνησης
ΕΣΔ200 Δημιουργία Περιεχομένου ΙI Σχεδιοκίνηση με ενδιάμεση παραγωγή κίνησης Εισαγωγή Δημιουργία ενδιάμεσης κίνησης Βελτίωση ενδιάμεσης κίνησης Παραδείγματα Περιεχόμενα - Βιβλιογραφία Ενότητας Περιεχόμενα
Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο
Το περιβάλλον εργασίας Ανοίγοντας την Ελληνική Έκδοση του FrontPage, για πρώτη φορά, η εικόνα που θα συναντήσουμε είναι αυτή της Εικόνας 1 με τα Μενού Εντολών και τη Γραμμή Εργαλείων, στο πάνω μέρος της
Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων
Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση