Δθμιουργία, μελζτθ και βελτιςτοποίθςθ φωτορεαλιςτικϊν απεικονίςεων πραγματικοφ χρόνου με χριςθ προγραμματιηόμενων επεξεργαςτϊν γραφικϊν

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Δθμιουργία, μελζτθ και βελτιςτοποίθςθ φωτορεαλιςτικϊν απεικονίςεων πραγματικοφ χρόνου με χριςθ προγραμματιηόμενων επεξεργαςτϊν γραφικϊν"

Transcript

1 Πανεπιςτιμιο Πατρϊν Σμιμα Μθχανικϊν Θ/Τ & Πλθροφορικισ Δθμιουργία, μελζτθ και βελτιςτοποίθςθ φωτορεαλιςτικϊν απεικονίςεων πραγματικοφ χρόνου με χριςθ προγραμματιηόμενων επεξεργαςτϊν γραφικϊν Σταυρόπουλοσ Αςθμάκθσ Α.Μ. 489 Επιβλζπων: Κακθγθτισ κ. Τςακαλίδθσ Ακανάςιοσ Εργαςτιριο Γραφικϊν, Ρολυμζςων & Γεωγραφικϊν Συςτθμάτων

2

3 ΠΕΡΙΕΧΟΜΕΝΑ Ευχαριςτίεσ vi Περίληψη vii Κεφάλαιο 1 ο 1 Ειςαγωγι 1 Ιςτορικι αναδρομι 2 Ανάλυςθ Τλικοφ 3 Κάρτεσ Γραφικϊν 3 Τεχνικά Χαρακτθριςτικά 4 Διεπαφζσ προγραμματιςμοφ (DirectX & OpenGL APIs) 7 OpenGL 7 DirectX 9 Το μοντζλο εκτζλεςθσ των DirectX & OpenGL APIs 9 Κεφάλαιο 2 ο 17 Διαδικαςία παραγωγισ γραφικϊν (Graphics Processing Pipeline) 17 Αποςτολι δεδομζνων ςτο API 17 Επεξεργαςία γεωμετρίασ 21 Σφςτθμα Συντεταγμζνων 21 Αναπαράςταςθ ςθμείων 21 Μεταςχθματιςμοί 22 Μεταςχθματιςμόσ μοντζλου 24 Μετατόπιςθ 25 Μεγζκυνςθ / Σμίκρυνςθ 25 Ρεριςτροφι 26 Μεταςχθματιςμόσ παρατθρθτι 26 Μεταςχθματιςμόσ προβολισ 27 Ορκογραφικι προβολι 28 Ρροβολι προοπτικισ 31 Επίπεδο διακριτοποίθςθσ 35 Επεξεργαςία τμθμάτων τθσ εικόνασ 36 Λειτουργίεσ επί των τμθμάτων εικόνασ 36 Λειτουργίεσ επί τθσ προςωρινισ μνιμθσ καρζ (Frame Buffer) 37 Επεξεργαςία εικόνων 37 Εφαρμογι υφισ 38 Ραράδειγμα ςχεδίαςθσ γεωμετρίασ με ταυτόχρονθ εφαρμογι υφισ 44 Οι γλϊςςεσ προγραμματιςμοφ των GPUs 47 Ανάλυςθ πολυπλοκότθτασ για τθν ςχεδίαςθ μίασ τριςδιάςτατθσ ςκθνισ 54 ΧΝΑ 56 Χαρακτθριςτικά του XNA 57 Βιβλιοκικθ γραφικϊν 58 Διαχείριςθ Ρεριεχομζνου 58 Μακθματικζσ βιβλιοκικεσ 58 Υπόλοιπα εργαλεία 59 ii

4 Κεφάλαιο 3 ο 60 Παρουςίαςθ υλοποιιςεων 60 Βαςικζσ ζννοιεσ 60 Ρεράςματα (Passes) & Deferred Shading 61 Μοντζλο φωτιςμοφ 63 Θ κάμερα 66 Normal Mapping 67 Blooming & Depth of Field 69 Δυναμικόσ ουρανόσ 72 Απαλζσ ςκιζσ με χριςθ Shadow Mapping 75 Συμπεράςματα 79 Βιβλιογραφία 81 iii

5 Περιεχόμενα εικόνων & πινάκων Εικόνα 1: Κάρτα γραφικϊν και τα κφρια μζρθ τθσ Ρίνακασ 1: Τεχνικά χαρακτθριςτικά μίασ GPU Ρίνακασ 2: Τεχνικά χαρακτθριςτικά μίασ CPU Εικόνα 2: Λογικό διάγραμμα CPU (επάνω) και GPU (κάτω)... 6 Εικόνα 3: Σχθματικι απεικόνιςθ των λειτουργιϊν ενόσ API για τθν ςχεδίαςθ τριςδιάςτατων γραφικϊν Εικόνα 4: Εφαρμογι υφισ ςε μία τριςδιάςτατθ ςφαίρα Εικόνα 5: Επάνω θ τελικι εικόνα και κάτω τα περιεχόμενα του depth buffer Εικόνα 6: Motion blurring. Αυτι θ τεχνικι δίνει τθν αίςκθςθ τθσ κίνθςθσ ςτον παρατθρθτι. Στθν επάνω εικόνα ο παρατθρθτισ δεν κινείται ωσ προσ το αντικείμενο, ενϊ ςτθν κάτω κινείται ωσ προσ τον οριηόντιο άξονα Εικόνα 7: Εξομάλυνςθ γωνιϊν με χριςθ του multisample buffer Εικόνα 8: Ρρόβλθμα κατά τθν ςχεδίαςθ ενόσ ςχιματοσ που δεν αποτελείται από τρίγωνα. Το ςχιμα ςτα αριςτερά αποτελείται από 4 ςθμεία ςτο χϊρο (κόκκινεσ τελείεσ) αλλά μετά από ςυνεχείσ μεταςχθματιςμοφσ καταλιγει ςτα δεξιά ςε ζνα ςχιμα που πλζον αποτελείται από 5 ςθμεία Εικόνα 9: Στα αριςτερά φαίνονται πολφγωνα που μπορεί να ςχεδιαςτοφν με τα APIs ενϊ ςτα δεξιά φαίνονται πολφγωνα που δεν μποροφν να ςχεδιαςτοφν απευκείασ Εικόνα 10: Καρτεςιανά ςυςτιματα ςυντεταγμζνων. Το αριςτερό βαςίηεται ςτον κανόνα του αριςτεροφ χεριοφ (DirectX) ενϊ το δεξί ςτον κανόνα του δεξιοφ χεριοφ (OpenGL) Εικόνα 11: Αναλογία διαδικαςιϊν φωτογράφθςθσ με τουσ μεταςχθματιςμοφσ για τθν παραγωγι γραφικϊν Εικόνα 12: Μεταςχθματιςμοί για τθν προβολι γεωμετρίασ ςτθν οκόνθ του υπολογιςτι Εικόνα 13: Ορκογραφικι προβολι. Πλα τα αντικείμενα εμφανίηονται ςτο αρχικό μζγεκόσ τουσ ανεξάρτθτα από τθν απόςταςθ από τον παρατθρθτι Εικόνα 14: Μεταςχθματιςμόσ του όγκου παρατιρθςθσ τθσ ορκογραφικισ προβολισ ςτον κανονικοποιθμζνο όγκο Εικόνα 15: Μεταςχθματιςμόσ του όγκου παρατιρθςθσ τθσ προβολισ προοπτικισ ςτον κανονικοποιθμζνο όγκο Εικόνα 16: Συμμετρικι προβολι προοπτικισ Εικόνα 17: Μεταςχθματιςμόσ των x, y ςυντεταγμζνων του κανονικοποιθμζνου όγκου προβολισ ςτισ ςυντεταγμζνεσ οκόνθσ Εικόνα 18: Οριςμόσ εμπρόσ επιφάνειασ για τα 2 APIs Εικόνα 19: Θ τεχνικι mipmapping Εικόνα 20: Διαφορά ςτθν ποιότθτα ςχεδίαςθσ χωρίσ (επάνω) και με (κάτω) χριςθ του mipmapping Εικόνα 21: Οι διαφορετικοί τρόποι προςπζλαςθσ των υφϊν. Ράνω αριςτερά: Επανάλθψθ. Ράνω Δεξιά: Κακρεπτιςμόσ. Κάτω αριςτερά: Ρεριοριςμόσ ςε μία τιμι. Κάτω δεξιά: Ρεριοριςμόσ ςτθν οριακι τιμι τθσ υφισ Εικόνα 22: Οι 3 ςυνιςτϊςεσ φωτιςμοφ του μοντζλου φωτιςμοφ Phong. a) Συνιςτϊςα περιβάλλοντοσ b) Συνιςτϊςα διάχυςθσ c) Συνιςτϊςα ανάκλαςθσ d) Τελικό αποτζλεςμα = άκροιςμα των τριϊν ςυνιςτωςϊν Εικόνα 23: Τα απαραίτθτα διανφςματα για τον υπολογιςμό του Phong μοντζλου φωτιςμοφ iv

6 Εικόνα 24: Ραράδειγμα εφαρμογισ Normal Mapping. a) Γεωμετρία b) Εφαρμογι υφισ και φωτιςμοφ c) Εφαρμογι Normal Mapping και φωτιςμοφ Εικόνα 25: Το μειονζκτθμα τθσ Normal Mapping τεχνικισ είναι πωσ γίνεται αντιλθπτι θ ζλλειψθ τθσ γεωμετρικισ πλθροφορίασ ςτισ περιοχζσ με μεγάλθ κλίςθ ωσ προσ το επίπεδο του παρατθρθτι (περιοχι ανάμεςα ςτον μωβ και κόκκινο δακτφλιο) Εικόνα 26: Ραράδειγμα υφϊν για τθν εφαρμογι του Normal Mapping Εικόνα 27: Επάνω ςχεδίαςθ χωρίσ bloom effect. Κάτω με χριςθ bloom effect Εικόνα 28: Σχεδίαςθ χωρίσ χριςθ του Depth of Field (Επάνω) και με χριςθ (Κάτω) Εικόνα 29: Σφγκριςθ τθσ ποιότθτασ των ςφννεφων χωρίσ (a) και με (b) εφαρμογι διγραμμικοφ φιλτραρίςματοσ Εικόνα 30: Σχεδίαςθ του ιλιου ςτον ουρανό Εικόνα 31: Ρρόβλθμα εμφάνιςθσ τεχνουργθμάτων κατά τθν εφαρμογι του Shadow Mapping αλγόρικμου Εικόνα 32: Μείωςθ των τεχνουργθμάτων που οφείλονται ςτθν αρικμθτικι ακρίβεια Εικόνα 33: 12 ςθμεία ςε Poisson κατανομι ςε ζνα κφκλο Εικόνα 34: Μοτίβο ομοιομορφίασ ςτθν ςκιά, λόγω ομοιόμορφθσ δειγματολθψίασ Εικόνα 35: Βελτίωςθ του Shadow Mapping αλγόρικμου με χριςθ πολλαπλισ δειγματολθψίασ με κόρυβο v

7 Ευχαριςτύεσ Ευχαριςτϊ κερμά τον κ. Ακανάςιο Τςακαλίδθ για τθν ευκαιρία που μου ζδωςε να αςχολθκϊ με ζνα πολλά υποςχόμενο πεδίο τθσ ςφγχρονθσ πλθροφορικισ. Επιπλζον, ευχαριςτϊ τον Γιάννθ Τηίμα για τθν βοικειά και υποςτιριξθ ςε όλθ τθν διάρκεια αυτισ τθσ προςπάκειασ. vi

8 Περύληψη Οι προγραμματιηόμενοι επεξεργαςτζσ γραφικϊν (Graphics Processing Units - GPUs), είναι πανίςχυροι παράλλθλοι επεξεργαςτζσ και πλζον υπάρχουν ςε κάκε ςφγχρονο προςωπικό υπολογιςτι (PC). Οι GPUs αναλαμβάνουν κι επιταχφνουν τθν ςχεδίαςθ διςδιάςτατων και τριςδιάςτατων γραφικϊν ςτθν οκόνθ του υπολογιςτι. Θ εξζλιξι τουσ είναι τόςο ραγδαία τα τελευταία χρόνια, που πλζον ξεπερνοφν ςε πολυπλοκότθτα τισ ςφγχρονεσ κεντρικζσ μονάδεσ επεξεργαςίασ (CPUs), ενϊ είναι ικανζσ να επιταχφνουν εκτόσ από γραφικά κι άλλεσ απαιτθτικζσ ςε επεξεργαςτικι ιςχφ εφαρμογζσ, όπωσ είναι θ τεχνθτι νοθμοςφνθ και θ προςομοίωςθ φυςικϊν αλλθλεπιδράςεων μεταξφ αντικειμζνων (ςυγκροφςεισ, εκριξεισ, προςομοίωςθ κίνθςθσ υγρϊν) κ.α. Σκοπόσ τθσ ςυγκεκριμζνθσ εργαςίασ είναι θ υλοποίθςθ, θ μελζτθ και θ βελτιςτοποίθςθ αλγορίκμων ςκίαςθσ με χριςθ GPUs. Ο όροσ ςκίαςθ (shading) αναφζρεται ςτθν αλλθλεπίδραςθ του φωτόσ με τα αντικείμενα ενόσ εικονικοφ περιβάλλοντοσ. Ραρουςιάηονται τα εργαλεία (APIs) και οι γλϊςςεσ προγραμματιςμοφ των GPUs κακϊσ και τρόποι βελτιςτοποίθςθσ τθσ εκτζλεςθσ των αλγορίκμων που είναι ζνα κζμα μείηονοσ ςθμαςίασ ςε προςομοιϊςεισ πραγματικοφ χρόνου. vii

9 Κεφϊλαιο 1 ο Ειςαγωγό Τθν τελευταία δεκαετία οι επεξεργαςτζσ γραφικϊν (Graphics Processing Units - GPUs) [1] εξελίςςονται με ραγδαίο ρυκμό τόςο ςε επίπεδο χαρακτθριςτικϊν όςο και ςε επίπεδο επιδόςεων. Αποτελοφν ιδιαίτερα πολφπλοκα κυκλϊματα τα οποία ςυγκρίνονται και πλζον ξεπερνοφν ςε πολυπλοκότθτα, τα αντίςτοιχα των CPUs (Central Processing Units) που ςυναντάμε ςε ζναν ςφγχρονο προςωπικό υπολογιςτι. Τα παραπάνω, είναι αποτελζςματα των απαιτιςεων που υπάρχουν ςτθν μεγάλθ και ιδιαίτερα κερδοφόρα αγορά τθσ θλεκτρονικισ ψυχαγωγίασ θ οποία πλζον περιλαμβάνει πζρα από τουσ προςωπικοφσ υπολογιςτζσ και εξειδικευμζνεσ ςυςκευζσ θλεκτρονικϊν παιχνιδιϊν (PlayStation 3, Xbox 360, Wii) που ςυνδζονται ςε οικιακζσ τθλεοράςεισ. Επιπλζον, θ αγορά του (οικιακοφ) κινθματογράφου προωκεί πρότυπα βίντεο με πολφ μεγάλεσ αναλφςεισ (HD video), τα οποία απαιτοφν υψθλοφσ υπολογιςτικοφσ πόρουσ για να προβλθκοφν χωρίσ πρόβλθμα. Ακόμα, τα πιο διαδεδομζνα ςφγχρονα λειτουργικά ςυςτιματα (Windows Vista, Linux) προςφζρουν δυνατότθτεσ τριςδιάςτατθσ απεικόνιςθσ του περιβάλλοντοσ εργαςίασ, με ςκοπό τθν καλφτερθ εμπειρία ςτον χριςτθ, το πιο ευχάριςτο περιβάλλον και τθν βελτίωςθ τθσ χρθςτικότθτασ (usability), ενϊ παράλλθλα προςφζρουν εργαλεία ανάπτυξθσ, που βοθκοφν ςτθν δθμιουργία τριςδιάςτατων απεικονίςεων ςε εφαρμογζσ γραφείου (Windows Presentation Foundation) ι ιςτότοπουσ (Silver light). Τζλοσ, εμφανίηονται εφαρμογζσ γεωγραφικοφ εντοπιςμοφ και εικονικισ περιιγθςθσ (Google Earth, GPS systems, Navigation systems), τόςο για προςωπικοφσ υπολογιςτζσ όςο και για ςυςκευζσ χειρόσ (Nvidia Tegra). Οι GPUs ικανοποιοφν τισ απαιτιςεισ ςε υπολογιςτικι ιςχφ που απαιτοφν οι παραπάνω εφαρμογζσ, χάρισ ςτθν ιδιαίτερα εξελιγμζνθ τεχνολογία παραγωγισ ολοκλθρωμζνων κυκλωμάτων και μνθμϊν υψθλισ ταχφτθτασ (DDR4 DDR5), τισ προθγμζνεσ δυνατότθτεσ προγραμματιςμοφ τουσ για τθν δθμιουργία ςκιάςεων και των ϊριμων πλζον διεπαφϊν προγραμματιςμοφ (APIs DirectX 10.1, OpenGL 3.0, CUDA) που προςφζρουν ςτον καταςκευαςτι λογιςμικοφ. Θ ςυγκεκριμζνθ εργαςία ζχει ωσ ςκοπό να εξθγιςει τι είναι οι ςκιάςεισ (shaders) κακϊσ και τα εργαλεία και τισ μεκόδουσ που ακολουκοφνται για τθν δθμιουργία τουσ και τθν βελτιςτοποίθςθ τθσ εκτζλεςισ τουσ ςε πραγματικό χρόνο. Ο όροσ 1

10 «πραγματικόσ χρόνοσ» ςθμαίνει ότι οι εικόνεσ που παράγονται (rendering) από τον υπολογιςτι ανανεϊνονται τουλάχιςτον 10 φορζσ το δευτερόλεπτο. Σθμειϊνεται πωσ ςτθν παροφςα εργαςία με τον όρο γεωμετρία αναφερόμαςτε ςτα ςθμεία του τριςδιάςτατου χϊρου που περιγράφουν τα αντικείμενα που κζλουμε να ςχεδιάςουμε. Με τον όρο ςκιάςεισ αναφερόμαςτε ςτον αλγόρικμο που εκτελοφν τα προγραμματιηόμενα τμιματα των GPUs. Ιςτορικό αναδρομό Ο όροσ GPU είναι νζοσ ςχετικά και κακιερϊκθκε μετά το Ο λόγοσ που το υποςφςτθμα απεικόνιςθσ γραφικϊν ςε ζναν υπολογιςτι ονομάςτθκε ζτςι, είναι θ δυνατότθτα του να προγραμματίηεται. Οι επιταχυντζσ τριςδιάςτατων γραφικϊν διαδόκθκαν ςτουσ προςωπικοφσ υπολογιςτζσ μετά το 1996 με τθν παρουςίαςθ τθσ Voodoo κάρτασ γραφικϊν από τθν εταιρία 3Dfx. Θ εξζλιξθ ςτουσ αλγόρικμουσ απεικόνιςθσ και ταυτόχρονα θ βελτίωςθ των τεχνικϊν παραγωγισ ολοκλθρωμζνων μετά το 1998, ζδωςε μεγάλθ ϊκθςθ ςτθν αγορά. Θ 3Dfx παρουςίαςε εκείνθ τθν χρονιά τθν Voodoo 2 και λίγο αργότερα, ιρκε ςτο προςκινιο θ Nvidia μαηί με τθν ATi. Μζχρι το 2000 οι κάρτεσ γραφικϊν που προςζφεραν επιτάχυνςθ ςε τρεισ διαςτάςεισ ιταν πολφ ακριβζσ και δεν προγραμματίηονταν. Τα κφρια χαρακτθριςτικά τουσ ιταν θ υποςτιριξθ πολλαπλϊν υφϊν και ο αλγόρικμοσ z-buffering. Με άλλα λόγια μποροφςαν να εφαρμόηουν πολλζσ «εικόνεσ» πάνω ςτα ςθμεία που περιγράφουν τθν ςκθνι και να αποκρφπτουν ςωςτά τα αντικείμενα που βρίςκονταν πίςω από άλλα, ςε ςχζςθ με τον παρατθρθτι. Το 2000 παρουςιάηεται από τθν Nvidia, θ πρϊτθ κάρτα γραφικϊν που προςζφερε το λεγόμενο T&L (Transform & Lighting που επιτάχυνε τθν ςχεδίαςθ και τον μεταςχθματιςμό τθσ γεωμετρίασ ςτον χϊρο, πριν αυτι απεικονιςτεί ςτθν οκόνθ του υπολογιςτι, κάτι που πριν αναλάμβανε θ CPU του υπολογιςτι. Ζτςι λοιπόν, ζχουμε τθν πρϊτθ ζνδειξθ για το τι επρόκειτο να ακολουκιςει, δθλαδι, τθν πλιρθ μεταφορά τθσ διαδικαςίασ ςχεδίαςθσ των γραφικϊν ςτθν GPU. Το 2001 εμφανίηεται θ πρϊτθ κάρτα γραφικϊν που προγραμματίηεται. Συγκεκριμζνα προγραμματίηεται το T&L ςτάδιό τθσ (vertex shaders). Ο προγραμματιςμόσ γίνεται με χριςθ assembly γλϊςςασ. Το κυκλοφοροφν GPUs που υποςτθρίηουν προγραμματιηόμενουσ επεξεργαςτζσ εικονοςτοιχείων (pixel shaders). Τα επόμενα χρόνια, εμφανίηονται GPUs με μεγαλφτερεσ δυνατότθτεσ προγραμματιςμοφ ενϊ το 2007 εμφανίςτθκε θ νζα γενιά GPU που υποςτθρίηει και δυναμικζσ αλλαγζσ ςτθν γεωμετρία (geometry processor) από τθν GPU, χωρίσ τθν επζμβαςθ τθσ CPU. 2

11 Σιμερα οι GPUs, αποτελοφν υλοποιιςεισ ενόσ πολφ μεγάλου ςε μικοσ pipeline (τθσ τάξθσ των χιλιάδων κφκλων ρολογιοφ), που παρουςιάηουν τρεισ ομάδεσ προγραμματιηόμενων μονάδων. Αυτζσ είναι οι Vertex Processors (επεξεργαςτζσ ςθμείων), οι Geometry Processors (επεξεργαςτζσ γεωμετρίασ) και οι Fragment Processors (επεξεργαςτζσ ςτοιχείων). Οι επεξεργαςτζσ ςθμείων μεταςχθματίηουν τθν γεωμετρία ςτο χϊρο, οι επεξεργαςτζσ γεωμετρίασ αλλάηουν τισ ιδιότθτεσ και το ςχιμα τθσ και τζλοσ οι επεξεργαςτζσ ςτοιχείων, επεμβαίνουν ςτα εικονοςτοιχεία (pixels) τθσ εικόνασ πριν αυτά εμφανιςτοφν ςτθν οκόνθ. Για τθν παραγωγι τριςδιάςτατων εικόνων, απαιτείται από τον προγραμματιςτι, να γράψει το πρόγραμμα που κα εκτελζςουν οι Vertex Processors και οι Fragment Processors. Οι Geometry Processors μπορεί να μθν αναμιχκοφν ςτθν διαδικαςία παραγωγισ εικόνων. Μζςα ςε 10 χρόνια, οι GPUs ζχουν γνωρίςει τόςο μεγάλθ πρόοδο ςε επίπεδο υλικοφ που οι καταςκευαςτζσ λογιςμικοφ, ακόμα και ςιμερα δεν είναι ςε κζςθ να εκμεταλλευτοφν όλεσ τισ δυνατότθτζσ τουσ, ενϊ θ ζρευνα ςτον τομζα των γραφικϊν είναι ζνα δυναμικό και πολλά υποςχόμενο πεδίο. Νζα χαρακτθριςτικά ςτο υλικό των GPUs, προςφζρουν ζδαφοσ για τθν δθμιουργία νζων πιο αποδοτικϊν αλγορίκμων απεικόνιςθσ, ενϊ κακιςτοφν ιδθ υπάρχοντεσ, μθ πρακτικοφσ ι ξεπεραςμζνουσ. Ανϊλυςη Υλικού Κϊρτεσ Γραφικών Σε ςχζςθ με τουσ κεντρικοφσ επεξεργαςτζσ (CPUs) ενόσ προςωπικοφ υπολογιςτι οι επεξεργαςτζσ γραφικϊν (GPUs ςτο εξισ) δεν τοποκετοφνται ανεξάρτθτα επάνω ςτθν μθτρικι πλακζτα του υπολογιςτικοφ ςυςτιματοσ. Αντίκετα οι GPUs είναι ολοκλθρωμζνα κυκλϊματα τα οποία τοποκετοφνται ςε μία ξεχωριςτι πλακζτα μαηί με άλλα κυκλϊματα και μνιμθ κι ονομάηονται «κάρτα γραφικϊν». Αυτι θ πλακζτα τοποκετείται επάνω ςτθν μθτρικι πλακζτα ςε διαφλουσ τφπου PCIE (PCI Express). Στθν παρακάτω εικόνα φαίνεται μία τζτοια κάρτα γραφικϊν. Στθν Εικόνα 1 φαίνεται μζςα ςε πορτοκαλί πλαίςιο θ GPU (δεν διακρίνεται το ολοκλθρωμζνο λόγω τθσ ψικτρασ), ςε κόκκινα πλαίςια οι μνιμεσ τθσ και ςε πράςινο πλαίςιο ο δίαυλοσ διαςφνδεςθσ με τθν μθτρικι πλακζτα. Τζλοσ μζςα ςε μαφρο πλαίςιο φαίνονται οι ζξοδοι τθσ κάρτασ γραφικϊν προσ τθν οκόνθ του υπολογιςτι. Θ GPU εκτόσ από τισ μνιμεσ, ζχει διάφορα επίπεδα μνθμϊν cache, όπωσ ςυμβαίνει και με τισ CPU. Αν οι μνιμεσ τθσ GPU δεν επαρκοφν για να αποκθκεφςουν τα δεδομζνα, γίνεται χριςθ τθσ κφριασ μνιμθσ του υπολογιςτικοφ ςυςτιματοσ (RAM) με κάποιο άνω όριο, το οποίο κακορίηεται από τθν ποςότθτα τθσ εγκατεςτθμζνθσ RAM ςτο ςφςτθμα κι από τον καταςκευαςτι τθσ κάρτασ γραφικϊν. Θ επικοινωνία 3

12 με τθν CPU ι τθν RAM μνιμθ, γίνεται μζςω του διαφλου επικοινωνίασ, ο οποίοσ ςιμερα είναι ο PCI 2.0 express x16. Θ ταχφτθτα του διαφλου αυτοφ είναι 16GB/sec και προσ τισ δφο κατευκφνςεισ. Εικόνα 1: Κάρτα γραφικϊν και τα κφρια μζρθ τθσ. Τεχνικϊ Χαρακτηριςτικϊ Οι GPUs μποροφν να χαρακτθριςτοφν ςαν μαηικοί παράλλθλοι επεξεργαςτζσ. Ο παρακάτω πίνακασ, είναι διαφωτιςτικόσ ςχετικά με τισ επιδόςεισ που μπορεί να επιτφχει μία GPU. Τα χαρακτθριςτικά αυτά αφοροφν τθν πιο γριγορθ κάρτα γραφικϊν που κυκλοφορεί ςιμερα (Nvidia GeForce GTX 295) [2]: Πίνακασ 1: Σεχνικά χαρακτθριςτικά μίασ GPU. Επεξεργαςτικά ςτοιχεία 480 Συχνότθτα επεξεργαςτϊν 1242 MHz Μζγεκοσ μνιμθσ / Τφποσ 1792 MB / GDDR3 Ταχφτθτα μνιμθσ 999 MHz Εφροσ διαφλου επικοινωνίασ μνιμθσ 896 bit Διακζςιμο εφροσ μνιμθσ (Bandwidth) GB/sec Αρικμόσ τρανηίςτορ 2,8 διςεκατομμφρια Αντίςτοιχα ακολουκεί ζνασ πίνακασ ο οποίοσ παρουςιάηει τθν πιο γριγορθ CPU που κυκλοφορεί ςιμερα (Intel Core i7-940) [3]. 4

13 Πίνακασ 2: Σεχνικά χαρακτθριςτικά μίασ CPU. Επεξεργαςτικά ςτοιχεία 8 Συχνότθτα επεξεργαςτϊν 2.93 GHz Μζγεκοσ μνιμθσ / Τφποσ ζωσ 24 GB / DDR3 Ταχφτθτα μνιμθσ 1066 MHz Διακζςιμο εφροσ μνιμθσ (Bandwidth) 25.6 GB/sec Αρικμόσ τρανηίςτορ 0,743 διςεκατομμφρια Από τθν ςφγκριςθ των παραπάνω πινάκων, γίνεται εφκολα αντιλθπτό ότι οι GPUs ζχουν τεράςτια αποκζματα ιςχφοσ που οφείλονται ςτθν παραλλθλία που ενςωματϊνουν. Ρράγματι, θ προςζγγιςθ που ζχει επικρατιςει για τθν ςχεδίαςθ γραφικϊν, όπωσ κα αναλυκεί παρακάτω, είναι μία αμιγϊσ παράλλθλθ διαδικαςία και γι αυτό ακριβϊσ τον λόγο, είναι πολφ πιο εφκολο για ζναν καταςκευαςτι GPU να αυξάνει τθν ιςχφ, προςκζτοντασ περιςςότερεσ ίδιεσ επεξεργαςτικζσ μονάδεσ, από ότι ςτθν περίπτωςθ των καταςκευαςτϊν CPU. Επιπλζον οι GPUs είναι προςανατολιςμζνεσ ωσ προσ τθν χριςθ και δεν είναι ςε κζςθ να επιλφουν αποδοτικά κάκε είδουσ υπολογιςτικά προβλιματα όπωσ οι CPU. Από τθν άλλθ θ αδυναμία αφξθςθσ τθσ ςυχνότθτασ λειτουργίασ των ολοκλθρωμζνων ςτθν CPU, ζχει οδθγιςει τουσ καταςκευαςτζσ ςτθν ενςωμάτωςθ περιςςότερθσ παραλλθλίασ (8 επεξεργαςτικά ςτοιχεία). Ραρατθροφμε επιπλζον πωσ θ GPU ζχει 480 επεξεργαςτικά ςτοιχεία (ALUs) ενϊ θ CPU μόνο 8. Από τθν άλλθ θ GPU αποτελείται από ζναν τεράςτιο αρικμό τρανηίςτορ (2,8 εκατομμφρια) ενϊ θ CPU από 0,743. Αυτό ςθμαίνει πωσ τα επεξεργαςτικά ςτοιχεία που ενςωματϊνουν τα 2 είδθ επεξεργαςτϊν δεν είναι αναλογικά του μεγζκουσ τουσ. Μάλιςτα φαίνεται ότι θ CPU ζχει πολφ λιγότερεσ ALUs από αυτζσ που κα ζπρεπε αν ακολουκοφςε αναλογία αντίςτοιχθ τθσ GPU. Αν όμωσ ςυγκρίνουμε τα επιμζρουσ ςυςτατικά μζρθ του ολοκλθρωμζνου μίασ GPU με μίασ CPU, τότε μποροφμε πολφ εφκολα να απαντιςουμε το παραπάνω «παράδοξο». Στθν Εικόνα 2 βλζπουμε το λογικό διάγραμμα των παραπάνω CPU και GPU αντίςτοιχα. Ζνα μεγάλο τμιμα τθσ επιφάνειασ του ολοκλθρωμζνου τθσ CPU καταλαμβάνεται από μνιμεσ cache, από τουσ ελεγκτζσ των περιφερειακϊν κι από κυκλϊματα διαχείριςθσ και βελτιςτοποίθςθσ τθσ ροισ εκτζλεςθσ (flow control) ενόσ προγράμματοσ. Αυτό ζχει ωσ αποτζλεςμα οι ALUs (ςθμειϊνονται ωσ Core ςτθν Εικόνα 2) να περιορίηονται ςε τζςςερισ (με 2 νιματα υλικοφ θ κάκε μία). Επιπλζον αυτζσ οι ALUs ενςωματϊνουν ιδιαίτερα δαπανθρζσ, ςε αρικμό τρανηίςτορ, τεχνικζσ επιτάχυνςθσ του υπολογιςμοφ (εκτζλεςθ εκτόσ ςειράσ, πρόβλεψθ διακλαδϊςεων). 5

14 Εικόνα 2: Λογικό διάγραμμα CPU (επάνω) και GPU (κάτω). Από τθν άλλθ θ GPU περιζχει ςυςτάδεσ από ALUs που ςθμειϊνονται μζςα ςτα μαφρα πλαίςια ςτθν Εικόνα 2. Βλζπουμε επιπλζον ότι οι μνιμεσ cache ςε αυτι τθν περίπτωςθ περιορίηονται ςε ελάχιςτο χϊρο επάνω ςτο ολοκλθρωμζνο (κίτρινο πλαίςιο). Από τθν εικόνα αυτι φαίνεται πωσ θ ταχφτθτα των CPUs βαςίηεται ςτθν ελαχιςτοποίθςθ τθσ κακυςτζρθςθσ (latency) ςε εφαρμογζσ μικρισ παραλλθλίασ (μεγάλθ cache), ενϊ οι GPUs είναι μαηικοί παράλλθλοι διανυςματικοί επεξεργαςτζσ οι οποίοι ζχουν μεγάλθ κακυςτζρθςθ, αλλά μεγάλθ ικανότθτα για παράλλθλο υπολογιςμό (throughput). Σε επόμενθ κεματικι ενότθτα κα γίνει ανάλυςθ για μία 6

15 μζςθ πολυπλοκότθτα ςτθν ςχεδίαςθ μίασ τριςδιάςτατθσ ςκθνισ πραγματικοφ χρόνου, για να γίνει εμφανζσ που χρειάηεται αυτι θ παραλλθλία. Κα πρζπει να τονίςουμε ςτο ςθμείο αυτό ότι παρατθρείται τα τελευταία χρόνια μία ςφγκλιςθ ανάμεςα ςτισ δφο αρχιτεκτονικζσ με ςκοπό τθν καταςκευι υβριδικϊν επεξεργαςτϊν [4]. Ο γενικόσ κανόνασ που ςιμερα, είναι πωσ θ υπολογιςτικι ιςχφσ των GPUs διπλαςιάηεται κάκε περίπου 6 μινεσ ενϊ των CPUs κάκε 18. Διεπαφϋσ προγραμματιςμού (DirectX & OpenGL APIs) Οι GPUs είναι ζνα πολφ μεγάλο ςε μικοσ pipeline. Ο προγραμματιςτισ μπορεί να αλλάηει το οπτικό αποτζλεςμα ςτθν οκόνθ αλλάηοντασ τθν κατάςταςθ αυτοφ του pipeline. Θ διεπαφι (API) που χρθςιμοποιεί ο προγραμματιςτισ για να παραμετροποιεί και να προγραμματίηει τθν GPU μπορεί να είναι είτε το DirectX [5] που προωκεί θ Microsoft και είναι ςυμβατό μόνο με τα λειτουργικά ςυςτιματα τθσ Microsoft, είτε το OpenGL [6] το οποίο είναι ανεξάρτθτο λειτουργικοφ ςυςτιματοσ και το διαχειρίηεται μία ομάδα οργανιςμϊν και εταιριϊν. Τα δφο αυτά APIs δεν είναι τα μοναδικά, αλλά είναι τα πιο διαδεδομζνα και χρθςιμοποιοφνται ςτθν ςυντριπτικι πλειοψθφία των εφαρμογϊν. Το DirectX είναι μία ςυλλογι από βιβλιοκικεσ για τθν δθμιουργία και τθν παρουςίαςθ πολυμζςων μζςω του υπολογιςτι (3d, audio, video) και το κομμάτι που αφορά τα τριςδιάςτατα γραφικά πραγματικοφ χρόνου ονομάηεται Direct 3D. Το DirectX υποςτθρίηει και managed και unmanaged κϊδικα (C++). Θ πιο πρόςφατθ ζκδοςι του είναι θ 10.1 και ςφντομα αναμζνεται να ανακοινωκεί θ ζκδοςθ 11. To OpenGL είναι μία ςυλλογι από βιβλιοκικεσ που αφοροφν αποκλειςτικά τθν ςχεδίαςθ γραφικϊν πραγματικοφ χρόνου. Θ τελευταία ζκδοςι του είναι θ 3.0 που προςφζρει ζνα υποςφνολο από χαρακτθριςτικά ςε ςχζςθ με το DirectX 10.1 και τϊρα αρχίηει να υποςτθρίηεται από τουσ καταςκευαςτζσ GPU (ςτο επίπεδο του λογιςμικοφ). Στθν ςυνζχεια, κα γίνει μία ςυνοπτικι παρουςίαςθ του κάκε API. Κα αναφερκοφμε ςε ιςτορικά ςτοιχεία και χαρακτθριςτικά κακϊσ και ςτα μειονεκτιματα και πλεονεκτιματα τθσ χριςθσ κάκε API. Δεν κα αναφερκοφμε ακόμα ςε τεχνικζσ λεπτομζρειεσ ςχετικά με τθν παραγωγι των γραφικϊν μιασ και τα δφο APIs ζχουν παρόμοια φιλοςοφία. Γι αυτό το λόγο θ τεχνικι ανάλυςθ κα είναι κοινι και για τα δφο. OpenGL Οι πρϊτεσ τεχνικζσ προδιαγραφζσ του OpenGL οριςτικοποιικθκαν το 1992 και υλοποιικθκαν το Αρχικά ιταν ςυμβατό και βαςιςμζνο ςτο GL (Graphics Library) API τθσ Silicon Graphics. Θ Silicon Graphics ςυνεργάςτθκε με διάφορεσ 7

16 άλλεσ εταιρείεσ καταςκευισ καρτϊν γραφικϊν και δθμιοφργθςαν το ανοιχτό πρότυπο που ονομάςτθκε OpenGL. Θ εξζλιξθ του OpenGL ελζγχεται από το OpenGL Συμβοφλιο Αρχιτεκτονικισ (OpenGL Architecture Board ι ARB) το οποίο δθμιουργικθκε επίςθσ από τθν Silicon Graphics το Μερικζσ από τισ εταιρείεσ που ςυμμετείχαν ςτο αρχικό ARB είναι οι SGI, Intel, Microsoft, Compaq και θ IBM. Θ ςφνκεςθ αυτι ζχει αλλάξει, πολλζσ εταιρείεσ ζχουν αποχωρίςει (π.χ. Microsoft), ενϊ άλλεσ ζχουν προςτεκεί, όπωσ θ ATi και θ Nvidia. Σκοπόσ του OpenGL είναι να προςφζρει ςτον προγραμματιςτι πρόςβαςθ ςτισ δυνατότθτεσ τριςδιάςτατθσ επιτάχυνςθσ που προςφζρει το ςφγχρονο υλικό, ενϊ παράλλθλα παρζχει τθν μζγιςτθ δυνατι αφαίρεςθ από αυτό. Ρλζον υποςτθρίηεται από πολλά λειτουργικά ςυςτιματα κι αρχιτεκτονικζσ (Macs, PCs, UNIX-based ςυςτιματα). Επίςθσ το OpenGL υποςτθρίηεται από διάφορεσ υλοποιιςεισ GPU. Άλλεσ μπορεί να επιταχφνουν όλα τα χαρακτθριςτικά του OpenGL, ενϊ άλλεσ ζνα πολφ μικρό μζροσ του. Από τθν αρχικι του ζκδοςθ (1.0) το OpenGL ζχει αναβακμιςτεί 7 φορζσ κι ζχει φτάςει ςτισ μζρεσ μασ ςτθν ζκδοςθ 3.0. Θ αρχιτεκτονικι και οι προδιαγραφζσ του OpenGL επιτρζπουν τθν γριγορθ και αποδοτικι ενςωμάτωςθ νζων χαρακτθριςτικϊν. Οι GPUs εξελίςςονται κι αποκτοφν νζα χαρακτθριςτικά τα οποία πρζπει με κάποιο τρόπο να είναι διακζςιμα ςτον προγραμματιςτι όςο το δυνατό γρθγορότερα. Ο ζνασ τρόποσ να ενςωματωκοφν χαρακτθριςτικά ςτο OpenGL είναι θ δθμιουργία από το ARB μίασ νζασ ζκδοςισ του. Θ διαδικαςία αυτι όμωσ είναι χρονοβόρα γιατί πρζπει να αποφαςίηουν πολλζσ εταιρίεσ (το ARB ςυμβοφλιο). Ζτςι λοιπόν παρζχεται o μθχανιςμόσ των επεκτάςεων (extensions) ο οποίοσ επιτρζπει άμεςα κι εφκολα ςε κάποιο καταςκευαςτι GPU να ενςωματϊνει ςτο OpenGL νζα χαρακτθριςτικά και να τα διακζτει ςτουσ προγραμματιςτζσ. Στθν ςυνζχεια αν θ ςυγκεκριμζνθ επζκταςθ υποςτθριχκεί από πολλοφσ καταςκευαςτζσ GPU και το ARB ςυμβοφλιο αποφαςίςει ότι είναι απαραίτθτθ, τθν ενςωματϊνει ςε μία νζα ζκδοςθ του OpenGL. Επίςθσ το OpenGL υποςτθρίηει το μοντζλο client server. Με άλλα λόγια υπάρχει ζνα πρόγραμμα που δθμιουργεί OpenGL εντολζσ, ενϊ ζνα άλλο (o server) τισ ερμθνεφει και τισ εκτελεί. Αυτό ςθμαίνει ότι μία εφαρμογι μπορεί να εκτελείται ςε ζνα υπολογιςτι (που ζχει τον ρόλο και του client και του server) ι ςε δφο. Μερικζσ από τισ δομζσ για τθν διαχείριςθ και τθν λειτουργία τθσ OpenGL εφαρμογισ αποκθκεφονται ςτον client αλλά θ πλειοψθφία αυτϊν των εντολϊν αποκθκεφεται ςτθν μνιμθ του server. 8

17 DirectX Το DirectX εμφανίςτθκε το 1995 λίγο μετά τθν παρουςίαςθ των Windows 95. Ουςιαςτικά ιταν θ λφςθ τθσ Microsoft για παιχνίδια ςτο νζο λειτουργικό τθσ αντί για το MS-DOS, όπωσ ςυνζβαινε μζχρι τότε. Μζχρι το 1999, το DirectX δεν χρθςιμοποιοφταν τόςο ςτθν δθμιουργία παιχνιδιϊν και τα πρωτεία κρατοφςε το OpenGL, το οποίο υποςτθρίηεται ακόμα ςτα Windows. Σιμερα, όμωσ, θ τεχνολογία αυτι απειλεί ςοβαρά το OpenGL. Ενϊ το OpenGL ιταν πάντα τεχνολογικά πιο μπροςτά, λόγω τθσ εφκολθσ επεκταςιμότθτασ και τθσ υποςτιριξθσ από πολλζσ μεγάλεσ εταιρίεσ, το DirectX, ιδιαίτερα τα 3 τελευταία χρόνια ζχει ωριμάςει ςαν τεχνολογία και αναβακμίηεται με πιο γριγορο ρυκμό από ότι παλαιότερα. Αυτό ζχει ςαν αποτζλεςμα να υποςτθρίηει πιο εξελιγμζνα χαρακτθριςτικά από ότι το OpenGL. Ο τρόποσ που το DirectX αναβακμίηεται και ανανεϊνεται είναι πολφ διαφορετικόσ από αυτόν του OpenGL. Συγκεκριμζνα οι εκδόςεισ και τα τεχνικά χαρακτθριςτικά του DirectX κακορίηονται αποκλειςτικά από τθν Microsoft (θ οποία εςωτερικά μπορεί να ςυνεργάηεται με μία άλλθ μεγάλθ εταιρία) και εμπλουτίηεται είτε με τθν ζκδοςθ ενόσ νζου λειτουργικοφ ςυςτιματοσ, είτε με αναβακμίςεισ, που εκδίδει θ ίδια. Το DirectX βρίςκεται ςτθν ζκδοςθ 10.1 αυτι τθν ςτιγμι και υποςτθρίηεται από τθν τελευταία γενιά GPUs. Το DirectX 10.1 υποςτθρίηεται μόνο από τα Windows Vista, ενϊ το DirectX ςε προθγοφμενεσ εκδόςεισ του υποςτθρίηει μόνο λειτουργικά ςυςτιματα τθσ Microsoft. Το μοντϋλο εκτϋλεςησ των DirectX & OpenGL APIs Στθν προθγοφμενθ ενότθτα παρουςιάςτθκαν τα δφο δθμοφιλζςτερα APIs για τθν δθμιουργία απεικονίςεων μζςω GPUs. Ραρουςιάςτθκαν οι διαφορζσ τουσ, μιασ και το μοντζλο εκτζλεςθσ είναι παρόμοιο. Στθν ενότθτα αυτι κα γίνει μία πρϊτθ περιγραφι του τρόπου λειτουργίασ τουσ και κακϊσ προχωρά θ ανάλυςθ ςτθν εργαςία αυτι, κα παρζχονται ολοζνα και περιςςότερεσ λεπτομζρειεσ. Τα APIs είναι μθχανζσ καταςτάςεων (states machines). Αυτό ςθμαίνει πωσ όταν ορίηεται μία παράμετροσ ςτο pipeline (βλ. Εικόνα 3) το οποίο κακορίηει το API τότε αυτι διατθρείται ςτακερι μζχρι να αλλάξει ρθτά θ κατάςταςι τθσ από τον προγραμματιςτι (με κλιςθ τθσ αντίςτοιχθσ ςυνάρτθςθσ - μεκόδου). Ρροφανϊσ ο προγραμματιςτισ δεν υποχρεϊνεται να ορίηει όλεσ τισ καταςτάςεισ, γιατί αυτζσ ζχουν μία προκακοριςμζνθ τιμι (default value). Οι παράμετροι δεν επθρεάηουν εμμζςωσ ι αμζςωσ άλλεσ παραμζτρουσ. Κάκε παράμετροσ πρζπει να αλλάηει κατάςταςθ ρθτά. Επιπλζον οι εκτζλεςθ των εντολϊν που ορίηονται μζςω των APIs από τον προγραμματιςτι είναι ςειριακι. Δεν επιτρζπεται εκτζλεςθ εκτόσ ςειράσ (out of order execution). Στθν Εικόνα 3 φαίνεται θ ςχθματικι απεικόνιςθ των λειτουργιϊν ενόσ API το οποίο αντιςτοιχεί ςτο DirectX 9.0c είτε το OpenGL 2.0. Στθν παροφςα εργαςία, δεν κα αναφερκοφμε ςτο DirectX 10.0 και ςτο OpenGL 3.0, τα οποία παρζχουν περιςςότερα χαρακτθριςτικά, αλλά δεν υποςτθρίηονται από το 9

18 XNA 3.0 με το οποίο υλοποιικθκαν οι αλγόρικμοι που κα παρουςιαςτοφν. Τα APIs λοιπόν, αποτελοφν μία ςυλλογι από ςυναρτιςεισ κλιςεισ, οι οποίεσ παίρνουν παραμζτρουσ και κακορίηουν τθν ροι των δεδομζνων επάνω ςτθν GPU, ϊςτε να επιτφχουμε το επικυμθτό οπτικό αποτζλεςμα. Τα APIs δεν απαιτοφν να επιταχφνονται όλα τα επίπεδά τουσ από τισ GPUs, αλλά ςιμερα θ ςυντριπτικι πλειοψθφία των GPUs το κάνει. Αυτό που απαιτοφν τα APIs, είναι προφανϊσ, να υποςτθρίηονται όλα τα χαρακτθριςτικά που απαιτεί κάκε ζκδοςι τουσ. Επιπλζον τα APIs δεν κακορίηουν τισ τεχνικζσ λεπτομζρειεσ και του αλγόρικμουσ με τουσ οποίουσ κα υλοποιθκοφν, αλλά ορίηουν τισ ελάχιςτεσ απαιτιςεισ που κα πρζπει να ικανοποιοφν οι υλοποιιςεισ τουσ. Στθν Εικόνα 3, βλζπουμε τθν ςχθματικι απεικόνιςθ τθσ λειτουργίασ ενόσ API (DirectX 9.0c, OpenGL 2.0) [7]. Τα βζλθ αναπαριςτοφν τθν ροι των δεδομζνων θ οποία ζχει (κυρίωσ) κατεφκυνςθ από τα αριςτερά προσ τα δεξιά. Επίςθσ ανάλογα με το είδοσ τθσ ροισ δεδομζνων τα βζλθ ζχουν άλλο χρϊμα και μοτίβο. Τα μαφρα βζλθ αναπαριςτοφν ςθμεία ςτον χϊρο (vertices). Τα διακεκομμζνα μαφρα βζλθ αναπαριςτοφν εικονοςτοιχεία (pixels). Τα θμιδιαφανι βζλθ αναπαριςτοφν εικονοςτοιχεία υπό επεξεργαςία (fragments), δθλαδι εικονοςτοιχεία τα οποία δεν είναι βζβαιο ότι κα εμφανιςτοφν ςτθν οκόνθ του υπολογιςτι, επειδι κα υποςτοφν επεξεργαςία ςε μετζπειτα ςτάδιο. Τζλοσ τα βζλθ με άςπρο κεφάλι και διακεκομμζνθ γραμμι αναπαριςτοφν υφζσ (textures). Οι υφζσ είναι ουςιαςτικά εικόνεσ οι οποίεσ εφαρμόηονται επάνω ςτθν γεωμετρία για να δείχνει πιο αλθκοφανισ. Θ Εικόνα 4 δείχνει το αποτζλεςμα τθσ εφαρμογισ μίασ υφισ ςε μία ςφαίρα. Εικόνα 3: χθματικι απεικόνιςθ των λειτουργιϊν ενόσ API για τθν ςχεδίαςθ τριςδιάςτατων γραφικϊν. 10

19 Εικόνα 4: Εφαρμογι υφισ ςε μία τριςδιάςτατθ ςφαίρα. Σκοπόσ κάκε API είναι θ ςχεδίαςθ γραφικϊν, γι αυτό ο κεμελιϊδθσ ςκοπόσ τουσ είναι να μετατρζπουν τα δεδομζνα που τουσ παρζχονται από μία εφαρμογι ςε κάτι που να είναι ορατό ςε μία οκόνθ. Αυτι θ διαδικαςία είναι γνωςτι ωσ ςχεδίαςθ (rendering). Οι κάρτεσ γραφικϊν αποκθκεφουν ςε μία περιοχι τθσ μνιμθσ τουσ τα περιεχόμενα τθσ εικόνασ που εμφανίηονται ςτθν οκόνθ. Κάκε ορατό εικονοςτοιχείο τθσ οκόνθσ αντιςτοιχεί ςε ζνα ι περιςςότερα bytes ςτθν μνιμθ τθσ κάρτασ γραφικϊν. Για παράδειγμα μία εικόνα με διαβακμίςεισ του γκρι, μπορεί να χρθςιμοποιεί ζνα byte για να αποκθκεφςει τθν τιμι του επιπζδου του γκρίηου χρϊματοσ, ενϊ μία ζγχρωμθ εικόνα μπορεί να χρθςιμοποιεί 3 bytes για να αποκθκεφςει το κόκκινο, πράςινο και μπλε χρϊμα αντίςτοιχα. Αυτι θ «μνιμθ εικόνασ» (αρικμόσ 10 ςτθν Εικόνα 3) ανανεϊνεται ζναν ςυγκεκριμζνο αρικμό φορϊν κάκε δευτερόλεπτο, για να διατθριςουμε μία απεικόνιςθ χωρίσ τρεμόπαιγμα ςτθν οκόνθ. Ρλζον αυτισ τθσ μνιμθσ, οι κάρτεσ γραφικϊν ζχουν και μνιμθ που αποκθκεφουν δεδομζνα τα οποία δεν φαίνονται ςτθν οκόνθ. Για να ςχεδιάςει ζνα API ςτθν οκόνθ του υπολογιςτι πρζπει το API να ςυςχετιςτεί με κάποιο παράκυρο του λειτουργικοφ ςυςτιματοσ ςτο οποίο εκτελείται. Το λειτουργικό ςφςτθμα αποφαςίηει πωσ κα δεςμευτεί θ μνιμθ που κα ςχεδιάηει το API και πωσ θ βοθκθτικι μνιμθ. Συνολικά, όλεσ οι δομζσ δεδομζνων και οι κλιςεισ για να πραγματοποιθκοφν αυτζσ οι διαδικαςίεσ για τθν δζςμευςθ κι αποδζςμευςθ των πόρων ονομάηεται γραφικό περιβάλλον (graphics context). Το περιβάλλον αυτό αποκθκεφει τθν κατάςταςθ του API, τθν περιοχι τθσ μνιμθσ ςτθν οποία ςχεδιάηει θ κάρτα γραφικϊν και αναλαμβάνει τον ςυγχρονιςμό μεταξφ του API και του παρακυρικοφ λειτουργικοφ ςυςτιματοσ. Στθν περίπτωςθ του DirectX τα Windows ζχουν τζτοιεσ κλιςεισ ςυςτιματοσ για τθν εφκολθ αρχικοποίθςθ του και τθν ςχεδίαςθ γραφικϊν. Το ίδιο δεν ιςχφει για το OpenGL γιατί είναι ανεξάρτθτο λειτουργικοφ ςυςτιματοσ κι επομζνωσ δεν παρζχει ςυγκεκριμζνεσ διαδικαςίεσ. Υπάρχουν όμωσ βιβλιοκικεσ γραμμζνεσ από τρίτουσ οι 11

20 οποίεσ διευκολφνουν αυτι τθν διαδικαςία για ςυγκεκριμζνα λειτουργικά ςυςτιματα (Windows και Linux). Θ μνιμθ τθσ κάρτασ γραφικϊν τθσ οποίασ αλλάηουν τα περιεχόμενα ςαν αποτζλεςμα τθσ ςχεδίαςθσ, ονομάηεται «μνιμθ καρζ» (frame buffer). Σε ζνα παρακυρικό λειτουργικό ςφςτθμα, θ ζννοια του frame buffer (αρικμόσ 10 ςτθν Εικόνα 3) αναφζρεται ςε ζνα παράκυρο. Το API όταν επικυμεί να δθμιουργιςει και να δεςμεφςει τον frame buffer, ηθτά από το λειτουργικό ςφςτθμα να του παραχωριςει τουσ απαραίτθτουσ πόρουσ, κακορίηοντασ τα χρϊματα τθσ εικόνασ και διάφορεσ άλλεσ παραμζτρουσ όπωσ εξομάλυνςθ γωνιϊν (anti aliasing). Το λειτουργικό ςφςτθμα διαχειρίηεται πωσ κα ςυμπεριφερκεί το παράκυρο που ςχεδιάηουμε όταν δφο ι περιςςότερα παράκυρα επικαλφπτονται. Θ ζννοια του frame buffer δεν αναφζρεται μόνο ςε ζναν buffer, δθλαδι ςε μία μόνο περιοχι μνιμθσ. Στθν πραγματικότθτα ο frame buffer είναι μία ςυλλογι από buffers που ςχετίηονται με ζνα παράκυρο και ςτθν ςυνζχεια ο προγραμματιςτισ κάνει χριςθ αυτϊν για να επιτφχει το επικυμθτό αποτζλεςμα ςτθν οκόνθ. Για παράδειγμα ο frame buffer μπορεί να αποτελείται από τον παρακάτω ςυνδυαςμό: Ζωσ τζςςερισ προςωρινζσ μνιμεσ χρϊματοσ (color buffers) Μία προςωρινι μνιμθ βάκουσ (depth buffer) Μία προςωρινι μνιμθ αποτφπωςθσ (stencil buffer) Μία προςωρινι μνιμθ ςυςςϊρευςθσ (accumulation buffer) Μία προςωρινι μνιμθ πολλαπλισ δειγματολθψίασ (multisample buffer) Μία ι περιςςότερεσ βοθκθτικζσ προςωρινζσ μνιμεσ (auxiliary buffers) Για λόγουσ ςυντομίασ κι επειδι ζχει επικρατιςει, από εδϊ και ςτο εξισ, κα αναφερόμαςτε ςτισ παραπάνω μνιμεσ χρθςιμοποιϊντασ τθν αγγλικι ορολογία. Οι color buffers αποκθκεφουν το χρϊμα τθσ εικόνασ, ουςιαςτικά το τελικό αποτζλεςμα τθσ διαδικαςίασ ςχεδίαςθσ γραφικϊν, το οποίο ςτθν ςυνζχεια προβάλλεται ςτθν οκόνθ. Πλεσ οι ςφγχρονεσ κάρτεσ γραφικϊν υποςτθρίηουν «εμπρόσ» (front buffer)και «πίςω» (back buffer) βοθκθτικζσ μνιμεσ. Αυτό επιτρζπει ςτθν εφαρμογι να ςχεδιάηει ςτον back buffer που δεν είναι ορατόσ αρχικά ςτον χριςτθ και μόλισ τελειϊςει τθν ςχεδίαςθ να τον εναλλάςςει με τον front buffer για να ςχεδιάςει ςτθν ςυνζχεια ςε αυτόν. Δθλαδι ςε όλθ τθν διάρκεια τθσ ςχεδίαςθσ ςε αυτιν τθν περίπτωςθ ζχουμε εναλλαγζσ μεταξφ front και back buffers και αυτι θ τεχνικι λζγεται διπλι χριςθ προςωρινισ μνιμθσ (double buffering). Αν θ εφαρμογι γραφικϊν δεν κάνει χριςθ double buffering, τότε ο χριςτθσ βλζπει ςτθν οκόνθ του να ςχεδιάηονται τα γραφικά, αφοφ ουςιαςτικά βλζπει τθν μνιμθ που τροποποιεί ςυνεχϊσ θ κάρτα γραφικϊν. Αυτό προκαλεί τρεμόπαιγμα ςτθν εικόνα και γι αυτό όλεσ οι υψθλισ ποιότθτασ κινοφμενεσ εικόνεσ απαιτοφν double buffering. 12

21 Αν θ εφαρμογι υποςτθρίηει και ςτερεοςκοπικι απεικόνιςθ (stereo viewing) τότε απαιτοφνται τζςςερισ color buffers γιατί χρθςιμοποιείται ζνασ front buffer για το δεξί μάτι (μαηί με τον αντίςτοιχο back buffer) και ζνασ front buffer για το αριςτερό μάτι (μαηί με τον αντίςτοιχο back buffer). Θ ςτερεοςκοπικι απεικόνιςθ δθμιουργεί ψευδό-τριςδιάςτατεσ απεικονίςεισ ςχεδιάηοντασ μία φορά τθν εικόνα για το δεξί μάτι κι από ελαφρϊσ διαφορετικι γωνία για το αριςτερό μάτι και ςυνδυάηει το αποτζλεςμα ςτθν οκόνθ. Ο χριςτθσ φορϊντασ ειδικά γυαλιά που διαχωρίηουν το τελικό αποτζλεςμα για το κάκε μάτι ζχει τθν αίςκθςθ ότι τα αντικείμενα που παρακολουκεί ςτθν οκόνθ προεξζχουν από αυτιν. Ο depth buffer είναι απαραίτθτοσ, γιατί με βάςθ τα περιεχόμενα αυτισ τθσ μνιμθσ, θ GPU μπορεί να ελζγχει αν κάποιο αντικείμενο βρίςκεται πιο κοντά ςτον παρατθρθτι ι πιο μακριά από κάποιο άλλο και να το ςχεδιάηει ι να το απορρίπτει (μερικϊσ ι ολικϊσ) ςτθν τελικι εικόνα. Για κάκε νζα εικόνα που ςχεδιάηεται ςτθν οκόνθ θ GPU κρατά το βάκοσ (depth) κάκε εικονοςτοιχείου (pixel). Κακϊσ ςχεδιάηονται νζα αντικείμενα ςτθν οκόνθ, γίνεται μία ςφγκριςθ ανάμεςα ςτο depth που είναι ιδθ αποκθκευμζνο και ςτο depth του εικονοςτοιχείου που πρόκειται να γραφεί ςτθν ςυγκεκριμζνθ κζςθ. Ανάλογα με τθν παράμετρο ςφγκριςθσ (μεγαλφτερο, μικρότερο, ίςο και άλλεσ παραλλαγζσ) που ζχει ορίςει ο προγραμματιςτισ ςτο API, το ςυγκεκριμζνο εικονοςτοιχείο αντικακίςταται ι όχι. Στθν Εικόνα 5 φαίνεται μία τριςδιάςτατθ εικόνα, όπωσ ςχεδιάηεται ςτθν οκόνθ του υπολογιςτι και από κάτω τα περιεχόμενα του depth buffer. Τα εικονοςτοιχεία που βρίςκονται κοντά ςτον παρατθρθτι ζχουν ςκοφρο χρϊμα (μικρι απόςταςθ) ενϊ εκείνα που βρίςκονται μακριά ζχουν ανοιχτό χρϊμα (μεγάλθ απόςταςθ). Με βάςθ αυτόν τον depth buffer θ GPU επιτυγχάνει να ςχεδιάηει με τθν ςωςτι ςειρά τα αντικείμενα ςτθν τελικι εικόνα. Ο stencil buffer χρθςιμοποιείται για να δθμιουργιςει πολφπλοκα μοτίβα ςε διάφορεσ περιοχζσ ςτθν οκόνθ. Αποκθκεφει για κάκε εικονοςτοιχείο τθσ οκόνθσ μία ακζραια τιμι. Ο προγραμματιςτισ μπορεί να χειρίηεται ειδικά τα εικονοςτοιχεία για τα οποία ο stencil buffer ζχει μία ςυγκεκριμζνθ τιμι. Μερικζσ από τισ χριςεισ του stencil buffer είναι θ ςχεδίαςθ ςκιϊν (stencil - volume shadows), οι αντανακλάςεισ, κακϊσ και θ βελτιςτοποίθςθ τθσ ταχφτθτασ ςτθν ςχεδίαςθ, κακϊσ μπορεί να αποφευχκοφν να ςχεδιάηονται περιοχζσ τισ οκόνθσ, που πάντα καλφπτονται από ςυγκεκριμζνα αντικείμενα. Για παράδειγμα ςε ζναν εξομοιωτι αγϊνων ταχφτθτασ, ο οδθγόσ βλζπει τον περιβάλλον μζςα από το αυτοκίνθτο που οδθγεί. Το μόνο μζροσ τθσ εικόνασ που πρζπει να ανανεϊνεται ςε κάκε νζα ςχεδίαςθ, είναι αυτό που φαίνεται από το τηάμι και τα παράκυρα του αυτοκινιτου κακϊσ το εςωτερικό του αυτοκινιτου κα φαίνεται πάντα κι είναι ςτατικό. Αν, λοιπόν, γεμίςουμε τον stencil buffer, με τιμζσ διαφορετικζσ του μθδενόσ, ςτα εικονοςτοιχεία τα οποία βρίςκονται ςε περιοχζσ τισ οκόνθσ, ςτισ οποίεσ κα ςχεδιαςτεί το εςωτερικό του 13

22 αυτοκινιτου, τότε κα πρζπει να επιλζξουμε να ςχεδιάςουμε μόνο τισ περιοχζσ τθσ οκόνθσ, για τισ οποίεσ θ τιμι του stencil buffer είναι ίςθ με μθδζν. Ο accumulation buffer υπάρχει ςτο OpenGL κι όχι ςτο DirectX, όμωσ και τα δφο APIs μποροφν με διαφορετικό τρόπο, να παρζχουν τα ίδια αποτελζςματα. Ο accumulation buffer είναι μία μνιμθ με ακρίβεια μεγαλφτερθ του color buffer ςε κάκε ςτοιχείο του. Ρολλαπλζσ εικόνεσ από τον color buffer, μποροφν να ςυνδυαςτοφν ςτον accumulation buffer, ζτςι ϊςτε να ςυνκζςουν μία καινοφρια εικόνα. Μία δυνατότθτα που παρζχει αυτόσ o buffer, είναι να ςχεδιαςτοφν πολλζσ εικόνεσ ενόσ αντικειμζνου που κινείται, και ςτθν ςυνζχεια με διαίρεςθ του αποτελζςματοσ, με τον αρικμό των εικόνων που ςυνδυάςτθκαν, να ςχεδιάςουμε το αντικείμενο αυτό με το εφζ τθσ κίνθςθσ (motion blurring). Στθν Εικόνα 6, φαίνεται ζνα τζτοιο παράδειγμα. Εικόνα 5: Επάνω θ τελικι εικόνα και κάτω τα περιεχόμενα του depth buffer. 14

23 Πταν ςχεδιάηονται τα γραφικά ςτθν οκόνθ του υπολογιςτι για κάκε ζνα εικονοςτοιχείο γίνεται ζνασ ζλεγχοσ, για το πιο τμιμα τθσ γεωμετρίασ το καλφπτει και επομζνωσ πωσ ακριβϊσ κα χρωματιςτεί. Αυτό οδθγεί ςε εικόνεσ, που το περίγραμμα των αντικειμζνων διαγράφεται ζντονα, μίασ και λαμβάνει μία τιμι και τα γειτονικά του εικονοςτοιχεία ζχουν διαφορετικό χρϊμα. Το φαινόμενο αυτό μπορεί να παρατθρθκεί ςτθν αριςτερι ςφαίρα τθσ Εικόνα 7 και παρουςιάηεται πιο ζντονα ςε ςχιματα των οποίων τα περιγράμματα και οι πλευρζσ ςχεδιάηονται υπό γωνία ςε ςχζςθ με τον κάκετο και οριηόντιο άξονα τθσ οκόνθσ. Ο mutisample buffer επιτρζπει να εξομαλφνονται οι γωνίεσ ςτθν ςχεδίαςθ των αντικειμζνων ςτθν οκόνθ. Εικόνα 6: Motion blurring. Αυτι θ τεχνικι δίνει τθν αίςκθςθ τθσ κίνθςθσ ςτον παρατθρθτι. τθν επάνω εικόνα ο παρατθρθτισ δεν κινείται ωσ προσ το αντικείμενο, ενϊ ςτθν κάτω κινείται ωσ προσ τον οριηόντιο άξονα. Ουςιαςτικά με τον μνιμθ πολλαπλισ δειγματολθψίασ (multisample buffer) τα εικονοςτοιχεία δειγματολθπτοφνται ςε μεγαλφτερθ ανάλυςθ και εξετάηεται το ποςοςτό του εικονοςτοιχείου που περιζχεται ςε ζνα ςχιμα και πόςο ςε ζνα άλλο, με αποτζλεςμα το τελικό του χρϊμα να είναι ζνασ μζςοσ όροσ των δφο, ανάλογα με τα ποςοςτά κάλυψθσ. Αυτό οδθγεί ςε εικόνεσ πολφ καλφτερθσ ποιότθτασ όπωσ είναι θ ςφαίρα ςτο δεξί τμιμα τθσ Εικόνα 7. 15

24 Εικόνα 7: Εξομάλυνςθ γωνιϊν με χριςθ του multisample buffer. Θ χριςθ, όμωσ, τθσ μνιμθσ πολλαπλισ δειγματολθψίασ, επιβαρφνει ςε μεγάλο ποςοςτό τθν ταχφτθτα ςχεδίαςθσ, μιασ και αυξάνονται ςθμαντικά οι απαιτιςεισ ςε ποςότθτα και κατά ςυνζπεια ςε διαμεταγωγι μνιμθσ (τα εικονοςτοιχεία δειγματολθπτοφνται πολλαπλζσ φορζσ, από 2 ζωσ και 16 φορζσ ανάλογα με τθν ποιότθτα τθσ εξομάλυνςθσ γωνιϊν). Τζλοσ, χρθςιμοποιοφνται βοθκθτικζσ μνιμεσ, οι οποίοι δεν εμφανίηονται ςτθν οκόνθ, αλλά αποκθκεφουν τα αποτελζςματα ενδιάμεςων υπολογιςμϊν, που χρειάηονται κατά τον φωτιςμό ι τθν ςχεδίαςθ τθσ γεωμετρίασ. Δεν υπάρχει κάποιοσ περιοριςμόσ ςτον αρικμό των βοθκθτικϊν μνθμϊν που κα χρθςιμοποιθκοφν. Πλα τα παραπάνω είδθ από βοθκθτικζσ μνιμεσ αποκθκεφονται ςτθν μνιμθ τθσ κάρτασ γραφικϊν ι ςτθν μνιμθ (RAM) τθσ CPU εφ όςον θ πρϊτθ δεν επαρκεί. Γενικά, ιδιαίτερθ προςοχι, κα πρζπει να δίδεται ςτο ποςοςτό χριςθσ τθσ μνιμθσ τθσ κάρτασ γραφικϊν, γιατί πικανι μεταφορά από και προσ τθν RAM του ςυςτιματοσ είναι ιδιαίτερα δαπανθρι ςε χρόνο και υπολογιςτικοφσ πόρουσ, με αποτζλεςμα κατακόρυφθ πτϊςθ των επιδόςεων. 16

25 Κεφϊλαιο 2 ο Διαδικαςύα παραγωγόσ γραφικών (Graphics Processing Pipeline) Αποςτολό δεδομϋνων ςτο API Θ ανάλυςθ που κα ακολουκιςει ςτθν ςυνζχεια κα γίνει με βάςθ τθν Εικόνα 3 και τθν αρίκμθςθ που υπάρχει ςε αυτιν [7]. Τα δεδομζνα που διαχειρίηονται τα APIs, για τθν παραγωγι τριςδιάςτατων εικόνων ανικουν, κυρίωσ, ςε δφο κατθγορίεσ. Είναι γεωμετρία ι υφζσ (αρικμοί 1 και 11). Θ μνιμθ που αποκθκεφει αυτά τα δεδομζνα, μπορεί να είναι είτε θ RAM, είτε θ μνιμθ τθσ GPU με τθν δεφτερθ να προτιμάται, λόγω τθσ μεγάλθσ ταχφτθτάσ τθσ. Ο προγραμματιςτισ μπορεί να επιλζξει ςε ποια μνιμθ κα αποκθκεφςει ςυγκεκριμζνα δεδομζνα, χρθςιμοποιϊντασ το API ι να αφιςει το API να αποφαςίςει, κάνοντασ το ίδιο βελτιςτοποίθςθ. Θ γεωμετρία δεν αποκθκεφεται ςτα APIs ωσ τριςδιάςτατα μοντζλα, όπωσ αυτά δθμιουργοφνται από διάφορα προγράμματα, όπωσ το 3D Studio Max, το Maya κ.α. Θ γεωμετρία που υποςτθρίηουν τα APIs είναι ςθμεία, γραμμζσ, ομάδεσ ςυνεχόμενων γραμμϊν, τρίγωνα, ομάδεσ τριγϊνων, τετράγωνα και ομάδεσ τετραγϊνων. Επιπλζον τα APIs δεν χρθςιμοποιοφν τον αυςτθρό μακθματικό οριςμό για τα ςθμεία και τισ γραμμζσ. Ζνα ςθμείο ςτον χϊρο είναι ςυνικωσ ίςο με ζνα εικονοςτοιχείο τθσ οκόνθσ, ζχει δθλαδι διαςτάςεισ. Από τθν άλλθ μία ευκεία ζχει πάχοσ επίςθσ ίςο με το πάχοσ ενόσ εικονοςτοιχείου, δεν είναι δθλαδι απείρωσ λεπτι κι ζχει άκρα, δθλαδι είναι ευκφγραμμο τμιμα. Το API, δθλαδι, λειτουργεί και χειρίηεται τθν γεωμετρία, ςε πολφ χαμθλό επίπεδο. Συγκεκριμζνα όλεσ οι παραπάνω βαςικζσ γεωμετρικζσ δομζσ, εκτόσ από τα ςθμεία ςτον χϊρο και τισ γραμμζσ, ςυνικωσ αναπαρίςτανται με τρίγωνα. Υπάρχει ζνασ πολφ ςθμαντικόσ λόγοσ για τον οποίο γίνεται αυτό. Τρία, μθ ςυνευκειακά ςθμεία ςτον χϊρο (τρίγωνο), ορίηουν πάντα ζνα επίπεδο, ανεξάρτθτα από το είδοσ του μεταςχθματιςμοφ που εφαρμόηεται ςε αυτά. Ζτςι το υλικό τθσ κάρτασ γραφικϊν και το API μπορεί να διαχειριςτεί τα τρίγωνα και αποφεφγονται περιπτϊςεισ όπου θ εφαρμογι ενόσ μεταςχθματιςμοφ, κα δθμιουργοφςε επιπλζον ςθμεία. Ζνα τζτοιο παράδειγμα παρουςιάηεται ςτθν Εικόνα 8. Επιπλζον, όλα τα πολφγωνα πρζπει να είναι κυρτά και δεν πρζπει οι ακμζσ που ορίηουν τα πολφγωνα να τζμνονται. Ρροφανϊσ, δεν μποροφν να ςχεδιαςτοφν πολφγωνα με τρφπεσ-οπζσ ςτο ςϊμα τουσ. Τζτοιεσ περιπτϊςεισ παρουςιάηονται ςτθν Εικόνα 9. 17

26 Εικόνα 8: Πρόβλθμα κατά τθν ςχεδίαςθ ενόσ ςχιματοσ που δεν αποτελείται από τρίγωνα. Σο ςχιμα ςτα αριςτερά αποτελείται από 4 ςθμεία ςτο χϊρο (κόκκινεσ τελείεσ) αλλά μετά από ςυνεχείσ μεταςχθματιςμοφσ καταλιγει ςτα δεξιά ςε ζνα ςχιμα που πλζον αποτελείται από 5 ςθμεία. Κα πρζπει να ςθμειωκεί, πωσ τα APIs δεν υποςτθρίηουν τθν ςχεδίαςθ αυτϊν των πολυγϊνων (Εικόνα 9) απ ευκείασ. Αυτό ςθμαίνει πωσ υπάρχουν τρόποι να παρακαμφκοφν οι περιοριςμοί, ςπάηοντασ το κάκε πολφγωνο που δεν ικανοποιεί τουσ περιοριςμοφσ, ςε άλλα μικρότερα ςχιματα, που υποςτθρίηονται από τα APIs. Γι αυτό αναφζρκθκε ιδθ, πωσ ςυνικωσ, χρθςιμοποιοφνται τρίγωνα κατά τθν ςχεδίαςθ, που δεν παρουςιάηουν περιοριςμοφσ ςτα ςχιματα που μποροφν να περιγράψουν. Σφμφωνα με τα παραπάνω, για να αποςταλεί ςτο API ζνα τριςδιάςτατο μοντζλο, πρζπει κάποιο άλλο πρόγραμμα, που ςυνικωσ γράφουμε εμείσ, να διαβάςει τα δεδομζνα που περιζχει, και να τα μετατρζψει ςε μία από τισ βαςικζσ δομζσ γεωμετρίασ που δζχεται το API. Επιπλζον ζνα τριςδιάςτατο μοντζλο μπορεί να περιζχει πολφ περιςςότερεσ πλθροφορίεσ, πζραν τθσ γεωμετρίασ. Εικόνα 9: τα αριςτερά φαίνονται πολφγωνα που μπορεί να ςχεδιαςτοφν με τα APIs ενϊ ςτα δεξιά φαίνονται πολφγωνα που δεν μποροφν να ςχεδιαςτοφν απευκείασ. Θ επιπλζον πλθροφορία, κα πρζπει να εξαχκεί κι αυτι και να δοκεί ςτο API, εάν επικυμοφμε να τθν χρθςιμοποιιςουμε κατά τθν ςχεδίαςθ. Σιμερα, το ελάχιςτο τθσ πλθροφορίασ που ςυνικωσ περιζχει ζνα μοντζλο, είναι τα ςθμεία ςτο χϊρο (vertices), τα οποία ορίηουν το μοντζλο και τα κάκετα διανφςματα (normals), που αντιςτοιχοφν ςε κάκε ςθμείο του μοντζλου. Επιπλζον μπορεί να περιζχονται μία ι περιςςότερεσ ςυντεταγμζνεσ για τθν εφαρμογι υφϊν επάνω ςτθν γεωμετρία. Τζλοσ, μπορεί να περιζχονται θ εφαπτομζνθ και θ ςυνεφαπτομζνθ ςε κάκε ςθμείο του μοντζλου, ι βάρθ και δείκτεσ τα οποία χρθςιμοποιοφνται ςε ςυνδυαςμό με πίνακεσ για τθν δθμιουργία κινιςεων και παραμορφϊςεων των μοντζλων (π.χ. ζνασ άνκρωποσ που περπατά). 18

27 Συνολικά, θ γεωμετρία ενόσ τριςδιάςτατου μοντζλου, ζτςι όπωσ τθν αντιλαμβάνεται το API, ζχει ςαν κεντρικι οντότθτα τα ςθμεία ςτον χϊρο, τα οποία εμπλουτίηονται με διάφορεσ επιπλζον τιμζσ. Οι τιμζσ αυτζσ, χρθςιμοποιοφνται για τθν δθμιουργία κατάλλθλων ςκιάςεων ι τθν δθμιουργία κινιςεων ςτθν γεωμετρία (animation). Πταν εξάγουμε, λοιπόν, τθν γεωμετρία από το μοντζλο, κα πρζπει ζπειτα να τθν αποςτείλουμε ςτο API. Υπάρχουν διάφοροι τρόποι για να γίνει αυτό, οι οποίοι ζχουν διαφορετικζσ αποδόςεισ. Ο πιο απλόσ (και προφανισ) τρόποσ, είναι να αποςτζλλουμε ζνα ςθμείο τθν φορά. Συγκεκριμζνα υπάρχουν ςυναρτιςεισ ςτα δφο APIs (DirectX & OpenGL) που ορίηουν ζνα ςθμείο. Πταν θ ςυνάρτθςθ ενόσ ςθμείου κλθκεί για δεφτερθ φορά, τότε αποκθκεφεται το πρϊτο ςθμείο κι οφτω κακ εξισ. Για παράδειγμα με τον ακόλουκο κϊδικα: Ξεκίνα πολφγωνο: Συντεταγμζνεσ ςθμείου(0.0, 0.0); Συντεταγμζνεσ ςθμείου (0.0, 3.0); Συντεταγμζνεσ ςθμείου (3.0, 3.0); Συντεταγμζνεσ ςθμείου (4.0, 1.5); Συντεταγμζνεσ ςθμείου (3.0, 0.0); Σταμάτα πολφγωνο; Σχεδιάηουμε το παρακάτω πολφγωνο: 0,3 3,3 4,1.5 0,0 3,0 Ραρατθροφμε πωσ ορίηουμε ςτο API, τί είδουσ γεωμετρικό ςχιμα κζλουμε να ςχεδιάςουμε (πολφγωνο ςτθν προκειμζνθ περίπτωςθ), και ςτθν ςυνζχεια ορίηουμε τα ςθμεία που ορίηουν αυτιν τθν γεωμετρία. Ανάλογα με το πόςα ςθμεία ορίηουμε ανάμεςα ςτισ κλιςεισ Ξεκίνα πολφγωνο και Σταμάτα πολφγωνο, τόςα ςθμεία κα ζχει και το τελικό ςχιμα. Γενικά ιςχφει ο κανόνασ, ότι ζνα γεωμετρικό ςχιμα, ςχεδιάηεται κάκε φορά που υπάρχουν αρκετζσ κλιςεισ τθσ ςυνάρτθςθσ Συντεταγμένεσ ςημείου(). Αν κζλαμε να ςχεδιάςουμε για παράδειγμα ανεξάρτθτα τρίγωνα, τότε κάκε τρίγωνο κεωρείται ολοκλθρωμζνο, όταν θ ςυνάρτθςθ Συντεταγμένεσ ςημείου() ζχει κλθκεί τρεισ φορζσ. Αν κζλαμε να ςχεδιάςουμε μία ομάδα τριγϊνων (που ζχουν δθλαδι μία κοινι πλευρά ανά δφο) τότε οι πρϊτεσ τρεισ κλιςεισ τθσ Συντεταγμένεσ ςημείου() ορίηουν το πρϊτο τρίγωνο και κάκε μία επιπλζον ζνα νζο τρίγωνο. Ανάμεςα ςτισ κλιςεισ Συντεταγμένεσ ςημείου() μποροφςαμε να ορίςουμε και παραμζτρουσ όπωσ οι ςυντεταγμζνεσ υφισ, το κάκετο διάνυςμα (ςτθν επιφάνεια 19

28 που ορίηει το πολφγωνο), το χρϊμα το οποίο κα ζχει κάκε ςθμείο του πολυγϊνου κ.α. Ζτςι ο ψευδοκϊδικασ κα μποροφςε να γίνει: Ξεκίνα πολφγωνο: Χρϊμα ςθμείου( ); Κάκετο διάνυςμα ςθμείου( ); Συντεταγμζνεσ ςθμείου (0.0, 0.0); Χρϊμα ςθμείου( ); Κάκετο διάνυςμα ςθμείου( ); Συντεταγμζνεσ ςθμείου (0.0, 3.0); Ρρϊτο ςθμείο Δεφτερο ςθμείο Χρϊμα ςθμείου( ); Κάκετο διάνυςμα ςθμείου( ); Συντεταγμζνεσ ςθμείου (3.0, 3.0); Χρϊμα ςθμείου( ); Κάκετο διάνυςμα ςθμείου( ); Συντεταγμζνεσ ςθμείου (4.0, 1.5);... Χρϊμα ςθμείου( ); Κάκετο διάνυςμα ςθμείου( ); Συντεταγμζνεσ ςθμείου (3.0, 0.0); Σταμάτα πολφγωνο; Ν-οςτό ςθμείο Μία δεφτερθ μζκοδοσ αποςτολισ δεδομζνων ςτο API, είναι θ δθμιουργία μονοδιάςτατων πινάκων (arrays). Οργανϊνουμε τα δεδομζνα τθσ γεωμετρίασ και των ιδιοτιτων τθσ (ςυντεταγμζνεσ υφισ, κάκετα διανφςματα, χρϊμα) ςε arrays τα οποία μασ επιτρζπουν να ςχεδιάηουμε ζνα μεγάλο αρικμό από ςχιματα με μία κλιςθ του API. Θ πρϊτθ μζκοδοσ που παρουςιάςτθκε, καλεί ςυνεχϊσ ςυναρτιςεισ για τθν ςχεδίαςθ, με αποτζλεςμα να ζχουμε κόςτοσ, το οποίο γίνεται μεγαλφτερο ανάλογα με τθν ποςότθτα τθσ γεωμετρίασ που κζλουμε να ςχεδιάςουμε. Θ τρίτθ μζκοδοσ αποςτολισ δεδομζνων ςτο API, που είναι θ πιο ςφγχρονθ κι αποδοτικι, μασ επιτρζπει να αποκθκεφουμε τα δεδομζνα τθσ γεωμετρίασ ςτθν μνιμθ τθσ κάρτασ γραφικϊν. Ρροςφζρει τθν μεγαλφτερθ απόδοςθ, γιατί δεν μεταφζρονται δεδομζνα από και προσ τθν κάρτα γραφικϊν. Με αυτιν τθν μζκοδο δθμιουργοφμε και δεςμεφουμε προςωρινζσ μνιμεσ (buffers) ςτθν μνιμθ τθσ κάρτασ γραφικϊν (ι ςε κάποια ειδικι μνιμθ τθσ CPU, εφόςον θ πρϊτθ ζχει γεμίςει) ςτισ οποίεσ αποκθκεφουμε τα δεδομζνα τθσ γεωμετρίασ. Αυτι θ μζκοδοσ είναι ιδιαίτερα αποτελεςματικι, με τθν προχπόκεςθ πωσ τα δεδομζνα δεν μεταβάλλονται, αφοφ ςε αυτι τθν περίπτωςθ κα πρζπει να αποςτζλλονται τα νζα δεδομζνα ςτθν μνιμθ τθσ κάρτασ γραφικϊν, ανάλογα με τθν ςυχνότθτα αλλαγισ τουσ (π.χ. ςε κάκε νζα ςχεδίαςθ τθσ εικόνασ). Αυτό μπορεί να αποφευχκεί αν τα δεδομζνα δεν αλλάηουν 20

29 ςτθν CPU ςτθν οποία εκτελείται το πρόγραμμα, αλλά ςτθν GPU. Κάτι τζτοιο όμωσ δεν είναι πάντα εφικτό (εξαρτάται από τθν πολυπλοκότθτα του αλγορίκμου) ι είναι ιδιαίτερα χρονοβόρα θ δθμιουργία και θ βελτιςτοποίθςθ μίασ τζτοιασ προςζγγιςθσ. Επεξεργαςύα γεωμετρύασ Το επόμενο βιμα ςτθν ςχεδίαςθ, είναι θ επεξεργαςία των ςθμείων τθσ γεωμετρίασ (αρικμοί 2,3,4 ςτθν Εικόνα 3). Σε αυτό το επίπεδο, τα ςθμεία μεταςχθματίηονται από τουσ πίνακεσ μεταςχθματιςμοφ μοντζλου, παρατθρθτι και προβολισ. Επιπλζον μεταςχθματίηονται τα κάκετα διανφςματα κάκε επιφάνειασ (normals), με βάςθ τον πίνακα του παρατθρθτι, και τζλοσ μεταςχθματίηονται οι ςυντεταγμζνεσ των υφϊν. Επιπλζον, ο προγραμματιςτισ ελζγχει τον αρικμό και τισ παραμζτρουσ των πθγϊν φωτόσ που κα περιζχει θ ςκθνι. Για να γίνουν κατανοθτά τα παραπάνω, κα γίνει μία ανάλυςθ του τρόπου με τον οποίο ορίηονται τα ςυςτιματα ςυντεταγμζνων ςτα APIs και πωσ αναπαρίςτανται τα ςθμεία ςτον χϊρο. Στθν ςυνζχεια, κα παρουςιαςτοφν αναλυτικά οι πίνακεσ μεταςχθματιςμϊν που εφαρμόηονται και τι αποτελζςματα ζχουν ςτθν ςχεδίαςθ. Σύςτημα Συντεταγμένων Tα 2 APIs χρθςιμοποιοφν καρτεςιανό ςφςτθμα ςυντεταγμζνων με τρεισ άξονεσ (Χ, Υ, Η) [15]. Για το DirectX, το ςφςτθμα αυτό βαςίηεται ςτον κανόνα του αριςτεροφ χεριοφ ενϊ ςτο OpenGL, το ςφςτθμα βαςίηεται ςτον κανόνα του δεξιοφ χεριοφ. Θ Εικόνα 10, δείχνει ακριβϊσ αυτοφσ τουσ δφο κανόνεσ και πωσ ορίηουν τουσ άξονεσ ςτο κάκε API. Εικόνα 10: Καρτεςιανά ςυςτιματα ςυντεταγμζνων. Σο αριςτερό βαςίηεται ςτον κανόνα του αριςτεροφ χεριοφ (DirectX) ενϊ το δεξί ςτον κανόνα του δεξιοφ χεριοφ (OpenGL). Αναπαράςταςη ςημείων Θ αναπαράςταςθ των ςθμείων γίνεται με ομογενείσ ςυντεταγμζνεσ [15]. Αυτό ςθμαίνει, πωσ εςωτερικά ςτα APIs, κάκε φορά που ορίηουμε ζνα διςδιάςτατο ι τριςδιάςτατο ςθμείο, αυτό αναπαρίςταται ςαν μία τετράδα αρικμϊν τθσ μορφισ: (X, Y, Z, W) 21

30 Τα X, Υ, Ζ είναι οι ςυνιςτϊςεσ ςτουσ άξονεσ X, Y, και Ζ αντίςτοιχα, ενϊ το W είναι μία ςυνιςτϊςα που θ προκακοριςμζνθ τθσ τιμι είναι 1 και μπορεί να αλλάηει. Κατά τθν επεξεργαςία ςθμείων ςτθν GPU, μποροφμε να αλλάηουμε όλεσ τισ παραπάνω τιμζσ ενόσ ςθμείου, ανάλογα με τθν επεξεργαςία που κζλουμε να επιτφχουμε. Κάκε διάνυςμα τθσ παραπάνω μορφισ, αναπαριςτά ζνα ςθμείο ομογενϊν ςυντεταγμζνων, αν τουλάχιςτον ζνα από τα ςτοιχεία του είναι μθ μθδενικό. Αν ο αρικμόσ a είναι μθ μθδενικόσ, τότε οι τετράδεσ (x,y,z,w) και (ax,ay,az,aw) αναπαριςτοφν το ίδιο ςθμείο. Αυτό ςυμβαίνει, γιατί οι ςυντεταγμζνεσ (X,Y,Z) κάκε τετράδασ διαιροφνται από τθν τζταρτθ ςυντεταγμζνθ (τθν W). Ζνα ςθμείο ςτον ευκλείδειο χϊρο με ςυντεταγμζνεσ (x,y,z) αναπαρίςταται ςε ομογενείσ ςυντεταγμζνεσ ωσ (x,y,z,1) και αντίςτοιχα ζνα διςδιάςτατο ςθμείο (x,y) ωσ (x,y,0,1). Πςο θ ςυντεταγμζνθ W είναι διάφορθ του μθδενόσ, το ςθμείο (x,y,z,w) αναπαριςτά το ςθμείο (x/w,y/w,z/w) ςτον χϊρο. Αν W = 0, τότε το ςθμείο βρίςκεται ςτο άπειρο. Για να γίνει αυτό καλφτερα κατανοθτό, κεωροφμε τθν αλλθλουχία των ςθμείων (1,2,0,1), (1,2,0,0.01) και (1,2,0,0.0001) που αντιςτοιχοφν ςτα ευκλείδεια ςθμεία (1, 2), (100, 200) και (10000, 20000). Αυτι θ ακολουκία από ςθμεία, που κινείται προσ το άπειρο, βρίςκεται επάνω ςτθν γραμμι 2x = y. Επομζνωσ, ζνα ςθμείο, το οποίο ζχει ςυντεταγμζνεσ (1,2,0,0), βρίςκεται ςτο άπειρο, ςτθν κατεφκυνςθ αυτισ τθσ γραμμισ. Μεταςχηματιςμοί Θ αναπαράςταςθ των ςθμείων με ομογενείσ ςυντεταγμζνεσ, εξυπθρετεί τουσ μεταςχθματιςμοφσ τουσ οποίουσ μποροφμε να εφαρμόςουμε, με τθν ζννοια, ότι οι αυτοί μποροφν να αναπαραςτακοφν ωσ πολλαπλαςιαςμόσ πινάκων διάςταςθσ 4x4 [8], [15]. Αυτοί οι μεταςχθματιςμοί, ςαν κφριο ςκοπό ζχουν να τοποκετιςουν τα αντικείμενα τθσ ςκθνισ ςτον χϊρο και να τα απεικονίςουν ςτθν επίπεδθ (διςδιάςτατθ) οκόνθ. Επιπλζον, μεταςχθματιςμοί χρθςιμοποιοφνται για τον υπολογιςμό των ςκιάςεων, δθλαδι των αλλθλεπιδράςεων του φωτόσ με τα αντικείμενα. Πλοι οι μεταςχθματιςμοί για τθν απεικόνιςθ τριςδιάςτατων εικόνων ςτθν οκόνθ του υπολογιςτι, ακολουκοφν τθν ίδια λογικι με τισ διαδικαςίεσ που ακολουκοφμε για να φωτογραφιςουμε ςτον πραγματικό κόςμο. Στθν Εικόνα 11, φαίνεται θ αναλογία αυτι. Συγκεκριμζνα ςτα αριςτερά τθσ εικόνασ κι από πάνω προσ τα κάτω παρατθροφμε τισ εξισ διαδικαςίεσ: Τοποκζτθςθ τθσ κάμερασ ςτον χϊρο (ίςωσ και με τθν χριςθ ενόσ τριπόδου) 22

31 Τοποκζτθςθ ςτον χϊρο των αντικειμζνων που πρόκειται να φωτογραφιςουμε (π.χ. των προςϊπων τα οποία κζλουμε να φωτογραφιςουμε) φκμιςθ του φακοφ ωσ προσ το εφροσ του πεδίου κζαςθσ (field of view). Ουςιαςτικά, ρυκμίηουμε πόςα αντικείμενα κα χωρά θ τελικι εικόνα και πόςο παραμορφωμζνα κα είναι αυτά, όςο περιςςότερα ςτθν εικόνα (ευρυγϊνιοσ φακόσ) τόςο πιο παραμορφωμζνα. Εμφάνιςθ κι εκτφπωςθ τθσ φωτογραφίασ. Διαλζγουμε τισ διαςτάςεισ (μζγεκοσ, αναλογία πλάτουσ / φψουσ) ςτισ οποίεσ κζλουμε να εκτυπϊςουμε τθν φωτογραφία. Στον φυςικό κόςμο Στον υπολογιςτι Στιςιμο τριπόδου Τοποκζτθςθ μοντζλων Τοποκζτθςθ του πεδίου παρατιρθςθσ ςτον εικονικό κόςμο Τοποκζτθςθ μοντζλων Ρροβολι φκμιςθ φακοφ Εκτφπωςθ φωτογραφίασ Κακοριςμόσ του ςχιματοσ του πεδίου παρατιρθςθσ Ρροβολι τθσ εικόνασ ςτθν οκόνθ του υπολογιςτι Επιλογι μεγζκουσ εκτφπωςθσ Εικόνα 11: Αναλογία διαδικαςιϊν φωτογράφθςθσ με τουσ μεταςχθματιςμοφσ για τθν παραγωγι γραφικϊν. Στθν δεξιά ςτιλθ τθσ Εικόνα 11, παρατθροφμε τισ αντίςτοιχεσ διαδικαςίεσ για τθν προβολι γεωμετρίασ ςτθν οκόνθ του υπολογιςτι. 23

32 Ραρακάτω, κα περιγραφοφν με μακθματικά, οι διαδικαςίεσ αυτζσ και ςτθν Εικόνα 12, εμφανίηονται τα ονόματα κι θ ςειρά με τθν οποία εφαρμόηονται οι μεταςχθματιςμοί που αντιςτοιχοφν ςτισ διαδικαςίεσ του φυςικοφ κόςμου ΘΜΕΙΟ (X,Y,Z,W) Μεταςχθμ ατιςμόσ μοντζλου Μεταςχθμ ατιςμόσ παρατθρθτ ι Μεταςχθμ ατιςμόσ προβολισ Διαίρεςθ προοπτικι σ Μεταςχθμ ατιςμόσ παρακφρο υ Συντεταγμζνεσ εικονικοφ κόςμου Συντεταγμζνεσ ματιοφ Συντεταγμζνεσ αποκοπισ Κανονικοποιθμζνεσ ςυντεταγμζνεσ Συντεταγμζνεσ παρακφρου Εικόνα 12: Μεταςχθματιςμοί για τθν προβολι γεωμετρίασ ςτθν οκόνθ του υπολογιςτι. Ραραπάνω αναφζραμε πωσ αποςτζλλουμε ςτο API, τα ςθμεία που εξάγουμε από τα τριςδιάςτατα μοντζλα, μαηί με όποια επιπλζον πλθροφορία περιζχουν. Τα ςθμεία αυτά φτάνουν ςτθν GPU, θ οποία εφαρμόηει τουσ 5 παραπάνω μεταςχθματιςμοφσ για να τα μετατρζψει ςε διςδιάςτατθ εικόνα, θ οποία δζχεται επιπλζον επεξεργαςία ςε επόμενα ςτάδια τθσ ςχεδίαςθσ γραφικϊν και πριν προβλθκεί ςτθν οκόνθ του υπολογιςτι. Αναφζρουμε εδϊ, πωσ το OpenGL και το DirectX χρθςιμοποιοφν διαφορετικό τρόπο για τθν αποκικευςθ των πινάκων των μεταςχθματιςμϊν. Συγκεκριμζνα, το OpenGL χρθςιμοποιεί αποκικευςθ κατά ςτιλεσ, ενϊ το DirectX κατά γραμμζσ. Στουσ παρακάτω 4Χ4 πίνακεσ, οι αρικμοί είναι θ ςειρά με τθν οποία αποκθκεφονται και προςπελαφνονται τα ςτοιχεία των πινάκων ςε κάκε ζνα από τα APIs: DirectX OpenGL Μεταςχηματιςμόσ μοντέλου Πταν δθμιουργοφμε ζνα τριςδιάςτατο μοντζλο (π.χ. ζνα αυτοκίνθτο), το ςχεδιάηουμε με βάςθ κάποιο ςυγκεκριμζνο ςφςτθμα ςυντεταγμζνων. Για παράδειγμα θ αρχι των αξόνων (0,0,0,1), μπορεί να βρίςκεται ςτθν κζςθ του οδθγοφ, ςτθν περίπτωςθ του αυτοκινιτου. Αντίςτοιχα, ζχουν οριςτεί όλα τα άλλα 24

33 ςθμεία τθσ γεωμετρίασ του αυτοκινιτου, ςχετικά με τθν αρχι των αξόνων. Πταν, όμωσ, κζλουμε να τοποκετιςουμε το αυτοκίνθτο ςτον τριςδιάςτατο κόςμο που δθμιουργοφμε, το πιο πικανό είναι, όχι μόνο να το τοποκετιςουμε ςε διαφορετικό ςθμείο, αλλά, επιπλζον, να το κάνουμε να κινείται. Αυτό ςθμαίνει, πωσ πρζπει να μεταςχθματίηουμε όλα τα ςθμεία του αυτοκινιτου (τθν γεωμετρία του δθλαδι) ςε διαφορετικό ςθμείο κάκε φορά. Αυτόσ, ακριβϊσ, είναι ο ρόλοσ του μεταςχθματιςμοφ μοντζλου, κατά τθν διαδικαςία παραγωγισ τριςδιάςτατων γραφικϊν. Με άλλα λόγια, αυτόσ ο μεταςχθματιςμόσ τοποκετεί τα αντικείμενα ςτον χϊρο, ζχοντασ ςαν ςφςτθμα αναφοράσ, ζνα ενιαίο ςφςτθμα ςυντεταγμζνων. Ππωσ αναφζρκθκε, κάκε μεταςχθματιςμόσ αναπαρίςταται με ζναν πίνακα διαςτάςεων 4x4. Ραρακάτω, παρουςιάηονται οι μεταςχθματιςμοί μοντζλου και τα είδθ τουσ. Κάκε μεταςχθματιςμόσ ζχει ζνα αποτζλεςμα πάνω ςτθν γεωμετρία. Συνδυάηοντασ πολλά από τα είδθ των παρακάτω μεταςχθματιςμϊν μοντζλου, κι εφαρμόηοντάσ τα, με τθν κατάλλθλθ ςειρά επάνω ςτθν γεωμετρία, μποροφμε να επιτφχουμε οποιοδιποτε αποτζλεςμα (περιςτροφι γφρω από τυχαίο άξονα, μεγζκυνςθ/ςμίκρυνςθ μετακίνθςθ κ.α.). Πλοι οι πίνακεσ που κα παρουςιαςτοφν, ακολουκοφν τθν λογικι του OpenGL, δθλαδι ορίηονται κατά ςτιλεσ. Μετατόπιςη Ο πίνακασ που μετατοπίηει ςθμεία ςτο τριςδιάςτατο χϊρο είναι ο παρακάτω: Τ = x y z Ο πίνακασ αυτόσ μετατοπίηει ζνα ςθμείο του χϊρου κατά x ςτον άξονα x και κατά y και z αντίςτοιχα ςτουσ άλλουσ άξονεσ. Ο αντίςτροφοσ αυτοφ του μεταςχθματιςμοφ, δθλαδι ο μεταςχθματιςμόσ που επιςτρζφει το ςθμείο ςτθν αρχικι του κζςθ είναι ο: Τ 1 = x y z Μεγέθυνςη / Σμίκρυνςη Ο πίνακασ που μεγενκφνει / ςμικραίνει τριςδιάςτατα ςθμεία κατά x, y, z ςτουσ αντίςτοιχουσ άξονεσ είναι ο: 25

34 S = x y z με αντίςτροφο τον S 1 = 1/x /y /z Περιςτροφή Τζλοσ, οι μεταςχθματιςμοί που περιςτρζφουν ζνα ςθμείο κατά a ακτίνια γφρω από τουσ άξονεσ ςυντεταγμζνων είναι αντίςτοιχα: Άξονασ Χ: R x = Άξονασ Τ: R y = Άξονασ Η: R z = cosa sina 0 0 sina cosa cosa 0 sina sina 0 cosa cosa sina 0 0 sina cosa Οι αντίςτροφοι των παραπάνω πινάκων είναι οι ανάςτροφοι αυτϊν, ι με άλλα λόγια οι παραπάνω πίνακεσ πολλαπλαςιαςμζνοι με -1 λόγω των ιδιοτιτων του θμιτόνου και του ςυνιμθτόνου. Συνδυάηοντασ τουσ παραπάνω πίνακεσ, μποροφμε να επιτφχουμε οποιοδιποτε μεταςχθματιςμό. Για παράδειγμα, μποροφμε να περιςτρζψουμε ζνα αντικείμενο γφρω από τυχαίο άξονα, μετατοπίηοντάσ το ςτουσ άξονεσ μεταφοράσ, ςτθν ςυνζχεια περιςτρζφουμε για να ςυμπζςει ο άξονασ περιςτροφισ με ζναν από τουσ άξονεσ ςυντεταγμζνων, περιςτρζφουμε το αντικείμενο και ςτθν ςυνζχεια κάνουμε τουσ αντίςτροφουσ μεταςχθματιςμοφσ. Πλοι οι παραπάνω μεταςχθματιςμοί, μποροφν να ςυνδυαςτοφν ςε ζναν πίνακα, πολλαπλαςιάηοντασ τον κάκε μεμονωμζνο με τον επόμενό του, προςζχοντασ να διατθριςουμε τθν ςωςτι ςειρά. Μεταςχηματιςμόσ παρατηρητή Με τον μεταςχθματιςμό μοντζλου, τοποκετοφμε τα αντικείμενα ςτον τριςδιάςτατο χϊρο, με βάςθ ζνα ςυγκεκριμζνο ςφςτθμα ςυντεταγμζνων. Πμωσ, μζχρισ ςτιγμισ δεν ζχουμε ορίςει τθν κζςθ και τισ ιδιότθτεσ τθσ κάμερασ του παρατθρθτι από τθν οποία κα βλζπουμε αυτά τα αντικείμενα. Αυτόσ και ο επόμενοσ μεταςχθματιςμόσ (μεταςχθματιςμόσ προβολισ) είναι υπεφκυνοι γι αυτζσ ακριβϊσ τισ διαδικαςίεσ. Ο μεταςχθματιςμόσ παρατθρθτι είναι ζνασ 4Χ4 πίνακασ, ο οποίοσ περιζχει ςτο πάνω αριςτερά μζροσ του, τουσ τρεισ άξονεσ που ορίηουν το ςφςτθμα ςυντεταγμζνων του παρατθρθτι, που ουςιαςτικά είναι οι περιςτροφζσ που 26

35 εφαρμόηονται ςτο αρχικό ςφςτθμα ςυντεταγμζνων. Επιπλζον, ςτθν τζταρτθ ςτιλθ του πίνακα υπάρχουν οι μετατοπίςεισ του ςυςτιματοσ ςυντεταγμζνων ωσ προσ τον παρατθρθτι. Στο παρακάτω ςχιμα φαίνεται με κόκκινο θ περιοχι του πίνακα που περιγράφει τισ περιςτροφζσ των αξόνων και με μπλε θ περιοχι που περιγράφει τισ μετατοπίςεισ τουσ. Παρατηρητήσ = περιςτροφή περιςτροφή περιςτροφή ΜετατόπιςηΧ περιςτροφή περιςτροφή περιςτροφή ΜετατόπιςηΥ περιςτροφή περιςτροφή περιςτροφή ΜετατόπιςηΖ Για παράδειγμα, ζςτω ότι θ κάμερά μασ βρίςκεται ςτο ςθμείο (0,0,200,1), κοιτάει προσ το ςθμείο (0,0,0,1), δθλαδι τθν αρχι των αξόνων και ότι το διάνυςμα που ορίηει τθν επάνω κατεφκυνςθ τθσ κάμερασ είναι το (0,1,0,1). Με άλλα λόγια, θ κάμερα είναι προςανατολιςμζνθ ίδια με τουσ άξονεσ Χ,Υ,Η του ςυςτιματοσ ςυντεταγμζνων αλλά ζχει μία μετατόπιςθ κατά 200 ςτον άξονα Η. Τότε ο πίνακασ παρατθρθτι που ορίηεται από τισ παραπάνω ιδιότθτεσ είναι ο: Παρατηρητήσ = Αν περιςτρζψουμε τθν κάμερα κατά 45 μοίρεσ γφρω από τον άξονα Υ, τότε πίνακασ γίνεται: Παρατηρητήσ = Κάκε γραμμι του κόκκινου μζρουσ του πίνακα παρατθρθτι ζχει μικοσ ίςο με 1 και φυςικά το διάνυςμα που ορίηει κάκε γραμμι είναι κάκετο με τα υπόλοιπα δφο. Μεταςχηματιςμόσ προβολήσ Ο μεταςχθματιςμόσ προβολισ *21] είναι ο πιο πολφπλοκοσ από τουσ μεταςχθματιςμοφσ. Υπάρχουν δφο είδθ τζτοιων μεταςχθματιςμϊν και κα παρουςιαςτοφν και οι δφο. Ο ζνασ ονομάηεται ορθογραφική προβολή και ο άλλοσ προβολή προοπτικήσ. Θ ορκογραφικι προβολι, ζχει ςαν αποτζλεςμα τα αντικείμενα να φαίνονται ςτισ ίδιεσ διαςτάςεισ όςο μακριά ι κοντά μασ κι αν βρίςκονται. Στθν Εικόνα 13, φαίνεται ζνασ λαβφρινκοσ ο οποίοσ απεικονίηεται με ορκογραφικι προβολι. Αντίκετα, θ προβολι προοπτικισ είναι πιο κοντά ςε αυτό που βλζπουμε ςτον κακθμερινό μασ κόςμο, δθλαδι, τα αντικείμενα είναι πιο μεγάλα ι πιο μικρά ανάλογα με τθν απόςταςθ από εμάσ. Γενικά, θ ορκογραφικι 27

36 προβολι χρθςιμοποιείται ςε εφαρμογζσ ςχεδίαςθσ, γιατί μασ δίνει μία ςυνολικι εικόνα του αντικειμζνου που κζλουμε να δθμιουργιςουμε. Ράντωσ θ προβολι προοπτικισ είναι με μεγάλθ διαφορά θ περιςςότερο χρθςιμοποιοφμενθ. Και οι δφο μεταςχθματιςμοί, ςκοπό ζχουν να μεταςχθματίςουν τον όγκο παρατιρθςθσ τθσ κάμερασ ςε ζναν κφβο διάςταςθσ 2x2x1. Οι ςυνιςτϊςεσ x, y αυτοφ του όγκου μεταςχθματίηονται τελικά ςτισ ςυνιςτϊςεσ με τισ οποίεσ αναφερόμαςτε ςτθν εικόνα που εμφανίηεται ςτθν οκόνθ του υπολογιςτι. Εικόνα 13: Ορκογραφικι προβολι. Όλα τα αντικείμενα εμφανίηονται ςτο αρχικό μζγεκόσ τουσ ανεξάρτθτα από τθν απόςταςθ από τον παρατθρθτι. Ορθογραφική προβολή Αυτό το είδοσ προβολισ [21] κα επεξθγθκεί με βάςθ τθν Εικόνα

37 Όγκοσ παρατιρθςθσ Κανονικοποιθμζνοσ όγκοσ παρατιρθςθσ Εικόνα 14: Μεταςχθματιςμόσ του όγκου παρατιρθςθσ τθσ ορκογραφικισ προβολισ ςτον κανονικοποιθμζνο όγκο. Ο όγκοσ με τθν ροη απόχρωςθ ςτθν παραπάνω εικόνα, είναι ο χϊροσ τον οποίο βλζπει ο παρατθρθτισ (όγκοσ παρατιρθςθσ). Το κάτω άκρο, αυτοφ του ορκογϊνιου παραλλθλεπιπζδου, είναι το (I, b, n), ενϊ το άνω άκρο είναι το (r, t, f). Αυτό, λοιπόν, το ςχιμα που βρίςκεται ςε τυχαίο χϊρο, κα πρζπει να μεταςχθματιςτεί ςτο μικρό ορκογϊνιο παραλλθλεπίπεδο που φαίνεται ςτθν Εικόνα 14. Αυτόσ ο όγκοσ ζχει διαςτάςεισ 2x2x1, το κάτω άκρο του βρίςκεται ςτο (-1, -1, 0) ενϊ το πάνω ςτο (1, 1, 1). Ο κανονικοποιθμζνοσ όγκοσ παρατιρθςθσ, ζχει τθν αρχι τον αξόνων ακριβϊσ ςτο μζςο του μικουσ των πλευρϊν ςτουσ άξονεσ Χ και Υ και είναι ευκυγραμμιςμζνοσ με αυτοφσ. Ευκυγραμμιςμζνοσ με τουσ άξονεσ είναι και όγκοσ παρατιρθςθσ. Για να απεικονιςτεί ο όγκοσ παρατιρθςθσ ςτον κανονικοποιθμζνο, κα πρζπει να μικρφνει ι να μεγαλϊςει (ςτθν ςυγκεκριμζνθ περίπτωςθ να μικρφνει) ζτςι ϊςτε να αποκτιςει τισ διαςτάςεισ του κανονικοποιθμζνου όγκου και ςτθν ςυνζχεια να μετακινθκεί ςτθν αρχι των αξόνων. Δθλαδι, θ διαδικαςία τθσ ορκογραφικισ προβολισ μπορεί να διαςπαςτεί ςε δφο βαςικοφσ μεταςχθματιςμοφσ μοντζλου, τθν μετατόπιςθ και τθν ςμίκρυνςθ / μεγζκυνςθ. Χρθςιμοποιϊντασ ανιςότθτεσ, για κάκε μία διάςταςθ του όγκου παρατιρθςθσ, δθλαδι, l x r, b y t, n z f, προςπακοφμε να καταλιξουμε ςε ανιςότθτεσ που αντιςτοιχοφν ςτον κανονικοποιθμζνο όγκο. Καταλιγουμε ςτο αποτζλεςμα: x = 2x r + l r l r l 29

38 y = z = 2y t + b t b t b z f n n f n Το αποτζλεςμα τθσ παραπάνω διαδικαςίασ το γράφουμε ςε μορφι πίνακα 4x4, για να μποροφμε να το χρθςιμοποιοφμε, ςυνδυάηοντάσ το με τουσ υπόλοιπουσ μεταςχθματιςμοφσ. Ζχουμε λοιπόν: P ort o = 2 r l r + l 0 0 r l 2 t + b 0 t b t b 2 f n n f n Ο παραπάνω μεταςχθματιςμόσ, περιγράφει οποιοδιποτε είδοσ ορκογραφικισ προβολισ. Στθν πλειοψθφία, όμωσ, των περιπτϊςεων, το είδοσ τθσ προβολισ που επικυμοφμε είναι εκείνο ςτο οποίο ο όγκοσ παρατιρθςθσ εκτείνεται εξίςου προσ τα δεξιά και τα αριςτερά, προσ τα πάνω και προσ τα κάτω. Με άλλα λόγια το ςθμείο παρατιρθςθσ βρίςκεται ςτο κζντρο τθσ μίασ πλευράσ του όγκου παρατιρθςθσ και αποτελεί ςθμείο του άξονα z. Αυτό ςε μακθματικά ςθμαίνει πωσ: -l = r, -b = t. Οι παραπάνω ςυνκικεσ μετατρζπουν τον προθγοφμενο πίνακα ςτον: P ort o = 1 r t f n n f n Τζλοσ, ο γενικευμζνοσ τφποσ τθσ ορκογραφικισ προβολισ μπορεί να γραφεί ςαν γινόμενο δφο πινάκων, όπου ο αριςτερά είναι θ μεγζκυνςθ / ςμίκρυνςθ του όγκου παρατιρθςθσ και ο δεξιά θ μετατόπιςθ αυτοφ του όγκου ςτθν αρχι των αξόνων: P ort o = 2 r l t b f n (r + l) (t + b) n

39 Προβολή προοπτικήσ Θ ανάλυςθ τθσ προβολισ προοπτικισ [21] κα γίνει ζχοντασ ςαν αναφορά τθν Εικόνα 15. Όγκοσ παρατιρθςθσ Κανονικοποιθμζνοσ όγκοσ παρατιρθςθσ Εικόνα 15: Μεταςχθματιςμόσ του όγκου παρατιρθςθσ τθσ προβολισ προοπτικισ ςτον κανονικοποιθμζνο όγκο. Ο όγκοσ του παρατθρθτι ςε αυτι τθν περίπτωςθ δεν είναι ορκογϊνιο παραλλθλόγραμμο, αλλά ζνασ κόλουροσ κϊνοσ. Αυτόσ ο όγκοσ, πρζπει, όμοια με πριν, να απεικονιςτεί ςτον κανονικοποιθμζνο όγκο παρατιρθςθσ. Επειδι, ςε αυτι τθν περίπτωςθ θ επιφάνεια που βρίςκεται ςτο ςθμείο n του Z άξονα είναι μικρότερθ ςε διαςτάςεισ από ότι θ επιφάνεια ςτο ςθμείο f του άξονα Z, τα αντικείμενα που περιζχονται ςτον όγκο παρατιρθςθσ κα φαίνονται πιο μικρά όταν είναι μακριά, προσ το f, και πιο μεγάλα όταν είναι κοντά, προσ το n, όταν εφαρμοςτεί ο μεταςχθματιςμόσ. Ζτςι, μοντελοποιείται αυτό που ςυμβαίνει ςτον πραγματικό κόςμο λόγω τθσ καμπυλότθτασ του ανκρϊπινου ματιοφ. Θ εφρεςθ αυτοφ του μεταςχθματιςμοφ δεν είναι τόςο εφκολθ όςο ςτθν περίπτωςθ τθσ ορκογραφικισ προβολισ, λόγω τθσ ιδιομορφίασ του ςχιματοσ που κζλουμε να μετατρζψουμε ςε κανονικοποιθμζνο όγκο. Ο 4x4 πίνακασ που περιγράφει αυτό τον μεταςχθματιςμό είναι ο: P proj = 2n r l 0 r + l 0 r l 2n t b t + b t b f 0 0 fn f n f n

40 Ο προθγοφμενοσ μεταςχθματιςμόσ περιγράφει κάκε είδοσ προβολισ προοπτικισ. Στθν πλειοψθφία των περιπτϊςεων, όμωσ, χρθςιμοποιείται θ ςυμμετρικι προβολι που παρουςιάηεται ςτθν Εικόνα 16. Εικόνα 16: υμμετρικι προβολι προοπτικισ. Στθν ςυμμετρικι προβολι, ο άξονασ Z διχοτομεί τθν γωνία κζαςθσ a, με άλλα λόγια, ο όγκοσ κζαςθσ εκτείνεται όμοια προσ τα δεξιά κι αριςτερά. Λςχφει δθλαδι ότι: -l = r και b = t. Επομζνωσ, ο παραπάνω πίνακασ γίνεται: P proj sym = n r n 0 0 t f 0 0 f n fn f n Τζλοσ, με βάςθ τθν Εικόνα 16, θ ςυμμετρικι προβολι προοπτικισ μπορεί να περιγραφεί με βάςθ τθν γωνία a, αφοφ είναι: cot a 2 = 2n κι ζτςι ζχουμε: P proj sym = 1 r cot a cot a f 0 0 f n fn f n To r ςτον παραπάνω πίνακα εκφράηει τθν αναλογία διαςτάςεων του παρακφρου τθσ προβολισ, δθλαδι: πλάτοσ / φψοσ. Ο τελευταίοσ τρόποσ μακθματικισ περιγραφισ του πίνακα ςυμμετρικισ προβολισ προοπτικισ είναι πιο εφχρθςτοσ, μιασ και δεν περιζχει τισ διαςτάςεισ του παρακφρου κι απαιτεί να ορίηουμε μόνο το εφροσ κζαςθσ τθσ κάμερασ. 32

41 Με τθν χριςθ, λοιπόν, των δφο μεταςχθματιςμϊν προβολισ που μόλισ περιγράψαμε απεικονίηουμε τον τριςδιάςτατο όγκο παρατιρθςθσ ςτον κανονικοποιθμζνο. Ο κανονικοποιθμζνοσ όγκοσ παρατιρθςθσ, όμωσ, δεν μπορεί να απεικονιςτεί απευκείασ ςτθν οκόνθ του υπολογιςτι, γιατί από τθν μία ζχει περιςςότερεσ διαςτάςεισ (βάκοσ) από ότι θ οκόνθ κι από τθν άλλθ οι ςυντεταγμζνεσ τθσ οκόνθσ εκτείνονται ςτο διάςτθμα *0,1+ ςτουσ άξονεσ Χ και Υ, ενϊ ο όγκοσ εκτείνεται ςτο *-1,1]. Είναι φανερό, επομζνωσ, πωσ πρζπει να μεταςχθματίςουμε τισ x, y ςυντεταγμζνεσ του κανονικοποιθμζνου όγκου ςτο εφροσ *0,1]. Ο μεταςχθματιςμόσ αυτόσ, που χρθςιμοποιείται πολφ ςτον προγραμματιςμό και τθν δθμιουργία ςκιάςεων, είναι ο: M = Το αποτζλεςμα του μεταςχθματιςμοφ αυτοφ φαίνεται ςτθν Εικόνα 17. Το βάκοσ του κανονικοποιθμζνου όγκου, από τθν άλλθ, το χρειαηόμαςτε για τθν εφαρμογι του z-buffering, δθλαδι τθν εμφάνιςθ των αντικειμζνων με τθν ςωςτι ςειρά ωσ προσ τον παρατθρθτι. Εικόνα 17: Μεταςχθματιςμόσ των x, y ςυντεταγμζνων του κανονικοποιθμζνου όγκου προβολισ ςτισ ςυντεταγμζνεσ οκόνθσ. Στο επόμενο ςτάδιο κι εφόςον ζχουμε επιλζξει προβολι προοπτικισ, γίνεται θ διαίρεςθ προοπτικισ. Αυτό ςθμαίνει ότι οι (x, y, z) ςυντεταγμζνεσ κάκε ςθμείου τθσ γεωμετρίασ διαιρείται από τθν τζταρτθ ςυντεταγμζνθ. Ακόμα, υπολογίηεται θ κζςθ 33

42 των ςθμείων ςε ςυντεταγμζνεσ οκόνθσ (ςτάδιο 5 ςτθν Εικόνα 12). Ο πίνακασ μεταςχθματιςμοφ γι αυτό το ςτάδιο είναι ο παρακάτω: Μ = Πλάτοσ παραθύρου Ύψοσ παραθύρου Σχετική θέςη ωσ προσ Χ Σχετική θέςη ωσ προσ Υ + Ύψοσ παραθύρου 0 1 Στον παραπάνω πίνακα, όλεσ οι μονάδεσ είναι ςε εικονοςτοιχεία τθσ οκόνθσ (pixels). Τα άκρα του κανονικοποιθμζνου όγκου προβολισ ςτουσ άξονεσ X,Y, απεικονίηονται ςτθν ανάλυςθ του παρακφρου τθσ οκόνθσ, ενϊ οι παράγοντεσ Σχετική θέςη ωσ προσ Χ και Σχετική θέςη ωσ προσ Υ είναι διάφοροι του μθδενόσ, αν δεν επικυμοφμε να ςχεδιάςουμε ςε όλο το παράκυρο, αλλά ςε ζνα τμιμα του. Στο επίπεδο 3 τθσ Εικόνα 3, τα ςθμεία ομαδοποιοφνται ςε βαςικέσ γεωμετρικέσ οντότητεσ (ςθμεία, γραμμζσ, ομάδεσ γραμμϊν, τρίγωνα κ.α.), ανάλογα με το πϊσ ορίηονται μζςα από τθν αντίςτοιχθ ςυνάρτθςθ του API. Αυτό ςυμβαίνει, γιατί ανάλογα με το είδοσ τθσ γεωμετρίασ, ςτο αμζςωσ επόμενο επίπεδο γίνεται διαφορετικι επεξεργαςία. Στο επίπεδο 4, λαμβάνει χϊρα θ αποκοπι των τμθμάτων τθσ τριςδιάςτατθσ ςκθνισ που δεν περιλαμβάνονται ςτθν τελικι εικόνα. Αυτό γίνεται ςυγκρίνοντασ τθν κζςθ μίασ βαςικήσ γεωμετρικήσ οντότητασ με τον όγκο που ορίςαμε χρθςιμοποιϊντασ τουσ πίνακεσ αντικειμζνου, παρατθρθτι και προβολισ. Υπάρχουν τρία ενδεχόμενα από μία τζτοια ςφγκριςθ: Θ γεωμετρία να βρίςκεται πλιρωσ εντόσ του όγκου, οπότε κα είναι ορατι ςτθν τελικι εικόνα και δεν απορρίπτεται. Θ γεωμετρία να βρίςκεται πλιρωσ εκτόσ του όγκου, οπότε απορρίπτεται. Θ γεωμετρία να βρίςκεται μερικϊσ εντόσ του όγκου, οπότε μζροσ τθσ απορρίπτεται. Θ διαδικαςία διάςπαςθσ τθσ γεωμετρίασ ανάμεςα ςτθν ορατι και μθ ορατι, εξαρτάται από τθν βαςικι γεωμετρικι οντότθτα που εξετάηεται. Ρζρα από τθν απόρριψθ γεωμετρίασ με βάςθ τον όγκο κζαςθσ του παρατθρθτι, ο προγραμματιςτισ μπορεί να ορίηει δικά του επίπεδα μζςα ςτον όγκο, ςτα οποία δεν επικυμεί τθν ςχεδίαςθ. Σε αυτι τθν περίπτωςθ οι παραπάνω ςυγκρίςεισ γίνονται και γι αυτά τα επίπεδα. Στο επίπεδο 4 λαμβάνει χϊρα θ διαίρεςθ προοπτικισ (ςτάδιο 4 ςτθν Εικόνα 12), ζτςι ϊςτε ςτθν προβολι προοπτικισ, τα αντικείμενα να εμφανίηονται μεγάλα όταν βρίςκονται κοντά ςτον παρατθρθτι και μικρά όταν είναι μακριά από αυτόν. Αυτό γίνεται διαιρϊντασ τισ x, y, z ςυνιςτϊςεσ κάκε ςθμείου με τθν ςυνιςτϊςα w. 34

43 Επιπλζον, ςε αυτό το επίπεδο απορρίπτονται πολφγωνα με βάςθ εάν βλζπουμε τθν εμπρόσ ι τθν πίςω επιφάνειά τουσ. Ο οριςμόσ τθσ παραπάνω πρόταςθσ είναι διαφορετικόσ για τα 2 APIs. Συγκεκριμζνα, ςτο OpenGL εμπρόσ επιφάνεια κεωρείται εκείνθ, τθσ οποίασ τα ςθμεία που τθν απαρτίηουν, ορίηονται με ςειρά αντίκετθ τθσ φοράσ του ρολογιοφ. Το ακριβϊσ αντίκετο ιςχφει για το DirectX. Στθν φαίνεται ο οριςμόσ αυτόσ ςχθματικά. Σθμείο 1 Σθμείο 1 Σθμείο 2 Σθμείο 3 OpenGL Σθμείο 3 Σθμείο 2 DirectX Εικόνα 18: Οριςμόσ εμπρόσ επιφάνειασ για τα 2 APIs. Ρροφανϊσ, ο προγραμματιςτισ, μπορεί να ορίηει αν κζλει να ιςχφουν αυτοί οι κανόνεσ για τισ επιφάνειεσ, μπορεί να ορίηει τουσ αντίκετουσ ι να μθν απορρίπτει καμία επιφάνεια, ανεξάρτθτα προςανατολιςμοφ. Επύπεδο διακριτοπούηςησ Οι βαςικζσ γεωμετρικζσ οντότθτεσ, τισ οποίεσ επεξεργάηονται τα APIs, περιζχουν ζνα ςφνολο από δεδομζνα ςε κάκε ςθμείο τουσ. Στο επίπεδο 5 τθσ Εικόνα 3, αυτζσ οι γεωμετρικζσ οντότθτεσ, διαςπϊνται ςε μικρότερεσ μονάδεσ που αντιςτοιχοφν ςε εικονοςτοιχεία. Αυτι θ διαδικαςία ονομάηεται διακριτοποίθςθ. Για παράδειγμα, μία γραμμι μπορεί να καλφπτει πζντε εικονοςτοιχεία ςτθν οκόνθ του υπολογιςτι και θ διαδικαςία τθσ διακριτοποίθςθσ μετατρζπει τθν γραμμι, θ οποία ορίςτθκε ςτον τριςδιάςτατο χϊρο από δφο ςθμεία, ςε 5 τμιματα εικόνασ (fragments). Το τμιμα αυτό τθσ εικόνασ, περιζχει ςαν οντότθτα τισ ιδιότθτεσ τισ οποίεσ είχαν τα άκρα τθσ γραμμισ από τθν οποία προιλκε. Δθλαδι, μπορεί να περιζχει ςυντεταγμζνεσ υφισ, χρϊμα, ενϊ ζχει πάντα ςυντεταγμζνεσ ςχετικά με τθν κζςθ του ςτθν οκόνθ και βάκοσ (z ςυντεταγμζνθ). Οι παραπάνω τιμζσ προκφπτουν από παρεμβολι ανάμεςα ςτισ τιμζσ των άκρων τθσ ευκείασ όταν εκείνθ ορίςτθκε από τα 2 ςθμεία ςτον χϊρο. Επιπλζον κάκε βαςικι γεωμετρικι οντότθτα ςχεδιάηεται με διαφορετικοφσ κανόνεσ και ελζγχεται προφανϊσ από διαφορετικζσ παραμζτρουσ που ορίηει ο προγραμματιςτισ μζςω του API. Για παράδειγμα, όταν ςχεδιάηουμε ςθμεία επιλζγουμε το μζγεκοσ ςε εικονοςτοιχεία. Αντίςτοιχα, όταν ςχεδιάηουμε γραμμζσ, 35

44 επιλζγουμε, επίςθσ, το πάχοσ τθσ γραμμισ και το μοτίβο τθσ, δθλαδι αν είναι ςυνεχόμενθ ι διακοπτόμενθ. Επεξεργαςύα τμημϊτων τησ εικόνασ Σφμφωνα με όςα είπαμε ςτθν προθγοφμενθ ενότθτα, ςτο ςτάδιο 6 τθσ Εικόνα 3, θ επεξεργαςία ςυνεχίηεται ςε επίπεδο τμθμάτων εικόνασ (fragments), δθλαδι περιορίηεται ςτισ 2 διαςτάςεισ. Σε αυτό το ςτάδιο, ο όροσ που χρθςιμοποιείται για να περιγράψει τα εικονοςτοιχεία (pixels) είναι τμιματα εικόνασ (fragments). Θ διαφορά ανάμεςα ςτισ 2 ορολογίεσ είναι ότι τα pixels αναφζρονται ςτθν τελικι εικόνα που εμφανίηεται ςτθν οκόνθ του υπολογιςτι, ενϊ τα fragments αναφζρονται ςτα υπό επεξεργαςία pixels που δεν είναι ςίγουρο ότι κα εμφανιςτοφν ςτθν οκόνθ, επειδι περνοφν μία ςειρά από δοκιμζσ ανάλογα με τα χαρακτθριςτικά του API που ζχει ενεργοποιθμζνα ο προγραμματιςτισ. Θ πιο ςθμαντικι διαδικαςία αυτοφ του ςταδίου είναι θ εφαρμογι υφισ. Με αυτι τθν διαδικαςία, οι ςυντεταγμζνεσ υφισ που αντιςτοιχοφν ςε κάκε τμιμα τθσ εικόνασ, χρθςιμοποιοφνται για να προςπελάςουν τθν περιοχι τθσ μνιμθσ γραφικϊν που ονομάηεται μνιμθ υφϊν (αρικμόσ 7 ςτθν Εικόνα 3). Το API κακορίηει με πολλοφσ διαφορετικοφσ τρόπουσ το πωσ κα γίνει θ προςπζλαςθ ςτθν μνιμθ και πωσ κα εφαρμοςτεί θ τιμι που κα προςπελαςτεί ςτο εκάςτοτε τμιμα τθσ εικόνασ. Στθν Εικόνα 4, παρουςιάηεται το αποτζλεςμα τθσ εφαρμογισ υφισ ςε μία τριςδιάςτατθ ςφαίρα. Επειδι θ εφαρμογι υφισ είναι μία πολφπλοκθ διαδικαςία, κα παρουςιαςτεί αναλυτικά ςε παρακάτω ενότθτα. Λειτουργύεσ επύ των τμημϊτων εικόνασ Μετά τθν επεξεργαςία των τμθμάτων εικόνασ, γίνονται κάποιεσ επιπλζον λειτουργίεσ ςε αυτά (αρικμόσ 8 ςτθν Εικόνα 3). Αυτζσ είναι λειτουργίεσ όπωσ: Ζλεγχοσ κτιςθσ εικονοςτοιχείου (pixel ownership test): Εξετάηει αν το εικονοςτοιχείο που πρόκειται να ηωγραφιςτεί ανικει ςτο παράκυρο ςτο οποίο ςχεδιάηουμε ι καλφπτεται από παράκυρο άλλθσ εφαρμογισ. Ζλεγχοσ ψαλιδιοφ (scissor test): Απορρίπτονται τμιματα εικόνασ ανάλογα με το αν ανικουν ι όχι ςε μία ορκογϊνια περιοχι που ορίηουμε προγραμματιςτικά. Ζλεγχοσ άλφα (Alpha test): Αποφαςίηεται αν κα απορριφκεί το τρζχον εικονοςτοιχείο. Αυτό γίνεται με βάςθ τθν τιμι άλφα και με βάςθ με το κριτιριο που ζχουμε ορίςει μζςω του API. Θ τιμι άλφα, είναι θ τζταρτθ ςυνιςτϊςα χρϊματοσ που ζχει κάκε εικονοςτοιχείο (R,G,B,A). Ζλεγχοσ αποτφπωςθσ (stencil test): Συγκρίνεται θ τιμι του stencil buffer με μία τιμι αναφοράσ που ορίηει ο προγραμματιςτισ και βάςθ αυτισ αποφαςίηεται θ «τφχθ» του τμιματοσ τθσ εικόνασ. 36

45 Ζλεγχοσ βάκουσ (depth test): Γίνεται ςφγκριςθ τθσ τιμισ βάκουσ του υπό επεξεργαςία εικονοςτοιχείου με τθν τιμι που ζχει αποκθκευτεί ςτθν μνιμθ καρζ. Το κριτιριο (μεγαλφτερο, μεγαλφτερο ι ίςο, μικρότερο κ.α.) για τθν απόρριψθ κακορίηεται από τον προγραμματιςτι. Επιπλζον, ςε αυτό το ςτάδιο γίνονται κι άλλεσ λειτουργίεσ, όπωσ θ ανάμειξθ (blending) και οι λογικζσ πράξεισ επί των τμθμάτων εικόνασ. Με τθν ανάμειξθ χρωμάτων, υπολογίηεται το τελικό χρϊμα του εικονοςτοιχείου με βάςθ τθν τιμι του τρζχοντοσ τμιματοσ εικόνασ, τθσ τιμισ που ιταν ιδθ αποκθκευμζνθ ςτθν μνιμθ καρζ και τθν ςυνάρτθςθ ανάμειξθσ που ορίηει ο προγραμματιςτισ. Οι λογικζσ πράξεισ εφαρμόηονται ανά bit ανάμεςα ςτο byte που ορίηουμε εμείσ ανά χρϊμα και ςτθν τιμι χρϊματοσ του τρζχοντοσ τμιματοσ εικόνασ. Πλεσ οι παραπάνω πράξεισ είναι απλζσ και ςιμερα εκτελοφνται πάντα ςε υλικό χωρίσ ιδιαίτερο κόςτοσ. Λειτουργύεσ επύ τησ προςωρινόσ μνόμησ καρϋ (Frame Buffer) Υπάρχουν λειτουργίεσ που επθρεάηουν ολόκλθρθ τθν τελικι εικόνα. Συγκεκριμζνεσ παράμετροι κακορίηουν τθν περιοχι τθσ μνιμθσ καρζ ςτθν οποία ςχεδιάηουμε τθν γεωμετρία. Επιπλζον, όπωσ ζχει ιδθ αναφερκεί κι αναλυκεί, υποςτθρίηεται ςτερεοςκοπικι απεικόνιςθ και διπλι χριςθ προςωρινισ μνιμθσ. Μποροφμε να ςχεδιάηουμε ςε πολλζσ μνιμεσ ταυτόχρονα, αυξάνοντασ τθν ταχφτθτασ ςε αλγόρικμουσ πολλϊν περαςμάτων. Υπάρχει ακόμα θ δυνατότθτα να μθν επιτρζπουμε τθν αλλαγι των τιμϊν των χρωμάτων ςε περιοχζσ τθσ εικόνασ. Αντίςτοιχα το ίδιο γίνεται για τθν μνιμθ βάκουσ και τθν μνιμθ αποτφπωςθσ. Τζλοσ, από τισ πιο βαςικζσ λειτουργίεσ, είναι ο κακαριςμόσ τθσ μνιμθσ καρζ (αρχικοποίθςθ) για τθν ςχεδίαςθ κάκε νζασ εικόνασ. Επεξεργαςύα εικόνων Τα APIs όμωσ, δεν υποςτθρίηουν μόνο τθν επεξεργαςία και ςχεδίαςθ οντοτιτων γεωμετρίασ. Υποςτθρίηουν, επιπλζον, τθν επεξεργαςία και ςχεδίαςθ εικόνων, δθλαδι εικονοςτοιχείων τα οποία δεν αντιςτοιχοφν ςε γεωμετρία θ οποία απεικονίςτθκε ςτθν διςδιάςτατθ οκόνθ του υπολογιςτι. Στθν ορολογία των APIs οι εικόνεσ ονομάηονται είτε πλαίςια εικονοςτοιχείων είτε sprites (αρκμόσ 11 ςτθν Εικόνα 3). Τα APIs υποςτθρίηουν διάφορεσ τφπουσ (format) εικόνων. Ο προγραμματιςτισ πρζπει να ορίςει τισ παραμζτρουσ οι οποίεσ κακορίηουν το πϊσ είναι αποκθκευμζνα τα δεδομζνα τθσ εικόνασ ςτθν μνιμθ (μικοσ τθσ γραμμισ ςε δεδομζνα κ.α.). Για να είναι οι λειτουργίεσ πιο ακριβείσ, τα εικονοςτοιχεία που διαβάηονται από τθν εφαρμογι μετατρζπονται ςτθν κατάλλθλθ ροι εικονοςτοιχείων από μία λειτουργία που ονομάηεται αποςυμπίεςθ εικονοςτοιχείων (pixel unpacking). Πταν μία εικόνα μεταφζρεται ςτο API, γίνονται οι κατάλλθλεσ unpacking διαδικαςίεσ ζτςι ϊςτε να 37

46 διαβαςτεί και να επεξεργαςτεί με τον ςωςτό τρόπο. Κακϊσ κάκε εικονοςτοιχείο διαβάηεται από τθν μνιμθ, μετατρζπεται ςε μία ομάδα από εικονοςτοιχεία που περιζχουν είτε χρϊμα, είτε βάκοσ, είτε μία τιμι αποτφπωςθσ. Αν θ ομάδα εικονοςτοιχείων αποτελείται από χρϊμα, τα δεδομζνα κατευκφνονται προσ τθν μνιμθ χρϊματοσ ςτθν μνιμθ καρζ. Αντίςτοιχα, αν περιζχει τιμζσ βάκουσ, τα δεδομζνα κατευκφνονται ςτθν μνιμθ βάκουσ του ίδιου καρζ. Στον αρικμό 17 τθσ Εικόνα 3, ςθμειϊνεται θ αντίκετθ διαδικαςία από αυτιν που περιγράψαμε παραπάνω, θ οποία επιςτζφει ςτθν εφαρμογι τα δεδομζνα τθσ εικόνασ, μετά τθν επεξεργαςία τθν οποία πικανό να ζχει υποςτεί ςτθν GPU. Στον αρικμό 13 τθσ Εικόνα 3, υποςτθρίηονται μεταφορζσ μεταξφ τθσ μνιμθσ τθσ GPU (αρικμόσ 15) ενόσ υποςυνόλου ι ενόσ ςυνόλου των εικονοςτοιχείων τθσ εικόνασ. Επιπλζον, ςε αυτό το ςτάδιο επιτρζπονται αλλαγζσ ςτισ τιμζσ των εικονοςτοιχείων και ςτθν ερμθνεία τουσ από το API, για παράδειγμα μπορεί να ςχετίςουμε τιμζσ χρϊματοσ με τιμζσ αποτφπωςθσ και το αντίκετο. Επίςθσ μποροφμε να αντιγράφουμε τμιματα μεταξφ εικόνων. Στον αρικμό 14 τθσ Εικόνα 3, τα εικονοςτοιχεία δζχονται, πλζον, τθν ίδια ακριβϊσ επεξεργαςία με αυτιν που δζχονται τα εικονοςτοιχεία που προζρχονται από τθν επεξεργαςία τθσ γεωμετρίασ και αναλφςαμε ςε προθγοφμενεσ παραγράφουσ. Τζλοσ, ςτον αρικμό 16 τθσ Εικόνα 3, παρζχεται θ δυνατότθτασ να διαβαςτοφν τα περιεχόμενα τθσ μνιμθσ καρζ (αρικμόσ 10), ζτςι ϊςτε είτε να κάνουμε περεταίρω επεξεργαςία (αρικμοί 13, 14 και 15) ςτθν εικόνα είτε να διαβάςουμε τα αποτελζςματα πίςω ςτθν εφαρμογι μασ (αρικμοί 13 και 17). Εφαρμογό υφόσ Θ εφαρμογι υφισ είναι μία από τισ πιο πολφπλοκεσ και απαιτθτικζσ ςε υπολογιςτικι ιςχφ διαδικαςία. Γι αυτό, πάντα, οι GPUs ζχουν εξειδικευμζνο υλικό για τθν εφαρμογι τθσ υφισ. Είναι μία περιοχι των γραφικϊν που επεκτείνεται και βελτιϊνεται ςθμαντικά τα τελευταία χρόνια και παίηει ςθμαντικό ρόλο ςτθν αλθκοφάνεια του τελικοφ αποτελζςματοσ. Ο όροσ εφαρμογι υφισ, περιγράφει τθν διαδικαςία όπου μία εικόνα (υφι) εφαρμόηεται επάνω ςτθν γεωμετρία που ςχεδιάηουμε. Για να γίνει αντιλθπτι θ διαδικαςία αυτι, μποροφμε να τθν παρομοιάςουμε με το τραπεηομάντθλο που απλϊνουμε επάνω ςτο τραπζηι ι με τα ροφχα τα οποία φοράμε. Κάκε μία από τισ επιφάνειεσ προςαρμόηεται ςτο ςχιμα τθσ γεωμετρίασ πάνω ςτθν οποία εφαρμόηεται (τραπζηι και ςϊμα ςτα παραπάνω παραδείγματα). 38

47 Τα APIs ςιμερα υποςτθρίηουν τζςςερα είδθ υφισ: Μίασ διάςταςθσ. Αυτι θ υφι, είναι ζνασ πίνακασ μίασ διάςταςθσ που περιζχει τιμζσ όςεσ το πλάτοσ τθσ. Δφο διαςτάςεων. Είναι πίνακασ δφο διαςτάςεων που περιζχει φψοσ * πλάτοσ τιμζσ. Τριϊν διαςτάςεων. Είναι πίνακασ τριϊν διαςτάςεων που περιζχει φψοσ * πλάτοσ * βάκοσ πλικοσ τιμϊν. Κυβικζσ υφζσ. Είναι ζνα ςφνολο από 6 υφζσ δφο διαςτάςεων. Ανά δφο, αυτζσ οι υφζσ, αναπαριςτοφν τισ κατευκφνςεισ ςε κάκε άξονα του τριςδιάςτατου κόςμου (± X, ± Y, ± Z). Οι υφζσ, είναι λοιπόν, πίνακεσ διαφόρων διαςτάςεων οι οποίοι, ςχεδόν πάντα, περιζχουν τιμζσ χρϊματοσ, οι οποίεσ «απλϊνονται» επάνω ςτθν γεωμετρία για να μασ δϊςουν τθν ψευδαίςκθςθ του υλικοφ από το οποίο είναι φτιαγμζνα τα αντικείμενα του τριςδιάςτατου κόςμου. Στο παράδειγμα τθσ Εικόνα 4, θ εφαρμογι υφισ, είχε ωσ αποτζλεςμα, θ ςφαίρα να φαίνεται πωσ είναι πζτρινθ. Οι υφζσ αποκθκεφονται ςτθν μνιμθ τθσ GPU (αρικμόσ 7 ςτθν Εικόνα 3), οπότε πρζπει να προςπελαφνονται με κάποιο τρόπο. Αυτό γίνεται με χριςθ των μονάδων υφισ (texture units). Ζτςι ονομάηεται το υλικό τθσ GPU που αναλαμβάνει τθν προςπζλαςθ και το «άπλωμα» τθσ υφισ ςτθν γεωμετρία. Κάνοντασ χριςθ του API, ελζγχουμε τθν κατάςταςθ κάκε μίασ από τισ μονάδεσ υφισ. Συγκεκριμζνα, τθν ενεργοποιοφμε ι τθν απενεργοποιοφμε, ελζγχουμε τουσ πίνακεσ μεταςχθματιςμοφ βάςθ των οποίων κάνουμε εφαρμογι τθσ υφισ, ελζγχουμε τον τρόπο με τον οποίο παράγονται οι ςυντεταγμζνεσ για τθν προςπζλαςι τουσ και ορίηουμε ποια υφι κα προςπελαφνεται κάκε φορά. Οι παραμετροποίθςθ που κάνουμε κάκε φορά, αφορά τθν ενεργι μονάδα υφισ. Υπάρχει ςυγκεκριμζνοσ αρικμόσ μονάδων υφισ που μπορεί να είναι ενεργζσ ςε κάκε ςχεδίαςθ εικόνασ ςτισ GPUs κι εξαρτάται από τον καταςκευαςτι. Ράντωσ, ο ελάχιςτοσ αρικμόσ μονάδων υφισ που υποςτθρίηεται ςιμερα είναι 8. Κάκε μονάδα υφισ, προφανϊσ, προςπελαφνει διαφορετικι υφι ςε είδοσ και διαςτάςεισ. Θ προςπζλαςθ ςτισ υφισ γίνεται κάνοντασ χριςθ διαφορετικϊν κλιςεων του API, ανάλογα με τισ ιδιότθτζσ τθσ. Βαςικι λειτουργία, ςτθν εφαρμογι υφϊν, είναι θ πολλαπλι λεπτομζρεια υφισ (mipmapping). Ουςιαςτικά, με το mipmapping, δεν αποκθκεφεται ςτο API μόνο μία ζκδοςθ τθσ υφισ που κζλουμε να εφαρμόςουμε επάνω ςτθν γεωμετρία, αλλά πολλαπλζσ ςε διαφορετικζσ διαςτάςεισ. Συγκεκριμζνα, δθμιουργείται ζνασ πίνακασ που περιζχει τισ πολλαπλζσ εκδόςεισ (mipmap levels) και κάκε ζκδοςθ είναι το μιςό μζγεκοσ ςε διαςτάςεισ από τθν αμζςωσ μεγαλφτερι τθσ. Θ πιο μικρι ζκδοςθ τθσ υφισ που αποκθκεφει αυτόσ ο 39

48 πίνακασ είναι διάςταςθσ 1Χ1, δθλαδι, ζνα εικονοςτοιχείο. Στθν Εικόνα 19, φαίνεται θ εφαρμογι του mipmapping. Θ ιδζα πίςω από το mipmapping είναι ότι τα αντικείμενα του εικονικοφ τριςδιάςτατου δεν ςχεδιάηονται ςτισ αρχικζσ διαςτάςεισ τουσ, αλλά πιο μικρά ι μεγάλα, ανάλογα με τθν απόςταςθ από τον παρατθρθτι και τισ ιδιότθτεσ τθσ κάμερασ που ζχουμε ορίςει. Επομζνωσ, θ εφαρμογι τθσ ίδιασ υφισ ςτισ διαφορετικζσ κάκε φορά διαςτάςεισ τθσ γεωμετρίασ δεν ζχει πολφ καλά οπτικά αποτελζςματα κι είναι επικυμθτό κάκε φορά που ςχεδιάηεται ζνα αντικείμενο να επιλζγεται θ υφι τθσ κατάλλθλθσ διάςταςθσ ςχετικά με το μζγεκόσ του. Αυτό γίνεται αυτόματα ςτθν περίπτωςθ που ζχουμε ενεργοποιιςει το mipmapping ςτθν GPU. Επιπλζον, θ GPU μπορεί να κάνει παρεμβολι ανάμεςα ςε δφο διαφορετικοφ μεγζκουσ εκδόςεισ τισ ίδιασ υφισ κι επομζνωσ να ζχουμε πολφ ποιοτικά αποτελζςματα ςτθν τελικι εικόνα. Στθν Εικόνα 20, φαίνεται θ διαφορά ςτθν ποιότθτα, ςε μία εικόνα που κάνει χριςθ του mipmapping και τθν ίδια εικόνα χωρίσ τθν χριςθ mipmapping. Υπάρχουν κι άλλεσ παράμετροι που ορίηει ο προγραμματιςτισ για τθν προςπζλαςθ ςτισ υφζσ μζςω των μονάδων υφισ. Συγκεκριμζνα, ορίηει ποιο είναι το αποτζλεςμα (δθλαδι, θ αρικμθτικι τιμι), το οποίο επιςτρζφεται όταν οι ςυντεταγμζνεσ προςπζλαςθσ ςτθν υφι είναι μεγαλφτερεσ από τισ διαςτάςεισ τθσ. Υπάρχουν τζςςερισ επιλογζσ ςε αυτό το ενδεχόμενο, οι οποίεσ παρουςιάηονται ςχθματικά ςτθν Εικόνα 21. Στο παράδειγμα αυτό, οι υφζσ είναι δφο διαςτάςεων. Στο πάνω μζροσ τθσ εικόνασ, θ υφι είναι το χαμογελαςτό πρόςωπο κι επαναλαμβάνεται τρεισ φορζσ ςε κάκε κατεφκυνςθ, ενϊ ςτο κάτω μζροσ θ εικόνα είναι το καρό μοτίβο που επίςθσ επαναλαμβάνεται τρεισ φορζσ. 40

49 Εικόνα 19: Θ τεχνικι mipmapping. Κάκε υφι διευκυνςιοδοτείται με τιμζσ που κυμαίνονται ςτο διάςτθμα *0,1+. Τιμζσ που βρίςκονται ζξω από αυτό το κλειςτό διάςτθμα, αντιμετωπίηονται με ζναν από τουσ τρόπουσ που φαίνονται ςτθν Εικόνα 21. Θ προςπζλαςθ επανάλθψθσ και κακρεπτιςμοφ είναι προφανείσ ωσ προσ τθν λειτουργία τουσ. Θ μζκοδοσ περιοριςμοφ ςε μία τιμι, επιςτρζφει μία ςυγκεκριμζνθ τιμι, που ορίηει ο προγραμματιςτισ, όταν οι διευκφνςεισ είναι εκτόσ του *0,1+ ενϊ θ μζκοδοσ περιοριςμοφ ςτθν τιμι του ορίου, επιςτρζφει τθν τιμι που ζχει θ υφι ςτο 0 ι ςτο 1 ανάλογα με το πιο άκρο υπερβαίνουν οι τιμζσ κάκε φορά. 41

50 Εικόνα 20: Διαφορά ςτθν ποιότθτα ςχεδίαςθσ χωρίσ (επάνω) και με (κάτω) χριςθ του mipmapping. Επιπλζον, ο προγραμματιςτισ ορίηει ποια είναι θ δειγματολθψία τθσ υφισ όταν δεν υπάρχει ζνα προσ ζνα αντιςτοίχιςθ ςτα εικονοςτοιχεία τθσ υφισ με αυτά τθσ εικόνασ ςτθν οποία κα εφαρμοςτεί. Θ ιδιότθτα αυτι ζχει άμεςθ ςχζςθ με το mipmapping που περιγράψαμε παραπάνω αφοφ χρθςιμοποιοφνται αυτζσ οι τιμζσ για το φιλτράριςμα τθσ υφισ πριν εφαρμοςτεί ςτθν γεωμετρία. Ακόμα ορίηεται ποιο από τα mip map levels είναι το βαςικό. Συνικωσ είναι το επίπεδο 0, δθλαδι το επίπεδο με τθν μεγαλφτερθ λεπτομζρεια. Ο προγραμματιςτισ, ακόμα, κακορίηει με ποιο τρόπο κα εφαρμοςτεί θ τιμι τθσ υφισ που προςπελαφνεται επάνω ςτθν γεωμετρία. Υπάρχουν επιλογζσ όπωσ: Θ αντικατάςταςθ του χρϊματοσ τθσ γεωμετρίασ, θ τροποποίθςι του, θ ανάμιξθ με το ιδθ υπάρχον χρϊμα, θ πρόςκεςθ, θ ανάμιξθ ςυγκεκριμζνων ςυνιςτωςϊν χρϊματοσ (κόκκινο, πράςινο, μπλε), θ ανάμιξθ βάςθ τθσ άλφα ςυνιςτϊςασ κ.α. 42

51 Εικόνα 21: Οι διαφορετικοί τρόποι προςπζλαςθσ των υφϊν. Πάνω αριςτερά: Επανάλθψθ. Πάνω Δεξιά: Κακρεπτιςμόσ. Κάτω αριςτερά: Περιοριςμόσ ςε μία τιμι. Κάτω δεξιά: Περιοριςμόσ ςτθν οριακι τιμι τθσ υφισ. Τα APIs υποςτθρίηουν τθν εφαρμογι πολλαπλισ υφισ (multitexturing) ςτθν γεωμετρία. Αυτό ςθμαίνει ότι οι παραπάνω διαδικαςίεσ μποροφν να εφαρμοςτοφν ςε διαφορετικζσ υφζσ ταυτόχρονα και να ςυνδυαςτοφν οι τιμζσ χρϊματοσ κάκε υφισ ςτο τελικό αποτζλεςμα. Συγκεκριμζνα, ορίηουμε τθν κατάςταςθ για τθν προςπζλαςθ ςτθν πρϊτθ μονάδα υφισ, και θ τιμι που προςπελαφνεται προωκείται ςτθν επόμενθ μονάδα υφισ που με τθν ςειρά τθσ προωκεί τθν δικι τθσ τιμι μζχρι τθν τελευταία ενεργι μονάδα. Τζλοσ, οι ςυντεταγμζνεσ για τθν προςπζλαςθ τθσ υφισ μποροφν να παράγονται αυτόματα από το API, είτε να τισ παράγουμε εμείσ προγραμματιςτικά. Τα APIs προςφζρουν τρία βαςικά είδθ ςυντεταγμζνων. Το πρϊτο είδοσ, εφαρμόηει μία υφι ςτον αντικείμενο ζτςι ϊςτε να είναι ςτακερι πάνω ςε αυτό, δθλαδι να περιςτρζφεται και να μετατοπίηεται όπωσ ακριβϊσ και θ γεωμετρία πάνω ςτθν οποία εφαρμόηεται. Το δεφτερο είδοσ, παράγει ςυντεταγμζνεσ, οι οποίεσ είναι ςτακερζσ ωσ προσ τον παρατθρθτι, επομζνωσ κακϊσ μετακινοφνται τα αντικείμενα του εικονικοφ κόςμου, μετακινοφνται κι οι υφζσ πάνω ςε αυτά. Το τρίτο είδοσ παραγωγισ ςυντεταγμζνων εφαρμόηει μία υφι ςτα αντικείμενα ςαν να τα περιζβαλλε. Αυτό το είδοσ χρθςιμοποιείται για τθν εξομοίωςθ αντικειμζνων που αντανακλοφν το φωσ, όπωσ ζνα καινοφριο αυτοκίνθτο ι ζνασ κακρζπτθσ. 43

52 Παρϊδειγμα ςχεδύαςησ γεωμετρύασ με ταυτόχρονη εφαρμογό υφόσ Στισ προθγοφμενεσ παραγράφουσ, ζγινε ανάλυςθ των μεταςχθματιςμϊν που εφαρμόηονται επί τθσ γεωμετρίασ, ϊςτε αυτι να εμφανιςτεί ςτθν οκόνθ του υπολογιςτι ι ςε κάποιο αντίςτοιχο μζςο προβολισ. Σε αυτι τθν ενότθτα, κα παρουςιαςτεί ζνα απλό παράδειγμα ςχεδίαςθσ γεωμετρίασ με ταυτόχρονθ εφαρμογι υφισ. Σκοπόσ είναι να γίνει κατανοθτι όλθ αυτι θ διαδικαςία γιατί είναι βαςικι και κα βοθκιςει ςτθν ανάλυςθ των πιο πολφπλοκων αλγορίκμων που αναπτφχκθκαν. Κζλουμε να ςχεδιάςουμε ζνα τετράγωνο ςτο οποίο κα εφαρμόςουμε μία υφι. Θ εφαρμογι υφισ κα γίνει με τρόπο ϊςτε να παραμζνει ςτακερι επάνω ςτο τετράγωνο. Ακόμα, θ διαδικαςία εφαρμογισ τθσ υφισ λαμβάνει χϊρα, αφοφ θ γεωμετρία ζχει απεικονιςτεί ςε τμιματα εικόνασ. Το τετράγωνο (τζςςερα ςθμεία 2 ορκογϊνια ιςοςκελι τρίγωνα με κοινι υποτείνουςα) ζχει διαςτάςεισ 10x10 μονάδεσ, ενϊ είναι οριςμζνο ςε ςφςτθμα ςυντεταγμζνων με τθν αρχι των αξόνων να βρίςκεται ςτο κζντρο του. Δθλαδι, τα τζςςερα ςθμεία του τετραγϊνου ςε αυτό το ςφςτθμα ςυντεταγμζνων που ονομάηεται χϊροσ αντικειμζνου (object space) είναι τα: (5,5,0), (5,-5,0), (-5,-5,0), (-5,5,0) Θ w ςυντεταγμζνθ για όλα τα ςθμεία είναι 1 και από ότι βλζπουμε θ z ςυντεταγμζνθ όλων των ςθμείων είναι ίδια κι ίςθ με 0 αφοφ το ςχιμα μασ είναι επίπεδο. Επιπλζον, για να γίνει θ εφαρμογι υφισ, πρζπει θ γεωμετρία να περιζχει πλθροφορία ςυντεταγμζνων υφισ. Κεωροφμε πωσ θ υφι καλφπτει πλιρωσ κι ακριβϊσ τθν επιφάνεια του τετραγϊνου που κζλουμε να ςχεδιάςουμε, επομζνωσ οι ςυντεταγμζνεσ υφισ για τα παραπάνω ςθμεία είναι αντίςτοιχα: (1,0), (1,1), (0,1), (0,0) Οι ςυντεταγμζνεσ υφισ είναι αυτζσ, γιατί το ςθμείο (0,0) ορίηεται ςαν το άνω αριςτερά ςθμείο τθσ εκάςτοτε διςδιάςτατθσ υφισ. Στο παράδειγμά μασ, το τετράγωνο κα ςχεδιαςτεί ςτθν ίδια κζςθ ςτθν οποία ορίςτθκε. Δθλαδι, δεν κζλουμε να εφαρμόςουμε μεταςχθματιςμό μετατόπιςθσ, παραμόρφωςθσ ι περιςτροφισ ςε αυτό. Επομζνωσ ο πίνακασ μεταςχθματιςμοφ μοντζλου είναι ο μοναδιαίοσ: Μ =

53 Για να ςχεδιάςουμε τθν γεωμετρία πρζπει να ορίςουμε τισ ιδιότθτεσ του παρατθρθτι (ζνα νζο ςφςτθμα ςυντεταγμζνων που ςθμαίνει περιςτροφι του αρχικοφ ςυςτιματοσ ςυντεταγμζνων) και τθν κζςθ του (μετατόπιςθ του αρχικοφ ςυςτιματοσ ςυντεταγμζνων ςτο οποίο ορίςτθκε το αντικείμενο). Επιπλζον, πρζπει να ορίςουμε τον πίνακα προβολισ που επικυμοφμε, δθλαδι τισ ιδιότθτεσ τθσ κάμερασ με τθν οποία παρατθροφμε το τετράγωνο. Κεωροφμε λοιπόν, πωσ το ςφςτθμα ςυντεταγμζνων του παρατθρθτι ζχει τον ίδιο προςανατολιςμό με το αρχικό ςφςτθμα ςυντεταγμζνων. Αυτό ςθμαίνει πωσ το επάνω αριςτερά 3x3 τμιμα του μεταςχθματιςμοφ παρατθρθτι είναι ίςο με το μοναδιαίο πίνακα. Ακόμα, ο παρατθρθτισ βρίςκεται -200 μονάδεσ μακριά από τθν αρχι των αξόνων επί του άξονα z. Θ κζςθ του δθλαδι είναι θ (0,0,-200,1) και κοιτά ςτθν αρχι των αξόνων. Ο πίνακασ λοιπόν που περιγράφει τον μεταςχθματιςμό παρατιρθςθσ είναι ο: V = Κα χρθςιμοποιιςουμε ςυμμετρικι προβολι προοπτικισ, επομζνωσ ο πίνακασ μεταςχθματιςμοφ ςε αυτι τθν περίπτωςθ προκφπτει από τον παρακάτω τφπο: P proj sym = 1 r cot a cot a f 0 0 f n fn f n Λςχφει r = 1, γιατί κα απεικονίςουμε ςε παράκυρο διαςτάςεων 512x512 εικονοςτοιχείων, ενϊ θ γωνία κζαςθσ είναι a = 45 μοίρεσ. Επιπλζον, θ όραςι μασ εκτείνεται από το n = 1 ζωσ f = 1000 μονάδεσ. Αντικακιςτϊντασ τισ τιμζσ αυτζσ ζχουμε: P = Εφαρμόηουμε λοιπόν τουσ παραπάνω 3 μεταςχθματιςμοφσ ςτθν αρχικι γεωμετρία του τετραγϊνου με τθν εξισ ςειρά: V transformed = M V P V initial 45

54 Για κάκε ζνα από τα 4 ςθμεία του τετραγϊνου παίρνουμε: (5,5,0) ( , , ) (5,-5,0) ( , , ) (-5,-5,0) ( , , ) (-5,5,0) ( , , ) Πλα τα παραπάνω ςθμεία ζχουν w = 200, οπότε μετά τθν διαίρεςθ προοπτικισ κάκε ςθμείο απεικονίηεται ςτον κανονικοποιθμζνο όγκο κι ζχει τισ εξισ ςυντεταγμζνεσ: ( , , ) / 200 = ( , , 0,99996) ( , , ) / 200 = ( , , 0,99996) ( , , ) / 200 = ( , , 0,99996) ( , , ) / 200 = ( , , 0,99996) Στθν ςυνζχεια μεταςχθματίηονται οι x,y ςυνιςτϊςεσ του κανονικοποιθμζνου όγκου προβολισ ςε ςυντεταγμζνεσ οκόνθσ, οπότε ζχουμε: ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) Επομζνωσ, τα τζςςερα ςθμεία του τετραγϊνου που ςχεδιάηουμε κα απεικονιςτοφν τελικά, ςτα εξισ pixels τθσ εικόνασ, ςτθν οκόνθ του υπολογιςτι (θ ανάλυςθ που ζχουμε επιλζξει είναι 512x512 pixels): ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) Από ότι βλζπουμε, οι ςυντεταγμζνεσ των ςθμείων όταν αυτά απεικονίηονται ςε εικονοςτοιχεία ςτθν οκόνθ του υπολογιςτι δεν είναι ακζραιοι αρικμοί. Αυτό ςθμαίνει ότι δεν είναι ακριβϊσ ευκυγραμμιςμζνα τα εικονοςτοιχεία με τισ πραγματικζσ ςυντεταγμζνεσ των μεταςχθματιςμζνων ςθμείων. Το φαινόμενο αυτό ζχει ωσ αποτζλεςμα να παρουςιάηονται ζντονεσ ακμζσ ςτο περίγραμμα των 46

55 αντικειμζνων. Θ λφςθ ςε αυτό το πρόβλθμα είναι ο multisample buffer που παρουςιάςτθκε ςε προθγοφμενθ ενότθτα και ζνα παράδειγμα εφαρμογισ του είναι θ Εικόνα 7. Με τον multisample buffer κάκε εικονοςτοιχείο δειγματολθπτείται πολλαπλζσ φορζσ ζτςι ϊςτε να υπολογίηεται με ακρίβεια πιο ποςοςτό του καλφπτει κάκε ςχιμα ςτθν τελικι εικόνα κι ζτςι να χρωματίηεται ανάλογα με τα ποςοςτά κάλυψθσ κι όχι από ζνα χρϊμα αποκλειςτικά. Τελικά, βλζπουμε ότι το τετράγωνο απεικονίςτθκε ςε = pixels ςτο x άξονα τθσ οκόνθσ και ςε επίςθσ pixels ςτον y άξονα τθσ οκόνθσ, θ οποία ζχει 512x512 pixels ανάλυςθ. Αυτό που απομζνει είναι να εφαρμοςτεί θ υφι ςτο τετράγωνο, αφοφ αυτό πλζον ζχει μετατραπεί ςε εικονοςτοιχεία. Κεωροφμε πωσ θ υφι ζχει διαςτάςεισ 256x256 pixels κι ότι εφαρμόηουμε ςε αυτιν, τθν τεχνικι του mip-mapping που παρουςιάςτθκε ςτθν προθγοφμενθ ενότθτα. Αυτό ςθμαίνει πωσ θ υφι αποκθκεφεται από το API ςε διαφορετικά μεγζκθ και ςυγκεκριμζνα ςτα εξισ: 256x256 (αρχικό μζγεκοσ), 128x128, 64x64, 32x32, 16x16, 8x8, 4x4, 2x2, 1x1. Ενεργοποιϊντασ το φιλτράριςμα, θ GPU επιλζγει τθν ι τισ υφζσ που ζχουν το κατάλλθλο μζγεκοσ ςε ςχζςθ με τα εικονοςτοιχεία που καταλαμβάνει θ γεωμετρία ςτθν οκόνθ ζτςι ϊςτε να μθν παρουςιάηονται προβλιματα ποιότθτασ όπωσ φαίνονται ςτθν Εικόνα 20. Στο ςυγκεκριμζνο παράδειγμα, τα εικονοςτοιχεία τα οποία πρζπει να καλυφκοφν από τθν υφι είναι x , δθλαδι όςθ θ επιφάνεια του τετραγϊνου. Αυτό ςθμαίνει πωσ θ GPU κα επιλζξει τθν υφι με μζγεκοσ 32x32 αν εφαρμόηουμε διγραμμικό φιλτράριςμα (bilinear filtering), ι τισ υφζσ που ζχουν μζγεκοσ 32x32 και 16x16 αν εφαρμόηουμε τριγραμμικό φιλτράριςμα (trilinear filtering). Θ επιλογι του κατάλλθλου μεγζκουσ γίνεται από τθν GPU με βάςθ τθν παράγωγο που ζχουν οι ςυντεταγμζνεσ υφισ ςε ςχζςθ με το μζγεκοσ τθσ υφισ. Στθν ςυγκεκριμζνθ περίπτωςθ ο ρυκμόσ αφξθςθσ των ςυντεταγμζνων υφισ είναι 1/ ανά εικονοςτοιχείο ενϊ το ιδανικό κα ιταν θ αφξθςθ να είναι 1/256, δθλαδι ίςθ με τθν φυςικι ανάλυςθ τθσ υφισ. Οι γλώςςεσ προγραμματιςμού των GPUs Στθν προθγοφμενθ ενότθτα περιγράψαμε τα APIs. Αυτι θ περιγραφι, προφανϊσ, δεν είναι λεπτομερισ, αφοφ ςκοπόσ αυτισ τθσ εργαςίασ είναι να δθμιουργιςει το υπόβακρο για τθν ανάλυςθ των δικϊν μασ υλοποιιςεων κι όχι μία εκτενισ περιγραφι των APIs για τθν παραγωγι γραφικϊν. Στθν βιβλιογραφία αναφζρονται πολφ καλζσ πθγζσ, όπου ο ενδιαφερόμενοσ μπορεί να εμβακφνει ςε αυτά [7] [8] [9] [10]. Ραρόλα αυτά, ζγινε εμφανζσ, πωσ θ πολυπλοκότθτα των καταςτάςεων των APIs και των παραμζτρων τουσ, τισ οποίεσ καλείται να ελζγξει και να ορίςει ο προγραμματιςτισ είναι πάρα πολφ μεγάλοσ, με αποτζλεςμα θ παραγωγι γραφικϊν να γίνεται μία πολφπλοκθ διαδικαςία, με μεγάλθ τθν πικανότθτα προβλθμάτων ςτο 47

56 οπτικό αποτζλεςμα, χωρίσ ανάλυςθ κι επανζλεγχο του κϊδικα. Επιπλζον, με τθν ςυνεχι κλιςθ ςυναρτιςεων και τθν παραμετροποίθςθ των GPUs ζχουμε μεγάλθ επιβάρυνςθ ςτθν απόδοςθ τθσ εφαρμογισ αφοφ αυξάνεται θ επικοινωνία ανάμεςα ςτο πρόγραμμα, το API και τθν GPU. Θ ενςωμάτωςθ ολοζνα και περιςςότερθσ λειτουργικότθτασ ςτισ GPUs τα τελευταία χρόνια και θ δθμιουργία αντίςτοιχα περιςςότερων καταςτάςεων και παραμζτρων ςτα APIs για τον ζλεγχό τουσ, οδιγθςε ςτθν δθμιουργία προγραμματιηόμενων μονάδων ςτο pipeline των GPUs με ςκοπό όχι μόνο τθν μεγαλφτερθ ευελιξία και των ζλεγχο τθσ πολυπλοκότθτασ προγραμματιςμοφ αλλά και τθν δθμιουργία νζων ςκιάςεων που πριν ιταν αδφνατο να επιτευχκοφν. Οι γλϊςςεσ προγραμματιςμοφ που ζχουν επικρατιςει ςιμερα είναι οι GLSL (OpenGL Shading Language) [7], HLSL (High Level Shading Language) [11] και Cg (C for graphics) [12]. Θ πρϊτθ γλϊςςα αναπτφχκθκε από τθν κοινότθτα του OpenGL και ςυνεργάηεται με αυτό, θ δεφτερθ αναπτφχκθκε από τθν Microsoft και ςυνεργάηεται με το DirectX και θ τρίτθ αναπτφχκθκε από τθν Nvidia και ςυνεργάηεται και με τα δφο παραπάνω APIs. Πλεσ οι παραπάνω γλϊςςεσ προςφζρουν τισ ίδιεσ δυνατότθτεσ ςτον προγραμματιςτι. Θ διαφοροποίθςι τουσ ζγκειται ςτο ςυντακτικό τουσ και ςτθν ενςωμάτωςι τουσ ςτο API. Συγκεκριμζνα, οι γλϊςςα HLSL ενθμερϊνεται και αναβακμίηεται με νζα χαρακτθριςτικά από τθν Microsoft με τρόπο αντίςτοιχο του DirectX. Δθλαδι, θ Microsoft ανά τακτά χρονικά δθμοςιεφει καινοφριεσ εκδόςεισ του μεταγλωττιςτι (compiler) που μεταφράηει τα προγράμματα γραμμζνα ςε HLSL. Θ μετάφραςθ αυτι δεν οδθγεί ςε γλϊςςα μθχανισ απ ευκείασ, αλλά ςε μία ενδιάμεςθ γλϊςςα που υποςτθρίηεται από τον οδθγό κάκε κάρτασ γραφικϊν. Αντίςτοιχα, ςυμβαίνει με τθν Cg. Τζλοσ, θ GLSL γλϊςςα ακολουκεί μία διαφορετικι φιλοςοφία. Δεν παρζχεται μεταγλωττιςτισ από τθν OpenGL ARB ομάδα που τθν ενθμερϊνει, αλλά απαιτείται από κάκε καταςκευαςτι GPUs να παρζχει τον κατάλλθλο μεταγλωττιςτι, που είναι ενςωματωμζνοσ μζςα ςτον οδθγό τθσ GPU, για τθν μετάφραςθ κι εκτζλεςθ των προγραμμάτων. Τζλοσ, ςθμαντικό κζμα ςε κάκε γλϊςςα προγραμματιςμοφ είναι θ ενςωμάτωςι τθσ με το API. Δθλαδι, θ επικοινωνία ανάμεςα ςτα προγραμματιηόμενα τμιματα τθσ GPU και ςτο API. Τα προγραμματιηόμενα τμιματα των GPUs αυξάνονται όςο αυτζσ εξελίςςονται κι ζτςι επεκτείνεται το ςυντακτικό τθσ γλϊςςασ ενϊ γίνονται οι κατάλλθλεσ αλλαγζσ ςτα APIs για τθν διαχείριςθ των νζων προγραμματιηόμενων μονάδων. Θ ανάλυςθ που κα ακολουκιςει κα γίνει με βάςθ το μοντζλο ςκίαςθσ 48

57 3.0. Αυτό το μοντζλο ςκίαςθσ, ορίηει 2 προγραμματιηόμενα τμιματα επάνω ςε μία GPU, τουσ Vertex και τουσ Pixel επεξεργαςτζσ. Ζνα πρόγραμμα γραμμζνο να τρζχει ςτουσ Vertex επεξεργαςτζσ εκτελείται όμοια για κάκε ζνα ςθμείο γεωμετρίασ που δζχεται ςτθν είςοδό του, μαηί με όποια επιπλζον πλθροφορία. Αντίςτοιχα, ζνα πρόγραμμα γραμμζνο για τουσ Pixel επεξεργαςτζσ, εκτελείται όμοια, για κάκε ζνα εικονοςτοιχείο τθσ οκόνθσ. Θ εκτζλεςθ είναι ςειριακι και δεν υπάρχει επικοινωνία μεταξφ γειτονικϊν ςθμείων ι εικονοςτοιχείων. Κάκε ζνα αντιμετωπίηεται ανεξάρτθτα από τθν γεωμετρικι οντότθτα ςτθν οποία ανικει. Ο προγραμματιςτισ ζχει τρόπουσ να χρθςιμοποιιςει πλθροφορίεσ από γειτονικά εικονοςτοιχεία ι γεωμετρία, αλλά αυτό απαιτεί να αναπτφξει δικοφσ του αλγορίκμουσ. Στθν ςυνζχεια, κα δοφμε τα κυριότερα χαρακτθριςτικά των γλωςςϊν προγραμματιςμοφ των GPUs. Πλεσ οι γλϊςςεσ είναι μθ αντικειμενοςτραφείσ και ζχουν ςαν βάςθ τθν C, με διαφοροποιιςεισ ςτο ςυντακτικό κι ενςωμάτωςθ χαρακτθριςτικϊν από τθν C++. Συγκεκριμζνα, από τθν C++ οι γλϊςςεσ ζχουν υιοκετιςει τουσ constructors και τθν υπερφόρτωςθ μεκόδων (method overloading). Από τθν άλλθ, επειδι τα προγράμματα πρζπει να τρζχουν πολφ γριγορα ςτθν GPU κι επειδι είναι ςυνικωσ μικρά ςε μζγεκοσ και απαιτθτικά ςε μακθματικζσ πράξεισ δεν υιοκετικθκαν άλλα αντικειμενοςτραφι χαρακτθριςτικά αλλά ακολουκείται το προςτακτικό μοντζλο προγραμματιςμοφ. Οι γλϊςςεσ των GPUs υποςτθρίηουν επιπλζον τφπουσ δεδομζνων από ότι θ C. Υποςτθρίηονται πίνακεσ διάςταςθσ 4x4 οι οποίοι αποκθκεφουν τουσ πίνακεσ μεταςχθματιςμϊν και προβολισ, και διανφςματα διάςταςθσ 2,3 και 4 ςτοιχείων. Πλοι οι παραπάνω τφποι μποροφν να περιζχουν bool, float, half float, ι int τιμζσ. Επίςθσ, όλεσ οι πράξεισ που εκτελοφνται ςτισ GPUs παραλλθλοποιοφνται από τον μεταγλωττιςτι και υπολογίηονται ςε διανφςματα των τεςςάρων ςτοιχείων. Αυτό ςυμβαίνει γιατί τόςο τα ςθμεία ςτον χϊρο, όςο και το χρϊμα ςτθν οκόνθ αναπαρίςταται, όπωσ ζχουμε ιδθ αναφζρει από τζςςερισ ςυνιςτϊςεσ. Πλεσ οι πράξεισ ςτθν GPU γίνονται με ακρίβεια 32bit floating point αρικμθτικι, ενϊ υπάρχουν υλοποιιςεισ που ζχουν μεγάλο κόςτοσ αλλά υποςτθρίηουν και 64bit floating point ακρίβεια. Οι δεφτερεσ, χρθςιμοποιοφνται όχι μόνο για τθν παραγωγι γραφικϊν αλλά και για υπολογιςμό γενικοφ ςκοποφ που απαιτεί ταχφτθτα ςε ςυνδυαςμό με ακρίβεια ςτο αποτζλεςμα. Γενικά, οι GPUs δεν χρθςιμοποιοφν denormals, γιατί κάτι τζτοιο απαιτεί υλικό και δεν απαιτείται τζτοιου είδουσ ακρίβεια από τθν κοινότθτα των τριςδιάςτατων εφαρμογϊν. Ζνα ςθμαντικό χαρακτθριςτικό των γλωςςϊν είναι οι ενςωματωμζνεσ ςυναρτιςεισ που διακζτουν. Οι ςυναρτιςεισ είναι μακθματικζσ και μποροφν να κατθγοριοποιθκοφν ςε τρεισ κατθγορίεσ: τριγωνομετρικζσ, εκκετικζσ και γενικοφ ςκοποφ. Αυτζσ οι ςυναρτιςεισ υπάρχουν για να διευκολφνουν τον προγραμματιςμό αφοφ αποτελοφν εργαλεία που χρθςιμοποιοφνται πολφ ςυχνά για τθν δθμιουργία 49

58 ςκιάςεων. Επίςθσ, προςφζρουν ομοιογζνεια ςτα προγράμματα και ςε άλλεσ περιπτϊςεισ αποτελοφν τον μοναδικό τρόπο για τθν προςπζλαςθ του υλικοφ από τον προγραμματιςτι (όπωσ ςτθν περίπτωςθ τθσ προςπζλαςθσ τθσ υφισ). Επιπλζον, επειδι υλοποιοφνται από τον καταςκευαςτι ζχουν και τθν μζγιςτθ δυνατι απόδοςθ. Σθμαντικό είναι να αποςαφθνιςτεί πωσ το API επικοινωνεί με τα προγράμματα τα οποία εκτελοφνται ςτθν GPU κι ζχουν γραφεί με μία από τισ παραπάνω γλϊςςεσ. Σε αυτό το κζμα υπάρχουν δφο προςεγγίςεισ. Το OpenGL επικοινωνεί με τα GLSL προγράμματα με χριςθ ςυναρτιςεων που ορίηουν ποιο δεδομζνο που κρατά το OpenGL αντιςτοιχεί ςτθν εκάςτοτε είςοδο του GLSL προγράμματοσ. Γίνεται δθλαδι μία ςφνδεςθ (binding) κατά τθν εκτζλεςθ του κϊδικα ανάμεςα ςτα δεδομζνα του OpenGL και τα δεδομζνα που απαιτεί ζνα GLSL πρόγραμμα για να τρζξει. Σε αυτό το ςθμείο γίνονται ζλεγχοι ορκότθτασ ανάμεςα ςτο είδοσ των δεδομζνων που δίνει το OpenGL και τα δεδομζνα που περιμζνει το GLSL πρόγραμμα. Επιπλζον, υπάρχει επικοινωνία ανάμεςα ςτα επιμζρουσ GLSL προγράμματα (Vertex Shaders και Pixel Shaders) αφοφ θ ζξοδοσ από τον Vertex Shader αποτελεί τθν είςοδο για τον Pixel Shader. Θ αντιςτοίχιςθ των ειςόδων και των εξόδων και ςε αυτι τθν περίπτωςθ γίνεται με τρόπο παρόμοιο. Το DirectX επικοινωνεί με τα HLSL προγράμματα και οι Vertex Shaders και Pixel Shaders μεταξφ τουσ, κάνοντασ χριςθ προκακοριςμζνων λζξεων (semantics). Συγκεκριμζνα για τθν επικοινωνία ανάμεςα ςτο Vertex πρόγραμμα και το DirectX υπάρχουν οι παρακάτω προκακοριςμζνεσ λζξεισ που χρθςιμοποιοφνται για τθν αντιςτοίχιςθ των ειςόδων. Στο HLSL πρόγραμμα ο προγραμματιςτισ ορίηει μεταβλθτζσ οι οποίεσ ακολουκοφνται από μία από τισ παρακάτω λζξεισ κάνοντασ χριςθ του εξισ ςυντακτικοφ: <όνομα μεταβλθτισ> : προκακοριςμζνθ λζξθ. Για παράδειγμα ο κϊδικασ: geometry : POSITION0 ςθμαίνει πωσ θ μεταβλθτι με όνομα geometry, περιζχει τθν γεωμετρία του μοντζλου που τθσ παρζχει το DirectX. Στουσ παρακάτω πίνακεσ το *n+ ςθμαίνει πωσ οι δεςμευμζνεσ λζξεισ μπορεί να ζχουν n ςτο πλικοσ διαφορετικά ονόματα. Για παράδειγμα το COLOR[N] αντιςτοιχεί ςτο: COLOR0, COLOR1, COLOR2,, COLORN. Επομζνωσ ςαν είςοδοσ ςτο πρόγραμμα μπορεί να υπάρχουν πάνω από μία τιμζσ χρϊματοσ. 50

59 Είςοδοσ Περιγραφι Σφποσ δεδομζνων BINORMAL[n] Συνεφαπτομζνθ float4 BLENDINDICES[n] Δείκτεσ ανάμιξθσ uint BLENDWEIGHT[n] Βάρθ ανάμιξθσ float COLOR[n] Χρϊμα διάχυςθσ ι ανάκλαςθσ float4 NORMAL[n] Κάκετο διάνυςμα επιφάνειασ float4 POSITION[n] Συντεταγμζνεσ ςθμείου float4 POSITIONT Συντεταγμζνεσ μεταςχθματιςμζνου ςθμείου float4 PSIZE[n] Μζγεκοσ ςθμείου float TANGENT[n] Εφαπτομζνθ float4 TEXCOORD[n] Συντεταγμζνεσ υφισ float4 Οι προκακοριςμζνεσ λζξεισ για τθν περιγραφι των εξόδων του Vertex Shader είναι: Ζξοδοσ Περιγραφι Σφποσ δεδομζνων COLOR[n] Χρϊμα διάχυςθσ ι ανάκλαςθσ float4 FOG Τιμι ομίχλθσ για το ςθμείο float POSITION[n] Κζςθ ενόσ ςθμείου ςε ομογενείσ ςυντεταγμζνεσ. Θ κζςθ ςτθν οκόνθ υπολογίηεται διαιρϊντασ με w. Κάκε Vertex Shader πρζπει να υπολογίηει αυτι τθν τιμι. float4 PSIZE Μζγεκοσ ςθμείου float TESSFACTOR[n] Ραράγοντασ διακριτοποίθςθσ float TEXCOORD[n] Συντεταγμζνεσ υφισ float4 51

60 Οι ζξοδοι αυτοί δίδονται κι αποτελοφν τθν είςοδο του Pixel Shader μαηί με κάποιεσ επιπλζον παραμζτρουσ. Στθν ςυνζχεια παρουςιάηονται οι είςοδοι ενόσ Pixel Shader: Είςοδοσ Περιγραφι Σφποσ δεδομζνων COLOR[n] Χρϊμα διάχυςθσ ι ανάκλαςθσ float4 TEXCOORD[n] Συντεταγμζνεσ υφισ float4 VFACE Τιμι που περιγράφει τον προςανατολιςμό μίασ επιφάνειασ. Αν είναι κετικι, τότε θ επιφάνεια είναι προςανατολιςμζνθ προσ τθν μεριά του παρατθρθτι, ενϊ είναι αρνθτικι ςε αντίκετθ περίπτωςθ float VPOS Θ κζςθ του pixel ςε ςυντεταγμζνεσ οκόνθσ float2 Τζλοσ οι προκακοριςμζνεσ λζξεισ για τθν ζξοδο ενόσ Pixel Shader είναι: Ζξοδοσ περιγραφι Σφποσ δεδομζνων COLOR[n] Χρϊμα float4 DEPTH[n] Βάκοσ float Θ ζξοδοσ από τον Pixel Shader μπορεί να είναι πολλζσ τιμζσ χρϊματοσ (ζωσ 4 ταυτόχρονα) κι αντίςτοιχα το βάκοσ που αντιςτοιχεί ςτο κάκε ζνα από τα pixels. Οι Vertex και θ Pixel επεξεργαςτζσ μίασ GPUS, ενϊ προγραμματίηονται με τθν ίδια γλϊςςα, δεν υποςτθρίηουν και οι δφο όλα τα χαρακτθριςτικά τθσ, δθλαδι υπάρχουν εντολζσ και ςυναρτιςεισ που υποςτθρίηονται μόνο από το ζνα είδοσ επεξεργαςτϊν. Για παράδειγμα, ςτο μοντζλο ςκίαςθσ 3, με βάςθ το οποίο κάνουμε τθν ανάλυςθ ςτθν ςυγκεκριμζνθ εργαςία, υποςτθρίηει τθν προςπζλαςθ υφϊν ςτουσ Vertex επεξεργαςτζσ αλλά υποςτθρίηονται πολφ ςυγκεκριμζνα format εικόνασ (μόνο floating point τιμζσ). Άλλο παράδειγμα είναι ότι οι Pixel επεξεργαςτζσ, γνωρίηουν τθν κζςθ ενόσ εικονοςτοιχείου ςτθν οκόνθ, ενϊ οι Vertex επεξεργαςτζσ όχι. Ενϊ οι GPUs υποςτθρίηουν ζλεγχο ροισ, θ απόδοςι τουσ επθρεάηεται ςε μεγάλο βακμό από τθν δομι των προγραμμάτων και τον ζλεγχο ροισ που υπάρχει ςε αυτά. Οι GPUs προςφζρουν μεγάλθ παραλλθλία μειϊνοντασ το υλικό που χρθςιμοποιείται για ζλεγχο ροισ κι αυξάνοντασ το υλικό που κάνει τουσ υπολογιςμοφσ. Αυτό ςθμαίνει πωσ ο προγραμματιςτισ κα πρζπει να αποφεφγει κϊδικα που απαιτεί ζλεγχο ροισ και να τον μετατρζπει, όποτε είναι δυνατόν, ςε ςειριακό. Κάτι τζτοιο δεν απαιτείται πάντα, αλλά εξαρτάται από το είδοσ του ελζγχου ροισ. Υπάρχουν δφο είδθ ελζγχου ροισ, το δυναμικό και το ςτατικό. 52

61 Ζνα παράδειγμα ςτατικοφ ελζγχου ροισ είναι: if ligting == true {compute ligting; } Σε αυτι τθν περίπτωςθ θ μεταβλθτι lighting ορίηεται από τον προγραμματιςτι πριν τθν εκτζλεςθ του προγράμματοσ κι είναι ςτακερι για όλα τα ςτοιχεία. Επομζνωσ, ο compiler γνωρίηει τθν ζκβαςθ αυτισ τθσ ςυνκικθσ και δεν υπάρχει επίπτωςθ ςτισ επιδόςεισ. Ζνα παράδειγμα δυναμικοφ ελζγχου ροισ είναι: float a = texture2d sampler, coords. xy. r; if a > 2.0 {compute someting; } Στθν περίπτωςθ του δυναμικοφ ελζγχου ροισ, ο compiler δεν μπορεί να εκτιμιςει τθν ζκβαςθ τθσ ςυνκικθσ, μιασ κι αυτι κα κακοριςτεί από τθν τιμι που κα προςκομιςτεί από τθν μνιμθ (texture2d sampler, coords. xy. r). Κάκε διαφορετικό ςθμείο ι εικονοςτοιχείο ςε αυτι τθν περίπτωςθ μπορεί να ακολουκιςει διαφορετικό μονοπάτι υπολογιςμοφ κι επομζνωσ κα υπάρχει μεγάλθ επίπτωςθ ςτισ επιδόςεισ. Συγκεκριμζνα, ςε αυτι τθν περίπτωςθ υπολογίηονται και τα 2 μονοπάτια και τελικά αποκθκεφεται θ τιμι θ οποία είναι αλθκισ για κάκε ςτοιχείο. Σθμαντικι παράμετροσ ςτθν απόδοςθ για τον δυναμικό ζλεγχο ροισ είναι θ χωρικι ομοιομορφία των διακλαδϊςεων του υπολογιςμοφ. Αυτό ςθμαίνει πωσ αν υπάρχουν διακριτζσ περιοχζσ με πολλά εικονοςτοιχεία ςτθν οκόνθ τα οποία πρόκειται να ακολουκιςουν το ίδιο μονοπάτι ςτον υπολογιςμό, τότε πράγματι υπάρχει αφξθςθ των επιδόςεων. Αν από τθν άλλθ δεν ιςχφει το παραπάνω αλλά είναι τυχαία θ κατανομι των διακλαδϊςεων ςτα εικονοςτοιχεία, τότε θ απόδοςθ μπορεί να πζςει κάτω από το μιςό. Ρροφανϊσ τα παραπάνω ςτοιχεία είναι μείηονοσ ςθμαςίασ ςτθν δθμιουργία αποδοτικϊν ςκιάςεων. 53

62 Ανϊλυςη πολυπλοκότητασ για την ςχεδύαςη μύασ τριςδιϊςτατησ ςκηνόσ Μζχρισ αυτό το ςθμείο, ζγινε μία ανάλυςθ των APIs και των γλωςςϊν προγραμματιςμοφ των GPUs. Ζχοντασ μία εικόνα του τρόπου λειτουργίασ των GPUs, ςε αυτι τθν ενότθτα, κα γίνει ανάλυςθ πολυπλοκότθτασ μίασ τριςδιάςτατθσ ςκθνισ, για να γίνει ξεκάκαρο γιατί υπάρχουν μεγάλεσ απαιτιςεισ για παραλλθλία ςτον υπολογιςμό και μεγάλθ διαμεταγωγι (bandwidth) ςτθν προςπζλαςθ τθσ μνιμθσ. Οι απαιτιςεισ που κα προκφψουν από αυτι τθν ανάλυςθ, ενϊ μασ δίνουν μία εικόνα για τθν πολυπλοκότθτα, δεν λαμβάνουν υπόψθ άλλεσ παραμζτρουσ που επιβαρφνουν τθν CPU, όπωσ διαχείριςθ μνιμθσ κι αποςτολι δεδομζνων ςτθν GPU, και από τθν GPU, όπωσ αποκικευςθ επιπλζων δεδομζνων που δεν ςχεδιάηονται ςτθν οκόνθ αλλά πρόκειται να ςχεδιαςτοφν ςε επόμενα καρζ, τον υπολογιςμό τθσ φυςικισ προςομοίωςθσ (physics) που μπορεί να γίνεται παράλλθλα ςτθν GPU κ.α. Αυτό ζχει ωσ αποτζλεςμα οι πραγματικζσ απαιτιςεισ ενόσ πολφπλοκου προγράμματοσ, όπωσ είναι, ζνα τριςδιάςτατο δικτυακό παιχνίδι, να είναι πολφ μεγαλφτερεσ. Κεωροφμε πωσ κζλουμε να ςχεδιάςουμε μία ςκθνι, θ οποία αποτελείται από 2 εκατομμφρια ςθμεία. Σε κάκε μοντζλο αυτισ τθσ ςκθνισ κα εφαρμόςουμε τθν τεχνικι του Normal Mapping, θ οποία απαιτεί 2 υφζσ, μία για τον φωτιςμό και μία για τθν προςομοίωςθ τθσ επιφάνειασ του κάκε μοντζλου. Ακόμα τα μοντζλα κα χρθςιμοποιοφν άλλθ μία υφι, θ οποία προςομοιϊνει τθν ανάκλαςθ (specular mapping). Κάκε υφι ζχει διαςτάςεισ 1024x1024 ενϊ εφαρμόηουμε και mipmapping. Θ τεχνικι του Normal Mapping κα παρουςιαςτεί αναλυτικά ςε επόμενθ παράγραφο, αφοφ ςε αυτι τθν ενότθτα μασ ενδιαφζρει μόνο να υπολογίςουμε τισ απαιτιςεισ για τθν ςχεδίαςθ. Ο επικυμθτόσ ρυκμόσ ανανζωςθσ τθσ εικόνασ για μία προςομοίωςθ χωρίσ τρεμόπαιγμα και κακυςτεριςεισ είναι 60 εικόνεσ το δευτερόλεπτο. Επιπλζον, θ ανάλυςθ ςτθν οποία κζλουμε να ςχεδιάςουμε είναι 1600x1200 εικονοςτοιχεία. Με βάςθ τα παραπάνω, ςε επίπεδο απαιτιςεων μνιμθσ ζχουμε: bytes για τθν αποκικευςθ των ςθμείων τθσ γεωμετρίασ: * 4 ςυνιςτϊςεσ * 4 bytes bytes για τθν αποκικευςθ των κάκετων διανυςμάτων ςτα ςθμεία τθσ γεωμετρίασ: * 4 ςυνιςτϊςεσ * 3 bytes bytes για τθν αποκικευςθ των εφαπτόμενων διανυςμάτων ςτα ςθμεία τθσ γεωμετρίασ: * 4 ςυνιςτϊςεσ * 3 bytes bytes για τθν αποκικευςθ των ςυνεφαπτόμενων διανυςμάτων ςτα ςθμεία τθσ γεωμετρίασ: * 4 ςυνιςτϊςεσ * 3 bytes. 54

63 bytes για τθν αποκικευςθ των ςυνιςτωςϊν ςυντεταγμζνων για τθν προςπζλαςθ ςτισ υφζσ ( ) * 3 bytes για τθν αποκικευςθ με τθν τεχνικι του mip-mapping για κάκε μία από τισ υφζσ 1200*1600 * 4 * 2= bytes χρειάηονται για τθν αποκικευςθ κάκε καρζ τθσ εικόνασ με χριςθ διπλισ προςωρινισ μνιμθσ αποκικευςθσ (double buffering) Συνολικά, λοιπόν, θ απαιτοφμενθ μνιμθ είναι: bytes ι Μbytes περίπου. Μία ςφγχρονθ GPU ζχει μνιμθ από 256 Mbytes ζωσ 2 Gbytes, οπότε, μπορεί να αποκθκεφςει μία τζτοια ςκθνι. Σχετικά τϊρα με τισ απαιτιςεισ διαμεταγωγισ (bandwidth) μνιμθσ τθσ GPU, δθλαδι για τθν προςκόμιςθ δεδομζνων από τθν μνιμθ τθσ GPU, ςτο ολοκλθρωμζνο που κάνει τθν ςχεδίαςθ, ζχουμε 60 καρζ/sec * Mbytes = Gbytes / sec. Βλζπουμε εφκολα, πωσ θ μεγάλθ διαμεταγωγι είναι κάτι κεμελιϊδεσ για μία ςχεδίαςθ πραγματικοφ χρόνου. Στθν ςυνζχεια, αναλφουμε τισ απαιτιςεισ ςε υπολογιςμοφσ. Για κάκε ζνα ςθμείο τθσ γεωμετρίασ εκτελοφνται 25 εντολζσ. Κεωροφμε πωσ κάκε εντολι απαιτεί τον ίδιο χρόνο να εκτελεςτεί για λόγουσ απλότθτασ, οπότε θ εκτζλεςθ του Vertex προγράμματοσ για τα ςθμεία τθσ γεωμετρίασ απαιτεί εντολζσ. Αντίςτοιχα, για τθν εκτζλεςθ του Pixel προγράμματοσ, για ζνα εικονοςτοιχείο απαιτοφνται 27 εντολζσ, οπότε ςυνολικά είναι: 1600*1200 * 27 = εντολζσ. Οι παραπάνω εντολζσ εκτελοφνται για τθν ςχεδίαςθ ενόσ καρζ, οπότε για τθν ςχεδίαςθ 60 καρζ απαιτοφνται * 60 = εντολζσ ι με άλλα λόγια 6.11 GIPS (Giga Instructions Per Second). Επειδι οι GPUs είναι διανυςματικοί επεξεργαςτζσ κάκε εντολι αντιςτοιχεί ςε 3 ι 4 πράξεισ. Κεωρϊντασ πωσ εκτελοφνται ςε κάκε εντολι 3.5 πράξεισ κατά μζςο όρο, παίρνουμε ςαν αποτζλεςμα 6.11 * 3.5 = GFLOPS. Από τθν παραπάνω ςφντομθ ανάλυςθ καταλαβαίνουμε πωσ οι απαιτιςεισ για τθν ςχεδίαςθ γραφικϊν, είναι μεγάλεσ. Συγκεκριμζνα, παρατθρείται πωσ οι απαιτιςεισ ςε υπολογιςτικι ιςχφ είναι ςθμαντικά μεγαλφτερεσ από τισ απαιτιςεισ ςε διαμεταγωγι. Αυτό το φαινόμενο αποτυπϊνεται ςιμερα ςτο υλικό των GPUs και ςυγκεκριμζνα ο λόγοσ (υπολογιςτικισ ιςχφοσ)/(διαμεταγωγι προςπζλαςθσ μνιμθσ) είναι πάνω από 6 και αυξάνεται ςε κάκε νζα γενιά GPU. Θ παραπάνω διαπίςτωςθ είναι πολφ ςθμαντικι για τθν επίτευξθ υψθλϊν επιδόςεων. Ρρζπει να γίνεται προςεκτικι χριςθ τθσ διαμεταγωγισ μνιμθσ γιατί το αντίκετο ςθμαίνει πωσ θ GPU μζνει ανενεργι περιμζνοντασ δεδομζνα από τθν μνιμθ. Αυτό οδθγεί είτε ςτθν χριςθ υφϊν που ςυμπιζηονται κάνοντασ χριςθ ειδικϊν format που παρζχει το API, είτε ςτθν περιγραφι των υφϊν, όποτε είναι εφικτό με μακθματικζσ ςυναρτιςεισ. Θ τελευταία προςζγγιςθ που αποτελεί πεδίο ζρευνασ προςφζρει υψθλζσ επιδόςεισ, 55

64 και παρζχει πολφ καλφτερθ ποιότθτα ςτθν τελικι εικόνα, αφοφ οι υφζσ είναι μακθματικζσ ςυναρτιςεισ που υπολογίηονται εκ νζου ςε κάκε καρζ. ΧΝΑ Το XNA [13] [14] [16]είναι ζνα ςφνολο από εργαλεία και βιβλιοκικεσ (Framework) τα οποία βοθκοφν τον προγραμματιςτι να δθμιουργεί και να ςυντθρεί ι να επεκτείνει θλεκτρονικά παιχνίδια, τριςδιάςτατεσ ι διςδιάςτατεσ εφαρμογζσ πραγματικοφ χρόνου και πολυμεςικζσ εφαρμογζσ. Το XNA παρουςιάςτθκε ςαν ιδζα το 2004 από τθν Microsoft κι ζγινε διακζςιμο ςτουσ προγραμματιςτζσ τον Μάρτιο του Το XNA ιδθ βρίςκεται ςτθν ζκδοςθ 3.0 και υποςτθρίηει τθν ανάπτυξθ εφαρμογϊν για PC (Windows λειτουργικά μόνο), για Xbox 360 και για το Zune. Το Xbox 360 είναι μία κονςόλα για παιχνίδια που ςυνδζεται με τθν τθλεόραςθ ενϊ το Zune είναι μία φορθτι ςυςκευι πολλαπλϊν χριςεων. Ζνα πρόγραμμα γραμμζνο με το XNA μπορεί να τρζξει με ελάχιςτεσ ι κακόλου αλλαγζσ ςτον κϊδικα ςε PC, Xbox και το Zune. Οι περιοριςμοί που υπάρχουν είναι θ ανάλυςθ (προφανϊσ το PC υποςτθρίηει πολφ περιςςότερεσ αναλφςεισ από ότι το Xbox ι ακόμα περιςςότερο το Zune) και το υλικό: το Xbox και το Zune δεν υποςτθρίηουν είςοδο από τον χριςτθ μζςω ποντικιοφ (mouse) ενϊ δεν υποςτθρίηουν όλα τα χαρακτθριςτικά επιτάχυνςθσ των ςφγχρονων GPUs. Πλεσ αυτζσ οι παράμετροι κα πρζπει να λαμβάνονται υπόψθ ςτθν ανάπτυξθ των εφαρμογϊν, εφόςον μασ ενδιαφζρει να υποςτθρίξουμε κι άλλα ςυςτιματα πζρα από το PC. Το XNA δεν είναι ζνα API όπωσ το DirectX ι το OpenGL. Το XNA είναι ζνα ςφνολο από εργαλεία βιβλιοκικεσ που βαςίηεται ςτο DirectX 9.0C. Ο προγραμματιςμόσ με το XNA γίνεται ςε C# γλϊςςα προγραμματιςμοφ και παράγεται managed κϊδικασ. Managed ονομάηεται ο κϊδικασ εκείνοσ ο οποίοσ δεν εκτελείται κατευκείαν από τθν CPU του υπολογιςτι ςτον οποίο δθμιουργικθκε το πρόγραμμα αλλά από μία εικονικι μθχανι. Θ λογικι είναι παρόμοια με αυτιν τθσ γλϊςςασ προγραμματιςμοφ Java. Συγκεκριμζνα με το XNA (και γενικά με το.net framework) ο προγραμματιςτισ παράγει πθγαίο κϊδικα γραμμζνο ςε C# και ο μεταγλωττιςτισ (compiler) δεν τον μετατρζπει απευκείασ ςε δυαδικό κϊδικα αλλά ςε μία ενδιάμεςθ γλϊςςα (IL Intermediate Language). Αυτι θ ενδιάμεςθ γλϊςςα υπάρχει είτε ςε μορφι δυναμικισ βιβλιοκικθσ (.dll) είτε ςε μορφι εκτελζςιμου (.exe). Πταν ο χριςτθσ εκτελεί τθν εφαρμογι, θ ενδιάμεςθ γλϊςςα που υπάρχει ςτισ παραπάνω μορφζσ, τροφοδοτείται ςε ζνα περιβάλλον εκτζλεςθσ αυτισ τθσ ενδιάμεςθσ γλϊςςασ (Language Runtime). Αυτό το περιβάλλον εκτζλεςθσ μπορεί να εφαρμόηει πολιτικζσ αςφαλείασ και να ελζγχει πλιρωσ τθν πρόςβαςθ ςτθν μνιμθ και τισ κλιςεισ του λειτουργικοφ ςυςτιματοσ που επικυμεί θ εφαρμογι, παρζχοντασ καλφτερο ζλεγχο ςτο πρόγραμμα και αςφάλεια ςτον χριςτθ και ςτα δεδομζνα του. Επιπλζον θ διαχείριςθ των αντικειμζνων και τθσ μνιμθσ (δζςμευςθ κι αποδζςμευςθ μνιμθσ) ελζγχονται από το περιβάλλον εκτζλεςθσ με αποτζλεςμα να αποφεφγονται τα 56

65 φαινόμενα διαρροισ μνιμθσ (memory leakage) που είναι ζνα από τα ςυνθκζςτερα προβλιματα (bugs) που αντιμετωπίηουν οι προγραμματιςτζσ ςε εφαρμογζσ που δεν είναι managed. Τα παραπάνω πλεονεκτιματα όμωσ ζχουν και το κόςτοσ τουσ. Το μεγαλφτερο μειονζκτθμα είναι οι χαμθλότερεσ επιδόςεισ ςτθν εκτζλεςθ των εφαρμογϊν. Ανάλογα με τθν ποιότθτα και τθν βελτιςτοποίθςθ που ζχει δεχκεί ο κϊδικασ θ πτϊςθ κυμαίνεται από 5 ζωσ 15 %. Επειδι οι managed εφαρμογζσ δεν εκτελοφνται απευκείασ ςτθν CPU αλλά ςτθν εικονικι μθχανι, αυτό το επιπλζον ςτρϊμα αφαίρεςθσ ανάμεςα ςτον κϊδικα και το υλικό ειςάγει επιπλζον υπολογιςτικό φορτίο και κακυςτζρθςθ. Επειδι, λοιπόν, με το XNA παράγεται managed κϊδικασ και οι εφαρμογζσ πραγματικοφ χρόνου που επικυμοφμε να δθμιουργιςουμε είναι πολφ απαιτθτικζσ ςε ταχφτθτα και υπολογιςτικοφσ πόρουσ, απαιτείται ιδιαίτερθ προςοχι και ςυγκεκριμζνεσ τακτικζσ, οι οποίεσ κα παρουςιαςτοφν ςτθν ςυνζχεια, για να αποφευχκοφν κακυςτεριςεισ και κακι απόδοςθ. Το μεγαλφτερο πλεονζκτθμα κι ουςιαςτικά αυτό που αντιςτακμίηει τθν πτϊςθ τθσ απόδοςθσ με τθν χριςθ managed κϊδικα είναι θ αποφυγι λακϊν (bugs) ςτον κϊδικα και ο καλφτεροσ ζλεγχοσ των λειτουργιϊν και των πόρων που απαιτεί. Ειδικά ςε μεγάλα και πολφπλοκα ζργα, όπωσ είναι, θ δθμιουργία πολυμεςικϊν εφαρμογϊν πραγματικοφ χρόνου και τα θλεκτρονικά παιχνίδια, αυτό το πλεονζκτθμα είναι μείηονοσ ςθμαςίασ αφοφ επιταχφνει τθν ανάπτυξθ, μειϊνοντασ τουσ χρόνουσ δοκιμϊν (testing) και τουσ χρόνουσ που χρειάηονται για τθν επίλυςθ λακϊν ςτθν εφαρμογι. Κα πρζπει να ςθμειωκεί ότι με τθν ςυνεχόμενθ εξζλιξθ του υλικοφ και τθν αφξθςθ τθσ παραλλθλίασ και τθσ ταχφτθτασ των επεξεργαςτϊν, θ μειωμζνθ ταχφτθτα εκτζλεςθσ του managed κϊδικα, δεν αποτελεί τόςο μεγάλο πρόβλθμα όςο πριν μερικά χρόνια. Αυτό ζχει ωσ αποτζλεςμα όλο και περιςςότεροι καταςκευαςτζσ λογιςμικοφ να ςτρζφονται προσ αυτό το είδοσ τεχνολογίασ. Σε αυτιν τθν εργαςία όλα τα πειράματα και οι ςκιάςεισ δθμιουργικθκαν και βαςίηονται ςτο XNA. Επιπλζον οι υλοποιιςεισ μασ υποςτθρίηουν μόνο PC κι όχι άλλα ςυςτιματα (Xbox και Zune). Χαρακτηριςτικϊ του XNA Αναφζρκθκε ιδθ, πωσ το XNA βαςίηεται ςτο DirectX 9.0C ΑPI και ζχει μία αρχιτεκτονικι θ οποία επιτρζπει τθν εφκολθ επζκταςι του και τθν ενςωμάτωςθ νζων χαρακτθριςτικϊν ςε αυτό. Με το XNA ο προγραμματιςτισ δεν καλεί ςυναρτιςεισ του DirectX API για να προγραμματίςει τθν GPU αλλά μεκόδουσ κάνοντασ χριςθ τθσ γλϊςςασ C#. Το XNA υποςτθρίηει το μοντζλο ςκίαςθσ ζκδοςθσ 3.0 κι επομζνωσ υποςτθρίηει προγραμματιηόμενουσ επεξεργαςτζσ γεωμετρίασ κι εικονοςτοιχείων. Το XNA πζρα από τισ βιβλιοκικεσ ςχεδίαςθσ γραφικϊν και πολυμζςων πραγματικοφ χρόνου, προςφζρει κι άλλεσ βιβλιοκικεσ για τθν ανάπτυξθ εφαρμογϊν. Αυτζσ ανικουν ςε 7 κατθγορίεσ και κα παρουςιαςτοφν ςτθν ςυνζχεια. 57

66 Βιβλιοθήκη γραφικών Το XNA παρζχει μεκόδουσ για τθν ςχεδίαςθ με βάςθ το DirectX 9.0C. Ρροφανϊσ μπορεί να ςχεδιάηει είτε διςδιάςτατα είτε τριςδιάςτατα γραφικά. Ο προγραμματιςτισ μπορεί να δθμιουργεί βοθκθτικζσ επιφάνειεσ για ςχεδίαςθ, να δθμιουργεί και να επεξεργάηεται ςκιάςεισ και γενικότερα να ελζγχει πλιρωσ τθν διαδικαςία παραγωγισ γραφικϊν. Ραρζχεται μία πλθκϊρα βοθκθτικϊν μεκόδων ςχετικά με γραφικά, όπωσ είναι θ δθμιουργία και θ διαχείριςθ των παρακφρων ςτα οποία κα γίνεται θ ςχεδίαςθ, ενϊ υποςτθρίηεται θ μεταφορά δεδομζνων κι από τθν κάρτα γραφικϊν προσ τον κεντρικό επεξεργαςτι του ςυςτιματοσ. Επιπλζον, το XNA, παρζχει μία υλοποίθςθ βαςικισ ςκίαςθσ για να μπορεί ζνασ αρχάριοσ χριςτθσ να πειραματιςτεί και να κατανοιςει καλφτερα τθν διαδικαςία ςχεδίαςθσ. Διαχείριςη Περιεχομένου Το XNA υποςτθρίηει μία πλθκϊρα μορφϊν αποκικευςθσ (formats) υφϊν, τριςδιάςτατων μοντζλων, ςκιάςεων, γραμματοςειρϊν, xml αρχείων παραμετροποίθςθσ και αρχείων ιχου ςε ςυνδυαςμό με πολλζσ μεκόδουσ διαχείριςθσ αυτϊν. Μερικζσ από τισ μορφζσ που υποςτθρίηονται είναι:.fbx και.x μορφζσ αποκικευςθσ τριςδιάςτατων μοντζλων.fx αρχεία αποκικευςθσ ςκιάςεων.bmp,.dds,.dib,.hdr,.jpg,.pfm,.png,.ppm, και.tga αρχεία αποκικευςθσ υφϊν Γενικά, θ διαχείριςθ του περιεχομζνου (άνοιγμα, κλείςιμο, αποκικευςθ, αλλαγι αρχείων) είναι ζνα από τα πιο πολφπλοκα κζματα και το XNA πζρα από τθν απευκείασ υποςτιριξθ των παραπάνω μορφϊν, επιτρζπει ςτον προγραμματιςτι να υποςτθρίξει κι άλλεσ μορφζσ από άλλα πρότυπα ι να δθμιουργιςει τα δικά του. Τζλοσ, το XNA παρζχει τρόπουσ για παραμετροποίθςθ τθσ διαχείριςθσ του περιεχομζνου με γραφικό τρόπο. Για παράδειγμα, κατά το άνοιγμα ενόσ τριςδιάςτατου μοντζλου, παρζχεται εφκολοσ τρόποσ μζςα από το περιβάλλον ανάπτυξθσ, να ενςωματωκοφν ςε αυτό πλθροφορίεσ ςχετικά με το κάκετο διάνυςμα, τθν εφαπτομζνθ και τθν ςυνεφαπτομζνθ κάκε ςθμείου τθσ γεωμετρίασ εφόςον αυτό περιζχει ιδθ ςυντεταγμζνεσ υφϊν. Μαθηματικέσ βιβλιοθήκεσ Ρολφ ςθμαντικι είναι θ υποςτιριξθ μακθματικϊν πράξεων και ςυναρτιςεων, αφοφ είναι μείηονοσ ςθμαςίασ ςτισ τριςδιάςτατεσ εφαρμογζσ. Το XNA, υποςτθρίηει με αποδοτικό τρόπο μακθματικζσ πράξεισ μεταξφ πινάκων, διανυςμάτων και πολλζσ επιπλζον λειτουργίεσ επί αυτϊν. Για παράδειγμα, παρζχονται μζκοδοι για τθν εφρεςθ των αντιςτρόφων πινάκων, για τθν εφρεςθ του ανάςτροφου, τθν εφρεςθ ιδιοτιμϊν, τθν εφρεςθ απόςταςθσ ςθμείου από ευκεία ι επίπεδο κ.α. Επιπλζον, παρζχονται μζκοδοι που βρίςκουν τον κφβο ι τθν ςφαίρα που περιζχει ζνα 58

67 τριςδιάςτατο μοντζλο, ζτςι ϊςτε να χρθςιμοποιθκεί αυτι θ πλθροφορία ςτουσ ελζγχουσ ςφγκρουςθσ μεταξφ αντικειμζνων. Επειδι οι μζκοδοι που παρζχονται είναι πάρα πολλζσ, για μία αναλυτικι παρουςίαςθ αυτϊν, παραπζμπουμε τον αναγνϊςτθ ςτθν βιβλιογραφία Υπόλοιπα εργαλεία Το XNA παρζχει μία πλθκϊρα επιπλζον βιβλιοκθκϊν πζρα από τισ παραπάνω. Ραρζχει μθχανιςμό για τθν διαχείριςθ τθσ ειςόδου από τον χριςτθ, είτε αυτι προζρχεται από το ποντίκι, το πλθκτρολόγιο ι από ζνα ζωσ τζςςερα χειριςτιρια του Xbox 360. Ο προγραμματιςτισ μπορεί να εφαρμόηει ανάδραςθ ςτα χειριςτιρια ανάλογα με τισ κινιςεισ του παίχτθ ςτθν εφαρμογι. Ραρζχεται επίςθσ εργαλείο για τθν δθμιουργία εφζ ιχου και ςτθν ςυνζχεια τθν ενςωμάτωςι τουσ ςτο XNA. Ο ιχοσ που υποςτθρίηεται επιταχφνεται από τισ ςφγχρονεσ κάρτεσ γραφικϊν κι είναι επίςθσ τριςδιάςτατοσ και πολυκάναλοσ. Το XNA υποςτθρίηει XML αρχεία παραμετροποίθςθσ, με τα οποία ο προγραμματιςτισ μπορεί να δθμιουργεί όμορφα μενοφ μζςα ςτισ πολυμεςικζσ εφαρμογζσ του, ενϊ παρζχεται μθχανιςμόσ για τθν αποκικευςθ κι ανάκτθςθ δεδομζνων ϊςτε να αποκθκεφεται θ κατάςταςθ του χριςτθ όταν αυτόσ εξζρχεται και ειςζρχεται ςτθν εφαρμογι. Επιπλζον, υποςτθρίηει πολλαπλοφσ παίκτεσ ι χριςτεσ με χριςθ δικτφου ι διαδικτφου και παρζχει τισ κατάλλθλεσ βιβλιοκικεσ. Το XNA είναι ζνα πολφ δυνατό περιβάλλον ανάπτυξθσ με μία ςυνεχϊσ αυξανόμενθ κοινότθτα κι ζναν ευφυι μθχανιςμό ενςωμάτωςθσ ςε αυτό επεκτάςεων κι αρκρωμάτων (plugins). Ιδθ θ κοινότθτα του XNA ζχει δθμιουργιςει αρκετζσ ενδιαφζρουςεσ επεκτάςεισ που διευκολφνουν τθν ανάπτυξθ των εφαρμογϊν. Επιπλζον, παρζχεται πολφ καλι τεκμθρίωςθ ςτο διαδίκτυο για τον τρόπο λειτουργίασ του. Το XNA μπορεί να ςυνδυαςτεί με άλλα εργαλεία που δίνει θ Microsoft για τον ζλεγχο και ςτθν ςυνζχεια τθν βελτιςτοποίθςθ τθσ απόδοςθσ των προγραμμάτων που δθμιουργοφμε. Ζνα τζτοιο είναι το PIX με το οποίο ο προγραμματιςτισ μπορεί να εντοπίςει ςχετικά εφκολα προβλθματικά κομμάτια κϊδικα ζτςι ϊςτε να τα βελτιϊςει. Το PIX παρζχει μετρθτζσ υψθλισ ακριβείασ, τθν δυνατότθτα επιςκόπθςθσ των μοντζλων, των υφϊν κι όλων των δεδομζνων που χρθςιμοποιεί θ εφαρμογι κακϊσ και τον χρόνο φόρτωςθσ και μεταφοράσ αυτϊν από και προσ τθν κάρτα γραφικϊν. Τζλοσ, προτείνεται ςτον προγραμματιςτι να κατεβάςει τθν τελευταία ζκδοςθ του DirectX SDK (Software Development Kit) που περιζχει πολλά παραδείγματα ςκιάςεων και τεχνικϊν που χρθςιμοποιοφνται κατά τθν ςχεδίαςθ γραφικϊν. Επιπλζον, το SDK περιζχει πολλά εργαλεία για τθν διαχείριςθ και τθν επεξεργαςία των διαφόρων τφπων μοντζλων και υφϊν και τθν τελευταία ζκδοςθ του HLSL μεταγλωττιςτι. 59

68 Κεφϊλαιο 3 ο Παρουςύαςη υλοποιόςεων Στα πλαίςια αυτισ τθσ εργαςίασ υλοποιιςαμε ςκιάςεισ και μελετιςαμε μεκόδουσ βελτιςτοποίθςθσ αυτϊν. Οι ςκιάςεισ που υλοποιικθκαν είναι οι: Normal Mapping, Soft Shadow Mapping, Procedural Sky, Blooming, Depth of Field. Χρθςιμοποιοφμε τουσ αγγλικοφσ όρουσ για τθν περιγραφι των ςκιάςεων, γιατί δεν υπάρχουν αντίςτοιχοι ςτθν Ελλθνικι ορολογία κι είναι εφκολο κάποιοσ να βρει επιπλζον πλθροφορίεσ για τισ τεχνικζσ αυτζσ χρθςιμοποιϊντασ τθν Αγγλικι. Σκοπόσ τθσ εργαςίασ δεν είναι μόνο θ δθμιουργία των ςκιάςεων αλλά θ δθμιουργία ενόσ ενιαίου προγραμματιςτικοφ περιβάλλοντοσ (Framework) το οποίο κα ενςωματϊνει όλεσ τισ ςκιάςεισ με αποδοτικό τρόπο και κα επιτρζπει τθν εφκολθ επζκταςι του. Με άλλα λόγια, όλεσ οι υλοποιιςεισ ενςωματϊκθκαν ςε μία εφαρμογι, θ οποία επιτρζπει τθν ενεργοποίθςθ ι τθν απενεργοποίθςθ αυτϊν, ζτςι ϊςτε να γίνεται εμφανισ θ επίδραςθ που ζχει κάκε ςκίαςθ ςτο τελικό αποτζλεςμα. Βαςικϋσ ϋννοιεσ Για τθν καλφτερθ κατανόθςθ τθσ υλοποίθςθσ κα γίνει μία πιο αφαιρετικι περιγραφι τθσ αρχικά. Θ εφαρμογι αποτελείται από τα εξισ ςυςτατικά μζρθ: 1. Τθν δθμιουργία ενόσ παρακφρου για τθν ςχεδίαςθ γραφικϊν 2. Τθν διαχείριςθ των μοντζλων και των υφϊν ςτθν μνιμθ 3. Τθν διαχείριςθ τθσ ειςόδου από τον χριςτθ (User Interaction) 4. Τθν διαχείριςθ τθσ κάμερασ του παρατθρθτι 5. Τθν διαχείριςθ του φωτιςμοφ και των χαρακτθριςτικϊν του Για το 1, δθμιουργοφμε ζνα παράκυρο με χριςθ των μεκόδων του XNA ςε ςυνδυαςμό με το παρακυρικό περιβάλλον. Το παράκυρο που δθμιουργείται ζχει διαςτάςεισ που ορίηονται ςε ζνα XML αρχείο είτε από τον προγραμματιςτι είτε από τον χριςτθ. Θ εφαρμογι επιτρζπει τθν μελλοντικι δθμιουργία μενοφ επιλογϊν για τθν επιλογι τθσ ανάλυςθσ. Επιπλζον, επιλζγεται αν το παράκυρο κα καλφπτει όλθ τθν οκόνθ (full screen) ι κα καλφπτει μζροσ αυτισ. Ορίηεται το πλικοσ των χρωμάτων τθσ οκόνθσ, ενϊ δεν γίνεται χριςθ multisampling buffer γιατί ζχει μεγάλθ επίπτωςθ ςτισ επιδόςεισ (αλλά κάτι τζτοιο υποςτθρίηεται). Για το 2, φορτϊνουμε ςτθν μνιμθ με χριςθ των ενςωματωμζνων μθχανιςμϊν του ΧΝΑ τα μοντζλα και τισ υφζσ. Για τθν εφαρμογι τθσ τεχνικισ του Normal Mapping ςτα μοντζλα επιλζγουμε να δθμιουργοφμε και το Tangent Frame (δθλαδι τθν παραγωγι του κάκετου διανφςματοσ, τθσ εφαπτομζνθσ και τθσ ςυνεφαπτομζνθσ κάκε ςθμείου). Επιπλζον, ςτισ υφζσ επιλζγουμε να δθμιουργοφνται mip-maps για καλφτερθ ποιότθτα κατά τθν εφαρμογι υφισ. 60

69 Για το 3, χρθςιμοποιοφμε το interface που παρζχει το XNA προσ το πλθκτρολόγιο και το ποντίκι και ςφμφωνα με τθν είςοδο που ζχουμε περιςτρζφουμε ι μετακινοφμε ανάλογα τον τριςδιάςτατο εικονικό κόςμο. Το 4 ςχετίηεται άμεςα με το 3, αφοφ με βάςθ τα διανφςματα ειςόδου που δθμιουργοφμε διαβάηοντασ τθν είςοδο από το πλθκτρολόγιο και τισ γωνίεσ περιςτροφισ που υπολογίηουμε με βάςθ τθν μετακίνθςθ του ποντικιοφ δθμιουργοφμε τον πίνακα παρατθρθτι με τον οποίο μεταςχθματίηουμε τον τριςδιάςτατο κόςμο. Το 5, είναι ουςιαςτικά θ διαχείριςθ των ςκιάςεων και πωσ εφαρμόηονται επάνω ςτα αντικείμενα του τριςδιάςτατου κόςμου. Κάκε αντικείμενο ζχει διαφορετικζσ φυςικζσ ιδιότθτεσ (μάρμαρο, πλαςτικό, γυαλί κτλ) και κατά ςυνζπεια τισ δικζσ του παραμζτρουσ για τθν εφαρμογι τθσ ςκίαςθσ. Υπάρχουν όμωσ ςκιάςεισ που εφαρμόηονται αφοφ ζχει ςχεδιαςτεί θ τριςδιάςτατθ ςκθνι και αλλάηουν το αποτζλεςμα όλθσ τθσ εικόνασ αφοφ ζχει απεικονιςτεί ςε εικονοςτοιχεία, όπωσ κα μποροφςε κάποιοσ να επεξεργαςτεί μία ψθφιακι εικόνα με ζνα πρόγραμμα επεξεργαςίασ εικόνασ (π.χ. Photoshop). Τα βαςικά βιματα κατά τθν ςχεδίαςθ των γραφικϊν ςτθν ςυγκεκριμζνθ υλοποίθςθ είναι τα παρακάτω: 1. Κακαριςμόσ οκόνθσ και βοθκθτικϊν μνθμϊν 2. Μετακίνθςθ αντικειμζνων του εικονικοφ κόςμου 3. Μετακίνθςθ όλου του τριςδιάςτατου κόςμου με βάςθ τθν είςοδο του χριςτθ. Αν ο χριςτθσ πατιςει Esc τότε βγεσ από τθν εφαρμογι 4. Ανανζωςθ των παραμζτρων των ςκιάςεων κι εφαρμογι ςκιάςεων ςε κάκε αντικείμενο 5. Σχεδίαςθ εικόνασ 6. Εφαρμογι ςκιάςεων επί τθσ εικόνασ Ραρατθροφμε δθλαδι, ότι θ εφαρμογι μασ περιλαμβάνει μόνο τθν διαχείριςθ του οπτικοφ αποτελζςματοσ και τθν αλλθλεπίδραςθ με τον χριςτθ αλλά όχι τθν διαχείριςθ τθσ φυςικισ (ςυγκροφςεισ μεταξφ αντικειμζνων), το animation και τθν τεχνθτι νοθμοςφνθ (AI) που ςυναντά κανείσ ςε τριςδιάςτατα παιχνίδια ι ακόμα τθν διαχείριςθ και τθν υποςτιριξθ πολλϊν παικτϊν μζςω διαδικτφου. Περϊςματα (Passes) & Deferred Shading Είναι ςθμαντικό να ορίςουμε τι είναι ζνα πζραςμα ςτθν γλϊςςα των GPUs. Πταν εφαρμόηουμε κάποια ςκίαςθ ςε γεωμετρία τότε κάνουμε υπολογιςμοφσ είτε για να τθν μεταςχθματίςουμε είτε για να υπολογίςουμε τον φωτιςμό ςε αυτι. Το αποτζλεςμα προκφπτει μετά από αρκετζσ πράξεισ, ανάλογα με τθν πολυπλοκότθτα του αλγόρικμου φωτιςμοφ. Αν ςε επόμενο ςτάδιο τθσ ςχεδίαςθσ ο 61

70 προγραμματιςτισ απαιτεί το αποτζλεςμα τθσ ςκίαςθσ, είτε πρζπει να το υπολογίςει ξανά, είτε να το προςκομίςει από τθν μνιμθ. Στθν δεφτερθ περίπτωςθ απαιτείται από τον προγραμματιςτι να ζχει αποκθκεφςει ρθτά το αποτζλεςμα τθσ ςκίαςθσ. Ζτςι λοιπόν, μποροφμε να ορίςουμε τθν ζννοια του περάςματοσ (pass) το οποίο αναφζρεται ςε αυτι τθν διαδικαςία που μόλισ περιγράψαμε. Δθλαδι, το αποτζλεςμα ενόσ υπολογιςμοφ αποκθκεφεται και χρθςιμοποιείται ςε επόμενθ ςχεδίαςθ (επόμενο πζραςμα). Αν για παράδειγμα επικυμοφμε να εφαρμόςουμε ζνα φίλτρο πάνω ςε μία εικόνα που παράγουμε με τριςδιάςτατα γραφικά, κα πρζπει να αποκθκεφςουμε τθν εικόνα (πρϊτο πζραςμα) και ςτθν ςυνζχεια να τροφοδοτιςουμε το αποτζλεςμα αυτό ςτο πρόγραμμα τθσ GPU που κα εφαρμόςει το φίλτρο (δεφτερο πζραςμα). Θ παραπάνω διαδικαςία δεν μπορεί να γίνει ςε ζνα πζραςμα γιατί όταν επεξεργαηόμαςτε ζνα pixel δεν υπάρχει δυνατότθτα να προςπελαφνουμε γειτονικά του pixel ι γενικά pixels που αποτελοφν μζροσ τθσ ίδιασ εικόνασ που ςχεδιάηουμε εκείνθ τθν ςτιγμι. Στθν δικι μασ υλοποίθςθ, επειδι παρουςιαηόταν ζντονα θ ανάγκθ για επαναχρθςιμοποίθςθ πλθροφορίασ κι επειδι το υπολογιςτικό τθσ κόςτοσ ιταν μεγάλο, ζπρεπε να επιλζξουμε ζνα ευζλικτο κι αποδοτικό μοντζλο. Ευζλικτο με τθν ζννοια τθσ ςυντιρθςθσ κι επζκταςθσ του κϊδικα κι αποδοτικό με τθν ζννοια ότι δεν κα ζπρεπε να ζχει χειρότερθ απόδοςθ από κάποια άλλθ προςζγγιςθ. Θ τεχνικι που επιλζχκθκε ονομάηεται Deferred Shading [17] και διαχωρίηει το ςτάδιο επεξεργαςίασ τθσ γεωμετρίασ από τον φωτιςμό. Θ τεχνικι αυτι, απαιτεί τθν αποκικευςθ περιςςότερων από 4 τιμϊν ςε ζνα πζραςμα (που είναι και το μζγιςτο που μπορεί να αποκθκευτεί ςε 1 βοθκθτικι μνιμθ (επιφάνεια για ςυντομία) του framebuffer), οπότε αυτό οδθγεί ςτθν χριςθ πολλαπλϊν επιφανειϊν ςχεδίαςθσ (MRT Multiple Render Targets). Το MRT είναι ζνα χαρακτθριςτικό που ενςωματϊκθκε ςτο DirectΧ 9 κι επιτρζπει ςε μία GPU να μθν αποκθκεφει 4 τιμζσ ςε μία επιφάνεια ςε ζνα πζραςμα αλλά μζχρι 16 ςε 4 διαφορετικζσ επιφάνειεσ του frame buffer. Το DirectX 9 API επιτρζπει ςτον προγραμματιςτι να γράφει ςε 1-4 επιφάνειεσ αλλά απαιτεί το ςφνολο των bits των επιφανειϊν να είναι το ίδιο. Αυτό ςθμαίνει πωσ θ πρϊτθ επιφάνεια μπορεί να ζχει RGBA format = 4*8bits = 32bits, θ δεφτερθ επιφάνεια 16bit RG format = 2 * 16Bit = 32bits και θ τρίτθ 32bit R format = 1*32bit = 32bit. Το προθγοφμενο είναι απλά ζνα παράδειγμα με τρεισ επιφάνειεσ και παρουςιάηεται για να γίνει κατανοθτόσ ο περιοριςμόσ ωσ προσ τα bits, δεν είναι ο μοναδικόσ ςυνδυαςμόσ ςυμβατϊν formats. Από τθν άλλθ μία GPU που υποςτθρίηει το DirectX10 δεν ζχει αυτό τον περιοριςμό και μπορεί να γίνει χριςθ του νζου χαρακτθριςτικοφ από το XNA, αλλά χάνεται θ ςυμβατότθτα με παλαιότερεσ GPUs. Γι αυτό επιλζξαμε τθν πρϊτθ λφςθ. Στθν δικι μασ υλοποίθςθ ςτο πρϊτο πζραςμα απαιτοφμε να αποκθκεφςουμε ςε 3 επιφάνειεσ. Θ μία επιφάνεια ζχει 32bit floating point format και οι άλλεσ δφο από 62

71 32 bit RGBA. Θ πρϊτθ επιφάνεια αποκθκεφει τθν απόςταςθ κάκε pixel από τον παρατθρθτι, θ δεφτερθ επιφάνεια αποκθκεφει το κάκετο διάνυςμα κάκε ςθμείου μαηί με ςυνιςτϊςεσ φωτόσ και θ τρίτθ επιφάνεια αποκθκεφει τισ υφζσ που εφαρμόηονται ςτα pixels τθσ εικόνασ μαηί με κάποιο παράγοντα ςκιάσ που κα αναλυκεί παρακάτω. Γενικά, θ χριςθ του Deferred Shading ενϊ πριν 2-3 χρόνια ιταν προβλθματικι λόγω των αυξθμζνων απαιτιςεων ςε διαμεταγωγι μνιμθσ, ςιμερα είναι μία πολλά υποςχόμενθ τεχνικι με υψθλι απόδοςθ, εκτεταμζνθ υποςτιριξθ από τισ τελευταίεσ GPUs θ οποία ζχει τα παρακάτω μειονεκτιματα: Μεγάλεσ απαιτιςεισ ςε διαμεταγωγι μνιμθσ Δεν υποςτθρίηει εγγενι εξομάλυνςθ γωνιϊν Δεν υποςτθρίηει ανάμειξθ χρωμάτων με χριςθ του παράγοντα Alpha Από τθν άλλθ τα πλεονεκτιματά τθσ είναι: Θ ςκίαςθ τθσ τριςδιάςτατθσ ςκθνισ είναι ανεξάρτθτθ τθσ πολυπλοκότθτάσ τθσ κι εξαρτάται μόνον από τθν ανάλυςθ του παρακφρου που ςχεδιάηουμε Τα προγράμματα ςκίαςθσ που εκτελοφνται ςτθν GPU ζχουν πρόςβαςθ ςτο βάκοσ κάκε pixel και ςε άλλεσ πλθροφορίεσ που ςχετίηονται με αυτά Κάκε pixel φωτίηεται μόνο μία φορά ανά φωτεινι πθγι. Αυτό ςθμαίνει πωσ δεν υπολογίηουμε τον φωτιςμό ςε αντικείμενα τα οποία ςτθν ςυνζχεια καλφπτονται από άλλα Ξεκάκαροσ διαχωριςμόσ του κϊδικα που εκτελείται ςτθν GPU. Άλλοσ κϊδικασ διαχειρίηεται το υλικό κάκε αντικειμζνου τθσ ςκθνισ κι άλλοσ τον φωτιςμό τθσ Μοντϋλο φωτιςμού Ζχουν αναπτυχκεί πολλά μοντζλα για τθν προςομοίωςθ του φωτιςμοφ. Πλα είναι προςεγγιςτικά, αφοφ θ εξίςωςθ αλλθλεπίδραςθσ του φωτόσ με τισ επιφάνειεσ τθσ γεωμετρίασ περιλαμβάνει τον υπολογιςμό άγνωςτων ολοκλθρωμάτων. Το μοντζλο πάνω ςτο οποίο ςτθρίχκθκε θ διπλωματικι είναι το μοντζλο φωτιςμοφ που πρότεινε ο Phong [7], [18]. Ο φωτιςμόσ ςε αυτό το μοντζλο αποτελείται από το άθροιςμα τριϊν ςυνιςτωςϊν: τθν ςυνιςτϊςα περιβάλλοντοσ (ambient), τθν ςυνιςτϊςα διάχυςθσ (diffuse) και τθν ςυνιςτϊςα ανάκλαςθσ (specular). Θ ςυνιςτϊςα περιβάλλοντοσ αναφζρεται ςτθν ζνταςθ του φωτόσ που εκπζμπουν τα αντικείμενα όταν δεν φωτίηονται άμεςα. Αυτόσ ο παράγοντασ αντιςτοιχεί ςτον φωτιςμό των αντικειμζνων μία ςυννεφιαςμζνθ θμζρα. Δθλαδι, ενϊ δεν υπάρχει μία ςυγκεκριμζνθ πθγι φωτόσ, υπάρχει φωσ που διαχζεται ςτο περιβάλλον χωρίσ μία ςυγκεκριμζνθ κατεφκυνςθ. 63

72 Θ ςυνιςτϊςα διάχυςθσ περιγράφει τθν αλλθλεπίδραςθ του φωτόσ που προζρχεται από μία ςυγκεκριμζνθ πθγι φωτόσ με τθν επιφάνεια του αντικειμζνου. Θ ςυνιςτϊςα ανάκλαςθσ ςχετίηεται με εκείνα τα ςθμεία τθσ επιφάνειασ που ο φωτιςμόσ είναι πολφ ζντονοσ, με άλλα λόγια, με τα ςθμεία εκείνα τθσ επιφάνειασ ςτα οποία το φωσ ανακλάται ςχεδόν πλιρωσ. Για να γίνουν κατανοθτά τα παραπάνω κα παρουςιαςτεί ζνα παράδειγμα και ςτθν ςυνζχεια κα περιγραφεί μακθματικά κάκε μία από τισ τρεισ ςυνιςτϊςεσ φωτόσ. Στθν Εικόνα 22, παρουςιάηεται ζνα παράδειγμα φωτιςμοφ μία κόκκινθσ μπάλασ του μπιλιάρδο. Εικόνα 22: Οι 3 ςυνιςτϊςεσ φωτιςμοφ του μοντζλου φωτιςμοφ Phong. a) υνιςτϊςα περιβάλλοντοσ b) υνιςτϊςα διάχυςθσ c) υνιςτϊςα ανάκλαςθσ d) Σελικό αποτζλεςμα = άκροιςμα των τριϊν ςυνιςτωςϊν. Θ ςυνιςτϊςα a ςτθν Εικόνα 22, είναι ςτακερι. Στον πραγματικό κόςμο αυτι θ ςυνιςτϊςα δεν είναι ςτακερι, ο υπολογιςμόσ τθσ όμωσ απαιτεί μεγάλθ υπολογιςτικι ιςχφ. Σιμερα, οι GPUs ζχουν τθν υπολογιςτικι ιςχφ για ζναν, προςεγγιςτικά πάντα, υπολογιςμό αυτισ τθσ ςυνιςτϊςασ. 64

73 Θ ανάλυςθ τθσ ςυνιςτϊςασ διάχυςθσ και ανάκλαςθσ κα γίνει με βάςθ τθν Εικόνα 23. Πλα τα διανφςματα που παρουςιάηονται ςτθν εικόνα αυτι είναι μοναδιαία. Θ ςυνιςτϊςα διάχυςθσ υπολογίηεται ςε κάκε ςθμείο τθσ γεωμετρίασ με βάςθ το κάκετο διάνυςμα και το διάνυςμα τθσ πθγισ φωτόσ. Το εςωτερικό γινόμενο αυτϊν των διανυςμάτων μασ δίνει το ςυνθμίτονο τθσ μεταξφ τουσ γωνίασ και παίρνει τιμζσ ςτο *-1,1]. Αν, λοιπόν, το κάκετο διάνυςμα ςε ζνα ςθμείο τθσ επιφάνειασ και το διάνυςμα τθσ πθγισ είναι ςυνευκειακά τότε θ μεταξφ τουσ γωνία είναι 0 μοίρεσ κι επομζνωσ το ςυνθμίτονο ίςο με 1. Αυτό ςθμαίνει ότι θ ςυνιςτϊςα ςε αυτό το ςθμείο παίρνει τθν μζγιςτθ τιμι. Εικόνα 23: Σα απαραίτθτα διανφςματα για τον υπολογιςμό του Phong μοντζλου φωτιςμοφ Από τθν άλλθ αν θ γωνία είναι 180 μοίρεσ τότε το ςυνθμίτονο είναι -1. Επειδι δεν ορίηεται αρνθτικι τιμι χρϊματοσ, περιορίηουμε τισ αρνθτικζσ τιμζσ των ςυνθμίτονων ςτο 0 κι επομζνωσ όλεσ οι γωνίεσ μεγαλφτερεσ των 90 μοιρϊν ςθμαίνουν 0 ςτθν ςυνιςτϊςα διάχυςθσ. Θ ςυνιςτϊςα ανάκλαςθσ υπολογίηεται με περιςςότερεσ πράξεισ. Συγκεκριμζνα υπολογίηουμε το διάνυςμα ανάκλαςθσ, το οποίο είναι ςυμμετρικό ςτο διάνυςμα τθσ πθγισ του φωτόσ ωσ προσ το κάκετο διάνυςμα τθσ επιφάνειασ ςε κάκε ςθμείο. 65

74 Μετά υπολογίηουμε το εςωτερικό γινόμενο ανάμεςα ςτο διάνυςμα ανάκλαςθσ και το διάνυςμα παρατθρθτι. Στθν ςυνζχεια υψϊνουμε το αποτζλεςμα τθσ πράξθσ ςε μία μεγάλθ δφναμθ, ςυνικωσ 32. Επειδι θ τιμι που επιςτρζφει το εςωτερικό γινόμενο ανικει ςτο *0,1+ (με τον περιοριςμό ότι κρατάμε μόνο κετικζσ τιμζσ χρϊματοσ), αυτό ςθμαίνει πωσ θ φψωςθ ςε δφναμθ περιορίηει ςθμαντικά το εφροσ αυτισ τθσ ςυνιςτϊςασ επάνω ςτθν επιφάνεια του αντικειμζνου και φαίνονται τιμζσ που πριν τθν φψωςθ ςτθν δφναμθ ιταν πολφ κοντά ςτο 1 (βλζπετε και το c ςτθν Εικόνα 22). Στθν ςυνζχεια πολλαπλαςιάηουμε κάκε ςυνιςτϊςα με τθν τιμι χρϊματοσ που τθσ ζχουμε αποδϊςει. Αυτό ςθμαίνει ότι το φωσ περιβάλλοντοσ μπορεί να είναι κοκκινωπό αν ςχεδιάηουμε ζνα αντικείμενο κάτω από τον ιλιο που δφει. Από τθν άλλθ θ ςυνιςτϊςα διάχυςθσ ζχει ςυνικωσ το χρϊμα που εκπζμπει ζνα αντικείμενο ανάλογα με το υλικό που κζλουμε να μοντελοποιιςουμε (μάρμαρο, ξφλο κτλ) και τζλοσ θ ςυνιςτϊςα ανάκλαςθσ ζχει το ίδιο χρϊμα με το χρϊμα που εκπζμπει θ πθγι του φωτόσ. Τζλοσ, προςκζτουμε όλεσ τισ τιμζσ χρϊματοσ μαηί και παίρνουμε ζνα αποτζλεςμα ςαν αυτό που φαίνεται ςτο d τθσ Εικόνα 22. Η κϊμερα Θ εφαρμογι υποςτθρίηει ζναν παρατθρθτι ο οποίοσ βλζπει τον τριςδιάςτατο κόςμο μζςα από μία κάμερα. Θ κάμερα αυτι μπορεί να πετά ςε οποιοδιποτε ςθμείο του τριςδιάςτατου κόςμου και δεν μπορεί να κάνει κφκλουσ γφρω από τον άξονα X. Μπορεί να κινείται 90 μοίρεσ προσ τα επάνω και 90 μοίρεσ προσ τα κάτω. Στον Y άξονα δεν υπάρχει περιοριςμόσ. Ο χριςτθσ μπορεί να κακορίςει χαρακτθριςτικά τθσ κάμερασ, όπωσ το που είναι τοποκετθμζνθ ςτον τριςδιάςτατο κόςμο όταν ξεκινά θ εφαρμογι και το εφροσ κζαςθσ ςε μοίρεσ. Σε κάκε ςχεδίαςθ ενόσ καρζ θ κάμερα τοποκετείται και περιςτρζφεται ανάλογα με τθν είςοδο του χριςτθ. Συγκεκριμζνα, ο χριςτθσ πατϊντασ τα πλικτρα W, S, A, D τθν μετακινεί αντίςτοιχα εμπρόσ, πίςω, αριςτερά και δεξιά. Συνδυαςμόσ των παραπάνω πλικτρων μετακινεί αντίςτοιχα τθν κάμερα διαγϊνια μπροςτά και διαγϊνια προσ τα πίςω. Σε κάκε περίπτωςθ το άκροιςμα των κατευκφνςεων που δίδει ο χριςτθσ μζςω των πλικτρων, κανονικοποιείται και προςτίκεται ςτο ςθμείο που βριςκόταν θ κάμερα ςτο αμζςωσ προθγοφμενο καρζ για να υπολογίςουμε τθν νζα κζςθ. Θ κάμερα ορίηεται μακθματικά ωσ εξισ: όταν ξεκινά θ εφαρμογι ορίηουμε το άνω διάνυςμα που περιγράφει ποια είναι θ πάνω κατεφκυνςθ τθσ κάμερασ. Συνικωσ αυτό είναι το (0,1,0). Στθν ςυνζχεια, αφοφ ζχουμε ορίςει το που κοιτάει θ κάμερα και το ςθμείο που βρίςκεται όταν ξεκινά θ εφαρμογι, υπολογίηουμε το εμπρόσ διάνυςμα και με εξωτερικό γινόμενο του εμπρόσ με το πάνω διάνυςμα (τα οποία πρζπει να είναι μθ ςυνευκειακά) ορίηουμε το δεξιά διάνυςμα. Τα τρία διανφςματα αυτά (πάνω, δεξιά, εμπρόσ) αποτελοφν μία ορκοκανονικι βάςθ, αφοφ τα 66

75 αποκθκεφουμε πάντα κανονικοποιθμζνα και μασ δίνουν τισ κατευκφνςεισ προσ τισ οποίεσ κινείται θ κάμερα ανάλογα με τθν είςοδο. Ο χριςτθσ μετακινϊντασ το ποντίκι ορίηει τθν γωνία περιςτροφισ τθσ κάμερασ, γφρω από τον Χ ι τον Υ άξονα. Συγκεκριμζνα, όταν ξεκινά θ εφαρμογι και ςε κάκε επαναςχεδίαςθ τθσ εικόνασ, ο δείκτθσ του ποντικιοφ τοποκετείται ςτο μζςο του παρακφρου. Ο χριςτθσ κουνϊντασ το ποντίκι ςτουσ X, Y άξονεσ ορίηει τισ γωνίεσ περιςτροφισ ωσ προσ τουσ Y, X άξονεσ αντίςτοιχα. Αυτό γίνεται υπολογίηοντασ κάκε φορά το διάνυςμα μετακίνθςθσ του δείκτθ από το κζντρο του παρακφρου. Με βάςθ αυτζσ τισ γωνίεσ μεταςχθματίηεται θ ορκοκανονικι βάςθ που ορίηει τον μεταςχθματιςμό του παρατθρθτι (άνω αριςτερά 3x3 μζροσ του πίνακα παρατθρθτι). Θ κλάςθ τθσ κάμερασ δεν επιτρζπει τθν δθμιουργία περιςςοτζρων του ενόσ αντικειμζνων, ακριβϊσ επειδι θ κάμερα είναι μοναδικι και ελζγχεται από ζνα μόνο πλθκτρολόγιο και ποντίκι και παρζχει όλεσ τισ απαραίτθτεσ πλθροφορίεσ ςτισ άλλεσ οντότθτεσ τθσ εφαρμογισ, όπωσ είναι θ κζςθ τθσ και ο πίνακασ παρατθρθτι και προβολισ που χρειάηονται για τθν ςχεδίαςθ όλων των αντικειμζνων και τθν εφαρμογι των φωτιςμϊν από τθν GPU. Normal Mapping Θ τεχνικι του Normal Mapping παρουςιάςτθκε το 1978 από τον Blinn [19]. Σκοπόσ τθσ είναι να προςομοιϊςει με λεπτομζρεια τθν επιφάνεια ενόσ αντικειμζνου τροποποιϊντασ τον φωτιςμό τθσ, χωρίσ να απαιτεί επιπλζον γεωμετρία για τθν αφξθςθ τθσ ποιότθτασ ςτο τελικό αποτζλεςμα. Ζνα παράδειγμα εφαρμογισ τθσ τεχνικισ αυτισ είναι θ Εικόνα 24. Εικόνα 24: Παράδειγμα εφαρμογισ Normal Mapping. a) Γεωμετρία b) Εφαρμογι υφισ και φωτιςμοφ c) Εφαρμογι Normal Mapping και φωτιςμοφ. Το a τθσ Εικόνα 24, δείχνει τθν γεωμετρία πάνω ςτθν οποία εφαρμόηεται θ υφι και ο φωτιςμόσ (b). Το c δείχνει ακριβϊσ τθν ίδια γεωμετρία φωτιςμζνθ με τθν χριςθ Normal Mapping. Είναι προφανζσ πωσ αυτι θ τεχνικι αυξάνει τθν αλθκοφάνεια αλλά ζχει κόςτοσ ςε υπολογιςμοφσ. Επιπλζον, είναι εμφανισ θ ζλλειψθ τθσ 67

76 γεωμετρικισ πλθροφορίασ ςτισ επιφάνειεσ που ζχουν μεγάλθ κλίςθ ωσ προσ το επίπεδο του παρατθρθτι. Το πρόβλθμα αυτό επιςθμαίνεται ςτθν Εικόνα 25. Εικόνα 25: Σο μειονζκτθμα τθσ Normal Mapping τεχνικισ είναι πωσ γίνεται αντιλθπτι θ ζλλειψθ τθσ γεωμετρικισ πλθροφορίασ ςτισ περιοχζσ με μεγάλθ κλίςθ ωσ προσ το επίπεδο του παρατθρθτι (περιοχι ανάμεςα ςτον μωβ και κόκκινο δακτφλιο). Θ Normal Mapping τεχνικι απαιτεί θ γεωμετρία να φζρει πλθροφορίεσ για τα κάκετα διανφςματα (Normals), τθν εφαπτομζνθ (Tangent) και τθν ςυνεφαπτομζνθ (Binormal) ςε κάκε ςθμείο κι επιπλζον απαιτεί 2 υφζσ. Μία θ οποία αποκθκεφει το χρϊμα του υλικοφ που κα εφαρμόςουμε ςτθν γεωμετρία κι άλλθ μία που αποκθκεφει τα διανφςματα με βάςθ τα οποία κα γίνει ο υπολογιςμόσ του φωτιςμοφ. Οι υφζσ που χρθςιμοποιικθκαν για ςτο παράδειγμα τθσ Εικόνα 25, φαίνονται ςτθν Εικόνα 26. O υπολογιςμόσ του φωτιςμοφ εκτελείται ανά pixel ςτουσ Pixel Processors τθσ GPU. Το πρόγραμμα που εκτελείται ςτουσ Vertex Processors μεταςχθματίηει τα τρία διανφςματα (κάκετο, εφαπτομζνθ, ςυνεφαπτομζνθ) ςτον χϊρο του παρατθρθτι και ςτθν ςυνζχεια δθμιουργεί ζναν πίνακα 3x3, ο οποίοσ ςε κάκε γραμμι του ζχει κάκε ζνα από τα μεταςχθματιςμζνα διανφςματα. Στθν ςυνζχεια μεταςχθματίηει τα διανφςματα του παρατθρθτι και του φωτόσ ςτον χϊρο εφαπτομζνθσ (tangent space) κάκε ςθμείου πολλαπλαςιάηοντάσ τα με τον 3x3 πίνακα που μόλισ δθμιουργιςαμε. Στθν ςυνζχεια τα μεταςχθματιςμζνα διανφςματα παρατθρθτι και φωτόσ προωκοφνται ςτουσ Pixel Processors οι οποίοι αφοφ τα κανονικοποιιςουν (μζτρο ίςο με 1), εφαρμόηουν το μοντζλο φωτιςμοφ Phong που περιγράψαμε αλλά ςαν κάκετο διάνυςμα χρθςιμοποιοφν τθν τιμι που προςπελαφνουν από τθν υφι 68

77 των κάκετων διανυςμάτων (b ςτθν Εικόνα 26). Αφοφ υπολογιςτεί θ ζνταςθ που ζχουν οι τρεισ ςυνιςτϊςεσ του Phong μοντζλου φωτιςμοφ, πολλαπλαςιάηεται θ ςυνιςτϊςα διάχυςθσ με τθν υφι χρϊματοσ (a ςτθν Εικόνα 26) και παράγεται το τελικό αποτζλεςμα. Εικόνα 26: Παράδειγμα υφϊν για τθν εφαρμογι του Normal Mapping. Να ςθμειωκεί θ υφι b ςτθν Εικόνα 26 αποκθκεφεται ςυνικωσ ςε RGB ι RGBA format. Οι τιμζσ που υποςτθρίηουν αυτά τα formats κυμαίνονται ςτο *0,1+. Πμωσ οι τιμζσ κάκε ςυνιςτϊςασ των κανονικοποιθμζνων διανυςμάτων που κζλουμε να αποκθκεφςουμε κυμαίνονται ςτο *-1,1+. Γι αυτό εφαρμόηουμε ζνα μεταςχθματιςμό που απεικονίηει τισ τιμζσ από το *0,1+ ςτο *-1,1] μετά τθν προςπζλαςθ και πριν χρθςιμοποιιςουμε αυτά τα διανφςματα για τον υπολογιςμό του φωτιςμοφ. Τζλοσ, να ςθμειωκεί πωσ θ παραπάνω διαδικαςία εφαρμόηεται για μία πθγι φωτόσ και πρζπει να τθν επαναλαμβάνουμε για κάκε επιπλζον πθγι και να προςκζτουμε τα ακροίςματά τουσ. Blooming & Depth of Field Οι τεχνικζσ που παρουςιάηονται ςτθν ςυνζχεια εφαρμόηονται ςτθν εικόνα που ζχει παραχκεί μετά τθν ςχεδίαςθ τθσ γεωμετρίασ. Δθλαδι, ενεργοφν ςτο ςφνολο τθσ εικόνασ κι είναι γνωςτζσ με τον όρο post processing effects, δθλαδι ςκιάςεισ που εφαρμόηονται αφοφ ολοκλθρωκεί θ ςχεδίαςθ όλθσ τθσ γεωμετρίασ τθσ ςκθνισ. Οι ςκιάςεισ Blooming και Depth of Field (Βάκοσ πεδίου), παρουςιάηουν ομοιότθτεσ και γι αυτό αναλφονται μαηί. Τα αποτελζςματα τθσ εφαρμογισ αυτϊν των ςκιάςεων φαίνονται ςτθν Εικόνα 27 και ςτθν Εικόνα 28. Αφοφ ζχει ςχεδιαςτεί θ ςκθνι (πάνω μζροσ τθσ Εικόνα 27), εφαρμόηουμε ζνα φίλτρο το οποίο απομονϊνει τισ περιοχζσ τθσ που ζχουν ζνταςθ χρϊματοσ πάνω από ζνα ςυγκεκριμζνο όριο. Στθν ςυνζχεια κολϊνουμε (blur) τισ περιοχζσ αυτζσ. Αυτό το πετυχαίνουμε κάνοντασ δειγματολθψία ςτα γειτονικά εικονοςτοιχεία και 69

78 ςτθν ςυνζχεια βγάηοντασ τον μζςο όρο του χρϊματοσ. Το αποτζλεςμα αυτισ τθσ διαδικαςίασ ςυνδυάηεται με τθν αρχικι εικόνα κι ζτςι ςχεδιάηουμε τθν εικόνα όπωσ φαίνεται ςτο κάτω μζροσ τθσ Εικόνα 27. Εικόνα 27: Επάνω ςχεδίαςθ χωρίσ bloom effect. Κάτω με χριςθ bloom effect. Ππωσ είναι εμφανζσ το αποτζλεςμα τθσ ςκίαςθσ Bloom είναι ότι περιοχζσ που ζχουν ζντονο φωτιςμό τονίηονται περιςςότερο και δθμιουργείται ζνα είδοσ καμπάδασ. Θ ςκίαςθ του βάκουσ πεδίου, που φαίνεται ςτθν Εικόνα 28, προςομοιϊνει το φαινόμενο που ςυμβαίνει όταν ο φακόσ τθσ κάμερασ εςτιάηει ςε μία ςυγκεκριμζνθ απόςταςθ. Πςο πιο μακριά από το ςθμείο εςτίαςθσ βρίςκεται ζνα αντικείμενο, τόςο πιο κολό φαίνεται. Για παράδειγμα ςτθν Εικόνα 28, επειδι θ κάμερα εςτιάηει ςτο πρόςωπο του Βοφδα, το πάνω μζροσ του αγάλματοσ και τα πόδια του που είναι εκτόσ εςτίαςθσ, ςχεδιάηονται κολά. Για τθν επίτευξθ αυτισ τθσ ςκίαςθσ ακολουκείται θ παρακάτω διαδικαςία. 70

79 Εικόνα 28: χεδίαςθ χωρίσ χριςθ του Depth of Field (Επάνω) και με χριςθ (Κάτω). Αφοφ ολοκλθρωκεί θ ςχεδίαςθ τθσ ςκθνισ (πάνω μζροσ τθσ Εικόνα 28), κολϊνουμε το αποτζλεςμα. Το κόλωμα που εφαρμόηουμε ςε αυτι τθν περίπτωςθ ζχει ζναν περιοριςμό. Δεν αναμιγνφουμε χρϊματα αν αυτά αντιςτοιχοφν ςε ςθμεία ςτο χϊρο τα οποία ζχουν απόςταςθ μεγαλφτερθ από ζνα ςυγκεκριμζνο όριο. Αν το κάναμε αυτό, τότε κα είχαμε διαρροι χρϊματοσ από αντικείμενα τα οποία ιταν εντόσ εςτίαςθσ ςε αντικείμενα που ιταν εκτόσ εςτίαςθσ ι μεταξφ αντικειμζνων τα οποία είναι μεν εκτόσ εςτίαςθσ αλλά ζχουν μεγάλθ απόςταςθ μεταξφ τουσ. Αυτό χαλάει το τελικό αποτζλεςμα μιασ και το φαινόμενο αυτό ςτον πραγματικό κόςμο εμφανίηει τα αντικείμενα κολά, αλλά δεν αναμιγνφονται τα περιγράμματά των αντικειμζνων. Για να ικανοποιιςουμε αυτόν τον περιοριςμό μποροφμε είτε να κάνουμε ζλεγχο ροισ για να εντοπίηουμε τθν απόςταςθ μεταξφ δφο pixel ςτθν εικόνα, με χριςθ του βάκουσ που αποκθκεφουμε με το deferred shading, είτε να εφαρμόηουμε ζνα είδοσ βάρουσ ςτα pixels και να ορίηουμε μεγάλο βάροσ ςε εικονοςτοιχεία που είναι κοντά ςε απόςταςθ ςε αυτό ςτο οποίο εφαρμόηουμε το κόλωμα και πολφ μικρό ςε αυτά 71

80 που είναι μακριά. Τα πειράματα μασ ζδωςαν αντίςτοιχα αποτελζςματα κι επιλζχκθκε ο ζλεγχοσ ροισ που κάνει τον κϊδικα πιο ξεκάκαρο. Στθν ςυνζχεια, κεωροφμε πωσ ο παρατθρθτισ εςτιάηει ςτθν απόςταςθ που αντιςτοιχεί ςτο κεντρικό pixel τθσ εικόνασ. Με βάςθ αυτι τθν απόςταςθ ςχεδιάηουμε τθν τελικι εικόνα: όςο πιο κοντά είναι ζνα pixel ςτθν απόςταςθ τθσ εςτίαςθσ τόςο μεγαλφτερο ποςοςτό τθσ μθ κολωμζνθσ εικόνασ επιλζγουμε. Πςο μεγαλφτερθ είναι αυτι θ απόςταςθ, επιλζγουμε μεγαλφτερο ποςοςτό από τθν κολωμζνθ εικόνα. Με μακθματικά αυτι θ ςχζςθ περιγράφεται: Τελικό χρώμα = 1 απόςταςη κεντρικού pixel απόςταςη τρέχοντοσ pixel μη θολωμένη εικόνα + ( απόςταςη κεντρικού pixel απόςταςη τρέχοντοσ pixel ) θολωμένη εικόνα Δυναμικόσ ουρανόσ Πλα τα ςφγχρονα παιχνίδια και οι αλλθλεπιδραςτικζσ εφαρμογζσ υποςτθρίηουν αυτό το χαρακτθριςτικό ςε μικρι ι μεγάλθ ζκταςθ. Ο όροσ δυναμικόσ ουρανόσ χρθςιμοποιείται για να περιγράψει τον ουρανό που μεταβάλλεται με το πζραςμα του χρόνου, είτε επειδι εμφανίηονται ι εξαφανίηονται ςφννεφα, είτε επειδι μετακινείται ο ιλιοσ. Οι παραπάνω παράμετροι ζχουν επίδραςθ ςτον φωτιςμό των αντικειμζνων του εικονικοφ κόςμου, είτε ωσ προσ τθν ζνταςθ του φωτόσ είτε ωσ προσ το χρϊμα. Με τον όρο ουρανό εννοοφμε αυτό που γνωρίηουμε από τον φυςικό μασ κόςμο. Ο ουρανόσ επειδι βρίςκεται πολφ μακριά από τα μάτια μασ, χάνει τθν τριςδιάςτατθ υπόςταςι του κι εμφανίηεται ςαν μία διςδιάςτατθ εικόνα κολλθμζνθ ςτον ουράνιο κόλο. Αυτι ακριβϊσ είναι θ προςζγγιςθ που χρθςιμοποιείται ςτισ εφαρμογζσ οι οποίεσ υποςτθρίηουν δυναμικό ουρανό. Στθν δικι μασ προςζγγιςθ ςχεδιάηουμε μία ςφαίρα θ οποία περιβάλλει τον εικονικό κόςμο και ςτο εςωτερικό τθσ οποίασ εφαρμόηουμε υφζσ. Οι υφζσ που εφαρμόηουμε υπολογίηονται δυναμικά ςαν μία ι περιςςότερεσ ςυναρτιςεισ με βάςθ κάποιεσ άλλεσ βοθκθτικζσ υφζσ ειςόδου (όπωσ υφζσ κορφβου). Θ ςφαίρα ςτθν οποία ςχεδιάηεται ο ουρανόσ μζνει πάντα ςτθν μζγιςτθ απόςταςθ από τον παρατθρθτι, με άλλα λόγια ο παρατθρθτισ δεν πλθςιάηει ποτζ ςε αυτι και κατά ςυνζπεια ςτον ουρανό. Για να επιτευχκεί αυτό, όταν μεταςχθματίηουμε τθν ςφαίρα για να περιβάλλει τον εικονικό κόςμο κζτουμε τθν z ίςθ με τθν w ςυνιςτϊςα κάκε ςθμείου τθσ γεωμετρίασ, κατά ςυνζπεια θ ςφαίρα ςχεδιάηεται πάντα ςτθν οκόνθ και ςε ςτακερι απόςταςθ, αφοφ θ διαίρεςθ προβολισ πάντα κα μασ δίνει 1. Στθν ςυνζχεια αφοφ τοποκετιςαμε τον ουράνιο κόλο ςτθν ςκθνι, πρζπει να δθμιουργιςουμε ςφννεφα και ιλιο, τα οποία μετακινοφνται κι αλλάηει αντίςτοιχα το χρϊμα και θ ζνταςθ του φωτόσ. Αυτι θ διαδικαςία εκτελείται ςτουσ Pixel Processors τθσ GPU. Τα ςφννεφα δθμιουργοφνται κάνοντασ προςπζλαςθ ςε μία 72

81 τριςδιάςτατθ υφι που περιζχει τιμζσ κορφβου των 8 bit κι ζχει διαςτάςεισ 128x128x128. Ο κόρυβοσ αυτόσ είναι ςυνεχισ ςε όλεσ τισ διαςτάςεισ του. Σε κάκε ςυγκεκριμζνθ χρονικι προςπελαφνουμε τθν τιμι (x, y, mod(time, 128)), δθλαδι, ςε κάκε καρζ προςπελαφνουμε διαφορετικι «φζτα» τθσ τριςδιάςτατθσ υφισ για να δθμιουργιςουμε τα ςφννεφα και ανά 128 δευτερόλεπτα επαναλαμβάνουμε τθν προςπζλαςθ ςτθν πρϊτθ «φζτα». Αυτό δθμιουργεί τθν αίςκθςθ ότι τα ςφννεφα μετακινοφνται ενϊ παράλλθλα αλλάηει το ςχιμα τουσ. Εικόνα 29: φγκριςθ τθσ ποιότθτασ των ςφννεφων χωρίσ (a) και με (b) εφαρμογι διγραμμικοφ φιλτραρίςματοσ. Βαςικι προχπόκεςθ για μία επιτυχθμζνθ αναπαράςταςθ των ςφννεφων είναι να εφαρμόηουμε φιλτράριςμα κατά τθν προςπζλαςθ. Θ ποιότθτα του αποτελζςματοσ πζφτει κατακόρυφα αν δεν γίνεται κάτι τζτοιο κι ζνα παράδειγμα φαίνεται ςτθν Εικόνα

82 Ρζρα από τα ςφννεφα, ςτον ουρανό δθμιουργοφμε χρθςιμοποιϊντασ μακθματικζσ ςυναρτιςεισ τον ιλιο. Κεωροφμε πωσ είναι εντελϊσ ςτρογγυλόσ ζτςι ϊςτε να περιγράφεται με λιγότερεσ πράξεισ κατά τθν εκτζλεςθ του προγράμματοσ ςτθν GPU. Επίςθσ ο ιλιοσ μετακινείται ςτον ουρανό και μεταβάλλοντασ παραμζτρουσ κατά τθν ςχεδίαςι του επιτφχαμε να είναι λίγο ζντονο το φωσ του όταν είναι κοντά ςτον ορίηοντα αλλά πολφ ζντονο όταν βρίςκεται ςτθν ανϊτερθ κζςθ πάνω από τθν τριςδιάςτατθ ςκθνι. Επιπλζον, τα ςφννεφα, ο ίδιοσ ο ιλιοσ και φυςικά τα αντικείμενα τα οποία φωτίηει ζχουν διαφορετικό χρϊμα ανάλογα με τθν κζςθ του ςτον ουρανό. Στθν Εικόνα 30, φαίνονται 2 κζςεισ του ιλιου, μία ςτο φψοσ του ορίηοντα (a) και μία όταν βρίςκεται ςτθν ανϊτερθ κζςθ του (b). Εικόνα 30: χεδίαςθ του ιλιου ςτον ουρανό. 74

83 Ραρατθριςτε, πωσ αλλάηει το χρϊμα του ουρανοφ, των ςφννεφων και του εδάφουσ ςτισ δφο αυτζσ κζςεισ. Το χρϊμα αυτό προκφπτει φςτερα από προςπζλαςθ ςε 2 διαφορετικζσ υφζσ τθσ μίασ διάςταςθσ θ κάκε μία. Θ μία υφι περιζχει το χρϊμα του ιλιου ςε κάκε κζςθ από τθν ελάχιςτθ ζωσ τθν μζγιςτθ. Θ άλλθ υφι περιζχει το χρϊμα που ζχουν τα ςφννεφα και το ζδαφοσ για τισ αντίςτοιχεσ κζςεισ του ιλιου ςτον ουρανό. Θ προςπζλαςθ ςε αυτζσ τισ υφζσ κακορίηεται από τθν ςυνιςτϊςα y που περιγράφει το φψοσ του ιλιου πάνω από ζδαφοσ και οι τιμζσ τθσ κυμαίνονται ςτο *0,1+. Τα ςφννεφα ςε ςχζςθ με το ζδαφοσ ζχουν ζνα πιο φωτεινό χρϊμα, ενϊ κατά τθν δφςθ κι ανατολι του θλίου το ζδαφοσ παίρνει ζνα ςκοφρο μπλε χρϊμα και διαφοροποιείται από το χρϊμα του ιλιου. Τα χρϊματα αυτά μπορεί να αλλάηουν από τον προγραμματιςτι επιτυγχάνοντασ περιςςότερο αλθκοφανι ι φανταςτικά χρϊματα ανάλογα με τον ςκοπό τθσ εφαρμογισ. Απαλϋσ ςκιϋσ με χρόςη Shadow Mapping Θ τελευταία τεχνικι ςκίαςθσ θ οποία υλοποιικθκε, βαςίηεται ςτθν αλγόρικμο του shadow mapping, ο οποίοσ παρουςιάςτθκε το 1978 από τον Lance Williams [20]. Θ τεχνικι αυτι είναι δφο περαςμάτων (two passes). Στο πρϊτο πζραςμα αποκθκεφουμε ςε κάποια βοθκθτικι μνιμθ (buffer) τθν απόςταςθ των αντικειμζνων του τριςδιάςτατου κόςμου από τθν πθγι του φωτόσ. Στο δεφτερο πζραςμα, χρθςιμοποιοφμε τθν πλθροφορία που αποκθκεφςαμε ςτο πρϊτο, ζτςι ϊςτε να διαπιςτϊςουμε αν θ γεωμετρία που ςχεδιάηουμε φαίνεται ι όχι από τθν φωτεινι. Με άλλα λόγια κεωροφμε το φωσ ςαν τον παρατθρθτι τθσ ςκθνισ και ςτθν ςυνζχεια κάνουμε ζναν ζλεγχο για να δοφμε τι είναι ορατό από αυτόν τον παρατθρθτι. Θ μζκοδοσ του Shadow mapping λόγω τθσ μικρισ πολυπλοκότθτάσ τθσ είναι πολφ αποδοτικι, ειδικά όταν εκτελείται ςτισ ςφγχρονεσ GPUs. Το μεγάλο μειονζκτθμα τθσ μεκόδου είναι θ εμφάνιςθ τεχνουργθμάτων (artifacts). Με τον όρο αυτό αναφερόμαςτε ςε ςθμεία τθσ ςκιάσ τα οποία παρουςιάηουν περίεργεσ γωνίεσ και δεν ακολουκοφν το περίγραμμα των αντικειμζνων με τα οποία ςχετίηονται. Αυτό ζχει ωσ αποτζλεςμα τθν μείωςθ τθσ ποιότθτασ τθσ τελικισ εικόνασ. Στθν Εικόνα 31 παρουςιάηεται το πρόβλθμα αυτό. Ππωσ μπορεί κανείσ να δει ςτο πρόςωπο, το ςϊμα του Βοφδα και το ζδαφοσ, οι ςκιζσ εμφανίηουν περίεργεσ γωνίεσ και χαλάνε το τελικό αποτζλεςμα. Το πρόβλθμα αυτό οφείλεται ςε δφο παράγοντεσ. Ο ζνασ είναι θ ακρίβεια των αρικμθτικϊν πράξεων. Πταν ςυγκρίνουμε αποςτάςεισ από τθν φωτεινι πθγι κι όςο θ γωνία μίασ επιφάνειασ με το επίπεδο X,Y τθσ φωτεινισ πθγισ μεγαλϊνει, τόςο πιο εμφανζσ είναι το πρόβλθμα. Αυτό ςυμβαίνει γιατί θ floating point ακρίβεια (ειδικά όταν οι αποςτάςεισ ςτον τριςδιάςτατο κόςμο είναι μεγάλεσ) δεν επαρκεί για να κωδικοποιιςει αποςτάςεισ μερικϊν εκατοςτϊν όταν τα αντικείμενα βρίςκονται εκατοντάδεσ μζτρα μακριά. Ζτςι, οι επιφάνειεσ άλλοτε φωτίηονται κι άλλοτε όχι, ι επιφάνειεσ οι οποίεσ ζπρεπε να φωτίηονται είναι υπό ςκιά. Το πρόβλθμα αυτό παρουςιάηεται κυρίωσ ςτο ζδαφοσ τθσ Εικόνα 31. Μία εφκολθ λφςθ ςτο πρόβλθμα 75

84 τθσ αρικμθτικισ ακρίβειασ είναι να μετακινοφμε τθν μία από τισ δφο επιφάνειεσ τισ οποίεσ ςυγκρίνουμε ωσ προσ τθν απόςταςθ από το φωσ, ελάχιςτα πιο μακριά από αυτό. Εικόνα 31: Πρόβλθμα εμφάνιςθσ τεχνουργθμάτων κατά τθν εφαρμογι του Shadow Mapping αλγόρικμου. Εφαρμόηοντασ αυτι τθν μετακίνθςθ παίρνουμε το αποτζλεςμα που φαίνεται ςτθν Εικόνα 32. Ρροςοχι πρζπει να δοκεί ςτο ποςοςτό τθσ μετακίνθςθσ που κα εφαρμόςουμε, γιατί μεγάλο ποςοςτό μετακινεί τθν ςκιά μακριά από τα αντικείμενα με τα οποία ςχετίηεται και χαλά το αιςκθτικό αποτζλεςμα. Από τθν άλλθ μικρι μετακίνθςθ ςθμαίνει μικρι βελτίωςθ ςτθν ποιότθτα τθσ εικόνασ, λόγω τθσ μθ εξάλειψθσ των τεχνουργθμάτων. Σε κάκε περίπτωςθ, απαιτείται πειραματιςμόσ ι προςζγγιςθ με άλλεσ μεκόδουσ, όπωσ θ μετακίνθςθ των επιφανειϊν κατά ζνα ποςοςτό ςχετικά με το κάκετο διάνυςμα ςτθν επιφάνεια. Ενϊ θ ποιότθτα τθσ τελικισ εικόνασ είναι ςαφϊσ καλφτερθ, ςυνεχίηουν να εμφανίηονται τεχνουργιματα ςτο πρόςωπο και ςτο ζδαφοσ, ειδικά ςτο περίγραμμα του αγάλματοσ του Βοφδα. Το πρόβλθμα που εμφανίηεται μετά τθν παραπάνω διόρκωςθ ςχετίηεται με τθν με τθν φφςθ του Shadow Mapping αλγόρικμου. Συγκεκριμζνα, ο αλγόρικμοσ εφαρμόηεται ςτον χϊρο εικόνασ (image space), κάνει δθλαδι ςυγκρίςεισ πλθροφορίασ ανάμεςα ςε εικόνεσ. Θ μία, είναι αυτι που ςχεδιάηουμε και θ άλλθ είναι θ εικόνα που κρατά τθν απόςταςθ από τθν φωτεινι πθγι. Επειδι θ ανάλυςθ (ςε εικονοςτοιχεία) των δφο εικόνων κι ειδικά τθσ δεφτερθσ είναι πεπεραςμζνθ, 76

85 ςυμβαίνει να δειγματολθπτοφμε το ίδιο pixel τθσ εικόνασ πολλαπλζσ φορζσ. Αυτό ζχει ωσ αποτζλεςμα ςτθν τελικι εικόνα να εμφανίηονται ςκαλοπάτια ςτα περιγράμματα των αντικειμζνων. Ρροφανϊσ, αυτό το πρόβλθμα δεν μπορεί να ξεπεραςτεί πλιρωσ και για τθν αντιμετϊπιςι του ζχουν προτακεί πάρα πολλζσ διαφορετικζσ προςεγγίςεισ. Θ δικι μασ προςζγγιςθ ιταν να δειγματολθπτιςουμε πολλαπλζσ φορζσ τα εικονοςτοιχεία που περιζχουν τισ αποςτάςεισ ςε διαφορετικζσ περιοχζσ και να βγάλουμε ζναν μζςο όρο για να υπολογίςουμε αν φωτίηονται ι όχι τα εικονοςτοιχεία τθσ τελικισ εικόνασ. Εικόνα 32: Μείωςθ των τεχνουργθμάτων που οφείλονται ςτθν αρικμθτικι ακρίβεια. Θ δειγματολθψία περιορίηεται ςε ςυγκεκριμζνθ απόςταςθ από το εικονοςτοιχείο που μασ ενδιαφζρει αλλά αυτι θ παράμετροσ μπορεί να αλλάηει ζτςι ϊςτε να δθμιουργοφμε ςκιζσ με πιο απαλά ι ζντονα περιγράμματα. Θ δειγματολθψία γίνεται ςε 24 ςθμεία για κάκε εικονοςτοιχείο. Συγκεκριμζνα, ζχουμε 12 ςθμεία τα οποία αποτελοφν Poisson κατανομι ςε ζνα κφκλο και ζνα παράδειγμα φαίνεται ςτθν Εικόνα 33. Κάνουμε δειγματολθψία γι αυτά τα 12 ςθμεία και τα ςυμμετρικά τουσ ωσ προσ τουσ X,Y άξονεσ κι επομζνωσ ζχουμε 24 ςθμεία δειγματολθψίασ. Για κάκε ςθμείο εξετάηουμε αν βρίςκεται ςε ςκιά (0) ι ςτο φωσ (1) και το αποτζλεςμα το διαιροφμε με 24. Επομζνωσ οι τιμζσ που μπορεί να πάρει θ ζνταςθ τθσ ςκιάσ πλζον είναι 24 από 0/24 ζωσ 24/24. Επιπλζον, δεν κρατάμε το μοτίβο τθσ δειγματολθψίασ ςτακερό, γιατί αυτό δθμιουργεί μοτίβα ομοιομορφίασ ςτθν ςκιά 77

86 (βλ. Εικόνα 34) αλλά περιςτρζφουμε τον δίςκο δειγματολθψίασ κατά τυχαία κάκε φορά γωνία. Εικόνα 33: 12 ςθμεία ςε Poisson κατανομι ςε ζνα κφκλο Θ τυχαίεσ γωνίεσ περιςτροφισ είναι αποκθκευμζνεσ ςε μία υφι, θ οποία περιζχει ςε κάκε εικονοςτοιχείο τθσ 4 γωνίεσ περιςτροφισ που χρθςιμοποιοφνται για 2 δειγματολθψίεσ γειτονικϊν εικονοςτοιχείων. Το αποτζλεςμα αυτισ τθσ προςζγγιςθσ είναι θ δθμιουργία κορφβου και κατά ςυνζπεια θ απομάκρυνςθ των μοτίβων ομοιομορφίασ. Εικόνα 34: Μοτίβο ομοιομορφίασ ςτθν ςκιά, λόγω ομοιόμορφθσ δειγματολθψίασ. Επειδι το ανκρϊπινο μάτι δεν είναι ευαίςκθτο ςτον κόρυβο, το αποτζλεςμα είναι ανϊτερο από αυτό τθσ Εικόνα 32 και παρουςιάηεται ςτθν Εικόνα 35. Βλζπουμε πωσ πλζον οι ςκιζσ ζχουν πολφ πιο ομαλζσ μεταβάςεισ και απαλό περίγραμμα ενϊ βελτιϊνεται δραςτικά θ κίνθςθ των ςκιϊν όταν μετακινείται το αντικείμενο ωσ προσ τθν φωτεινι πθγι ι ο παρατθρθτισ ι θ ίδια θ πθγι φωτόσ. Ρροφανϊσ, οι βελτιϊςεισ ςτθν ποιότθτα που πετφχαμε με τισ παραπάνω μεκόδουσ, ζχουν επιπτϊςεισ ςτθν απόδοςθ. Πλεσ όμωσ, οι ςφγχρονεσ GPUs είναι ςε κζςθ να εκτελζςουν αποδοτικά τουσ αλγόρικμουσ αυτοφσ. 78

ΟΙ ΜΙΚΡΟΜΕΣΑΙΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ ΣΤΗΝ ΕΛΛΑΔΑ ΚΑΙ Ο ΚΛΑΔΟΣ ΤΗΣ ΥΠΟΔΗΣΗΣ

ΟΙ ΜΙΚΡΟΜΕΣΑΙΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ ΣΤΗΝ ΕΛΛΑΔΑ ΚΑΙ Ο ΚΛΑΔΟΣ ΤΗΣ ΥΠΟΔΗΣΗΣ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΚΑΙ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΕΦΑΡΜΟΣΜΕΝΗ ΛΟΓΙΣΤΙΚΗ ΚΑΙ ΕΛΕΓΚΤΙΚΗ Διπλωματική Εργασία ΟΙ ΜΙΚΡΟΜΕΣΑΙΕΣ ΕΠΙΧΕΙΡΗΣΕΙΣ

Διαβάστε περισσότερα

Πρόταςθ - ζκκεςθ για βελτίωςθ των ςυνκθκών διαβίωςθσ των ηώων του Ζωολογικοφ Κιπου Θεςςαλονίκθσ

Πρόταςθ - ζκκεςθ για βελτίωςθ των ςυνκθκών διαβίωςθσ των ηώων του Ζωολογικοφ Κιπου Θεςςαλονίκθσ Πρόταςθ - ζκκεςθ για βελτίωςθ των ςυνκθκών διαβίωςθσ των ηώων του Ζωολογικοφ Κιπου Θεςςαλονίκθσ Θεςςαλονίκθ 26 Αυγοφςτου 2011 Μετά τθ ςυνάντθςθ με τον Αντιδιμαρχο Πραςίνου κ. Ζζρβα, ςυςτάκθκε μεικτι ομάδα

Διαβάστε περισσότερα

237 Χημικών Μηχανικών Θεσσαλονίκης

237 Χημικών Μηχανικών Θεσσαλονίκης 237 Χημικών Μηχανικών Θεσσαλονίκης Σκοπός κύριος σκοπός του Χημικού Μηχανικού είναι να αναλύει, να σχεδιάζει, να βελτιστοποιεί και να ελέγχει όλες τις χημικές και φυσικές διεργασίες της χημικής βιομηχανίας.

Διαβάστε περισσότερα

ΤΕΙ ΚΑΛΑΜΑΤΑΣ. ΑΡΓΥΡΗ ΔΗΜΗΤΡΑ Σχολής Διοίκησης και Οικονομίας Τμήμα Χρηματοοικονομικής και Ελεγκτικής Επιστήμης Εισηγητής :Λυγγίτσος Αλέξανδρος

ΤΕΙ ΚΑΛΑΜΑΤΑΣ. ΑΡΓΥΡΗ ΔΗΜΗΤΡΑ Σχολής Διοίκησης και Οικονομίας Τμήμα Χρηματοοικονομικής και Ελεγκτικής Επιστήμης Εισηγητής :Λυγγίτσος Αλέξανδρος ΤΕΙ ΚΑΛΑΜΑΤΑΣ ΑΡΓΥΡΗ ΔΗΜΗΤΡΑ Σχολής Διοίκησης και Οικονομίας Τμήμα Χρηματοοικονομικής και Ελεγκτικής Επιστήμης Εισηγητής :Λυγγίτσος Αλέξανδρος «Φορολογία εισοδήματος φυσικών προσώπων στην Ελλάδα» ΚΑΛΑΜΑΤΑ

Διαβάστε περισσότερα

ΕΙΔΙΚΟ ΣΧΕΔΙΟ ΔΙΑΧΕΙΙΣΗΣ ΑΝΘΩΡΙΝΩΝ ΑΡΩΛΕΙΩΝ (ΣΔΑΑ)

ΕΙΔΙΚΟ ΣΧΕΔΙΟ ΔΙΑΧΕΙΙΣΗΣ ΑΝΘΩΡΙΝΩΝ ΑΡΩΛΕΙΩΝ (ΣΔΑΑ) ΓΕΝΙΚΗ ΓΑΜΜΑΤΕΙΑ ΡΟΛΙΤΙΚΗΣ ΡΟΣΤΑΣΙΑΣ ΔΙΕΥΘΥΝΣΗ ΣΧΕΔΙΑΣΜΟΥ & ΑΝΤΙΜΕΤΩΡΙΣΗΣ ΕΚΤΑΚΤΩΝ ΑΝΑΓΚΩΝ ΤΜΗΜΑ ΣΧΕΔΙΑΣΜΟΥ, ΡΟΛΗΨΗΣ & ΑΝΤΙΜΕΤΩΡΙΣΗΣ ΤΕΧΝΟΛΟΓΙΚΩΝ & ΛΟΙΡΩΝ ΚΑΤΑΣΤΟΦΩΝ ΕΙΔΙΚΟ ΣΧΕΔΙΟ ΔΙΑΧΕΙΙΣΗΣ ΑΝΘΩΡΙΝΩΝ

Διαβάστε περισσότερα

Σα κφρια ςθμεία και οι βαςικζσ αλλαγζσ του νζου φορολογικοφ νομοςχεδίου:

Σα κφρια ςθμεία και οι βαςικζσ αλλαγζσ του νζου φορολογικοφ νομοςχεδίου: Σα κφρια ςθμεία και οι βαςικζσ αλλαγζσ του νζου φορολογικοφ νομοςχεδίου: Α. ΦΟΡΟΛΟΓΙΑ ΕΙΟΔΗΜΑΣΟ 1. Νζα φορολογικι κλίμακα Ειςάγεται μια νζα φορολογικι κλίμακα χωρίσ διακρίςεισ ωσ προσ τθν πθγι προζλευςθσ

Διαβάστε περισσότερα

Η Μ Ε Ρ Ο Μ Η Ν Ι Α ΠΕΜΠΤΗ 13 ΙΟΥΝΙΟΥ 2013 - ώρα 10:00 π.μ. ΤΟΠΟΣ ΔΙΕΝΕΡΓΕΙΑΣ : ΑΤΕΙ- ΘΕΣΣΑΛΟΝΙΚΗΣ -ΣΙΝΔΟΣ-ΘΕΣ/ΝΙΚΗΣ

Η Μ Ε Ρ Ο Μ Η Ν Ι Α ΠΕΜΠΤΗ 13 ΙΟΥΝΙΟΥ 2013 - ώρα 10:00 π.μ. ΤΟΠΟΣ ΔΙΕΝΕΡΓΕΙΑΣ : ΑΤΕΙ- ΘΕΣΣΑΛΟΝΙΚΗΣ -ΣΙΝΔΟΣ-ΘΕΣ/ΝΙΚΗΣ ΑΝΑΡΤΗΤΕΟ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ, ΠΟΛΙΤΙΣΜΟΥ ΚΑΙ ΑΘΛΗΤΙΣΜΟΥ ----- ΑΛΕΞΑΝΔΡΕΙΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Α.Τ.Ε.Ι) ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΙΕΥΘΥΝΣΗ ΟΙΚΟΝΟΜΙΚΟΥ

Διαβάστε περισσότερα

ΕΙΗΓΗΗ ΣΟΤ Δ.. ΣΗ ΤΚΕΨΗ ΜΕ ΣΑ Δ.. ΣΩΝ ΕΝΩΕΩΝ ΣΙ 10 ΙΑΝΟΤΑΡΙΟΤ 2016

ΕΙΗΓΗΗ ΣΟΤ Δ.. ΣΗ ΤΚΕΨΗ ΜΕ ΣΑ Δ.. ΣΩΝ ΕΝΩΕΩΝ ΣΙ 10 ΙΑΝΟΤΑΡΙΟΤ 2016 ΟΜΟΠΟΝΓΙΑ ΓΟΝΔΩΝ & ΚΗΓΔΜΟΝΩΝ ΠΔΡΙΦΔΡΔΙΑ ΑΣΣΙΚΗ Βεπανζέπος 22,6 ορ όποφορ, τηλ.: 210.3835093, φαξ: 210.3845434 210.3801227 www.goneis.org, e-mail: omosp.goneon.attikis@gmail.com. ΕΙΗΓΗΗ ΣΟΤ Δ.. ΣΗ ΤΚΕΨΗ

Διαβάστε περισσότερα

Καλζσ Πρακτικζσ ςτην Προςχολική Εκπαίδευςη ΙIΙ.A

Καλζσ Πρακτικζσ ςτην Προςχολική Εκπαίδευςη ΙIΙ.A ΤΠΟΤΡΓΕΙΟ ΠΑΙΔΕΙΑ ΘΡΗΚΕΤΜΑΣΩΝ ΠΟΛΙΣΙΜΟΤ ΚΑΙ ΑΘΛΗΣΙΜΟΤ ΙΝΣΙΣΟΤΣΟ ΕΚΠΑΙΔΕΤΣΙΚΗ ΠΟΛΙΣΙΚΗ Αξιολόγηςη του Εκπαιδευτικοφ Ζργου ςτη χολική Μονάδα Διαδικαςία Αυτοαξιολόγηςησ Καλζσ Πρακτικζσ ςτην Προςχολική Εκπαίδευςη

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΚΕΝΤΡΟ ΚΟΙΝΩΝΙΚΩΝ ΕΡΕΥΝΩΝ ΙΝΣΤΙΤΟΥΤΟ ΑΣΤΙΚΗΣ ΚΑΙ ΑΓΡΟΤΙΚΗΣ ΚΟΙΝΩΝΙΟΛΟΓΙΑΣ ΟΜΑΔΑ ΠΕΡΙΒΑΛΛΟΝΤΟΣ

ΕΘΝΙΚΟ ΚΕΝΤΡΟ ΚΟΙΝΩΝΙΚΩΝ ΕΡΕΥΝΩΝ ΙΝΣΤΙΤΟΥΤΟ ΑΣΤΙΚΗΣ ΚΑΙ ΑΓΡΟΤΙΚΗΣ ΚΟΙΝΩΝΙΟΛΟΓΙΑΣ ΟΜΑΔΑ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΠΡΟΓΡΑΜΜΑ: ΣΥΛΛΟΓΗ, ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΙΑΧΥΣΗ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ ΧΑΡΤΗΣ ΚΑΤΑ ΝΟΜΟ ΤΩΝ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΩΝ ΕΡΕΥΝΩΝ ΤΩΝ 5 ΣΩΜΑΤΕΙΩΝ/ΣΥΛΛΟΓΩΝ ΞΕΝΑΓΩΝ ΓΙΑ ΤΟ "ΒΑΘΜΟ ΚΑΘΑΡΙΟΤΗΤΑΣ ΤΩΝ ΔΙΑΔΡΟΜΩΝ" ΠΟΥ ΟΔΗΓΟΥΝ

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΚΕΝΤΡΟ ΚΟΙΝΩΝΙΚΩΝ ΕΡΕΥΝΩΝ ΙΝΣΤΙΤΟΥΤΟ ΑΣΤΙΚΗΣ ΚΑΙ ΑΓΡΟΤΙΚΗΣ ΚΟΙΝΩΝΙΟΛΟΓΙΑΣ ΟΜΑΔΑ ΠΕΡΙΒΑΛΛΟΝΤΟΣ

ΕΘΝΙΚΟ ΚΕΝΤΡΟ ΚΟΙΝΩΝΙΚΩΝ ΕΡΕΥΝΩΝ ΙΝΣΤΙΤΟΥΤΟ ΑΣΤΙΚΗΣ ΚΑΙ ΑΓΡΟΤΙΚΗΣ ΚΟΙΝΩΝΙΟΛΟΓΙΑΣ ΟΜΑΔΑ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΠΡΟΓΡΑΜΜΑ: ΣΥΛΛΟΓΗ, ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΙΑΧΥΣΗ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΠΛΗΡΟΦΟΡΗΣΗΣ ΧΑΡΤΗΣ ΚΑΤΑ ΝΟΜΟ ΤΩΝ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΤΩΝ ΕΡΕΥΝΩΝ ΤΩΝ 5 ΣΩΜΑΤΕΙΩΝ/ΣΥΛΛΟΓΩΝ ΞΕΝΑΓΩΝ ΓΙΑ ΤΟ "ΒΑΘΜΟ ΚΑΘΑΡΙΟΤΗΤΑΣ ΤΩΝ ΔΙΑΔΡΟΜΩΝ" ΠΟΥ ΟΔΗΓΟΥΝ

Διαβάστε περισσότερα

Ι ΡΥΜΑ ΚΡΗΤΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Ι ΡΥΜΑ ΚΡΗΤΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αναδιανοµή εισοδήµατος µε έµφαση στην κοινωνική ασφάλιση στην Ελλάδα και στην Ευρωπαϊκή Ένωση: ιστορία

Διαβάστε περισσότερα

ΔΙΑΚΗΡΥΞΗ. ΠΡΟΧΕΙΡΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΠΡΟΜΗΘΕΙΑ «ΕΞΟΠΛΙΣΜΟΥ ΑΙΜΟΔΟΣΙΑΣ» προϋπολογιζόμενης δαπάνης 29.000,00 συμπεριλαμβανομένου Φ.Π.Α.

ΔΙΑΚΗΡΥΞΗ. ΠΡΟΧΕΙΡΟΥ ΔΙΑΓΩΝΙΣΜΟΥ ΓΙΑ ΤΗΝ ΠΡΟΜΗΘΕΙΑ «ΕΞΟΠΛΙΣΜΟΥ ΑΙΜΟΔΟΣΙΑΣ» προϋπολογιζόμενης δαπάνης 29.000,00 συμπεριλαμβανομένου Φ.Π.Α. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ 1 η ΥΓΕΙΟΝΟΜΙΚΗ ΠΕΡΙΦΕΡΕΙΑ ΑΤΤΙΚΗΣ ΓΕΝΙΚΟ ΝΟΣΟΚΟΜΕΙΟ ΝΟΣΗΜΑΤΩΝ ΘΩΡΑΚΟΣ ΑΘΗΝΩΝ «Η ΣΩΤΗΡΙΑ» Αθήνα: 27-9-12 Αριθμ. Πρωτ.: 22785 Λ. Μεσογείων 152, 11527 ΔΙΟΙΚΗΤΙΚΗ ΔΙΕΥΘΥΝΣΗ ΟΙΚΟΝΟΜΙΚΗ

Διαβάστε περισσότερα

Καθηγητές στο μικροσκόπιο, ιδιώτες στην έρευνα. Ο νέος νόμος-πλαίσιο για τα πανεπιστήμια. Εφημερίδα: ΤΟ ΒΗΜΑ Ρεπορτάζ: ΜΑΡΝΥ ΠΑΠΑΜΑΤΘΑΙΟΥ

Καθηγητές στο μικροσκόπιο, ιδιώτες στην έρευνα. Ο νέος νόμος-πλαίσιο για τα πανεπιστήμια. Εφημερίδα: ΤΟ ΒΗΜΑ Ρεπορτάζ: ΜΑΡΝΥ ΠΑΠΑΜΑΤΘΑΙΟΥ Καθηγητές στο μικροσκόπιο, ιδιώτες στην έρευνα Ο νέος νόμος-πλαίσιο για τα πανεπιστήμια Εφημερίδα: ΤΟ ΒΗΜΑ Ρεπορτάζ: ΜΑΡΝΥ ΠΑΠΑΜΑΤΘΑΙΟΥ Δημοσίευση: 12/06/2011, 05:45 Αθήνα «Κατακλυσμός» έρχεται στην ανώτατη

Διαβάστε περισσότερα

Η Διαρκισ Επίγνωςθ ςτθν Κακθμερινι Ζωι

Η Διαρκισ Επίγνωςθ ςτθν Κακθμερινι Ζωι Η Διαρκισ Επίγνωςθ ςτθν Κακθμερινι Ζωι Ο Δαίμονασ του Νου Ζνασ από τουσ μεγαλφτερουσ δαίμονεσ μεταξφ όλων των δαιμόνων είναι ο δαίμονασ του νου. Τι είναι αυτό; Είναι απλό, είναι θ εςωτερικι ταραχι του

Διαβάστε περισσότερα

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΟΥ ΣΠΟΥΔΑΣΤΗ ; ΝΑΟΥΜ ΙΩΑΝ. ΑΘΑΝΑΣΙΟΥ ΘΕΜΑ: «ΠΡΟΜΕΛΕΤΗ ΣΚΟΠΙΜΟΤΗΤΑΣ ΕΠΕΝΔΥΤΙΚΟΥ ΣΧΕΔΙΟΥ ΣΤΟ ΔΕΥΤΕΡΟΓΕΝΗ

Διαβάστε περισσότερα

Ιςοπεδϊνονται τα αςφαλιςτικά μασ δικαιϊματα με τθν πρόταςθ τθσ κυβζρνθςθσ για το Αςφαλιςτικό

Ιςοπεδϊνονται τα αςφαλιςτικά μασ δικαιϊματα με τθν πρόταςθ τθσ κυβζρνθςθσ για το Αςφαλιςτικό ΔΗΜΟΚΡΑΣΙΚΗ ΑΝΕΞΑΡΣΗΣΗ ΚΙΝΗΗ ΕΚΠΑΙΔΕΤΣΙΚΩΝ ΠΡΩΣΟΒΑΘΜΙΑ ΕΚΠΑΙΔΕΤΗ Ξενοφϊντοσ 15 Α 10551 Ακινα 27.01.2016 Ιςοπεδϊνονται τα αςφαλιςτικά μασ δικαιϊματα με τθν πρόταςθ τθσ κυβζρνθςθσ για το Αςφαλιςτικό «κοπεφω

Διαβάστε περισσότερα

ΠΡΑΚΣΙΚΟ ΟΔΗΓΟ ΓΙΑ ΣΙ «ΜΙΚΡΕ»ΣΟΤΡΙΣΙΚΕ ΕΠΙΧΕΙΡΗΕΙ

ΠΡΑΚΣΙΚΟ ΟΔΗΓΟ ΓΙΑ ΣΙ «ΜΙΚΡΕ»ΣΟΤΡΙΣΙΚΕ ΕΠΙΧΕΙΡΗΕΙ ΠΡΑΚΣΙΚΟ ΟΔΗΓΟ ΓΙΑ ΣΙ «ΜΙΚΡΕ»ΣΟΤΡΙΣΙΚΕ ΕΠΙΧΕΙΡΗΕΙ ΕΜΙΝΑΡΙΟ 1 ΦΟΡΟΛΟΓΙΚΑ GTS ΔΙΑΦΟΡΑ ΦΟΡΟΣΕΧΝΙΚΑ ΕΡΓΑΤΙΚΑ ΑΣΦΑΛΙΣΤΙΚΑ 2015 Φορολογικά Βιβλία & τοιχεία που πρζπει να τθρεί θ οντότθτα (μονάδα) από 1.1.2015,

Διαβάστε περισσότερα

«Ο συγγραφέας στα σύγχρονα ΜΜΕ: ο λόγος και η απήχηση του»

«Ο συγγραφέας στα σύγχρονα ΜΜΕ: ο λόγος και η απήχηση του» ΜΜΕ & Λογοτεχνία ΣΥΝΤΟΝΙΣΤΗΣ: Θ. ΒΑΛΤΙΝΟΣ «Ο συγγραφέας στα σύγχρονα ΜΜΕ: ο λόγος και η απήχηση του» ΣΥΝΤΟΝΙΣΤΗΣ: Ως οιονεί οικοδεσπότης θα κάνω και χρέη συντονιστή της συζήτησης. Θα δώσω το λόγο με τη

Διαβάστε περισσότερα

ΜΟΥΣΕΙΟ ΚΑΠΝΟΥ ΚΑΒΑΛΑΣ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ

ΜΟΥΣΕΙΟ ΚΑΠΝΟΥ ΚΑΒΑΛΑΣ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΜΟΥΣΕΙΟ ΚΑΠΝΟΥ ΚΑΒΑΛΑΣ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ για μαθητές Ε & ΣΤ τάξης Δημοτικού Σχολείου Θεματική Ενότητα: Καλλιέργεια και πρώτη επεξεργασία στο χωριό 1. Στην προθήκη με το φωτογραφικό υλικό του Μουσείου διαβάστε

Διαβάστε περισσότερα

ΤΓΓΡΑΦΘ ΕΠΙΣΘΜΟΝΙΚΘ ΜΕΛΕΣΘ. ΜΕΘΟΔΟΛΟΓΙΑ ΚΟΙΝΩΝΙΚΘ ΖΡΕΤΝΑ & ΚΟΙΝΩΝΙΚΑ ΠΡΟΒΛΘΜΑΣΑ Διδάςκοντεσ: Χρ. Σςουραμάνθσ Ι. Γουςζτθ Ακαδ.

ΤΓΓΡΑΦΘ ΕΠΙΣΘΜΟΝΙΚΘ ΜΕΛΕΣΘ. ΜΕΘΟΔΟΛΟΓΙΑ ΚΟΙΝΩΝΙΚΘ ΖΡΕΤΝΑ & ΚΟΙΝΩΝΙΚΑ ΠΡΟΒΛΘΜΑΣΑ Διδάςκοντεσ: Χρ. Σςουραμάνθσ Ι. Γουςζτθ Ακαδ. ΤΓΓΡΑΦΘ ΕΠΙΣΘΜΟΝΙΚΘ ΜΕΛΕΣΘ ΜΕΘΟΔΟΛΟΓΙΑ ΚΟΙΝΩΝΙΚΘ ΖΡΕΤΝΑ & ΚΟΙΝΩΝΙΚΑ ΠΡΟΒΛΘΜΑΣΑ Διδάςκοντεσ: Χρ. Σςουραμάνθσ Ι. Γουςζτθ Ακαδ. Ζτοσ: 2010-2011 ΣΑ ΠΡΟΑΠΑΙΣΟΤΜΕΝΑ ΣΗ ΤΓΓΡΑΦΗ ΣΑΔΙΑ Θ ςυγγραφι μίασ επιςτθμονικισ

Διαβάστε περισσότερα

Αυτονομία Θζρμανςθσ Παλιϊν Πολυκατοικιϊν

Αυτονομία Θζρμανςθσ Παλιϊν Πολυκατοικιϊν Αυτονομία Θζρμανςθσ Παλιϊν Πολυκατοικιϊν Η ραγδαία αφξθςθ των τιμϊν τθσ ενζργειασ (πετρζλαιο, φυςικό αζριο, θλεκτρικό ρεφμα κ.α.) ςυνοδευόμενθ από τθ μεταβολι του τρόπου ηωισ και τισ νζεσ ςυνκικεσ που

Διαβάστε περισσότερα

ΑΓΚΙΝΑΡΑ ι ΑΓΓΙΝΑΡΑ. Καλλιεργθτικζσ τεχνικζσ

ΑΓΚΙΝΑΡΑ ι ΑΓΓΙΝΑΡΑ. Καλλιεργθτικζσ τεχνικζσ ΑΓΚΙΝΑΡΑ ι ΑΓΓΙΝΑΡΑ «Αγκινάρα με τα αγκάκια και τα λουλοφδια τα άςπρα.» Είναι ςτίχοι από το γνωςτό δθμοτικό τραγοφδι που εξυμνεί τθν αγκινάρα Στα αρχαία ελλθνικά κινάρα. Καλλιεργθτικζσ τεχνικζσ Είναι πολυετζσ

Διαβάστε περισσότερα

ΣΥΜΒΑΣΗ ΔΠΑ/ΕΠ-6489/2012

ΣΥΜΒΑΣΗ ΔΠΑ/ΕΠ-6489/2012 Διεύθυνση Περιφέρειας Αττικής ΣΥΜΒΑΣΗ ΔΠΑ/ΕΠ-6489/2012 ΑΠΟΚΟΠΕΣ ΚΑΙ ΕΠΑΝΑΦΟΡΕΣ ΛΟΓΩ ΧΡΕΟΥΣ ΠΑΡΟΧΩΝ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΑΙΤΗΣΕΙΣ ΤΕΛΙΚΟΥ ΔΙΑΚΑΝΟΝΙΣΜΟΥ ΤΗΣ ΠΕΡΙΟΧΗΣ ΕΛΕΥΣΙΝΑΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ Άρθρο 1: Αντικείμενο

Διαβάστε περισσότερα

«ΣΧΕΣΗ ΣΩΜΑΤΟΣ ΚΑΙ ΨΥΧΗΣ ΣΤΟΝ ΠΛΑΤΩΝΑ ΚΑΙ ΤΟΝ ΑΡΙΣΤΟΤΕΛΗ»

«ΣΧΕΣΗ ΣΩΜΑΤΟΣ ΚΑΙ ΨΥΧΗΣ ΣΤΟΝ ΠΛΑΤΩΝΑ ΚΑΙ ΤΟΝ ΑΡΙΣΤΟΤΕΛΗ» ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ: ΦΙΛΟΣΟΦΙΚΗ ΤΜΗΜΑ: ΦΙΛΟΣΟΦΙΑΣ & ΠΑΙΔΑΓΩΓΙΚΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΥΠ. ΚΑΘΗΓΗΤΡΙΑ: Κα. ΔΗΜΗΤΡΑ ΣΦΕΝΔΟΝΗ-ΜΕΝΤΖΟΥ ΣΤΕΦΑΝΙΑ Α. ΣΚΟΔΡΑ Μεταπτυχιακή φοιτήτρια

Διαβάστε περισσότερα

ΠΟΛ 1065 Δ/ΝΗ ΦΟΡΟΛΟΓΙΑ ΕΙΟΔΗΜΑΣΟ (Δ12)

ΠΟΛ 1065 Δ/ΝΗ ΦΟΡΟΛΟΓΙΑ ΕΙΟΔΗΜΑΣΟ (Δ12) ΠΟΛ 1065 ΘΕΜΑ: Κοινοποίθςθ οριςμζνων διατάξεων του άρκρου 5 του ν. 4038/2012 «Επείγουςεσ ρυκμίςεισ που αφοροφν τθν εφαρμογι του μεςοπρόκεςμου πλαιςίου δθμοςιονομικισ ςτρατθγικισ 2012-2015» (ΦΕΚ 14 Α702.02.2012),

Διαβάστε περισσότερα

Γραφικά Υπολογιστών Εισαγωγή

Γραφικά Υπολογιστών Εισαγωγή Γραφικά Υπολογιστών Εισαγωγή Γ. Παπαϊωάννου 2008-13 Σκοπός του Μαθήματος Εισαγωγή στις τεχνολογίες παραγωγής συνθετικής εικόνας Ανάλυση των βασικών μεθόδων απεικόνισης 2D δεδομένων Εισαγωγή στις δομές

Διαβάστε περισσότερα

323 Φυτικής Παραγωγής Γεωπονικού Παν. Αθήνας

323 Φυτικής Παραγωγής Γεωπονικού Παν. Αθήνας 323 Φυτικής Παραγωγής Γεωπονικού Παν. Αθήνας Σκοπός To τμήμα Φυτικής Παραγωγής έχει ως σκοπό την εκπαίδευση των φοιτητών του στον τομέα της Γεωπονίας, καθιστώντας τους ικανούς για την ποιοτική και ποσοτική

Διαβάστε περισσότερα

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης

ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου. Επιμέλεια: Ιωάννης Γιαμνιαδάκης ΔΙΑΔΟΣΗ ΘΕΡΜΟΤΗΤΑΣ Φυσική Β' Γυμνασίου Επιμέλεια: Ιωάννης Γιαμνιαδάκης Σύνδεση με προηγούμενο Μάθημα Στο κεφάλαιο Θερμότητα έχουμε μάθει: Τι είναι θερμότητα & θερμοκρασία μακροσκοπικά & μικροσκοπικά Μέτρηση

Διαβάστε περισσότερα

Διοίκηση & Γραφεία 2. Επιστολή του Προέδρου 4. Μήνυμα από την Αν. Γενική Διευθύντρια 5. Σύσταση και αρμοδιότητες 6. Αναπτυξιακό Πρόγραμμα 7

Διοίκηση & Γραφεία 2. Επιστολή του Προέδρου 4. Μήνυμα από την Αν. Γενική Διευθύντρια 5. Σύσταση και αρμοδιότητες 6. Αναπτυξιακό Πρόγραμμα 7 Ετήσια Έκθεση 2013 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α Διοίκηση & Γραφεία 2 Επιστολή του Προέδρου 4 Μήνυμα από την Αν. Γενική Διευθύντρια 5 Σύσταση και αρμοδιότητες 6 Αναπτυξιακό Πρόγραμμα 7 Σχέδια που έχουν συμπληρωθεί

Διαβάστε περισσότερα

ΑΝΑΔΟΧΟΣ: Τ.Ε.Ι. ΚΑΒΑΛΑΣ. 1º ΠΑΡΑΔΟΤΕΟ (τροποποιημένο)

ΑΝΑΔΟΧΟΣ: Τ.Ε.Ι. ΚΑΒΑΛΑΣ. 1º ΠΑΡΑΔΟΤΕΟ (τροποποιημένο) ΜΕΛΕΤΗ ΩΡΙΜΑΝΣΗΣ ΓΙΑ ΤΗΝ ΕΞΕΙΔΙΚΕΥΣΗ ΔΡΑΣΕΩΝ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΤΑ ΑΤΕΙ στο πλαίσιο του ΕΠΙΧΕΙΡΗΣΙΑΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΚΠΑΙΔΕΥΣΗ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗ ΠΕΡΙΟΔΟΥ 2007 2013 ΑΝΑΔΟΧΟΣ: Τ.Ε.Ι. ΚΑΒΑΛΑΣ 1º ΠΑΡΑΔΟΤΕΟ

Διαβάστε περισσότερα

Καλές Πρακτικές Πρόληψης και Αντιμετώπισης Ενδοσχολικής Βίας- Σχολική Διαμεσολάβηση

Καλές Πρακτικές Πρόληψης και Αντιμετώπισης Ενδοσχολικής Βίας- Σχολική Διαμεσολάβηση Καλές Πρακτικές Πρόληψης και Αντιμετώπισης Ενδοσχολικής Βίας- Σχολική Διαμεσολάβηση Χρηστίδου Χριστίνα Κοινωνική Λειτουργός-Ψυχολόγος MSc Κοιν.Ψυχιατρικής-Παιδοψυχιατρικής Σήμερα στο σχολείο : Τα θύματα

Διαβάστε περισσότερα

Κανονιςμόσ Αςφάλειασ Χώρων Εργαςίασ & Τπολογιςτικών υςτημάτων Κτηρίου Κεντρικήσ Διοίκηςησ Προςκοπικό Μέγαρο «Αντώνησ Μπενάκησ»

Κανονιςμόσ Αςφάλειασ Χώρων Εργαςίασ & Τπολογιςτικών υςτημάτων Κτηρίου Κεντρικήσ Διοίκηςησ Προςκοπικό Μέγαρο «Αντώνησ Μπενάκησ» Κανονιςμόσ Αςφάλειασ Χώρων Εργαςίασ & Τπολογιςτικών υςτημάτων Κτηρίου Κεντρικήσ Διοίκηςησ Προςκοπικό Μέγαρο «Αντώνησ Μπενάκησ» Αθήνα, 23 Νοέμβριου 2015 ΠΕΡΙΕΧΟΜΕΝΑ Γενικά 3 1. Πρόςβαςη ςτουσ χώρουσ. 3

Διαβάστε περισσότερα

Όταν πριν από μερικά χρόνια οι άνθρωποι. Εξειδικευμένη εκπαίδευση ΜΙΑ ΠΡΩΤΟΒΟΥΛΙΑ ΠΟΥ ΑΞΙΖΕΙ ΤΗΝ ΣΤΗΡΙΞΗ ΟΛΩΝ. Εκπαίδευση

Όταν πριν από μερικά χρόνια οι άνθρωποι. Εξειδικευμένη εκπαίδευση ΜΙΑ ΠΡΩΤΟΒΟΥΛΙΑ ΠΟΥ ΑΞΙΖΕΙ ΤΗΝ ΣΤΗΡΙΞΗ ΟΛΩΝ. Εκπαίδευση Το Ινστιτούτο Κατασκευών Αλουμινίου (ΙΝ.Κ.ΑΛ.) αποτελεί μία αξιόλογη προσπάθεια για τη μετάδοση εξειδικευμένης γνώσης στους επαγγελματίες που δραστηριοποιούνται στον κλάδο των κατασκευών αλουμινίου. Τι

Διαβάστε περισσότερα

Ε.Ε. Π α ρ.ι(i), Α ρ.3834, 8/4/2004 Ο ΠΕΡΙ ΑΣΤΥΝΟΜΙΑΣ ΝΟΜΟΣ ΤΟΥ 2004 ΚΑΤΑΤΑΞΗ ΑΡΘΡΩΝ ΜΕΡΟΣ Ι - ΕΙΣΑΓΩΓΗ ΜΕΡΟΣ ΙΙ - ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΙΟΙΚΗΣΗ

Ε.Ε. Π α ρ.ι(i), Α ρ.3834, 8/4/2004 Ο ΠΕΡΙ ΑΣΤΥΝΟΜΙΑΣ ΝΟΜΟΣ ΤΟΥ 2004 ΚΑΤΑΤΑΞΗ ΑΡΘΡΩΝ ΜΕΡΟΣ Ι - ΕΙΣΑΓΩΓΗ ΜΕΡΟΣ ΙΙ - ΟΡΓΑΝΩΣΗ ΚΑΙ ΔΙΟΙΚΗΣΗ Ο ΠΕΡΙ ΑΣΤΥΝΟΜΙΑΣ ΝΟΜΟΣ ΤΟΥ 2004 ΚΑΤΑΤΑΞΗ ΑΡΘΡΩΝ ΜΕΡΟΣ Ι - ΕΙΣΑΓΩΓΗ Άρθρο 1. Συνοπτικός τίτλος. 2. Ερμηνεία. 3. Καθίδρυση Αστυνομίας Κύπρου. 4. Εξουσίες Υπουργού. 5. Συγκρότηση Αστυνομίας. 6. Εξουσίες

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2009 2010 ΟΔΗΓΟΣ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΓΕΩΠΟΝΙΑΣ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΑΓΡΟΤΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Ν. Ιωνία, ΒΟΛΟΣ Τη συγκέντρωση της ύλης του και την επιμέλεια της έκδοσης είχε

Διαβάστε περισσότερα

ΚΥΚΛΟΦΟΡΙΚΟΣΥΣΤΗΜΑ. Καρβουντζή Ηλιάνα Βιολόγος

ΚΥΚΛΟΦΟΡΙΚΟΣΥΣΤΗΜΑ. Καρβουντζή Ηλιάνα Βιολόγος ΚΥΚΛΟΦΟΡΙΚΟΣΥΣΤΗΜΑ ΓΕΝΙΚΑ Δομή: Αποτελείται από: Τηνκαρδιά Τα αιμοφόρα αγγεία Τοαίμα Το λεμφικό σύστημα (κυκλοφορείηλέμφος) είναι στενά συνδεδεμένο με το κυκλοφορικό. Ρόλος: Μεταφορά θρεπτικών συστατικών

Διαβάστε περισσότερα

ΑΠΟΦΑΣΗ ΤΗΣ Δ.Ε. ΤΟΥ ΤΕΕ

ΑΠΟΦΑΣΗ ΤΗΣ Δ.Ε. ΤΟΥ ΤΕΕ Αθήνα, 12 Νοεμβρίου 2012 ΑΠΟΦΑΣΗ ΤΗΣ Δ.Ε. ΤΟΥ ΤΕΕ Σφνταγμα της Ελλάδας: Άρθρο 120 (παλαιό άρθρο 114), Ακροτελεφτια διάταξη «. 2. Ο ςεβαςμόσ ςτο φνταγμα και τουσ νόμουσ που ςυμφωνοφν με αυτό και θ αφοςίωςθ

Διαβάστε περισσότερα

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΕΙ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ''ΜΕΛΕΤΗ ΓΙΑ ΤΗΝ ΙΚΑΝΟΠΟΙΗΣΗ ΤΩΝ ΦΟΙΤΗΤΩΝ ΤΟΥ ΤΜΗΜΑΤΟΣ ΛΟΓΙΣΤΙΚΗΣ ΤΟΥ Τ.Ε.Ι. ΗΠΕΙΡΟΥ ΑΠΟ ΤΙΣ ΣΠΟΥΔΕΣ ΤΟΥΣ'' ΓΕΩΡΓΙΟΣ ΝΤΑΛΑΟΥΤΗΣ

Διαβάστε περισσότερα

Δεσ τθ διαφιμιςθ ζξυπνα μζςα ςτθν τάξθ. Χαρίκλεια Σερηθτάνου Δαςκάλα, Τπεφκυνθ Πολιτιςτικϊν Θεμάτων

Δεσ τθ διαφιμιςθ ζξυπνα μζςα ςτθν τάξθ. Χαρίκλεια Σερηθτάνου Δαςκάλα, Τπεφκυνθ Πολιτιςτικϊν Θεμάτων Δεσ τθ διαφιμιςθ ζξυπνα μζςα ςτθν τάξθ Χαρίκλεια Σερηθτάνου Δαςκάλα, Τπεφκυνθ Πολιτιςτικϊν Θεμάτων Εγχειρίδιο του δαςκάλου Φφλλα εργαςίασ Dvd Περιεχόμενα Ι. Ειςαγωγι ςτο Πρόγραμμα Media Smart ΙΙ Για τθν

Διαβάστε περισσότερα

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Πρώτες βοήθειες και αντιλήψεις του πληθυσμού στους Νομούς Χανίων, Ηρακλείου, Λασιθίου και Μεσσηνίας

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Πρώτες βοήθειες και αντιλήψεις του πληθυσμού στους Νομούς Χανίων, Ηρακλείου, Λασιθίου και Μεσσηνίας Α.Τ.Ε.Ι. ΚΡΗΤΗΣ ΣΧΟΛΗ ΕΠΑΓΓΕΛΜΑΤΩΝ ΥΓΕΙΑΣ ΠΡΟΝΟΙΑΣ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Πρώτες βοήθειες και αντιλήψεις του πληθυσμού στους Νομούς Χανίων, Ηρακλείου, Λασιθίου και Μεσσηνίας ΣΠΟΥΔΑΣΤΕΣ Δημητρακόπουλος

Διαβάστε περισσότερα

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4. Δημιουργήθηκε από τη Μαρία Καλαματιανού Ιανουάριος 2012.

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4. Δημιουργήθηκε από τη Μαρία Καλαματιανού Ιανουάριος 2012. Δημιουργήθηκε από τη Μαρία Καλαματιανού Ιανουάριος 2012. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 Ομάδα:. Ημερομηνία:.. Ο Θεριστής, Βίνσεντ Βαν Γκογκ. Έναστρη Νύχτα, Έντβαρντ Μουνχ. 1. Παρατηρήστε προσεκτικά τα δυο έργα για ένα

Διαβάστε περισσότερα

Διαμόρφωση της συνεργατικής τάξης Ένα παράδειγμα από ένα Δημοτικό Σχολείο στη Θεσσαλονίκη

Διαμόρφωση της συνεργατικής τάξης Ένα παράδειγμα από ένα Δημοτικό Σχολείο στη Θεσσαλονίκη Διαμόρφωση της συνεργατικής τάξης Ένα παράδειγμα από ένα Δημοτικό Σχολείο στη Θεσσαλονίκη Πέτρος Κλιάπης 2005 Στοιχεία της τάξης Στ Τάξη Μαθητές 18 (8Α + 10 Κ) Αλλοδαποί παλινοστούντες 3 (1Α +2Κ) Προηγούμενη

Διαβάστε περισσότερα

ΤΠΟΜΝΗΜΑ ΘΕΕΩΝ ΚΑΙ ΠΡΟΣΑΕΩΝ ΣΟΤ ΕΜΠΟΡΙΚΟΤ ΚΑΙ ΒΙΟΜΗΧΑΝΙΚΟΤ ΕΠΙΜΕΛΗΣΗΡΙΟΤ ΠΕΙΡΑΙΩ ΓΙΑ ΣΗΝ ΑΝΑΜΟΡΦΩΗ ΣΟΤ ΦΟΡΟΛΟΓΙΚΟΤ ΤΣΗΜΑΣΟ

ΤΠΟΜΝΗΜΑ ΘΕΕΩΝ ΚΑΙ ΠΡΟΣΑΕΩΝ ΣΟΤ ΕΜΠΟΡΙΚΟΤ ΚΑΙ ΒΙΟΜΗΧΑΝΙΚΟΤ ΕΠΙΜΕΛΗΣΗΡΙΟΤ ΠΕΙΡΑΙΩ ΓΙΑ ΣΗΝ ΑΝΑΜΟΡΦΩΗ ΣΟΤ ΦΟΡΟΛΟΓΙΚΟΤ ΤΣΗΜΑΣΟ ΤΠΟΜΝΗΜΑ ΘΕΕΩΝ ΚΑΙ ΠΡΟΣΑΕΩΝ ΣΟΤ ΕΜΠΟΡΙΚΟΤ ΚΑΙ ΒΙΟΜΗΧΑΝΙΚΟΤ ΕΠΙΜΕΛΗΣΗΡΙΟΤ ΠΕΙΡΑΙΩ ΓΙΑ ΣΗΝ ΑΝΑΜΟΡΦΩΗ ΣΟΤ ΦΟΡΟΛΟΓΙΚΟΤ ΤΣΗΜΑΣΟ προσ το ΤΠΟΤΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ Σο φορολογικό ςφςτθμα αποτελεί το βαςικότερο εργαλείο

Διαβάστε περισσότερα

Όμιλος Λογοτεχνίας. Δράκογλου Αναστασία, Κιννά Πασχαλίνα

Όμιλος Λογοτεχνίας. Δράκογλου Αναστασία, Κιννά Πασχαλίνα Όμιλος Λογοτεχνίας Δράκογλου Αναστασία, Κιννά Πασχαλίνα Πρότυπο Πειραματικό Δημοτικό Σχολείο Σερρών «Κων/νος Καραμανλής» Δράκογλου Αναστασία, adrakogl@yahoo.gr Κιννά Πασχαλίνα, kinpash@yahoo.gr ΠΕΡΙΛΗΨΗ

Διαβάστε περισσότερα

ΧΛΟΥΜ. Ρρόςωπα: ΡΩΤΘ ΡΑΞΘ (Σε ζνα επαγγελματικό γραφείο)

ΧΛΟΥΜ. Ρρόςωπα: ΡΩΤΘ ΡΑΞΘ (Σε ζνα επαγγελματικό γραφείο) Θεοδόσης Πελεγρίνης ΧΛΟΥΜ Ρρόςωπα: - Σφμβουλοσ (Αργφρθσ) του «Γραφείου παροχισ ςυμβουλϊν για το νόθμα τθσ ηωισ», μζςθσ θλικίασ - Ραπαδόπουλοσ (Κϊςτασ), μζςθσ θλικίασ - Νίτςα, θ νεαρι ςφηυγοσ του Ραπαδόπουλου.

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ ΤΜΗΜΑΤΑ ΕΚΘΕΣΗΣ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ΤΟΥ ΙΔΡΥΜΑΤΟΣ ΠΟΥ ΘΑ ΠΡΕΠΕΙ ΝΑ ΣΥΜΠΛΗΡΩΘΟΥΝ ΑΠΟ ΤΑ ΤΜΗΜΑΤΑ ΤΟΥ ΕΚΠΑ

ΠΑΡΑΡΤΗΜΑ ΤΜΗΜΑΤΑ ΕΚΘΕΣΗΣ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ΤΟΥ ΙΔΡΥΜΑΤΟΣ ΠΟΥ ΘΑ ΠΡΕΠΕΙ ΝΑ ΣΥΜΠΛΗΡΩΘΟΥΝ ΑΠΟ ΤΑ ΤΜΗΜΑΤΑ ΤΟΥ ΕΚΠΑ ΠΑΡΑΡΤΗΜΑ ΤΜΗΜΑΤΑ ΕΚΘΕΣΗΣ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ΤΟΥ ΙΔΡΥΜΑΤΟΣ ΠΟΥ ΘΑ ΠΡΕΠΕΙ ΝΑ ΣΥΜΠΛΗΡΩΘΟΥΝ ΑΠΟ ΤΑ ΤΜΗΜΑΤΑ ΤΟΥ ΕΚΠΑ 2 Δ. Προγράμματα Σπουδών Στην ενότητα αυτή το Ίδρυμα καλείται να αναλύσει κριτικά και να αξιολογήσει

Διαβάστε περισσότερα

ΕΝΤΥΠΟ ΕΛΕΓΧΟΥ ΚΑΙ ΕΓΚΡΙΣΗΣ ΑΠΟ ΤΗΝ ΥΠΗΡΕΣΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΟΙΟΤΗΤΑΣ ΜΕΛΕΤΗΣ (ΠΠM)

ΕΝΤΥΠΟ ΕΛΕΓΧΟΥ ΚΑΙ ΕΓΚΡΙΣΗΣ ΑΠΟ ΤΗΝ ΥΠΗΡΕΣΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΟΙΟΤΗΤΑΣ ΜΕΛΕΤΗΣ (ΠΠM) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Y.ΠΕ.ΧΩ.Δ.Ε./Γ.Γ.Δ.Ε. ΓΕΝΙΚΗ Δ/ΝΣΗ ΠΟΙΟΤΗΤΑΣ Δ.Ε. Δ/ΝΣΗ ΔΙΑΜΟΡΦΩΣΗΣ ΑΡΧΩΝ & ΚΑΝΟΝΩΝ ΔΙΑΣΦΑΛΙΣΗΣ ΠΟΙΟΤΗΤΑΣ ΔΗΜΟΣΙΩΝ ΕΡΓΩΝ & ΕΞΕΙΔΙΚΕΥΣΗΣ ΑΝΘΡΩΠΙΝΟΥ ΔΥΝΑΜΙΚΟΥ (ΔΙΠΑΔ) ΤΜΗΜΑ Α ΕΝΤΥΠΟ ΕΛΕΓΧΟΥ

Διαβάστε περισσότερα

ΟΣΤΑ & ΣΚΕΛΕΤΙΚΟ ΣΥΣΤΗΜΑ

ΟΣΤΑ & ΣΚΕΛΕΤΙΚΟ ΣΥΣΤΗΜΑ ΟΣΤΑ & ΣΚΕΛΕΤΙΚΟ ΣΥΣΤΗΜΑ Τα οστά είναι μία στερεά μορφή του συνδετικού ιστού. Σχηματίζουν το μεγαλύτερο μέρος του σκελετού ( 205 οστά) και είναι ο κύριος στηρικτικός ιστός του σώματος. ΣΚΕΛΕΤΙΚΟ ΣΥΣΤΗΜΑ

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΡΑΓΩΓΙΚΗΣ ΑΝΑΣΥΓΚΡΟΤΗΣΗΣ, ΠΕΡΙΒΑΛΛΟΝΤΟΣ & ΕΝΕΡΓΕΙΑΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΡΑΓΩΓΙΚΗΣ ΑΝΑΣΥΓΚΡΟΤΗΣΗΣ, ΠΕΡΙΒΑΛΛΟΝΤΟΣ & ΕΝΕΡΓΕΙΑΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΡΑΓΩΓΙΚΗΣ ΑΝΑΣΥΓΚΡΟΤΗΣΗΣ, ΠΕΡΙΒΑΛΛΟΝΤΟΣ & ΕΝΕΡΓΕΙΑΣ ΓΡΑΦΕΙΟ ΓΕΝΙΚΗΣ ΓΡΑΜΜΑΤΕΩΣ ΧΩΡΙΚΟΥ ΣΧΕΔΙΑΣΜΟΥ & ΑΣΤΙΚΟΥ ΠΕΡΙΒΑΛΛΟΝΤΟΣ Αθήνα, 27/07/2015 Α.Π.: οικ. 1329 ΠΡΟΣ : (Ως Πίνακα

Διαβάστε περισσότερα

ΑΠΟΣΠΑΣΜΑ ΠΡΑΚΤΙΚΟΥ Έκτακτη-Κατεπείγουσας Συνεδρίασης Δημοτικού Συμβουλίου Αιγιαλείας 26 Οκτωβρίου 2015

ΑΠΟΣΠΑΣΜΑ ΠΡΑΚΤΙΚΟΥ Έκτακτη-Κατεπείγουσας Συνεδρίασης Δημοτικού Συμβουλίου Αιγιαλείας 26 Οκτωβρίου 2015 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΑΧΑΪΑΣ ΔΗΜΟΣ ΑΙΓΙΑΛΕΙΑΣ ΤΜΗΜΑ: ΥΠΟΣΤΗΡΙΞΗΣ ΠΟΛΙΤΙΚΩΝ ΟΡΓΑΝΩΝ ΔΗΜΟΥ ΓΡΑΦΕΙΟ: ΔΗΜΟΤΙΚΟΥ ΣΥΜΒΟΥΛΙΟΥ ΑΠΟΣΠΑΣΜΑ ΠΡΑΚΤΙΚΟΥ Έκτακτη-Κατεπείγουσας Συνεδρίασης Δημοτικού Συμβουλίου Αιγιαλείας

Διαβάστε περισσότερα

Θέµα : Κατάρτιση προκήρυξης έξι (6) θέσεων για Ευρωπαϊκά Προγράµµατα περιόδου 2013-2014. ΑΠΟΦΑΣΗ µε αριθµό 61/2013

Θέµα : Κατάρτιση προκήρυξης έξι (6) θέσεων για Ευρωπαϊκά Προγράµµατα περιόδου 2013-2014. ΑΠΟΦΑΣΗ µε αριθµό 61/2013 ΚΟΙΝΩΦΕΛΗΣ ΗΜΟΤΙΚΗ ΕΠΙΧΕΙΡΗΣΗ Θεσσαλονίκη 22 Oκτωβρίου 2013 ΗΜΟΥ ΑΜΠΕΛΟΚΗΠΩΝ ΜΕΝΕΜΕΝΗΣ (Κ..Ε..Α.Μ.) 28 ης ΟΚΤΩΒΡΙΟΥ αρ. 59 Τ.Κ. 56123 ΑΜΠΕΛΟΚΗΠΟΙ Θέµα : Κατάρτιση προκήρυξης έξι (6) θέσεων για Ευρωπαϊκά

Διαβάστε περισσότερα

Επιμελητής: Βαΐτσης Ευάγγελος Α.Μ.: 9357

Επιμελητής: Βαΐτσης Ευάγγελος Α.Μ.: 9357 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΘΕΜΑ: ΕΣΩΤΕΡΙΚΟΣ ΕΛΕΓΧΟΣ Α.Ε. Επιμελητής: Α.Μ.: 9357 Εισηγητής: Ζωϊτσάς Άγγελος, Τμήμα Λογιστικής 2012-2013 ΠΡΟΛΟΓΟΣ

Διαβάστε περισσότερα

ANAΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ

ANAΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ ANAΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΕΙΔΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ ΚΟΝΔΥΛΙΩΝ ΕΡΕΥΝΑΣ Αθήνα, 20/09/2012 ΠΡΟΣΚΛΗΣΗ ΕΚΔΗΛΩΣΗΣ ΕΝΔΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΥΠΟΒΟΛΗ ΠΡΟΤΑΣΗΣ ΓΙΑ ΚΑΤΑΡΤΙΣΗ ΣΥΜΒΑΣΗΣ

Διαβάστε περισσότερα

Δείκτησ Αξιολόγηςησ 4.2: Σχζςεισ του ςχολείου με γονείσ και ςυνεργαςίεσ με εκπαιδευτικοφσ-κοινωνικοφσ φορείσ και φορείσ ΕΑΕ

Δείκτησ Αξιολόγηςησ 4.2: Σχζςεισ του ςχολείου με γονείσ και ςυνεργαςίεσ με εκπαιδευτικοφσ-κοινωνικοφσ φορείσ και φορείσ ΕΑΕ Δείκτησ Αξιολόγηςησ 4.2: Σχζςεισ του ςχολείου με γονείσ και ςυνεργαςίεσ με εκπαιδευτικοφσ-κοινωνικοφσ φορείσ και φορείσ ΕΑΕ ΤΟΜΕΑΣ 4: ΚΛΙΜΑ ΚΑΙ ΣΧΕΣΕΙΣ ΤΟΥ ΣΧΟΛΕΙΟΥ ΔΙΑΔΙΚΑΣΙΕΣ ΤΟΥ ΣΧΟΛΕΙΟΥ Περιγραφή:

Διαβάστε περισσότερα

ΑΠΑΝΣΗΕΙ ΣΟ ΠΡΟΣΕΙΝΟΜΕΝΟ ΘΕΜΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΑ Γ ΕΠΑΛ

ΑΠΑΝΣΗΕΙ ΣΟ ΠΡΟΣΕΙΝΟΜΕΝΟ ΘΕΜΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΑ Γ ΕΠΑΛ ΑΠΑΝΣΗΕΙ ΣΟ ΠΡΟΣΕΙΝΟΜΕΝΟ ΘΕΜΑ ΝΕΟΕΛΛΗΝΙΚΗ ΓΛΩΑ Γ ΕΠΑΛ 1. Αγαπθτοί ςυμμακθτζσ, το παρόν απόςπαςμα θ Μελίνα εραφετινίδου αναπτφςςει τουσ προβλθματιςμοφσ τθσ για τον ευτελιςμό του κεςμοφ τθσ παρζασ εδράηοντασ

Διαβάστε περισσότερα

ΟΙΚΟΝΟΜΙΚΗ ΚΡΙΣΗ ΚΑΙ ΤΡΑΠΕΖΙΚΟ ΣΥΣΤΗΜΑ

ΟΙΚΟΝΟΜΙΚΗ ΚΡΙΣΗ ΚΑΙ ΤΡΑΠΕΖΙΚΟ ΣΥΣΤΗΜΑ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΤΗΝ ΟΙΚΟΝΟΜΙΑ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΟΙΚΟΝΟΜΙΚΗ ΚΡΙΣΗ ΚΑΙ ΤΡΑΠΕΖΙΚΟ ΣΥΣΤΗΜΑ Επιβλέπων: Καθηγητής Αρσένος Παναγιώτης

Διαβάστε περισσότερα

ΕΤΗΣΙΑ ΟΙΚΟΝΟΜΙΚΗ ΕΚΘΕΣΗ. Περιόδου από 1 η Ιανουαρίου έως 31 η Δεκεμβρίου 2010

ΕΤΗΣΙΑ ΟΙΚΟΝΟΜΙΚΗ ΕΚΘΕΣΗ. Περιόδου από 1 η Ιανουαρίου έως 31 η Δεκεμβρίου 2010 ΕΤΗΣΙΑ ΟΙΚΟΝΟΜΙΚΗ ΕΚΘΕΣΗ Περιόδου από 1 η Ιανουαρίου έως 31 η Δεκεμβρίου 2010 Σύμφωνα με το άρθρο 4 του Ν. 3556/2007 ΠΕΡΙΕΧΟΜΕΝΑ I. Δηλώσεις Μελών Διοικητικού Συμβουλίου... 5 II.Έκθεση Ελέγχου Ανεξάρτητου

Διαβάστε περισσότερα

Αριθμός αποφάσεως 5928/2010 ΤΟ ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΠΕΙΡΑΙΑ (Διαδικασία Εκούσιας Δικαιοδοσίας)

Αριθμός αποφάσεως 5928/2010 ΤΟ ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΠΕΙΡΑΙΑ (Διαδικασία Εκούσιας Δικαιοδοσίας) ΠΡΩΤΟΔΙΚΕΙΟ ΠΕΙΡΑΙΩΣ Αριθμός αποφάσεως 5928/2010 ΤΟ ΠΟΛΥΜΕΛΕΣ ΠΡΩΤΟΔΙΚΕΙΟ ΠΕΙΡΑΙΑ (Διαδικασία Εκούσιας Δικαιοδοσίας) Αποτελούμενο από τους Δικαστές Ελένη Τσίτσιου Πρόεδρο Πρωτοδικών, Κωνσταντίνα Λέκκου

Διαβάστε περισσότερα

ΕΝΤΟΛΕΑΣ: ΕΞΕΤΑΖΟΜΕΝΟΣ ΠΛΗΘΥΣΜΟΣ:

ΕΝΤΟΛΕΑΣ: ΕΞΕΤΑΖΟΜΕΝΟΣ ΠΛΗΘΥΣΜΟΣ: Μάρτιος 2013 Η έρευνα αυτή πραγματοποιήθηκε από μια επιστημονική ομάδα η οποία επιλέχθηκε ειδικά για τον σκοπό αυτό από τους φορείς «Αλληλεγγύη Κρήτης» και την «Ο.Ε.Β.Ε.Ν.Η.» υπό την αιγίδα του Δήμου Ηρακλείου.

Διαβάστε περισσότερα

Θέμα: «Απόφαση Δημάρχου για τον ορισμό Αντιδημάρχων & Μεταβίβαση αρμοδιοτήτων του (άρθρο 59)» ΑΠΟΦΑΣΗ 4 Ο Δήμαρχος Παγγαίου

Θέμα: «Απόφαση Δημάρχου για τον ορισμό Αντιδημάρχων & Μεταβίβαση αρμοδιοτήτων του (άρθρο 59)» ΑΠΟΦΑΣΗ 4 Ο Δήμαρχος Παγγαίου ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΕΛΕΥΘΕΡΟΥΠΟΛΗ 03-01-2011 ΑΠΟΚΕΝΤΡΩΜΕΝΗ Δ/ΣΗ ΑΡΙΘ. ΠΡΩΤ.: 38 ΜΑΚΕΔΟΝΙΑΣ ΘΡΑΚΗΣ ΔΗΜΟΣ ΠΑΓΓΑΙΟΥ Φρίξου Παπαχρηστίδη 137 Α Τ.Κ. 64100 Ελευθερούπολη Πληρ.: Κ. Τσιρικτσής Τηλ. 2592350028

Διαβάστε περισσότερα

ΩΡΑΡΙΟ ΕΡΓΑΣΙΑΣ ΣΤΟΝ ΤΡΑΠΕΖΙΚΟ ΤΟΜΕΑ

ΩΡΑΡΙΟ ΕΡΓΑΣΙΑΣ ΣΤΟΝ ΤΡΑΠΕΖΙΚΟ ΤΟΜΕΑ Α Ν Ω ΤΑ ΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΛΑΜΑΤΑΣ ΣΧΟΛΗ ΔΙΟ ΙΚ Η ΣΗ Σ Κ Α Ι ΟΙΚΟΝΟΜ ΙΑΣ ΤΜΗΜΑ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ Κ Α Ι ΕΛΕΓΚΤΙΚΗΣ ΘΕΜΑ ΩΡΑΡΙΟ ΕΡΓΑΣΙΑΣ ΣΤΟΝ ΤΡΑΠΕΖΙΚΟ ΤΟΜΕΑ ΚΑΡΑΓΙΑΝΝΗ ΧΡΥΣΟΥΛΑ Α.Μ.

Διαβάστε περισσότερα

Βουλευτικές Εκλογές 2011

Βουλευτικές Εκλογές 2011 Πολίτης ή πελάτης; Είναι αλήθεια, ότι το πολιτικό σύστημα αποτυγχάνει σημαντικά να ανταποκριθεί στις σημερινές προκλήσεις. Το ρουσφέτι, η αναξιοκρατία, η συναλλαγή και τα παζάρια, απαξιώνουν την πολιτική.

Διαβάστε περισσότερα

ΙΚΑΙΟΛΟΓΗΤΙΚΑ ΓΙΑ ΤΗΝ ΜΕΤΕΓΓΡΑΦΗ ΕΛΛΗΝΑ ΠΟ ΟΣΦΑΙΡΙΣΤΗ

ΙΚΑΙΟΛΟΓΗΤΙΚΑ ΓΙΑ ΤΗΝ ΜΕΤΕΓΓΡΑΦΗ ΕΛΛΗΝΑ ΠΟ ΟΣΦΑΙΡΙΣΤΗ ΙΚΑΙΟΛΟΓΗΤΙΚΑ ΓΙΑ ΤΗΝ ΜΕΤΕΓΓΡΑΦΗ ΕΛΛΗΝΑ ΠΟ ΟΣΦΑΙΡΙΣΤΗ Π Ε Ρ Ι Ο Ο Ι Κ Α Τ Α Θ Ε Σ Η Σ : 1/7/2015 31/10/2015 & 1/01/2016-28/02/2016 1. ΕΛΤΙΟ ΑΘΛΗΤΙΚΗΣ Ι ΙΟΤΗΤΑΣ ΠΟ /ΣΤΗ - Αν δεν το έχει στην κατοχή του,

Διαβάστε περισσότερα

Το σχολείο πρέπει να ικανοποιεί με τα ωράριά του το πρόγραμμα των γονέων.

Το σχολείο πρέπει να ικανοποιεί με τα ωράριά του το πρόγραμμα των γονέων. Cover Story Το σχολείο πρέπει να ικανοποιεί με τα ωράριά του το πρόγραμμα των γονέων. Φωτογραφίες: Δημήτρης Διακογιάννης Cover Ελευθέριος Γείτονας Γενικός Διευθυντής Εκπαιδευτηρίων Γείτονα 38 ΑΣΦΑΛΙΣΤΙΚΟ

Διαβάστε περισσότερα

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΧΑΪΔΑΡΗΣ ΧΡ. ΝΙΚΟΛΑΟΣ ΑΜ:6805. Εισηγητής: Σωτηρόπουλος Ιωάννης

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΧΑΪΔΑΡΗΣ ΧΡ. ΝΙΚΟΛΑΟΣ ΑΜ:6805. Εισηγητής: Σωτηρόπουλος Ιωάννης ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α «ΤΟΥΡΙΣΜΟΣ ΚΑΙ ΟΙΚΟΝΟΜΙΚΗ ΑΝΑΠΤΥΞΗ: H περίπτωση της Περιφέρειας Ιονίων Νήσων» ΧΑΪΔΑΡΗΣ ΧΡ. ΝΙΚΟΛΑΟΣ

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 η OUTLOOK EXPRESS II ΕΙΣΑΓΩΓΗ

ΕΝΟΤΗΤΑ 5 η OUTLOOK EXPRESS II ΕΙΣΑΓΩΓΗ ΕΝΟΤΗΤΑ 5 η OUTLOOK EXPRESS II ΕΙΣΑΓΩΓΗ Πως µπορώ να στείλω ένα µήνυµα µε το Outlook Express; Μπορώ να στείλω ένα αρχείο κειµένου σε ένα φίλο µου µαζί µε το µήνυµα; Πως µπορώ να διαχειριστώ ένα µήνυµα

Διαβάστε περισσότερα

"ΤΟ ΞΥΛΟ ΣΤΙΣ ΔΟΜΙΚΕΣ ΚΑΤΑΣΚΕΥΕΣ: ΘΕΜΑΤΑ ΥΓΡΑΣΙΑΣ ΚΑΙ ΑΝΙΣΟΤΡΟΠΙΑΣ, ΒΕΛΤΙΣΤΗ ΧΡΗΣΗ ΚΑΙ ΜΕΤΡΑ ΠΡΟΣΤΑΣΙΑΣ ΤΩΝ ΞΥΛΙΝΩΝ ΚΑΤΑΣΚΕΥΩΝ A

ΤΟ ΞΥΛΟ ΣΤΙΣ ΔΟΜΙΚΕΣ ΚΑΤΑΣΚΕΥΕΣ: ΘΕΜΑΤΑ ΥΓΡΑΣΙΑΣ ΚΑΙ ΑΝΙΣΟΤΡΟΠΙΑΣ, ΒΕΛΤΙΣΤΗ ΧΡΗΣΗ ΚΑΙ ΜΕΤΡΑ ΠΡΟΣΤΑΣΙΑΣ ΤΩΝ ΞΥΛΙΝΩΝ ΚΑΤΑΣΚΕΥΩΝ A "ΤΟ ΞΥΛΟ ΣΤΙΣ ΔΟΜΙΚΕΣ ΚΑΤΑΣΚΕΥΕΣ: ΘΕΜΑΤΑ ΥΓΡΑΣΙΑΣ ΚΑΙ ΑΝΙΣΟΤΡΟΠΙΑΣ, ΒΕΛΤΙΣΤΗ ΧΡΗΣΗ ΚΑΙ ΜΕΤΡΑ ΠΡΟΣΤΑΣΙΑΣ ΤΩΝ ΞΥΛΙΝΩΝ ΚΑΤΑΣΚΕΥΩΝ A Δρ Μιχάλης Σκαρβέλης, Αναπληρωτής Καθηγητής, υπεύθυνος Εργαστηρίου Τεχνολογίας

Διαβάστε περισσότερα

MYKHNAΪΚΗ ΚΑΙ ΟΜΗΡΙΚΗ ΕΠΟΧΗ

MYKHNAΪΚΗ ΚΑΙ ΟΜΗΡΙΚΗ ΕΠΟΧΗ ΕΠΕΑΕΚ: ΑΝΑΜΟΡΦΩΣΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ ΤΟΥ ΤΕΦΑΑ, ΠΘ - ΑΥΤΕΠΙΣΤΑΣΙΑ MYKHNAΪΚΗ ΚΑΙ ΟΜΗΡΙΚΗ ΕΠΟΧΗ Σακελλαρίου Κίμων Πανεπιστήμιο Θεσσαλίας ΤΕΦΑΑ, Τρίκαλα ΘΕΜΑΤΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ Μυκηναϊκή αγωνιστική.

Διαβάστε περισσότερα

8 Μάρτη. Η βία κατά των γυναικών

8 Μάρτη. Η βία κατά των γυναικών 8 Μάρτη 8 Μάρτη πριν από λίγες μέρες. Για ακόμα μια φορά αντιμετωπίστηκε ως μέρα γιορτής. Διαφημίσεις Ηondos center. Ανακοινώσεις από «ευαισθητοποιημένους» σε θέματα ισότητας. Οι επιφανειακές αναφορές

Διαβάστε περισσότερα

Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει

Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει Ένας Τιτανικός θεσμός επιβράβευσης επιτυχιών νέων ανθρώπων Από το ξεκίνημά του ο ΤΙΤΑΝ εκφράζει έμπρακτα και πολύπλευρα το ενδιαφέρον του για τους νέους ανθρώπους, ιδιαίτερα δε για τα παιδιά, κάθε ηλικίας,

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΑΡΙΘΜΟΣ ΜΕΛΕΤΗΣ: 58/ 2014 ΝΟΜΟΣ ΘΕΣΠΡΩΤΙΑΣ ΔΗΜΟΣ ΗΓΟΥΜΕΝΙΤΣΑΣ Δ/ΝΣΗ ΤΕΧΝΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΜΕΛΕΤΗ ΕΡΓΑΣΙΑ : ΣΥΝΤΗΡΗΣΗ ΗΛΕΚΤΡΟΛΟΓΙΚΩΝ ΕΓΚΑΤΑΣΤΑΣΕΩΝ Δ.Ε ΗΓΟΥΜΕΝΙΤΣΑΣ ΠΡΟΫΠΟΛΟΓΙΣΜΟΣ ΕΡΓΑΣΙΑΣ

Διαβάστε περισσότερα

«ΑΡΤΕΜΙΣ» ΥΠΟΥΡΓΕΙΟ ΕΡΓΑΣΙΑΣ, ΚΟΙΝΩΝΙΚΗΣ ΑΣΦΑΛΙΣΗΣ & ΚΟΙΝΩΝΙΚΗΣ ΑΛΛΗΛΕΓΓΥΗΣ ΣΩΜΑ ΕΠΙΘΕΩΡΗΣΗΣ ΕΡΓΑΣΙΑΣ

«ΑΡΤΕΜΙΣ» ΥΠΟΥΡΓΕΙΟ ΕΡΓΑΣΙΑΣ, ΚΟΙΝΩΝΙΚΗΣ ΑΣΦΑΛΙΣΗΣ & ΚΟΙΝΩΝΙΚΗΣ ΑΛΛΗΛΕΓΓΥΗΣ ΣΩΜΑ ΕΠΙΘΕΩΡΗΣΗΣ ΕΡΓΑΣΙΑΣ ΥΠΟΥΡΓΕΙΟ ΕΡΓΑΣΙΑΣ, ΚΟΙΝΩΝΙΚΗΣ ΑΣΦΑΛΙΣΗΣ & ΚΟΙΝΩΝΙΚΗΣ ΑΛΛΗΛΕΓΓΥΗΣ ΣΩΜΑ ΕΠΙΘΕΩΡΗΣΗΣ ΕΡΓΑΣΙΑΣ «ΑΡΤΕΜΙΣ» ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΣΧΕΔΙΟ ΔΡΑΣΗΣ ΓΙΑ ΤΗΝ ΚΑΤΑΠΟΛΕΜΗΣΗ ΤΗΣ ΑΝΑΣΦΑΛΙΣΤΗΣ ΚΑΙ ΑΔΗΛΩΤΗΣ ΕΡΓΑΣΙΑΣ ΠΕΡΙΟΔΟΣ: 15

Διαβάστε περισσότερα

Καποδίστριας Ι: Η περίπτωση του Νομού Λασιθίου, ήμος Νεάπολης, Κρήτη. Πως η διοικητική οργάνωση συμβάλλει στην ανάπτυξη.

Καποδίστριας Ι: Η περίπτωση του Νομού Λασιθίου, ήμος Νεάπολης, Κρήτη. Πως η διοικητική οργάνωση συμβάλλει στην ανάπτυξη. Αρχιτεκτονική Σχολή Ε.Μ.Π. ΠΜΣ Κατεύθυνση Β : Πολεοδομία Χωροταξία Καποδίστριας Ι: Η περίπτωση του Νομού Λασιθίου, ήμος Νεάπολης, Κρήτη. Πως η διοικητική οργάνωση συμβάλλει στην ανάπτυξη. Ίρις Περουλιού

Διαβάστε περισσότερα

«Δημιουργικά Εργαστήρια Νέων» Θέμα: Καταγραφή/Αφομοίωση βιωμάτων

«Δημιουργικά Εργαστήρια Νέων» Θέμα: Καταγραφή/Αφομοίωση βιωμάτων «Δημιουργικά Εργαστήρια Νέων» Θέμα: Καταγραφή/Αφομοίωση βιωμάτων Δράση:«Ακολουθώντας τη ροή» Διάστημα:24/7/2011 έως 6/8/2011 1 / 8 ΠΡΟΛΟΓΟΣ Στα πλαίσια του προγράμματος «Εκπαίδευση Μουσουλμανοπαίδων της

Διαβάστε περισσότερα

ΣΥΝΕΝΤΕΥΞΗ ΣΤΗΝ ΕΦΗΜΕΡΙΔΑ «ΚΡΗΤΙΚΗ ΕΝΗΜΕΡΩΣΗ» ΝΟΕΜΒΡΙΟΣ 2005

ΣΥΝΕΝΤΕΥΞΗ ΣΤΗΝ ΕΦΗΜΕΡΙΔΑ «ΚΡΗΤΙΚΗ ΕΝΗΜΕΡΩΣΗ» ΝΟΕΜΒΡΙΟΣ 2005 ΣΥΝΕΝΤΕΥΞΗ ΣΤΗΝ ΕΦΗΜΕΡΙΔΑ «ΚΡΗΤΙΚΗ ΕΝΗΜΕΡΩΣΗ» ΝΟΕΜΒΡΙΟΣ 2005 Στη βάση του περίτεχνου ανδριάντα του Στρατηλάτη Θεόδωρου Κολοκοτρώνη στην Τρίπολη, υπάρχει το εξής έμμετρο επίγραμμα: «Σε άτι γοργό καβαλάρης

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΣ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΣ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΤΗΣ ΔΙΟΙΚΗΣΗΣ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΣ ΚΑΙ ΕΠΙΧΕΙΡΗΜΑΤΙΚΩΝ ΥΠΗΡΕΣΙΩΝ «Ανταγωνισμός Θαλασσίων Ενδομεταφορών. Η περίπτωση των μικρών ναυτιλιακών εταιρειών» Διπλωματική εργασία

Διαβάστε περισσότερα

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2009 Μάθημα: ΦΥΣΙΟΓΝΩΣΤΙΚΑ Τάξη : Α Ημερομηνία: Πέμπτη, 4 Ιουνίου 2009 Ώρα: 07:45 09:45 ΒΑΘΜΟΣ Αριθμητικώς:... Ολογράφως:...

Διαβάστε περισσότερα

ΑΠΟΣΠΑΣΜΑ ΠΡΑΚΤΙΚΟΥ Τακτικής Συνεδρίασης Συμβουλίου της Δημοτικής Κοινότητας Αιγίου του Δήμου Αιγιαλείας 21 Ιανουαρίου 2014

ΑΠΟΣΠΑΣΜΑ ΠΡΑΚΤΙΚΟΥ Τακτικής Συνεδρίασης Συμβουλίου της Δημοτικής Κοινότητας Αιγίου του Δήμου Αιγιαλείας 21 Ιανουαρίου 2014 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΝΟΜΟΣ ΑΧΑΪΑΣ ΔΗΜΟΣ ΑΙΓΙΑΛΕΙΑΣ ΔΗΜΟΤΙΚΗ ΚΟΙΝΟΤΗΤΑ ΑΙΓΙΟΥ ΑΠΟΣΠΑΣΜΑ ΠΡΑΚΤΙΚΟΥ Τακτικής Συνεδρίασης Συμβουλίου της Δημοτικής Κοινότητας Αιγίου του Δήμου Αιγιαλείας 21 Ιανουαρίου 2014 ΑΠΟΦΑΣΗ

Διαβάστε περισσότερα

Συνέντευξη με την συγγραφέα Μαριλίτα Χατζημποντόζη!

Συνέντευξη με την συγγραφέα Μαριλίτα Χατζημποντόζη! Συνέντευξη με την συγγραφέα Μαριλίτα Χατζημποντόζη! της Βούλας Παπατσιφλικιώτη Η συγγραφέας παιδικών βιβλίων κ. Μαριλίτα Χατζημποντόζη μας παρουσιάζει τις δημιουργίες της και κουβεντιάζει μαζί μας! Είναι

Διαβάστε περισσότερα

ΣΥΖΗΤΗΣΗ ΝΟΜΟΣΧΕΔΙΟΥ ΥΠ.ΓΕΩΡΓΙΑΣ 4.9.2001

ΣΥΖΗΤΗΣΗ ΝΟΜΟΣΧΕΔΙΟΥ ΥΠ.ΓΕΩΡΓΙΑΣ 4.9.2001 ΣΥΖΗΤΗΣΗ ΝΟΜΟΣΧΕΔΙΟΥ ΥΠ.ΓΕΩΡΓΙΑΣ 4.9.2001 ΠΡΟΕΔΡΕΥΩΝ (Κωνσταντίνος Γείτονας): Ο Κοινοβουλευτικός Εκπρόσωπος της Νέας Δημοκρατίας κ. Μπασιάκος έχει το λόγο. ΕΥΑΓΓΕΛΟΣ ΜΠΑΣΙΑΚΟΣ: Κυρίες και κύριοι συνάδελφοι,

Διαβάστε περισσότερα

PI0808 / Διάγραμμα 1

PI0808 / Διάγραμμα 1 PI0808 / Διάγραμμα 1 Η ΤΑΥΤΟΤΗΤΑ ΤΗΣ ΕΕΥΝΑΣ ΕΤΑΙΕΙΑ: ΑΝΑΘΕΣΗ: ΤΥΡΟΣ ΚΑΙ ΜΕΘΟΔΟΣ: ΡΛΗΘΥΣΜΟΣ: ΡΕΙΟΧΗ: ΔΕΙΓΜΑ: ΧΟΝΟΣ ΔΙΕΞΑΓΩΓΗΣ: ΜΕΘΟΔΟΣ ΔΕΙΓΜΑΤΟΛΗΨΙΑΣ: ΤΥΡΙΚΟ ΣΤΑΤΙΣΤΙΚΟ ΣΦΑΛΜΑ: ΡΟΣΩΡΙΚΟ ΕΕΥΝΑΣ ΡΕΔΙΟΥ: PUBLIC

Διαβάστε περισσότερα

ΑΠΟΣΠΑΣΜΑ. Από τα πρακτικά της με αριθμό 13ης/2013, συνεδρίασης του Περιφερειακού Συμβουλίου την Τρίτη 9 Ιουλίου 2013 στην Κέρκυρα με τηλεδιάσκεψη.

ΑΠΟΣΠΑΣΜΑ. Από τα πρακτικά της με αριθμό 13ης/2013, συνεδρίασης του Περιφερειακού Συμβουλίου την Τρίτη 9 Ιουλίου 2013 στην Κέρκυρα με τηλεδιάσκεψη. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΕΡΙΦΕΡΕΙΑ ΙΟΝΙΩΝ ΝΗΣΩΝ ΑΠΟΣΠΑΣΜΑ Από τα πρακτικά της με αριθμό 3ης/203, συνεδρίασης του Περιφερειακού Συμβουλίου την Τρίτη 9 Ιουλίου 203 στην Κέρκυρα με τηλεδιάσκεψη. Αριθ. Απόφασης:

Διαβάστε περισσότερα

Λογοτεχνία Β Λυκείου. Αγάθη Γεωργιάδου

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

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΣΚΟΠΙΜΟΤΗΤΑΣ ΑΝΕΓΕΡΣΗΣ ΚΑΙ ΕΚΜΕΤΑΛΛΕΥΣΗΣ ΣΥΓΚΡΟΤΗΜΑΤΟΣ ΠΟΛΥΤΕΛΩΝ ΕΞΟΧΙΚΩΝ ΚΑΤΟΙΚΙΩΝ

ΜΕΛΕΤΗ ΣΚΟΠΙΜΟΤΗΤΑΣ ΑΝΕΓΕΡΣΗΣ ΚΑΙ ΕΚΜΕΤΑΛΛΕΥΣΗΣ ΣΥΓΚΡΟΤΗΜΑΤΟΣ ΠΟΛΥΤΕΛΩΝ ΕΞΟΧΙΚΩΝ ΚΑΤΟΙΚΙΩΝ ΤΜΗΜΑ ΟΡΓΑΝΩΣΗΣ& ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΤΗ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΜΕΛΕΤΗ ΣΚΟΠΙΜΟΤΗΤΑΣ ΑΝΕΓΕΡΣΗΣ ΚΑΙ ΕΚΜΕΤΑΛΛΕΥΣΗΣ ΣΥΓΚΡΟΤΗΜΑΤΟΣ ΠΟΛΥΤΕΛΩΝ

Διαβάστε περισσότερα

Τεχνικά χαρακτηριστικά

Τεχνικά χαρακτηριστικά Τεχνικά χαρακτηριστικά Ευκολία σύνδεσης µε ένα µόνο πλήκτρο: Το ειδικό πλήκτρο Direct Link σας βοηθάει να συνδεθείτε γρήγορα στα ασύρµατα δίκτυα, ενώ οι λειτουργίες AutoShare, Social Sharing, Cloud, email,

Διαβάστε περισσότερα

ΕΘΝΙΚΗ ΣΥΝΟΜΟΣΠΟΝΔΙΑ ΕΛΛΗΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΔΕΛΤΙΟ ΤΥΠΟΥ

ΕΘΝΙΚΗ ΣΥΝΟΜΟΣΠΟΝΔΙΑ ΕΛΛΗΝΙΚΟΥ ΕΜΠΟΡΙΟΥ ΔΕΛΤΙΟ ΤΥΠΟΥ ΔΕΛΤΙΟ ΤΥΠΟΥ Αθήνα, 7 Αυγούστου 2014 ΥΠΟΜΝΗΜΑ ΘΕΣΕΩΝ ΚΑΙ ΠΡΟΤΑΣΕΩΝ ΤΗΣ ΕΣΕΕ ΓΙΑ ΤΗΝ ΑΝΑΜΟΡΦΩΣΗ ΤΟΥ ΦΟΡΟΛΟΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΕΛΑΦΡΥΝΣΗΣ ΤΩΝ ΜΙΚΡΟΜΕΣΑΙΩΝ Το φορολογικό σύστημα αποτελεί το βασικότερο εργαλείο

Διαβάστε περισσότερα

Οι ιοί και οι ιογενείς λοιμώξεις του αναπνευστικού συστήματος στα παιδιά

Οι ιοί και οι ιογενείς λοιμώξεις του αναπνευστικού συστήματος στα παιδιά Οι ιοί και οι ιογενείς λοιμώξεις του αναπνευστικού συστήματος στα παιδιά Θεοφάνης Τσιλιγιάννης Οι ιογενείς λοιμώξεις αποτελούν τη συχνότερη αιτία από την οποία αρρωσταίνουν τα παιδιά και ο άνθρωπος γενικά.

Διαβάστε περισσότερα

ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΑΣ «ΚΑΤΟΙΚΙΔΙΑ ΖΩΑ»

ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΑΣ «ΚΑΤΟΙΚΙΔΙΑ ΖΩΑ» ΕΡΓΑΣΙΑ ΤΕΧΝΟΛΟΓΙΑΣ «ΚΑΤΟΙΚΙΔΙΑ ΖΩΑ» ΕΙΣΑΓΩΓΗ ΤΙΤΛΟΣ ΕΡΕΥΝΑΣ : Ποιο είναι το αγαπημένο ζώο των εφήβων? ΕΙΣΑΓΩΓΗ: Από τα αρχαία χρόνια οι άνθρωποι ανέπτυξαν μια ιδιαίτερη σχέση με τα ζώα. Τα χρησιμοποιούσαν

Διαβάστε περισσότερα

3. Βιτσιλάκη Χ., Γουβιάς Δ. (2007). ΣΧΟΛΕΙΟ ΚΑΙ ΔΟΥΛΕΙΑ: Μία εμπειρική διερεύνηση της εφηβικής απασχόλησης. Αθήνα (εκδόσεις Gutenberg ).

3. Βιτσιλάκη Χ., Γουβιάς Δ. (2007). ΣΧΟΛΕΙΟ ΚΑΙ ΔΟΥΛΕΙΑ: Μία εμπειρική διερεύνηση της εφηβικής απασχόλησης. Αθήνα (εκδόσεις Gutenberg ). Βιβλία Μελέτες 2007-2010 1. Βιτσιλάκη, Χ. (2007). Κοινωνιολογική, Γνωστική και Εκπαιδευτική Θεμελίωση του Θεσμού του Ολοήμερου Σχολείου. Θεσσαλονίκη: Εκδόσεις Αδελφών Κυριακίδη. 2. Βιτσιλάκη, Χ., Γκασούκα,

Διαβάστε περισσότερα

Εκπαιδευτικά βιβλία Δηµοτικό & Νηπιαγωγείο

Εκπαιδευτικά βιβλία Δηµοτικό & Νηπιαγωγείο Εκπαιδευτικά βιβλία Δηµοτικό & Νηπιαγωγείο ΤΑ ΒΙΒΛΙΑ ΤΗΣ ΕΠΙΤΥΧΙΑΣ 1 + 2 Μεγάλη από τις προσφορά ε κδόσεις Μεταίχ µιο ΑΓΟΡΑΖΕΙΣ ΥΟ ΒΟΗΘΗΜΑΤΑ ΕΝΑ ΩΡΟ Λεπτοµέρειες για την προσφορά στο οπισθόφυλλο www.metaixmio-education.gr

Διαβάστε περισσότερα

ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «MBA ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΡΟΦΙΜΩΝ» ΔΙΠΛΩΜΑΤΙΚΗ ΜΕΛΕΤΗ «Η ΑΣΦΑΛΕΙΑ ΤΡΟΦΙΜΩΝ ΚΑΙ Ο ΒΑΘΜΟΣ ΕΜΠΙΣΤΟΣΥΝΗΣ ΤΩΝ ΚΑΤΑΝΑΛΩΤΩΝ»

ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «MBA ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΡΟΦΙΜΩΝ» ΔΙΠΛΩΜΑΤΙΚΗ ΜΕΛΕΤΗ «Η ΑΣΦΑΛΕΙΑ ΤΡΟΦΙΜΩΝ ΚΑΙ Ο ΒΑΘΜΟΣ ΕΜΠΙΣΤΟΣΥΝΗΣ ΤΩΝ ΚΑΤΑΝΑΛΩΤΩΝ» Τμήμα Διοίκησης Επιχειρήσεων Αγροτικών Προϊόντων & Τροφίμων (Δ.Ε.Α.Π.Τ.) ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ «MBA ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΤΡΟΦΙΜΩΝ» ΔΙΠΛΩΜΑΤΙΚΗ ΜΕΛΕΤΗ «Η ΑΣΦΑΛΕΙΑ ΤΡΟΦΙΜΩΝ ΚΑΙ Ο ΒΑΘΜΟΣ ΕΜΠΙΣΤΟΣΥΝΗΣ

Διαβάστε περισσότερα

ΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ ΣΗΝ ΥΟΡΟΛΟΓΗΗ ΣΟΤ Σ.Ε.Ι. ΚΑΒΑΛΑ ΦΟΛΗ ΙΟΙΚΗΗ & ΟΙΚΟΝΟΜΙΑ ΣΜΗΜΑ ΙΟΙΚΗΗ ΕΠΙΦΕΙΡΗΕΩΝ

ΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ ΣΗΝ ΥΟΡΟΛΟΓΗΗ ΣΟΤ Σ.Ε.Ι. ΚΑΒΑΛΑ ΦΟΛΗ ΙΟΙΚΗΗ & ΟΙΚΟΝΟΜΙΑ ΣΜΗΜΑ ΙΟΙΚΗΗ ΕΠΙΦΕΙΡΗΕΩΝ Σ.Ε.Ι. ΚΑΒΑΛΑ ΦΟΛΗ ΙΟΙΚΗΗ & ΟΙΚΟΝΟΜΙΑ ΣΜΗΜΑ ΙΟΙΚΗΗ ΕΠΙΦΕΙΡΗΕΩΝ ΠΣΤΦΙΑΚΗ ΕΡΓΑΙΑ ΘΕΜΑ : Η ΕΠΙΛΟΓΗ ΣΟΤ ΟΡΘΟΤ ΕΣΑΙΡΙΚΟΤ ΣΤΠΟΤ ΜΕ ΚΡΙΣΗΡΙΟ ΣΗΝ ΥΟΡΟΛΟΓΗΗ ΣΟΤ ΠΟΤ ΑΣΡΙΑ: ΧΑΪΡΗ ΚΑΛΛΙΟΠΗ ΤΠΕΤΘ. ΚΑΘΗΓ.: κ.πιπιλιαγκοποτλο

Διαβάστε περισσότερα

«ΝΕΟΙ ΚΑΙ ΑΝΑΖΗΤΗΣΗ ΕΡΓΑΣΙΑΣ ΣΤΗΝ ΕΛΛΑΔΑ ΚΑΙ ΣΤΟ ΕΞΩΤΕΡΙΚΟ»

«ΝΕΟΙ ΚΑΙ ΑΝΑΖΗΤΗΣΗ ΕΡΓΑΣΙΑΣ ΣΤΗΝ ΕΛΛΑΔΑ ΚΑΙ ΣΤΟ ΕΞΩΤΕΡΙΚΟ» ΤΕΙ ΑΝΑΤΟΛΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΚΑΙ ΘΡΑΚΗΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ ΚΑΙ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΝΕΟΙ ΚΑΙ ΑΝΑΖΗΤΗΣΗ ΕΡΓΑΣΙΑΣ ΣΤΗΝ ΕΛΛΑΔΑ ΚΑΙ ΣΤΟ ΕΞΩΤΕΡΙΚΟ» ΕΠΙΒΛΕΠΟΥΣΑ ΚΑΘΗΓΗΤΡΙΑ: ΠΟΛΥΧΡΟΝΙΔΟΥ ΠΕΡΣΕΦΟΝΗ

Διαβάστε περισσότερα

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις:

Η Αγορά Ηλεκτρικής Ενέργειας στην Κύπρο έχει οργανωθεί σε τομείς που υπόκεινται στις ακόλουθες ρυθμίσεις: ΡΥΘΜΙΣΤΙΚΗ ΑΡΧΗ ΕΝΕΡΓΕΙΑΣ ΚΥΠΡΟΥ ΔΗΛΩΣΗ ΡΥΘΜΙΣΤΙΚΗΣ ΠΡΑΚΤΙΚΗΣ ΚΑΙ ΠΡΟΣΧΕΔΙΟ ΜΕΘΟΔΟΛΟΓΙΑΣ ΔΙΑΤΙΜΗΣΕΩΝ ΗΛΕΚΤΡΙΣΜΟΥ Η ΡΑΕΚ θέτει και δημοσιεύει την παρούσα πρόταση ως προς τις αρχές και τη Μεθοδολογία που

Διαβάστε περισσότερα

ΠΑΡΑΣΚΕΥΗ 1 ΜΑΡΤΙΟΥ 2013

ΠΑΡΑΣΚΕΥΗ 1 ΜΑΡΤΙΟΥ 2013 Ξάνθη: 25/2/2013 ΕΛΤΙΟ ΤΥΠΟΥ για τους συντάκτες ΕΙΚΑΣΤΙΚΩΝ και ΚΟΙΝΩΝΙΚΩΝ ΘΕΜΑΤΩΝ Το Ίδρυµα Θρακικής Τέχνης και Παράδοσης, συµµετέχει και φέτος µε αξιόλογες εκδηλώσεις και σειρά δράσεων στις «Θρακικές

Διαβάστε περισσότερα

Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΘΡΗΣΚΕΙΑΣ ΣΤΟ ΟΥΔΕΤΕΡΟΘΡΗΣΚΟ ΣΧΟΛΕΙΟ (ΤΟΥ ΡΕΖΙΣ ΝΤΕΜΠΡΕ)

Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΘΡΗΣΚΕΙΑΣ ΣΤΟ ΟΥΔΕΤΕΡΟΘΡΗΣΚΟ ΣΧΟΛΕΙΟ (ΤΟΥ ΡΕΖΙΣ ΝΤΕΜΠΡΕ) Η ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΘΡΗΣΚΕΙΑΣ ΣΤΟ ΟΥΔΕΤΕΡΟΘΡΗΣΚΟ ΣΧΟΛΕΙΟ (ΤΟΥ ΡΕΖΙΣ ΝΤΕΜΠΡΕ) I Το Δεκέμβριο του 2001 ο Ζακ Λαγκ, Υπουργός Εθνικής Παιδείας της Γαλλίας ζήτησε από τον καθηγητή Ρεζίς Ντεμπρέ, το θεωρητικό ενδιαφέρον

Διαβάστε περισσότερα

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις»

Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες Επιχειρήσεις» ΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΒΑΣΙΚΟΣ ΠΑΡΑΓΟΝΤΑΣ ΓΙΑ ΤΗΝ ΟΙΚΟΝΟΜΙΚΗ ΚΑΙ ΚΟΙΝΩΝΙΚΗ ΑΝΑΠΤΥΞΗ ΤΟΥ ΑΙΓΑΙΟΠΕΛΑΓΙΤΙΚΟΥ ΧΩΡΟΥ Τίτλος Ειδικού Θεματικού Προγράμματος: «Διοίκηση, Οργάνωση και Πληροφορική για Μικρο-μεσαίες

Διαβάστε περισσότερα

ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. Διπλωματική Εργασία:

ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ. Διπλωματική Εργασία: ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗ ΔΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ Διπλωματική Εργασία: ΠΑΡΑΟΙΚΟΝΟΜΙΑ ΣΤΗΝ ΥΓΕΙΑ ΜΕΛΕΤΗ ΜΕ ΧΡΗΣΗ ΕΡΩΤΗΜΑΤΟΛΟΓΙΟΥ ΣΤΗΝ ΕΛΛΑΔΑ του ΔΗΜΗΤΡΙΟΥ Ι. ΑΝΤΩΝΟΓΛΟΥ Υποβλήθηκε ως

Διαβάστε περισσότερα

Εβδομαδιαίος προγραμματισμός 14η, 15η & 16η εβδομάδα 7 25/12/2015 Θέμα: «Του Δεκέμβρη η μέρα. Καλημέρα, καλησπέρα Ταχυδρόμος - Χριστούγε

Εβδομαδιαίος προγραμματισμός 14η, 15η & 16η εβδομάδα 7 25/12/2015 Θέμα: «Του Δεκέμβρη η μέρα. Καλημέρα, καλησπέρα Ταχυδρόμος - Χριστούγε 1 Εβδομαδιαίος προγραμματισμός 14 η, 15 η & 16 η εβδομάδα 7 25/12/2015 Θέμα: «Του Δεκέμβρη η μέρα. Καλημέρα, καλησπέρα Ταχυδρόμος - Χριστούγεννα - Πρωτοχρονιά» Αφορμή Ερέθισμα Τα Χριστούγεννα και η Πρωτοχρονιά

Διαβάστε περισσότερα