You are on page 1of 311

ΓΡΑΦΙΚΑ Η/Υ

ΠΕΤΡΟΣ ΚΑΡΒΕΛΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ

Εισαγωγή

 “Μιά εικόνα αξίζει 1000 λέξεις”:


 Ανθρώπινο οπτικό κανάλι: 30-40 Μbits/s (=64-85
M λέξεις /min με 4 γράμματα/λέξη, 7bits/γράμμα).
 Γραπτό κείμενο: 600-1200 λέξεις/min.
 100.000 αποδοτικότερη επικοινωνία ανθρώπου-
Η/Υ μέσω γραφικών.
Γενικά
 Υπάρχουν τρεις περιοχές της πληροφορικής που ασχολούνται με εικόνες
 Γραφικά (Computer Graphics)
 Δημιουργούν εικόνες από ένα μοντέλο. Για την παραγωγή των εικόνων
χρησιμοποιούνται τεχνικές που εκφράζουν τον τρόπο αλληλεπίδρασης του φωτός με τα
αντικείμενα του μοντέλου. Πολλές από τις τεχνικές αυτές αναπτύχθηκαν ειδικά για τα
Γραφικά ενώ άλλες προέρχονται από τα Μαθηματικά και τη Φυσική.
 Τεχνητή Όραση (Computer Vision)
 Αποτελεί την αντίστροφη διαδικασία και ασχολείται με την εξαγωγή χρήσιμων
πληροφοριών (μοντέλου) από δισδιάστατες προβολές (π.χ. φωτογραφίες) μιας σκηνής.
 Επεξεργασία Εικόνας (Image Processing)
 Περιλαμβάνει μεθόδους για τη βελτίωση των δεδομένων μιας εικόνας (π.χ. διόρθωση
σφαλμάτων που προέκυψαν κατά τη φωτογράφηση) ή την απλοποίηση τους. Μπορεί
να χρησιμοποιηθεί αυτόνομα ή σαν μέρος της Τεχνητής Όρασης.

Μοντέλο Γραφικά Επεξεργασία


(Πληροφορίες για Εικόνα Εικόνων
περιεχόμενο εικόνας) Τεχνητή Όραση

Περιοχές εφαρμογών
 Περιβάλλοντα γραφικής αλληλεπίδρασης (GUI).
 Σχεδίαση με υπολογιστή (CAD): πχ Μηχανολογία, Αρχιτεκτονική,
VLSI design
 Γεωγραφικά Συστήματα Πληροφοριών (GIS).
 Εικονική πραγματικότητα (π.χ. προσομοιώσεις πτήσεως, εκπαίδευση
γιατρών )
 Ιατρικές εφαρμογές.
 Οπτικοποίηση δεδομένων.
 Ψυχαγωγία και Τέχνη (π.χ. κινηματογράφος, παιχνίδια, διαφημίσεις).
Γραφικά Υπολογιστών:

 Δημιουργία εικόνων με τον Υπολογιστή?


 Δημιουργία Ρεαλιστικών εικόνων με βάση τον
πραγματικό κόσμο
 Δημιουργία ημι-ρεαλιστικών εικόνων
 Οπτικοποίηση Δεδομένων

Σημαντικοί Σταθμοί

 Sketchpad (1963): Αλληλεπίδραση μέσω


γραφικών
 Διανυσματική οθόνη, light pen.
 Πλεγματική οθόνη (τέλη δεκαετίας `60):
εμφάνιση επιφανειών
 Εναυσμα για αλγόριθμους απόκρυψης & φωτισμού
επιφανειών.
 Αλγόριθμοι ρεαλιστικής παράστασης (συνεχώς).
 Παράλληλη επεξεργασία / ειδικά κυκλώματα
(π.χ. z-buffer) (δεκαετίες ‘80 & ’90).
1.6
Πραγματικές Εικόνες

 Γεωμετρία
 Φωτισμός / Ένταση
 Κίνηση

Γεωμετρία

 3D Μοντέλα
 Προβολή
 Απεικόνιση
Τεχνολογία (Συσκευές Εισόδου / Εξόδου)
 Συνήθεις συσκευές εισόδου: ποντίκι, πληκτρολόγιο.
 Συνήθεις συσκευές εξόδου: πλεγματική οθόνη υψηλής ανάλυσης:

 Μεγάλη διαφορά μεταξύ χωρητικότητας καναλιών εισόδου και


εξόδου:
 Τεχνητή όραση, νέες συσκευές.

3Δ Ψηφιοποιητές
•Χειροκίνητοι, Laser, Stereo, Pattern
Ψηφιοποίηση Κίνησης (Motion Capture)

Αισθητήρες με/χωρίς καλώδιο, αυτόματος


προσδιορισμός κίνησης

3D Models - Σκανάρισμα

(http://graphics.stanford.edu/projects/mich/).
Scanned Model

Αριστερά φωτογραφία Michelangelo's David.


Δεξιά a computer rendering made from a geometric model.
(http://graphics.stanford.edu/projects/mich/).

Δημιουργία 3D models

Ρεαλιστική μοντελοποίηση και απόδοση (rendering) ενός


οικοσυστήματος

http://graphics.stanford.edu/papers/ecosys/ecosys.pdf
Γεωμετρία- Προβολή-Απεικόνιση

The Walkthru Project

http://www.cs.unc.edu/~walk/

Φωτισμός

 Μοντελοποίηση φωτισμού
 Ανάκλαση (Reflectance)
 Υφή (Texture)
 Σκίαση (Shadows -visibility)
 Ενδοανακλάσεις (Interreflections)
Φωτισμός (Lighting)

Φως
Εκπομπή φωτονίων
Κάποια εντοπίζονται
από το μάτι/ κάμερα

Φωτόνια κινούνται σε ευθεία γραμμή

Όταν χτυπήσουν ένα αντικείμενο


• Αντανακλούν σε μια νέα κατεύθυνση
• Απορροφούνται
•.
Συνάρτηση Ανάκλασης (Biderectional
Reflectance Distribution Function (BRDF)

Measuring BRDF
Αντανάκλαση στο δέρμα

BRDF BSSRDF

http://graphics.stanford.edu/papers/bssrdf/

Μαλλιά

http://graphics.stanford.edu/papers/hair/hair-sg03final.pdf
Υφή (Texture)

Photo

Επαναλαμβνόμενο Pattern

Υφή (Texture)

Photo

Δημιουργία από Η/Υ


Σκιάση (Shadows)

Διανακλάσεις (Interreflections)
()

()
Physically real motion

Εικόνες βασισμένες στην πραγματικότητα


Παράδειγμα

Παράδειγμα
Παράδειγμα

Παράδειγμα
Παράδειγμα

Παράδειγμα
Παράδειγμα

Παράδειγμα
Παράδειγμα

Παράδειγμα
Παράδειγμα

Παράδειγμα
Παράδειγμα

Παράδειγμα
Παράδειγμα

Παράδειγμα
Παράδειγμα

Γραφικά για CAD - Κινητήρας


Γραφικά για CAD - Σωλήνες

Γραφικά για CAD - Αυτοκίνητα


Γραφικά για CAD - Ηλεκτρονικά

Γραφικά για CAD - Αεριωθούμενο


Γραφικά για CAD - Ιατρική

Οπτικοποίηση
Οπτικοποίηση

Οπτικοποίηση
Οπτικοποίηση

Οπτικοποίηση
Εφαρμογές Γραφικών

 Ψυχαγωγία:
 Κινηματογράφος

Square: Final Fantasy

Pixar: Monster’s Inc.

Ψυχαγωγία

Final Fantasy (Square, USA)


Ψυχαγωγία

A Bug’s Life (Pixar)

Εφαρμογές Γραφικών

 Ιατρικές Απεικονίσεις
The Visible Human Project

MIT: Image-Guided Surgery Project


Καθημερινή χρήση

Καθημερινή χρήση

Window system and large-screen interaction metaphors (François Guimbretière)


Εφαρμογές Γραφικών

 Επιστημονική Οπτικοποίηση

Επιστημονική Οπτικοποίηση

Airflow around a Harrier Jet (NASA Ames)


Εφαρμογές Γραφικών

 Computer Aided Design (CAD)

Εφαρμογές Γραφικών
Εκπαίδευση

Designing Effective Step-By-Step Assembly Instructions (Maneesh Agrawala et. al)


Εφαρμογές Γραφικών

Ψυχαγωγία:
Παιχνίδια

GT Racer 3

Polyphony Digital: Gran Turismo 3, A Spec

Παιχνίδια

Circus Atari (Atari)


Εκπαίδευση

Outside In (Geometry Center, University of Minnesota)

Προοπτική
Μηχανές

Προοπτική

 Lorenzetti
 Birth of the Virgin
 1342
Leonardo
• The Last Supper
• 1498

Σχήμα
Το επεξεργαζόμαστε…

Light Stage – 2002


USC, Institute for
Creative
Technologies

Γραφικό Σύστημα
Επεξεργασίας & Εξόδου
Γραφικό σύστημα επεξεργασίας

Συσκευές εξόδου γραφικών


 Οθόνες
 Βασίζονται στην παραδοσιακή τεχνολογία της κατευθυνόμενης δέσμης
ηλεκτρονίων που ερχόμενη σε επαφή με τη φωσφορούχα επικάλυψη της
οθόνης παράγει φως για ένα χρονικό διάστημα
 Δύο είδη
 Διανυσματική οθόνη
 Η δέσμη ηλεκτρονίων μπορεί να κινηθεί ελεύθερα στην οθόνη
 Πλεγματική οθόνη
 Αποτελείται από ένα 2Δ πλέγμα διακριτών pixels τα οποία μπορούν ανεξάρτητα
να πάρουν κάποιο χρώμα
 Εκτυπωτές
 Χρήση αφαιρετικού χρωματικού μοντέλου (π.χ. CMY).
 Δύο είδη
 Διανυσματικοί εκτυπωτές
 Η γραφίδα μπορεί να κινηθεί ελεύθερα πάνω στο χαρτί διαγράφοντας
οποιαδήποτε καμπύλη (π.χ. σχεδιογράφος τυμπάνου, επιτραπέζιος
σχεδιογράφος).
 Πλεγματικοί εκτυπωτές
 Χωρίζουν την επιφάνεια εκτύπωσης σε ένα 2Δ πλέγμα διακριτών σημείων
εκτύπωσης που σαρώνονται με προκαθορισμένη σειρά (dot-matrix, laser, ink-jet
εκτυπωτές).
Συσκευές Εξόδου
 Χωρίζονται σε οθόνες και εκτυπωτές.
 Κλασική τεχνολογία οθόνης:

 Ανάγκη φρεσκαρίσματος 50-110 Hz (από απαίτηση 30


καρέ / sec για animation).
 Εγχρωμες οθόνες: 3 δέσμες (RGB)
 Προσθετική διαδικασία πάνω στη μαύρη οθόνη.
Τεχνολογίες Απεικονίσεις

 Σωλήνας καθοδικών Ακτίνων (Cathode Ray


Tubes (CRTs)
 Κοινή συσκευή απεικόνισης
 Σωλήνας κενού
 Υψηλή τάση (Extremely high voltage)

CRT
 Στοιχείο
θέρμανσης
(Heating element
filament)
 Ηλεκτρόνια
εκπέμπονται προς
 Κάθετα και
οριζόντια πεδία
απόκλισης
 Ακτίνα χτυπάει σε
μια οθόνη
επικαλυμμένη με
φώσφορο
Υλικό για γραφικά

Φώσφορος που φωτοβολεί

2/6/2018

Υλικό για γραφικά

Ο λόγος που εκφράζει την αναλογία


των διαστάσεων της οθόνης.

2/6/2018
Πλεγματική ή διανυσματική απεικόνιση

Διανυσματική Οθόνη
 Σχεδιασμός (γραμμικών) αντικειμένων με κατάλληλη μετακίνηση
δέσμης ηλεκτρονίων.
 Εντολές της μορφής: point(x,y), line(x1,y1,x2,y2) στο display-file.
 Ανάγκη φρεσκαρίσματος περιορίζει μέγιστο αριθμό εντολών του
display-file:

 Αδυναμία παράστασης επιφανειών, αλλά οχι ταύτιση (aliasing).


Γραφικά

Σύστημα διανυσματικής σάρωσης


(vector or random scan)

Πλεγματική οθόνη
 Σάρωση της οθόνης ανά γραμμή και σε συγκεκριμένο χρονικό ρυθμό

Γραμμή σάρωσης

Διακεκκομένη γραμμή: δέσμη


απενεργοποιημένη

 Αποθήκευση της εικόνας στη μνήμη ως πίνακα τριών διαστάσεων:


 (πλάτος x ύψος x χρώμα)

 Χρήση παλέτας για μείωση απαιτήσεων χρώματος.

Παλέτα Επεξεργαστής Οθόνη


Κεντρικός επεξεργαστής Μνήμη οθόνης Τιμή RGB
χρωμάτων τιμή οθόνης
(frame buffer) pixel
Τεχνολογίες Απεικόνισης : CRTs

 Διανυσματικές οθόνες
 Αρχικές οθόνες
 Έλεγχος X,Y με κάθετε / οριζόντιες πλάκες
απόκλισης
 Για την ένταση χρησιμοποιείται το Z (κοντύτερα
αντικείμενα φαίνονται φωτεινότερα)
 Προβλήματα
 Πολύπλοκες σκηνές προκαλούν οπτική
σύγχυση

Τεχνολογίες Απεικόνισης : CRTs

 Πλεγματικές οθόνες (Raster Displays)


 Πλέγμα : Τετράγωνος πίνακας με σημεία
 Pixel: ένα σημείο ή στοιχείο εικόνας του
πλέγματος
 Scan line: Μια γραμμή από pixels
Πλεγματική Οθόνη
 Μνήμη οθόνης πολύ μεγάλη (π.χ. 1024x1024x24=3Mb).
 Μείωση μεγέθους με παλέτα χρωμάτων (lookup-table).
 Δημιουργία σχημάτων με αλγορίθμους επιλογής pixels, πρόβλημα
ταύτισης:

 Νέες τεχνολογίες επίπεδων (LCD, plasma) ή μικροσκοπικών


πλεγματικών οθονών (V. Reality).
Γραφικά

Έγχρωμη πλεγματική οθόνη


Τεχνολογίες Απεικόνισης : έγχρωμη
CRTs
 Έγχρωμη CRTs είναι πολύ πολύπλοκη
 Απαιτεί γεωμετρία μεγάλης ακρίβιεας
 Χρησιμοποιεί pattern από έγχρωμο φώσφορο στην
οθόνη :

Delta electron gun arrangement In-line electron gun arrangement

 Γιατί κόκκινος, πράσινος και μπλέ φώσφορος?

Τεχνολογίες Απεικόνισης :
έγχρωμη CRTs
 Έγχρωμη CRTs
 Τρία πυροβόλα ηλεκτρονίων
 Μεταλλική μάσκα σκίασης να διαφοροποιεί τις
ακτίνες
Υλικό για γραφικά

Σύστημα ανανέωσης και ελέγχου της οθόνης

Γραφικά

Μνήμη ανανέωσης (Video Ram)

Video
Controller
Οθόνη
Video RAM
Τεχνολογίες Απεικόνισης : LCDs
 Οθόνες υγρών κρυστάλλων (LCDs)
 LCDs: οργανικά μόρια, σε κρυσταλλική μορφή, τα
οποία υγροποιούνται από θέρμανση ή με
ηλεκτρομαγντητικό πεδίο
 Οι κρύσταλλοι πολώνουν το φως στους 90º.

Τεχνολογίες Απεικόνισης : LCDs


 Οθόνες υγρών κρυστάλλων (LCDs)
 LCDs: οργανικά μόρια, σε κρυσταλλική
μορφή, τα οποία υγροποιούνται από
θέρμανση ή με ηλεκτρομαγντητικό πεδίο
 Οι κρύσταλλοι πολώνουν το φως στους 90º.
Τεχνολογίες Απεικόνισης : LCDs
 Μεταβίβαση & αντανάκλαση LCDs:
 LCDs λειτουργούν ως βαλβίδες φωτός και όχι ως εκπομποί
φωτός και επομένως στηρίζονται σε εξωτερική πηγή φωτός.
 Οθόνη Laptop
 backlit

 Μεταβιβάσιμη οθόνη

 Palm Pilot/Game Boy


 Αντανακλαστική οθόνη

Τεχνολογίες Απεικόνισης : πλάσμα


 Παρόμοια αρχή με φθορισμού
λαμπτήρες
 Μικρές κάψουλες με αέριο
ενεργοποιούνται από ηλεκτρικό
πεδίο που εκπέμπει
UV φως
 UV ενεργοποιεί φώσφορο
Τεχνολογίες Απεικόνισης :

 Οθόνες Πλάσματος (ΥΠΕΡ)


 Μεγάλη γωνία θέασης
 Καλή για οθόνες μεγάλης διάστασης
 Σχετική φωτεινότητα
 Κατά
 Ακριβή
 Μεγάλα pixels (~1 mm versus ~0.2 mm)
 Ο φώσφορος σταδιακά φθίνει
 Λιγότερο φωτεινή από CRTs, χρησιμοποιώντας
περισσότερη ενέργεια

Εκτυπωτές
 Διαχωρισμός σε διανυσματικούς &
πλεγματικούς.
 Εγχρωμοι με χρήση αφαιρετικού χρωματικού
μοντέλου (π.χ. CMY):
 Π.χ. θαλασσί μπογιά αφαιρεί κόκκινη συνιστώσα
προσπίπτοντος λευκού φωτός.
 Αποτέλεσμα: (R+G+B) - R = G+B = θαλασσί
 Συχνά CMY+B για οικονομία μελανιού και καλύτερα
αποτελέσματα.
Διανυσματικοί Εκτυπωτές
 Σχεδιογράφος τυμπάνου:

 Επιτραπέζιος σχεδιογράφος:

 Πολλαπλές γραφίδες για πάχη γραμμών / χρώμα.

Πλεγματικοί Εκτυπωτές
 Dot-Matrix: κεφαλή με ακίδες σε 1 ή
περισσότερες στήλες:
 Πεταγόμενη ακίδα σχηματίζει κουκίδα (παρεμβάλλεται
μελανοταινία).
 Κεφαλή σαρώνει κατά Χ, χαρτί κατά Υ.
 Αύξηση ανάλυσης με πολλαπλές σαρώσεις (αργή) ή
πολλαπλές στήλες ακίδων, μετατοπισμένες κατά Υ.
 Χρώμα με έγχρωμες μελανοταινίες.
Πλεγματικοί Εκτυπωτές
 Laser: τύμπανο επιστρωμένο με σελένιο:
 Ξεκινά κάθε στροφή με +ve ηλεκτρικό φορτίο.
 Οριζόντια σάρωση με laser, ανάβει όπου δεν θέλουμε εκτύπωση.
 Πέρασμα από μελάνι -ve φόρτισης.
 Επαφή με χαρτί.
 X 3 για έγχρωμη εκτύπωση:

Πλεγματικοί Εκτυπωτές
 Ink-Jet: εκτοξεύει CMY μελάνι από 3 jets ταυτόχρονα κατά τη
σάρωση

 Συσκευές εκτύπωσης σε φίλμ (animation κλπ).


Συσκευές Εισόδου
 Ποντίκι: επικρατέστερη δεικτική συσκευή
 Σχετική κίνηση.
 Κουμπιά για ορισμό ενεργειών.
 Μπίλια (trackball): ανάποδο ποντίκι (φορητοί Η/Υ).
 Πληκτρολόγιο: εισαγωγή αλφαβητικών δεδομένων
 Ταμπλέτα: επιστρέφει απόλυτες (Χ,Υ) συντεταγμένες
γραφίδας
 Χρήσιμη για απλή 2Δ ψηφιοποίηση ή για απλές/σταθερές
επιλογές (π.χ. menu-driven προγράμματα).

Συσκευές Εισόδου
 Μεμβράνη αφής: τοποθέτηση στην οθόνη
 Επιστρέφει 2Δ συντεταγμένες δάκτυλου.
 Εύχρηστη αλλά χαμηλής ανάλυσης.
 Joystick: επιστρέφει κατεύθυνση (Ε,Π,Α,Δ) + ποσό
μετακίνησης

 Ψηφιοποιητής εικόνας (image scanner): εισαγωγή 2Δ


ασπρόμαυρων ή έγχρωμων εικόνων.
 3Δ ψηφιοποιητής: αρκετές τεχνολογίες, χειροκίνητος
ή αυτόματος.
Γραφική Σωλήνωση Εξόδου

Θέσεις αντικειμένων Θέση


και φωτεινών πηγών παρατηρητή

3Δ 3Δ 3Δ Απομάκρυνση
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα

Είσοδοι
(για κάθε καρέ)

Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Φωτισμός Επιφανειών 1
2 D ΣΣΟ
Υφή 2
(SCS)

Ερωτήσεις
1. Ποια η αρχιτεκτονική που επικρατεί στα γραφικά στους σύγχρονους υπολογιστές;

Στους σύγχρονους υπολογιστές, ο κεντρικός επεξεργαστής διαβάζει το μοντέλο από μία βάση
(π.χ. βάση πολυγώνων) και δέχεται εισόδους από τον χρήστη μέσω του ποντικιού και του
πληκτρολογίου. Σαν συσκευή εξόδου έχει επικρατήσει να χρησιμοποιείται η πλεγματική οθόνη
που περιλαμβάνει μια μνήμη για την απεξάρτηση της διαδικασίας δημιουργίας εικόνων από τη
διαδικασία ανανέωσης (refresh) της οθόνης.

2. Ποιο το μειονέκτημα αυτής της αρχιτεκτονικής; Πως θα μπορούσε να βελτιωθεί


μελλοντικά;

Η παραπάνω αρχιτεκτονική χαρακτηρίζεται από την ύπαρξη καναλιού εξόδου (οθόνη) προς το
χρήστη πολύ μεγάλης χωρητικότητας αλλά και καναλιού εισόδου (ποντίκι, πληκτρολόγιο) πολύ
μικρής χωρητικότητας. Μελλοντικά, θα μπορούσαν να χρησιμοποιηθούν μέθοδοι τεχνητής
όρασης και αναγνώρισης ομιλίας σε συνδυασμό με συσκευές εισόδου που πρωτοεμφανίζονται
στην εικονική πραγματικότητα, όπως για παράδειγμα το γάντι εισόδου δεδομένων (data glove),
για να μεταβάλλουν τη διαδικασία εισόδου ώστε να μοιάζει με τη μετάδοση δεδομένων από
άνθρωπο σε άνθρωπο, αυξάνοντας έτσι τη χωρητικότητα του καναλιού εισόδου.
Ερωτήσεις
3. Ποιες οι διαφορές διανυσματικής και πλεγματικής οθόνης;

Η διανυσματική οθόνη ήταν το πρώτο είδος οθόνης που χρησιμοποιήθηκε στα γραφικά,
και χαρακτηρίζεται από το ότι η δέσμη ηλεκτρονίων μπορεί να κινηθεί ελεύθερα στην
οθόνη. Όταν πρόκειται να σχεδιαστούν σημεία η ευθύγραμμα τμήματα πάνω στην οθόνη,
τότε η δέσμη κατευθύνεται στο συγκεκριμένο σημείο και μετά ενεργοποιείται ή
αντίστοιχα μετακινείται σε ενεργοποιημένη κατάσταση από το αρχικό στο τελικό σημείο
του ευθύγραμμου τμήματος. Σε αντίθεση, η επιφάνεια της πλεγματικής οθόνης
αποτελείται από ένα 2Δ πλέγμα διακριτών pixels τα οποία μπορούν να πάρουν
ανεξάρτητα κάποιο χρώμα. Το φρεσκάρισμα γίνεται ανά γραμμές σάρωσης από πάνω
προς τα κάτω.

3. Περιγράψτε τα βασικά τμήματα μιας πλεγματικής οθόνης.

Τα βασικά τμήματα μιας πλεγματικής οθόνης είναι


i. Πομπός ηλεκτρονίων
ii. Δύο ζεύγη εκτροπέων (Χ και Υ) που καθορίζουν το σημείο της οθόνης που θα καταλήξει
η δέσμη.
Καθώς ο φώσφορος διατηρεί τη λάμψη του για περιορισμένο χρονικό διάστημα, η οθόνη
θα πρέπει να φρεσκάρεται (refresh), δηλαδή να εμφανίζεται πάνω της η εικόνα, ανά τακτά
χρονικά διαστήματα ακόμα και αν αυτή δεν αλλάζει.

Αλγόριθμοι παράστασης βασικών


σχημάτων σε πλεγματικές οθόνες
Αλγόριθμοι Παράστασης Βασικών Σχημάτων
 Προσέγγιση μαθηματικών σχημάτων από διακριτά pixels:
 Ευθύγραμμο τμήμα, κύκλος, κωνικές τομές, πολύγωνο.
 S/W ή H/W.
Θέσεις αντικειμένων Θέση
και φωτεινών πηγών παρατηρητή

3Δ 3Δ 3Δ Απομάκρυνση
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα

Είσοδοι
(για κάθε καρέ)

Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Φωτισμός Επιφανειών 1
2 D ΣΣΟ
Υφή 2
(SCS)

Αλγόριθμοι σχεδίασης βασικών σχημάτων

 Οι αλγόριθμοι για σχεδίαση βασικών σχημάτων σε


πλεγματικές οθόνες πρέπει να χαρακτηρίζονται από:
 Ταχύτητα
 Ακρίβεια
 «Καλό» τελικό αποτέλεσμα
Η ευθεία
 Tα πάντα (όπως και μια ευθεία) κατασκευάζονται από εικονοστοιχεία
(pixels).
 Αρκεί κάθε φορά να «ανάψουμε» το κατάλληλο pixel, ανάλογα με το
σχήμα που θέλουμε να σχεδιάσουμε.

 Παράδειγμα:
Μια ευθεία που προσεγγίζεται με εικονοστοιχεία.

Αλγεβρική εξίσωση ευθείας


Η αλγεβρική εξίσωση της ευθείας και πως αυτή διερμηνεύεται
γραφικά: y=sx+b
s=dy/dx ( το s είναι η κλίση της ευθείας.)

dy
(0,b)
dx

x
Ευθύγραμμο Τμήμα: Αλγόριθμος DDA
 Κριτήρια καλού αλγόριθμου ευθύγραμμου τμήματος:
 Σταθερό πάχος ανεξάρτητο κλίσης, όχι κενά (συνεκτική).
 Pixels όσο το δυνατόν πλησιέστερα στη μαθηματική πορεία της.
 Ταχύτητα.
 Εστω ευθύγραμμο τμήμα μεταξύ P (x , y ) και P (x , y ) 1ου
1 1 1 n n n

οκταμορίου:
 Για κάθε σημείο P(x, y) του ευθύγραμμου τμήματος ισχύει:
yn  y1 Δy y x  yn x1
y  s  x  b με s   και b  1 n
line1(x1,y1,xn,yn,colour) xn  x1 Δx xn  x1
int x1,y1,xn,yn,colour;
/*colour η τιμή του χρώματος του ευθύγραμμου τμήματος*/
{float s,b,y; int x;
s=(yn-y1)/(xn-x1);
b=(y1*xn-yn*x1)/(xn-x1);
for (x=x1;x<=xn;x++)
{y=s*x+b;
setpixel(x,round(y),colour);}
}

Ευθύγραμμο Τμήμα: Αλγόριθμος 2 (αυξητικός)


 Πολλαπλασιασμός μέσα στο βρόχο μπορεί να
αποφευχθεί, αφού σε κάθε επανάληψη η τιμή του x
αυξάνει κατά 1 δηλαδή
 Αντικαθίσταται από πρόσθεση αφού ισχύει:
xi 1  xi  1
yi 1  sxi 1  b  sxi  b  s  yi  s

line2 (x1,y1,xn,yn,colour)
int x1,y1,xn,yn,colour;
{float s,y; int x;
s=(yn-y1)/(xn-x1);
y=y1;
for (x=x1;x<=xn;x++)
{setpixel(x,round(y),colour);
y=y+s;
}
}
Η ευθεία

 Αυξάνουμε το x ή το y, όποιο αλλάζει


γρηγορότερα.
 Υπολογίζουμε την κοντινότερη ακέραια τιμή
που αντιστοιχεί στο άλλο.
 Ενεργοποιούμε το αντίστοιχο pixel.

Η ευθεία
Παράδειγμα:
Η ευθεία

 Αλγόριθμος διαφορών (DDA, Digital


Differential Analyzer)
 Ο αλγόριθμος αντικαθιστά τις πράξεις του
πολλαπλασιασμού με πρόσθεση
 Αυξητικός αλγόριθμος

Η ευθεία - Αλγόριθμος DDA


dda(x1, y1, x2, y2, colour)
int x1, x2, y1, y2, colour;
{ double s, y; int x;
s= (y2-y1)/((double) (x2-x1));
y= y1;
for (x=x1; x<=x2; x++) {
setpixel(x, round(y), color);
y= y+s;
}
}
Η ευθεία - Αλγόριθμος DDA
 Αν s<1 ο DDA δουλεύει καλά.
 Αν s>1 αλλάζουμε τους ρόλους των x,y.
 Αν s>1 και αυξάνω το x μπορεί να έχω κενά
στο σχεδιασμό της ευθείας
 Λύση: Αυξάνουμε το y
 Προσαρμογή της λειτουργίας ανάλογα με
την κλίση της ευθείας.

Αύξηση του x: Αφήνει κενά


Αύξηση του y: Δεν αφήνει κενά
κατά το σχεδιασμό της ευθείας

Ο Αλγόριθμος DDA
(Digital Differential Analyser)
Ευθύγραμμο Τμήμα: Αλγόριθμος 3 (χωρίς στρόγγυλευση)
 Στρογγύλευση (y) μέσα στο βρόχο μπορεί να αποφευχθεί:
 Διαχωρισμός y σε ακέραιο (y) και δεκαδικό (error) μέρος.
 error είναι η απόσταση του pixel (xi+1, yi) από ιδεατή ευθεία:

line3 (x1,y1,xn,yn,colour)
int x1,y1,xn,yn,colour;
{float s,error; int x,y;
s=(yn-y1)/(xn-x1);
y=y1;
error=0;
for (x=x1;x<=xn;x++)
{setpixel(x,y,colour);
error=error+s;
if (error>=0.5){y++; error--}
}
}

Η ευθεία
 Λαμβάνουμε υπόψη την απόσταση λάθους από το κέντρο του
pixel.

π.χ. Το πάνω pixel απέχει π.χ. Το κάτω pixel απέχει


μεγαλύτερη απόσταση από μεγαλύτερη απόσταση από
την ευθεία συγκριτικά με το την ευθεία συγκριτικά με το
κάτω. πάνω.
Η ευθεία
 Ο αλγόριθμος του Bresenham (1965) χρησιμοποιεί
ακέραια αριθμητική μόνο.
 Στηρίζεται στην εξής βασική ιδέα: Επιλέγουμε το
κοντινότερο pixel κάθε φορά.

Ευθύγραμμο Τμήμα: Αλγόριθμος 4 (Bresenham)


 Αντικατάσταση πραγματικών μεταβλητών από ακέραιες με
κατάλληλη κλιμάκωση s, error & συνθήκης επιλογής:
 πολλαπλασιάζουμε με dx = xn-x1, Οπότε το s και error γίνονται
ακέραιοι και s  dy, .
 Επιλογή επόμενου pixel: error  dx/2  error  dx/2  error  0 &
αρχική αφαίρεση dx/2 από error ( /2 με ολίσθηση).
line4 (x1,y1,xn,yn,colour)
int x1,y1,xn,yn,colour;
{int error,x,y,dx,dy;
dx=xn-x1; dy=yn-y1;
error=-dx/2; y=y1;
for (x=x1; x<=xn; x++)
{setpixel(x,y,colour);
error=error+dy;
if (error>=0){y++; error=error-dx}
}
}
Ευθύγραμμο Τμήμα: Αλγόριθμος Bresenham
 O παραπάνω αλγόριθμος λειτουργεί μόνο στο 1ο
οκταμόριο (για x1<xn)(αλλά συμμετρικά):
 μεταφορά (x1, y1) ώστε να συμπέσει με αρχή αξόνων.

Y Άξονας
Οκταμόριο ταχυτ. Κίνησης Άλλος άξονας
3 2
1 x Αυξάνεται
1 2 y »
4
3 y Μειώνεται
X 4 x »
5 8
5 x Αυξάνεται
7 6 y »
6
7 y Μειώνεται
8 x »

Η ευθεία - Αλγόριθμος Bresenham


bresenham(x1, y1, x2, y2, color)
int x1, y1, x2, y2, color;
{ int error, x, y, dx, dy;
dx= x2-x1; dy= y2-y1;
error= -dx/2; y= y1;
for (x=x1; x<=x2; x++) {
setpixel(x, y, color);
error+= dy;
if (error>=0) y++, error-= dx;
}
}
Η ευθεία - Αλγόριθμος Bresenham
bresenham(x1, y1, x2, y2, color)
int x1, y1, x2, y2, color;
{ int error, x, y, dx, dy;
dx= x2-x1; dy= y2-y1;
error= -dx/2; y= y1;
for (x=x1; x<=x2; x++) {
setpixel(x, y, color);
error+= dy;
if (error>=0) y++, error-= dx;
}
}

Η ευθεία - Αλγόριθμος του μέσου


 κλίση μικρότερη από 45ο

NE

P(xp, yp) E
Η ευθεία
F(x, y)= 0 = dy x - dx y + B dx
Αρχικά d= F(x1 + 1, y1 + ½)
dy αν διαλέξουμε Ε
dnew-dold=
dy - dx αν διαλέξουμε ΝΕ

Πολλαπλασιάζουμε την F με 2 για ακέραια


αριθμητική.

Η ευθεία
final(x1, y1, x2, y2, color)
int x1, y1, x2, y2, color;
{ int d, x, y, dx, dy;
dx= x2-x1; dy= y2-y1; d= -2*dy-dx;
incrE= 2dy; incrNE= 2*(dy-dx);
for (x=x1; x<=x2; x++) {
setpixel(x, y, color);
if (d<=0) d+= incrE;
else d+= incrNE, y++;
}
}
Ο Αλγόριθμος του Bresenham για την
Ευθεία 1/2

Ο Αλγόριθμος του Bresenham για την


Ευθεία 2/2
Εφαρμογή του Αλγορίθμου 1/2

1. Καθορισμός των δύο άκρων του


ευθυγράμμου τμήματος
2. Χαρακτηρισμός του αριστερού άκρου ως
(x0,y0) και σχεδίαση του πρώτου σημείου
3. Υπολογισμός των σταθερών Δx, Δy, 2Δy
& 2Δy-2Δx καθώς και
4. της αρχικής τιμής της παραμέτρου
Ρ0=2Δy-Δx

Εφαρμογή του Αλγορίθμου 2/2

5. Για κάθε xk κατά μήκος της γραμμής,


αρχίζοντας από k=0, γίνεται ο επόμενος
έλεγχος:
 Αν Ρk<0, το επόμενο pixel που σχεδιάζεται είναι το
(xk+1, yk) & Ρk+1=Ρk+2Δy
 Αλλιώς, το επόμενο pixel είναι το (xk+1, yk+1) &
Ρk+1=Ρk+2Δy-2Δx
6. Επαναλαμβάνουμε το βήμα 5γ για Δx-1 φορές
Παράδειγμα Εφαρμογής 1/2
• Έστω ότι θέλουμε να σχεδιάσουμε το ευθύγραμμο τμήμα
με αρχή στο (20,10) & τέλος στο (30,18)
• Η κλίση της γραμμής είναι 0,8 & Δx=10, Δy=8
• Η αρχική τιμή της παραμέτρου ελέγχου είναι P0=2Δy-
Δχ=6 και τα βήματα για το υπολογισμό των διαδοχικών
παραμέτρων απόφασης είναι 2Δy=16, 2Δy-2Δx=-4

Παράδειγμα Εφαρμογής 2/2


Αρχίζοντας από το σημείο (x0,y0)=(20,10) οι ακόλουθες
θέσεις των pixels είναι:
Ο κύκλος
 Παρόμοια προβλήματα όπως με την ευθεία έχουμε και με
τους κύκλους
 Κατασκευάζουμε το πρώτο τεταρτημόριο μόνο,
τα υπόλοιπα συμμετρικά

Κύκλος
 8-πλή συμμετρία, δημιουργούμε ένα
οκταμόριο (έστω 2ο)
circle_symmetry (x,y,colour)
int x,y,colour;
{setpixel(x,y,colour);
setpixel(y,x,colour);
setpixel(y,-x,colour);
setpixel(x,-y,colour);
setpixel(-x,-y,colour);
setpixel(-y,-x,colour);
setpixel(-y,x,colour);
setpixel(-x,y,colour);
}
Ο κύκλος
Aλγόριθμος του Bresenham:

Ο κύκλος
Πως επιλέγεται το επόμενο pixel που θα ανάψει;
Ο κύκλος
Έχουμε 2 επιλογές

 To P είναι έξω από τον  Το P είναι μέσα στον


κύκλο. Άρα, επιλέγεται το κύκλο. Άρα, επιλέγεται το
κάτω pixel. πάνω pixel.

Ο κύκλος
 Ελέγχουμε αν το P(x,y) είναι
μέσα στον κύκλο: R
x2  y 2  R2

 Ελέγχουμε αν το P(x,y) είναι R


έξω από τον κύκλο: x2  y2  R2

 Ελέγχουμε αν το P(x,y) είναι x2  y2  R2


πάνω στον κύκλο:
Κύκλος: Αλγόριθμος Bresenham
 Εστω (x , y ) επελέγη ως το πλησιέστερο. Τι θα επιλεγεί στο
i i

επόμενο βήμα (x +1, y ) ή (x +1, y -1)?i i i i

 Μεταβλητή απόφασης:
e =d -d όπου
i 1 2
d1  yi2  y 2 και d 2  y 2   yi  12

Αν e  0 επιλέγεται το σημείο (x +1, y -1)


i i i

διαφορετικά » » » (x +1, y )
i i

Επειδή για x=x +1 ισχύει y =r -(x +1) έχουμε:


i
2 2
i
2

ei  yi2  r 2   xi  12   yi  12  r 2   xi  12


 2 xi  12  yi2   yi  12  2r 2
circle (r,colour)
int r,colour;
{int x,y,e;
x=0; y=r;
e=3-2*r;
while (x<=y)
{circle_symmetry(x,y,colour);
x++;
if (e>=0) {y--; e=e-4*y}
e=e+4*x+2;}
}

Κύκλος: Αλγόριθμος Bresenham


Η τιμή e υπολογίζεται επαναληπτικά ως εξής:
i+1

ei 1  2 xi 1  12  yi21   yi 1  12  2r 2


 2 xi  22  yi21   yi 1  12  2r 2
 2 xi2  8 xi  8  yi21  yi21  2 yi 1  1  2r 2
 2 xi  12  4 xi  6  2 yi21  2 yi 1  1  2r 2
 ei  yi2  yi2  2 yi  1  4 xi  6  2 yi21  2 yi 1  1

 ei  4 xi  6  2 yi21  yi2  2 yi 1  yi   
Για τον υπολογισμό του e χρησιμοποείται το εξής τέχνασμα:
i+1

Αν ei  0  yi 1  yi  ei 1  ei  4 xi  1  2
Αν ei  0  yi 1  yi  1

 ei 1  ei  4 xi  6  2  yi  12  yi2  2 yi  1  yi  
ή ei 1  ei  4 xi  1  2  4 yi  1

Θεωρώντας σαν πρώτο σημείο του 2ου οκταμορίου το σημείο (x,y)=(0,r)

e1  2  r 2  r  12  2r 2  3  2r
Κύκλος: Αλγόριθμος Bresenham

circle (r,colour)
int r,colour;
{int x,y,e;
x=0; y=r;
e=3-2*r;
while (x<=y)
{circle_symmetry(x,y,colour);
x++;
if (e>=0) {y--; e=e-4*y}
e=e+4*x+2;}
}

Στην περίπτωση που το κέντρο του κύκλου είναι διαφορετικό


από το σημείο (0,0) π.χ. Το σημείο (xc,yc) αρκεί να αντικατασταθεί η
circle_symmetry x,y,colour))
με την κλήση της circle_symmetry(x+xc,y+yc,colour))

Ο κύκλος
Αλγόριθμος ενδιάμεσου σημείου

11/12/07
Ο κύκλος
 Εξίσωση κύκλου: F(x,y) = 0 = x2 + y2 - R2
 Επιλογή E ή SE
 d= F(M)= F(xp + 1, yp - ½)
E
P(xp, yp)
M
SE

Ο κύκλος
 Δd= 2 xp + 3 αν διαλέξουμε το Ε,
(Δd=F(M1)-F(M) γιατί αν επιλέξω το Ε το επόμενο μέσο
μου θα είναι το Μ1)
 Δd= 2 xp - 2 yp + 5 αν διαλέξουμε το SE
(Δd=F(M2)-F(M) γιατί αν επιλέξω το SΕ το επόμενο μέσο
μου θα είναι το Μ2)
 Αφού κατασκευάσουμε ένα σημείο, μπορούμε να
κατασκευάσουμε και τα υπόλοιπα επτά συμμετρικά σημεία του
κύκλου.
symmetric_points(int x, int y, int color) {
setpixel(x, y, color); setpixel (y, x, color);
setpixel(x, -y, color); setpixel (-y, x, color);
setpixel(-x, y, color); setpixel (y, -x, color);
setpixel(-x, -y, color); setpixel (-y, -x, color);
}
Ο κύκλος (1η προσέγγιση)
circle(int color) {

int x, y, R; double d;
x= 0; y= R; d= 5.0/4.0-R;
symmetric_points(x, y, color);
while (y>x) {
if (d<=0) d+= 2.0*x + 3.0, x++;
else d+= 2.0*(x-y) + 5.0, x++, y--;
symmetric_points(x, y, color);
}
}
Ξεκινώ από το P(0,R) και κινούμαι μέχρι το (√R/2,√R/2) κατασκευάζοντας τον κύκλο
συμμετρικά. Το αρχικό Μ (xp+1,yp-1/2) = (1,R-1/2).
Άρα d=F(M)= 5.0/4.0-R

Ο κύκλος (ακέραια αριθμητική)


circle(int color) {
int x, y, h, R;
x= 0; y= R; h= 1-R;
symmetric_points(x, y, color);
while (y>x) {
if (h<0) h+= 2*x + 3, x++;
else h+= 2*(x-y) + 5, x++, y--;
symmetric_points(x, y, color);
}
}
Ο Αλγόριθμος του Ενδιάμεσου
Σημείου για τον Κύκλο
Συνάρτηση ελέγχου

Εφαρμογή του Αλγορίθμου

1. Καθορισμός των τιμών της ακτίνας r, του


κέντρου (xc,yc) και,
2. Kαθορισμός του αρχικού σημείου στο
(x0,y0)=(0,r) για κύκλο με κέντρο στο
(0,0),
3. Υπολογισμός της αρχικής τιμής της
παραμέτρου p0=5/4 - r
Εφαρμογή του Αλγορίθμου

4. Για κάθε θέση xk αρχίζοντας από k=0,


γίνεται ο ακόλουθος έλεγχος
 Εάν pk <0 το επόμενο pixel στο κύκλο με
κέντρο το (0,0) είναι το (xk+1,yk) & pk+1=pk+2x
k+1+1
 Αλλιώς, το επόμενο pixel είναι το (xk+1,yk-1)
& pk+1=pk+2xk+1+1-2yk+1 όπου 2xk+1=2xk+2
& 2yκ+1=2yk-2

Εφαρμογή του Αλγορίθμου

5. Καθορισμός των συμμετρικών σημείων στα


άλλα ογδοη-μόρια του κύκλου
6. Μεταφορά κάθε υπολογισμένου pixel με θέση
(x,y) στον κύκλο με κέντρο στο (xc,yc) και
σχεδιασμός των σημείων (x+xc,y+yc)
7. Επανάληψη των τριών τελευταίων βημάτων
μέχρι x>=y
Παράδειγμα Εφαρμογής 1/2

• Έστω κύκλος με ακτίνα r = 10. Εντοπίζουμε τα κατάλληλα


pixels με χρηση του αλγορίθμου μεσαίου σημείο για το
πρώτο ογδοη-μόριο του πρώτου τεταρτημόριου, από x=0
έως x=y
• Η αρχική τιμή της παραμέτρου είναι p0=1- r = -9
• Για το κύκλο με κέντρο στο (0,0) και αρχικό σημείο
(x0,y0)=(0,10) οι αρχικές τιμές για τον υπολογισμό της
παραμέτρου ελέγχου είναι 2x0=0, 2y0=20
• Εφαρμόζοντας την επαναληπτική σχέση βρίσκουμε τις
τιμές του επόμενου πίνακα

Παράδειγμα Εφαρμογής 2/2


H έλλειψη

11/12/07

Ελλειψη
 Πολλοί αλγόριθμοι για κωνικές τομές:
 Εδώ αλγόριθμος Αγάθου-Θεοχάρη-Μπεμ (1998).
 Γρήγορος, μικρή απαίτηση ακρίβειας ακεραίων, σωστή
μετάβασης περιοχής.
 Εξίσωση έλλειψης με κέντρο (0,0): x /a + y /b = 1
2 2 2 2

 Τετραπλή συμμετρία: δημιουργούμε μόνο περιοχές 1, 2


Ελλειψη
 Περιοχή 1: άξονας κύριας κίνησης ο X
 Εκκίνηση από (0, b)
 Τέλος περιοχής όταν dy/dx = -1

Ορίζουμε:
d1  yi2  y 2
d 2  y 2   yi  12

και θέτουμε:

  
d  d1  d 2  yi2  y 2  y 2   yi  12 
 Θέτουμε e = y -y οπότε: i

d ε   2ε 2  4 yi ε  1  2 yi

Ελλειψη
 Τιμή απόφασης: d(1/2) = 1/2 δηλαδή για ε = 1/2
Αν d  1/2 επιλέγουμε pixel B
διαφορετικά επιλέγουμε pixel D
 Διευκολύνουμε περαιτέρω αυξητικό υπολογισμό
παίρνοντας d = a (d1-d2) 2

d    2a 2 2  4a 2 yi  a 2  2a 2 yi (2.3)

οπότε:
Αν d  a /2 επιλέγουμε pixel B
2
(2.4)
διαφορετικά επιλέγουμε pixel D
Ελλειψη
 Αυξητικός υπολογισμός d
d1,i  a 2 d1  d 2 
(2.5)
 a 2 yi2  a 2  yi  12  2a 2 y 2
(2.5)
Ομως από την εξίσωση της έλλειψης για το σημείο
(x +1, y) έχουμε a y =a b -b (x +1)
i
2 2 2 2 2
i
2

οπότε: d1,i  2a 2b2  2b2 xi  12  a 2 yi2  a 2  yi  12 (2.6)

Στη συνέχεια ορίζουμε το d 1,i+1 ως προς το d : 1,i

d1,i 1  2a 2b2  2b 2  xi 1  1  a 2 yi21  a 2  yi 1  1


2 2

 2a 2b2  2b 2  xi  1  1  a 2 yi21  a 2  yi 1  1 xi 1  xi  1


2 2

 2a b  2b  xi  1  2b  4b  xi  1  a y  a 2  yi 1  1
2 2 2 2 2 2 2 2 2
i 1

Ελλειψη
Αλλά από την (2.6) έχουμε  2a 2b 2  2b 2  xi  12  d1,i  a 2 yi2  a 2  yi  12 ,

οπότε:
d1,i 1  d1,i  a 2 yi21  a 2  yi 1  12  a 2 yi2  a 2  yi  12  2b 2  4b 2  xi  1

Αν d >a /2 τότε y = y -1 από την (2.4), οπότε:


1,i
2
i+1 i

d1,i 1  d1,i  2b 2  4b 2  xi  1  4a 2  yi  1

Αν d a /2 τότε y = y από την (2.4), οπότε:


1,i
2
i+1 i

d1,i 1  d1,i  2b 2  4b 2  xi  1

Η αρχική τιμή d βρίσκεται αντικαθιστώντας τις


1,0

συντεταγμένες του πρώτου pixel της περιοχής 1 (0,b) για τα


(x ,y ) στην (2.6):
i i d1,0  2b 2  a 2 1  2b 
Ελλειψη (Μετάβαση από Περιοχή 1 σε Περιοχή 2)
 Μετάβαση περιοχής:
 Στηρίζεται στην τιμή του d για το σημείο (xi+1, yi -3/2)
 Αν πραγματική έλλειψη περνάει κάτω από αυτό  αλλαγή περιοχής
 θέτοντας ε = 3/2 στην (2.3)

 2   2a 2 3 2 2  4a 2 yi 3 2  a 2  2a 2 yi  4a 2  yi  1  a 2 2
d 3

Αν d4a (y -1)+a /2 τότε παραμένουμε στην περιοχή 1


2
i
2

διαφορετικά μεταβαίνουμε στην περιοχή 2.


 Παρομοίως βρίσκουμε μεταβλητή απόφαση περιοχής 2 : d 2, i

 Αρχική τιμή μεταβλητής απόφασης περιοχής 2: d λαμβάνεται 2, i

από τελική τιμή d : d = d + (d - d ) οπότε από (2.6) και


1, i 2, i 1, i 2, i 1, i

(2.7) προκύπτει:
d 2,i  d1,i  a 2 2 yi  1  b 2 2 xi  1

Ellipse (a,b,colour)
int a,b,colour;
Ελλειψη
{int a_sqr,b_sqr,a22,b22,a42,b42,x_slope,y_slope,d,mida,midb,x,y;
x=0; y=b;
a_sqr=a*a; b_sqr=b*b;
a22=a_sqr+a_sqr; b22=b_sqr+b_sqr;
a42=a22+a22; b42=b22+b22;
x_slope=b42; /*x_slope==(4*b^2)*(x+1) πάντα */
y_slope=a42*(y-1); /*y_slope==(4*a^2)*(y-1) πάντα */
mida=a_sqr>>1;
midb=b_sqr>>1;
d=b22-a_sqr-(y_slope>>1)-mida; /* αφαιρούμε a^2/2 για βελτιστοποίηση */
/* περιοχή 1 */
while (d<=y_slope)
{setpixel(x,y,colour);
if (d>0)
{d=d-y_slope;
y--;
y_slope=y_slope-a42;}
d=d+b22+x_slope;
x++;
x_slope=x_slope+b42;}
/*Αλλαγή περιοχής*/
d=d-(x_slope+y_slope)>>1+(b_sqr-a_sqr)+(mida-midb);
/* περιοχή 2 */
while (y>=0)
{setpixel (x,y,colour);
if (d<=0)
{d=d+x_slope;
x++;
x_slope=x_slope+b42;}
d=d+a22-y_slope; y--;
y_slope=y_slope-a42;}
}
Η έλλειψη Φ(x, y)
 b2x  a2y 2
 Δύο ειδών κλίσεις
 < 45o 1 45o
 > 45o

 Σε αντίθεση με τον κύκλο


έχουμε κατασκευή τεσσάρων
μόνο συμμετρικών σημείων
4_symmetric_points(int x, int y, int color) {
setpixel(x, y, color);
setpixel(x, -y, color);
setpixel(-x, y, color);
setpixel(-x, -y, color);
}

Έλλειψη
Απλός υπολογισμός

11/12/07
Η έλλειψη
 Κλίση > 45ο
 Εξίσωση έλλειψης: F(x,y) = 0 = b2 x2 + a2 y2 - a2 b2
 Επιλογή E ή SE - Μέσο Μ
 d= F(M)= F(xp + 1, yp - ½)
 Νέα μέσα ΜE και MSE

E
P(xp, yp)
M ME
SE

MSE

Η έλλειψη
 Κλίση < 45ο
 Εξίσωση έλλειψης: F(x,y) = 0 = b2 x2 + a2 y2 - a2 b2
 Επιλογή S ή SE - Μέσο Μ
 d= F(M)= F(xp + ½, yp - 1)
 Νέα μέσα ΜS και MSE

P(xp, yp)

S SE
M
MSE
MS
Η έλλειψη (απλός)
ellipse(int color) {
int x, y, a, b;
double d1, d2;
x=0; y=b;
d1= b^2- a^2*b + 0.25*a^2;
4_symmetric_points(x, y, color);
while (a^2*(y-0.5)> b^2*(x+1)) {
if (d1<0) d1+= b^2*(2*x+3), x++;
else d1+= b^2*(2*x+3) + a^2*(-2*y+2), x++; y--;
4_symmetric_points(x, y, color);
}
}

Η έλλειψη (απλός-συνέχεια)
d2= b^2*(x+0.5)^2- a^2*(y-1)^2- a^2*b^2;
while (y>0) {
if (d2<0) d2+= b^2*(2*x+2)+a^2*(-2*y+3), x++, y--;
else d2+= a^2*(-2*y+3), y--;
4_symmetric_points(x, y, color);
}
}
Παρόμοιες μετατροπές για ακέραια αριθμητική
Ερωτήσεις & Απαντήσεις
 Περιγράψτε τα κύρια χαρακτηριστικά που πρέπει να έχει ένας
αλγόριθμος σχεδίασης ευθειών.

Ένας αλγόριθμος σχεδίασης ευθειών πρέπει να χαρακτηρίζεται από:


i. Ακρίβεια: στόχος είναι η επιλογή pixels που να βρίσκονται όσο γίνεται πιο κοντά
στη μαθηματική πορεία της ευθείας.
ii. Ταχύτητα: η σχεδίαση πρέπει να γίνεται όσο το δυνατό ταχύτερα
iii. Καλό τελικό αποτέλεσμα: Τα pixels που επιλέγονται πρέπει να σχηματίζουν μια
ευθεία το πάχος της οποίας να είναι όσο το δυνατό σταθερό και ανεξάρτητο από το
μήκος και την κλίση της. Tο ελάχιστο σταθερό πάχος μιας ευθείας στην οθόνη
είναι 1 pixel και επιτυγχάνεται όταν η ευθεία που σχεδιάζεται είναι παράλληλη
προς κάποιον άξονα ή έχει κλίση 45ο.

 Ο αλγόριθμος DDA αποτελεί έναν αυξητικό αλγόριθμο; Δικαιολογήστε


την απάντηση σας.

Ο αλγόριθμος DDA ανήκει στην κατηγορία των αυξητικών αλγορίθμων καθώς ο


υπολογισμός του pixel στο βήμα i προκύπτει με βάση το pixel που υπολογίστηκε
στο βήμα i-1.

Ερωτήσεις
 Ποιο το κύριο χαρακτηριστικό του αλγορίθμου DDA για τη σχεδίαση
ευθειών;

Το χαρακτηριστικό του αλγορίθμου DDA είναι ότι προσαρμόζει τη λειτουργία του


ανάλογα με την κλίση της ευθείας. Έτσι, αν η κλίση είναι μικρότερη από 1,
αυξάνουμε το x κατά 1 κάθε φορά και υπολογίζουμε το αντίστοιχο y . Αν όμως η
κλίση είναι μεγαλύτερη από 1, μπορεί να χρειαστεί να αλλάξουμε τους ρόλους των
x και y , ούτως ώστε να αποφύγουμε τη δημιουργία κενών κατά το σχεδιασμό της
ευθείας.

 Ποια τα επιπλέον χαρακτηριστικά του αλγορίθμου Bresenham σε σχέση


με τον DDA;

Ο αλγόριθμος του Bresenham χρησιμοποιεί ακέραια αριθμητική μόνο. Επιπλέον,


λαμβάνει υπόψη την απόσταση λάθους από το κέντρο του pixel, στηριζόμενος
στην εξής βασική ιδέα: κάθε φορά επιλέγεται το κοντινότερο pixel, δηλαδή αυτό
που απέχει μικρότερη απόσταση από την ευθεία.
Ερωτήσεις
 Στους αλγορίθμους σχεδίασης κύκλων, ποιο είναι το κριτήριο για την επιλογή του
επόμενου pixel;

Ελέγχουμε αν το σημείο που χαρακτηρίζει το τρέχον pixel (συνήθως η κάτω δεξιά γωνία του)
βρίσκεται εντός ή εκτός του κύκλου. Έτσι, αν P(x,y) το τρέχον pixel ελέγχουμε:
2 2 2
i. αν x +y <R , οπότε το P βρίσκεται μέσα στον κύκλο και άρα θα πρέπει να
επιλέξουμε το πάνω pixel.
2 2 2
ii. αν x +y >R , οπότε το P βρίσκεται έξω από τον κύκλο και άρα θα πρέπει να
επιλέξουμε το κάτω pixel.

 Αν ένα σημείο ανήκει στον κύκλο, θα ανήκουν και τα επτά συμμετρικά του σημεία;
2 2 2
Από την εξίσωση του κύκλου x +y =R(1) προκύπτει πως αν το σημείο (x,y) ανήκει στον
κύκλο, τότε θα ανήκουν και τα επτά συμμετρικά του. Και αυτό γιατί αφού το (x,y) ανήκει
στον κύκλο, θα επαληθεύει την εξίσωση (1). Την εξίσωση (1) όμως θα την επαληθεύουν και
τα επτά συμμετρικά του σημεία, καθώς για καθένα από αυτά, υψώνουμε τις συντεταγμένες του
στο τετράγωνο, οπότε παίρνουμε το ίδιο αποτέλεσμα. Έτσι, θα ανήκουν στον κύκλο και τα
επτά συμμετρικά του αρχικού σημείου.

Ερωτήσεις
 Στον αλγόριθμο του Bresenham για την κατασκευή ενός κύκλου, η
σχεδίαση του σε ένα μόνο οκταμόριο είναι αρκετή για την κατασκευή
ολόκληρου του κύκλου; Αν ναι, γιατί;

Για κάθε pixel του κύκλου που ανάβουμε στο οκταμόριο, ανάβουμε παράλληλα
και τα επτά συμμετρικά του, καθώς θα ανήκουν και αυτά στον κύκλο, λόγω της
συμμετρίας του κύκλου. Έτσι, έχοντας ανάψει όλα τα pixels του κύκλου σε αυτό
το οκταμόριο, έχουμε ανάψει τελικά όλα τα pixels του κύκλου, που είναι και το
ζητούμενο του αλγορίθμου.

 Ποιο χαρακτηριστικό της έλλειψης πρέπει να ληφθεί υπ’ όψη κατά το


σχεδιασμό της με βάση τον αλγόριθμο του Bresenham;

Θα πρέπει να λάβουμε υπ’ όψη ότι η έλλειψη έχει δύο κλίσεις. Όσο ισχύει πως
b2x  a2y, η γωνία είναι μεγαλύτερη από 45ο διαφορετικά είναι μικρότερη από
45ο.
Ερωτήσεις
 Αν ένα σημείο ανήκει στην έλλειψη, ποια θα είναι τα συμμετρικά του
σημεία που θα ανήκουν και αυτά στην έλλειψη;

Από την εξίσωση της έλλειψης, x2 /a2+y2 /b2 =1 συμπεραίνουμε πως αν ένα
σημείο (x,y) την επαληθεύει, τότε θα την επαληθεύουν και τα σημεία (-x,y), (x,-y)
και (-x,-y). Όμως αν το (x,y) ανήκει στην έλλειψη, δεν ξέρουμε αν και το (y,x) θα
2 2 2 2
ανήκει καθώς x2 / a2 +y2 / b2 όχι κατ’ ανάγκη ίσο με y /a +x /b .

 Στον αλγόριθμο του Bresenham για την κατασκευή μιας έλλειψης, η


σχεδίαση της σε ένα μόνο οκταμόριο είναι αρκετή για την κατασκευή
ολόκληρης της έλλειψης; Αν ναι, γιατί;

Η σχεδίαση σε ένα μόνο οκταμόριο δεν είναι αρκετή. Απαιτείται σχεδίαση σε ένα
τεταρτημόριο. Και αυτό γιατί θα πρέπει να ληφθούν υπ’ όψη και οι δύο κλίσεις της
έλλειψης. Σε καθένα από τα δύο οκταμόρια, ανάβοντας ένα pixel, ανάβουν και τα 3
συμμετρικά του. Έτσι, μόνο όταν έχουμε ολοκληρώσει το σχεδιασμό και στα δύο
οκταμόρια, θα έχουμε ολοκληρώσει το σχεδιασμό ολόκληρης της έλλειψης.

Μετασχηματισμοί 2Δ
Μετασχηματισμοί Μοντελοποίησης
(modeling transformations)
 Καθορισμός μετασχηματισμών των
αντικειμένων
 Τα αντικείμενα περιγράφονται στο δικό τους
σύστημα συντεταγμένων
 Επιτρέπει την χρήση του ορισμού ενός
αντικειμένου πολλές φορές σε μια σκηνή

Συνοπτικά

 2D Μετασχηματισμοί
 Βασικοί 2D μετασχηματισμοί
 Αναπαράσταση Πινάκων
 Σύνθεση πινάκων
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου
Αλλαγή Κλίμακας
y

Αλλαγή Κλίμακας
Περιστροφή
Μετατόπιση

Γενικές Συντεταγμένες

2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου

Ας το δούμε
Σε
λεπτομέρεια

Γενικές Συντεταγμένες
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου

Αρχική θέση σε
at (0, 0) με βάση
Τους x- και y-
άξονες

2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου

Κλίμακα .3, .3
Rotate -90
Translate 5, 3
2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου

Κλίμακα .3, .3
Περιστροφή -90
Translate 5, 3

2D Μετασχηματισμοί Μοντέλων
Συντεταγμένες
Μοντέλου

Κλίμακα .3, .3
Περιστροφή -90
Μετατόπιση 5, 3

Γενικές Συντεταγμένες
Αλλαγή Κλίμακας (Κλιμάκωση)
 Αλλαγή Κλίμακας μιας συντεταγμένης σημαίνει
πολλαπλασιασμό κάθε στοιχείου της με τον ίδιο
αριθμό
 Ομοιόμορφη Αλλαγή Κλίμακας σημαίνει ότι η αλλαγή
κλίμακας είναι ίδια για όλα τα στοιχεία της

2

Αλλαγή Κλίμακας (Κλιμάκωση)

 Μη ομοιόμορφη αλλαγή κλίμακας: Διαφορετικές


κλίμακες για κάθε στοιχείο:

X  2,
Y  0.5

 Πώς θα μπορούσαμε να το παρουσίασουμε σε


μορφή πίνακα?
Αλλαγή Κλίμακας (Κλιμάκωση)

Κλιμάκωση :
 x '  ax 

 y '  by 
   

Σε μορφή πίνακα:
 x '   a 0  x 

 y '  0 b   y 
    
Πίνακας κλίμακας

2-D Περιστροφή

(x’, y’)

(x, y)

x’ = x cos() - y sin()
 y’ = x sin() + y cos()
2-D Περιστροφή

x = r cos ()
y = r sin ()
x’ = r cos ( + )
(x’, y’) y’ = r sin ( + )

Τριγωνομετρικές συναρτήσεις…

(x, y) x’ = r cos() cos() – r sin() sin()


y’ = r sin() sin() + r cos() cos()

Αντικατάσταση…


x’ = x cos() - y sin()
 y’ = y sin() + x cos()

2-D Περιστροφή

 Περιγράφεται σε μορφή πίνακα:

 x' cos   sin    x 


 y '   sin   cos    y 
    
 Παρόλο που sin() και cos() είναι μη
γραμμικές συναρτήσεις της ,
 x’ είναι γραμμικός συνδυασμός των x και y
 y’ είναι γραμμικός συνδυασμός των x και y
Βασικοί 2D Μετασχηματισμοί

 Μετατόπιση:
 x’ = x + tx
 y’ = y + ty
 Αλλαγή Κλίμακας:
 x’ = x * sx
 y’ = y * sy
 Στρέβλωση:
 x’ = x + hx*y
 y’ = y + hy*x Οι μετασχηματισμοί
 Περιστροφή: Μπορούν να συνδυάζονται
 x’ = x*cos - y*sin (με απλή άλγεβρα)
 y’ = x*sin + y*cos

Βασικοί 2D Μετασχηματισμοί

 Μετατόπιση:
 x’ = x + tx
 y’ = y + ty
 Κλιμάκωση :
 x’ = x * sx
 y’ = y * sy
 Στρέβλωση :
 x’ = x + hx*y
 y’ = y + hy*x
 Περιστροφή:
 x’ = x*cos - y*sin
 y’ = x*sin + y*cos
Βασικοί 2D Μετασχηματισμοί

 Μετατόπιση:
 x’ = x + tx
 y’ = y + ty
 Κλιμάκωση:
 x’ = x * sx (x,y)
 y’ = y * sy (x’,y’)
 Στρέβλωση :
 x’ = x + hx*y
 y’ = y + hy*x
x’ = x*sx
 Περιστροφή: y’ = y*sy
 x’ = x*cos - y*sin
 y’ = x*sin + y*cos

Βασικοί 2D Μετασχηματισμοί
 Μετατόπιση:
 x’ = x + tx
 y’ = y + ty
 Κλιμάκωση :
 x’ = x * sx
 y’ = y * sy
 Στρέβλωση :
 x’ = x + hx*y
y’ = y + hy*x
(x’,y’)

 Περιστροφή:
x’ = (x*sx)*cos - (y*sy)*sin
 x’ = x*cos - y*sin
y’ = (x*sx)*sin + (y*sy)*cos
 y’ = x*sin + y*cos
Βασικοί 2D Μετασχηματισμοί

 Μετατόπιση:
 x’ = x + tx
 y’ = y + ty
 Κλιμάκωση:
 x’ = x * sx (x’,y’)
 y’ = y * sy
 Στρέβλωση :
 x’ = x + hx*y
 y’ = y + hy*x
x’ = ((x*sx)*cos - (y*sy)*sin) + tx
 Περιστροφή: y’ = ((x*sx)*sin + (y*sy)*cos) + ty
 x’ = x*cos - y*sin
 y’ = x*sin + y*cos

Βασικοί 2D Μετασχηματισμοί

 Μετατόπιση:
 x’ = x + tx
 y’ = y + ty
 Αλλαγή Κλίμακας:
 x’ = x * sx
 y’ = y * sy
 Στρέβλωση :
 x’ = x + hx*y
 y’ = y + hy*x
x’ = ((x*sx)*cos - (y*sy)*sin) + tx
 Περιστροφήn: y’ = ((x*sx)*sin + (y*sy)*cos) + ty
 x’ = x*cos - y*sin
 y’ = x*sin + y*cos
Μετασχηματισμοί 2Δ και 3Δ
 Υπάρχουν 4 βασικοί γεωμετρικοί μετασχηματισμοί που χρησιμοποιούνται στα
γραφικά:
 μετατόπιση, αλλαγή κλίμακας (κλιμάκωση), περιστροφή, στρέβλωση.

 Χωρίζονται σε γεωμετρικούς (εδώ) και αξόνων (αντίστροφοι)

Οποιοσδήποτε μετασχηματισμός στις 2 ή 3 διαστάσεις αποτελεί σύνθεση των

παραπάνω μετασχηματισμών.
Θέσεις αντικειμένων Θέση
και φωτεινών πηγών παρατηρητή

3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα

Παράσταση
Είσοδοι Στην Οθόνη:
(για κάθε καρέ)
Σάρωση
Αντιταύτιση
Απόκρυψη
Φωτισμός Γραμμών/ Προβολή
Επιφανειών
Υφή

Γραφική σωλήνωση εξόδου

Σημεία & Διανύσματα


 E3 ο 3διάστατος Ευκλείδιος χώρος σημείων, σημείο P

 R3 ο 3διάστατος Ευκλείδιος χώρος διανυσμάτων, v διάνυσμα
 Ορισμοί:

    
3.  P , Q , R  E 3 τέτοιο ώστε P  R  u  w  (  v )  w  v  ( P  Q )  ( Q  R )  P  R

P
 •
PQ  w 
PR  u

Q •  •R
Q R v
Αρχές διανυσματικών χώρων
 Σε ένα διανυσματικό χώρο Δ (π.χ. R3) ορίζονται 2 πράξεις
 Διανυσματική πρόσθεση α + b
 

 Βαθμωτός πολλαπλασιασμός λα, λ  R

 Ιδιότητες διανυσματικής πρόσθεσης (α , b, c  Δ) :
 Αντιμεταθετικότητα :
   
α +b = b +α
     
 Προσεταιρισμός : a  ( b  c )  ( a  b )  c
     
 Ύπαρξη μηδενικού στοιχείου 0  Δ : 0  a  a  0  a
  
 Ύπαρξη αντιθέτου: a  ( a )  0
 
 Ιδιότητες βαθμωτού πολλαπλασιασμού ( a , b  Δ,  ,  , 1  R )
 Επιμερισμός βαθμωτού πολλαπλασιασμού ως προς πρόσθεση:
   
 (  b )    b
 Επιμερισμός πρόσθεσης ως προς βαθμωτό πολλαπλασιασμού :
  
(   )    
 
 Προσεταιρισμός: ( )   (  )
 
 Τέλος, 1  a  a

Διανυσματικοί Χώροι
 Παραδείγματα
 2Δ & 3Δ Ευκλείδιοι διανυσματικοί χώροι
   
π.χ. για a, b R3 , a  b  (a1, a2 , 3 )  (b1, b2 , b3 )  (a1  b1, a2  b2 , a3  b3 )
 πολυώνυμα βαθμού κ
    
 Γραμμικός συνδυασμός x1xm  Δ: y  1  x1  m  xm
x1xm  Δ:
 Γραμμική ανεξαρτησία

 υπάρχει μόνο αν η 1  x1    m  xm  0 έχει μόνη λύση την
μηδενική 1  2    m  0
  
 π.χ. τα i  (1,0,0), j  (0,1,0), k  (0,0,1) του Ε3 είναι γραμμικά
ανεξάρτητα
    
 Αν y  1  x1    m  xm x1  xm είναι γραμμικά ανεξάρτητα
τότε η έκφραση του y είναι μοναδική
Διανυσματικοί Χώροι
 Βάση: σύνολο γραμμικώς ανεξαρτήτων διανυσμάτων
 Μπορούν να να παράγουν τον R3, δηλαδή κάθε διάνυσμα του R3 μπορεί να
γραφτεί σαν γραμμικός συνδυασμός των διανυσμάτων της βάσης.
 Το πλήθος τους καλείται διάσταση του διανυσματικού χώρου. Έστω Ε3 ,R3.
 Ύπαρξη πολλαπλών βάσεων π.χ. (1,0,0), (1,1,0), (1,1,1) είναι επίσης βάση του Ε3.
      
 Αν v = xi + yj + zk όπου (i , j , k ) είναι βάση(δηλ. είναι 3 διανύσματα του R3 )
τότε (x, y, z) ονομάζονται συντεταγμένες
  
 (O , i , j , k ) ονομάζεται σύστημα συντεταγμένων όπου O σταθερή αρχή και
  
(i , j , k ) βάση. Δεξιόστροφα, αριστερόστροφα.
  
 (i , j , k ) ορίζουν άξονες συντεταγμένων.

 Μήκος διανύσματος v  ( x, y, z ) ορίζεται ως v  x 2  y 2  z 2
 Απόσταση μεταξύ P και P ορίζεται P  P  ( x  x ) 2  ( y  y ) 2  ( z  z ) 2
1 2 2 1 2 1 2 1 2 1

y
z
• Συνήθως τα i,j,k είναι τα μοναδιαία j k
διανύσματα(μέτρο 1) σε κάθε διάσταση:
i x

Εσωτερικό Γινόμενο
n
 
 v w  v  w
i 1
i i

 
 3Δ Ευκλείδιος χώρος: v  w  v x  wx  v y  w y  v z  wz
 Ιδιότητες
   
 Συμμετρική: v  w  w  v
   
 v v  0  v  0
      
 Διγραμμική: v  (u    w)  v  u  a ( v  w)

 Κανονικοποίηση: v  v . 
v  είναι μοναδιαίο.
v
 Υπολογισμός γωνίας θ μεταξύ v και w

 
   
 Ισχύει v  w  v w cos   cos  
vw
 
v w
 
1 v  w    
 Άρα   cos (   ) ή   cos 1 (v  w) αν v , w μοναδιαία, δηλαδή έχουν
vw  
μέτρο ίσο με 1, v  w  1
Εξωτερικό Γινόμενο

 Στον 3Δ Ευκλείδιο χώρο


 είναι  
 
v  w  ( v y wz  v z w y )i  ( v z w x  v x wz ) j  ( v x w y  v y w x ) k
   
 v  w είναι διάνυσμα κάθετο στο επίπεδο που ορίζουν το v και w
 Αντιμεταθετική δεν ισχύει: v  w   w  v

Συσχετισμένοι(Affine) Μετασχηματισμοί
 Συσχετισμένος (ή βαρυκεντρικός) συνδυασμός σημείων P  P  E3
n n 0 n
P a P
j 0
j j όπου  0  n  R και a
j 0
j 1

 Αποτέλεσμα είναι σημείο P  E3


 a0  an ονομάζονται συσχετισμένες συντεταγμένες του P αναφορικά με
τα P0  Pn
 Ένας συσχετισμένος συνδυασμός είναι κυρτός αν επιπλέον a  0
j
 Αποτέλεσμα P κυρτού συνδυασμού εντός της κυρτής περιβάλλουσας των Pj

 Συσχετισμένος Μετασχηματισμός  : E 3  E 3 που αφήνει συσχετισμένους


συνδυασμούς αναλλοίωτους
n
( P )   a ( P )
j 0
j j

 Ένα σημείο στον R3 είναι ένας 3x1 πίνακας:


x 
   
 P  (x, y, z) ό P  y, ό P  ά  ή  (0,0,0)  έ  P
z 
Συσχετισμένοι Μετασχηματισμοί
 Π.χ. εφαρμογή συσχετισμένου μετασχηματισμού πάνω σε
ευθύγραμμο τμήμα s απεικονίζει το μέσο του στο μέσο της
συσχετισμένης εικόνας Φ(s)
 Συσχετισμένος μετασχηματισμός με μορφή πίνακα
 ( P )  AP  t όπου αν P  E3 τότε Α είναι πίνακας 3x3

 Απόδειξη n
   n  
  a j Pj   A  a j Pj   t
 j 0   j 0 
n n 
  a j APj   a j t
j 0 j 0

n  n
  a j ( APj  t )   a j  ( Pj )
j 0 j 0

Συσχετισμένοι Μετασχηματισμοί
 Γραφικά: συσχετισμένοι μετασχηματισμοί d 
   x
 Μετατόπιση T P   IP  d όπου I μοναδιαίος 3  3 και d  d y
 
το διάνυσμα μετατόπισης
 d z 
  
Στροφή (έστω γύρω από z-άξονα κατά γωνία φ) R P  Rz , P
cos   sin  0
όπου Rz ,   sin  cos  0
 
 0 0 1
sx 0 0 
 Αλλαγή κλίμακας S P   DP όπου D   0 s y 0 
 
 0 0 s z 

 Στρέβλωση (έστω στις x και y με z σταθερή) SH P   SH x, y P


1 a b
όπου SH x, y  c 1 d 
 
0 0 1 
 Οποιοσδήποτε συσχετισμένος μετασχηματισμός μπορεί να δημιουργηθεί με
συνδυασμό των παραπάνω τεσσάρων.
Συσχετισμένοι Μετασχηματισμοί 2Δ
Μετατόπιση:P  P  d όπου P   x  P   x  d  d x , οπότε P   x   d x    x  d x ,
 ' 

 y d y   y  d y  y  dy 
'
y 
Y


dy (x+dx,y+dy)

(x,y)

X
dx
s 0
 x   x  s 0 s x
 Αλλαγή κλίμακας: P  S(s x , s y ) P όπου S(s x , s y )   x   x
, ά P     


0 sy   0 s y   y  s y  y 
 ομοιόμορφη αν s  s
x y
Y Y
Π.χ διπλασιασμός στον άξονα x και
υποδιπλασιασμός στον άξονα y
(3, 7)
• καθώς sx=2 και sy=0.5
(2, 5)
• • (4, 5)
(6, 3.5)

(4, 2.5)
• (8, 2.5)
• •
(2, 2) • •(4, 2)
(4, 1) • • (8, 1)
X X
Συσχετισμένοι Μετασχηματισμοί 2Δ
 Στροφή κατά γωνία θ ( αντίθετα από φορά δεικτών ρολογιού)
Y
P x,y 

m
P x, y 
m


X
x   m cos    mcos  cos   sin  sin   x cos   y sin 
y  m sin     mcos  sin   sin  cos   x sin   y cos 
Ισχύει x  m  cos θ και y  m  sin θ

cos  sin cos  sin x cos x  sin y


P  R()  P με R()     P  R()  P       
sin cos  sin cos  y sin x  cos y

Συσχετισμένοι Μετασχηματισμοί 2Δ
 Στρέβλωση κατά Χ άξονα με παράγοντα a P   SH  P με SH  1 a 
x x 0 1 
1   x  x  y  
δηλ. P   SH x  P          x   x  ay y  y
 0 1   y   y 
 1 0
 Στρέβλωση κατά Υ άξονα με παράγοντα b SH y   
Y b 1 
Y
Y
• (4, 12)
• (4, 10)
(2, 8) C
(2, 4) (4, 4) •
• • (10, 4) (12, 4)
A • • •

(2, 2)
•(4, 2) B (2, 6)
• • (8, 2)
(6, 2)
X
X
Αρχικό τετράγωνο
Στρέβλωση κατά μήκος του άξονα Χ X
Στρέβλωση κατά μήκος του άξονα Υ
Αναπαράσταση Πινάκων

 Αναπαράσταση 2D Μετασχηματισμού με πίνακα

a b 
c d 
 
 Πολλαπλασιαμός πίνακα με στήλη πίνακα
 εφαρμογή μετασχηματισμού στο σημείο

 x'  a b   x  x'  ax  by
 y '  c d   y  y '  cx  dy

Αναπαράσταση Πινάκων

 Μετασχηματισμοί συνδυασμένου με
πολλαπλασιασμό
 x '  a b   e f   i j   x 
 y '   c d   g h   k l   y 
      

Οι πίνακες είναι ένας εύκολος τρόπος


αναπαράστασης ακολουθίας
μετασχηματισμών!
2x2 Πίνακες

 Τι είδη μετασχηματισμού μπορεί να


αναπαραστήσει ένας πίνακας 2x2 x?
2D Μοναδιαίος?
x'  x  x '   1 0   x 
y'  y  y ' 0 1  y 

2D Κλιμάκωση γύρω από (0,0)?


x'  s x * x  x '  s x 0  x
y'  s y * y  y '   0 s y   y 
  

2x2 Πίνακες

 Τι είδη μετασχηματισμού μπορεί να


αναπαραστήσει ένας πίνακας 2x2 x?
2D Περιστροφή γύρω από (0,0)?
x'  cos  * x  sin  * y  x ' cos   sin   x 
y '  sin  * x  cos  * y  y '   sin  cos    y 
    

2D Στρέβλωση?
x '  x  shx * y  x '  1 shx   x 
y '  shy * x  y  y '   sh 1   y 
   y
2x2 Πίνακες

 Τι είδη μετασχηματισμού μπορεί να


αναπαραστήσει ένας πίνακας 2x2 ?
2D Είδωλο γύρω από τον άξονα Y ?
x'   x  x '     1 0  x 
y'  y  y '  0 1  y 

2D Είδωλο γύρω από το (0,0)?


x'   x  x'   1 0   x 
y'   y  y '  0  1  y 

2x2 Πίνακες

 Τι είδη μετασχηματισμού μπορεί να


αναπαραστήσει ένας πίνακας 2x2 ?
2D Μετατόπιση?
x'  x  t x ΟΧΙ!
y'  y  t y

Μόνο γραμμικούς 2D μετασχηματισμοί


Μπορούν να αναπαρασταθούν με έναν
πίνακα 2x2
Γραμμικοί Μετασχηματισμοί
 Γραμμικοί μετασχηματισμοί είναι συνδυασμοί από …
 Κλιμάκωση,
 Περιστροφή,  x' a b   x 
 Στρέβλωση  y '   c d   y 
 Είδωλο     
 Ιδιότητες γραμμικών μετασχηματισμών:
Ικανοποιούν:

T (s1p1  s2p2 )  s1T (p1 )  s2T (p2 )
 Σημεία αντιστοιχούν σε σημεία
 Γραμμές απεικονίζονται ως γραμμές
 Παράλληλες γραμμές παραμένουν παράλληλες
 Διατηρούνται οι αναλαγίες
 Είναι κλειστές μετά από σύνδεση

Ομογενείς Συντεταγμένες

 Πώς μπορούμε να αναπαραστήσουμε μια


μετατόπιση ως πίνακα 3x3 ?

x'  x  tx
y'  y  t y
Ομογενείς Συντεταγμένες

 Ομογενείς
συντεταγμένες  x
Αναπαραστούν  x  Ομογενείς Συντετ  
 y       y

συντεταγμένες 2
   
διαστάσεων με ένα  1 
διάνυσμα τριών
διαστάσεων
Οι ομογενείς συντεταγμένες διευκολύνουν
τις πράξεις στα γραφικά

Ομογενείς Συντεταγμένες

 Πώς αναπαριστούμε μια μετατόπιση με ένα


πίνακα 3x3 ?
x'  x  t x
y'  y  t y

 Απάντηση: Χρησιμοποιώντας την δεξιά


στήλη :
1 0 t x 
 
  0 1 t y 
0 0 1 
 
Ομογενείς Συντεταγμένες
 Προβλήματα
 Η μεταφορά δεν υλοποιείται με πολ/μό πινάκων

 Ύπαρξη σταθερού σημείου O για όλους τους μετασχηματισμούς M  O  O  M

 Ομογενείς συντεταγμένες x, y   x, y , w  με w  0


 x, y, w παριστάνει σημείο x / w, y / w  E2
 Άπειρες τριάδες για κάθε σημείο του Ε2

 Βασική παράσταση: w  1  x , y ,1

P x, y , w 
W

1•
• P  x / w, y / w, 1
Επίπεδο

w=1
X

Ομογενείς Συντεταγμένες
 Συσχετισμένοι Μετασχηματισμοί: πίνακες 3x3
1 0 d x 
 
Μεταφορά P   T d  P με T d

  0 1 d y 
 


  
T 1 d  T  d

0 0 1 
1 0 d x1  1 0 d x 2  1 0 d x1  d x 2 
   

1

 Σύνθεση: T d  T d  P  0
2  1 d y1   0 1 d y 2   P  0 1 d y1  d y 2   P
  
0 0 1  0 0 1  0 0 1 
 s x 0 0
   
Αλλαγή κλίμακας P   S s x , s y  P με S s x , s y   0 s y 0   
   
S 1 s x , s y  S 1 / s x ,1 / s y   0 0 1
 s x1  s x 2 0 0
 Σύνθεση: S s x1 , s y1  S s x 2 , s y 2  P   0 s y1  s y 2 0  P
 
 0 0 1
 Αν s  1 έχουμε σμίκρυνση και πλησίασμα στο O , παρομοίως για s
x y
Ομογενείς Συντεταγμένες
cos  sin  0
 Στροφή P   R   P με R    sin  cos 0
 
 0 0 1
 R 1    R    R T  

cos1   2   sin 1   2  0


 Σύνθεση: R1   R 2   P   sin 1   2  cos1   2  0  P  R1   2   P
 
 0 0 1

1 a 0 1 0 0
 Στρέβλωση SH x  0 1 0 SH y  b 1 0
   
0 0 1 0 0 1

Σύνθεση Μετασχηματισμών

 Π.χ. αλλαγή κλίμακας ως προς C  cx , c y ,1


 Μεταφορά κατά  c

 c  O  C 
 Αλλαγή κλίμακας κατά s x , s y

 Μεταφορά κατά c c  C  O 
 

S  T c   S sx , s y   T  c 
 

 Προσοχή: Η σειρά έχει σημασία (αντιμεταθετική δεν ισχύει γενικά)


 Ο πρώτος μετασχηματισμός που εφαρμόζεται γράφεται τελευταίος

 Σύνθεση είναι πολύ αποδοτική στα γραφικά


 Ισχύουν α) T  x1 , y1   T  x2 , y2   T  x2 , y2   T  x1 , y1   T  x1  x2 , y1  y2 
β) S s x1 , s y1  S s x 2 , s y 2   S s x 2 , s y 2  S s x1 , s y1   S s x1  s x 2 , s y1  s y 2 
γ) R1   R 2   R 2   R1   R1   2 
δ) S s x , s y  R   R   S s x , s y  μόνο εάν s x  s y
Γεωμετρικές Ιδιότητες
 συσχετισμένο μετασχηματισμό F και σημεία P, Q ισχύει
F P  1   Q   F P   1   F Q  για 0    1
 P  1   Q είναι το ευθύγραμμο τμήμα μεταξύ P και Q
 Άρα η F παράγει πάλι ένα ευθ. τμήμα
 Σχέση λ/(1-λ) παραμένει αναλοίωτη από F
 Άρα αρκεί απεικόνιση άκρων μόνο
 Ακόμα παράλληλες ευθείες παραμένουν παράλληλες
 π.χ. F  T , S , R, SH x , SH y 

 12 
Α   11  είναι ορθογώνιος αν
 21  22 
 
 1  1  2  1
 
 1   2  0
  Ορίζουσα  Α  1

Γεωμετρικές Ιδιότητες
 a11 a12 tx 
  a11 a12 
 M   a21 a22 t y  είναι μετασχηματισμός ομοιότητας αν 
 a21 a22 
 0 0 1 

είναι ορθογώνιος
 Ένας μετασχηματισμός ομοιότητας διατηρεί αναλοίωτα μήκη &
γωνίες
 π.χ. μοναδιαίο τετράγωνο ฀ μοναδιαίο τετράγωνο
 Οποιαδήποτε σύνθεση Τ & R είναι μετασχηματισμός ομοιότητας
 Αν στη σύνθεση υπάρχουν S & SH έχουμε μετασχηματισμό
συσχετισμένο αλλά όχι ομοιότητας
 Διατηρείται παραλληλία ευθειών όχι όμως μήκη & γωνίες
Μετατόπιση
Ομογενείς Συντεταγμένες
 Παράδειγμα
μετατόπισης
 x' 1 0 t x  x  x  t x 
 y'  0 1 t  y   y  t 
   y    y

 1  0 0 1 1  1 

tx = 2
ty = 1

Ομογενείς Συντεταγμένες
 Προσθέτουμε μια τρίτη συντεταγμένη σε κάθε
διδιάστατο σημείο 2D
 (x, y, w) αναπαραστά ένα σημείο στη θέση (x/w, y/w)
 (x, y, 0) αναπαραστά εάν σημείο στο άπειρο
 (0, 0, 0) δεν επιτρέπεται
y

2
(2,1,1) or (4,2,2) or (6,3,3)
1
Ένα νέο σύστημα x
συντεταγμένος κατάλληλο 1 2
να αναπαραστά πολλούς
χρήσιμους
μετασχηματισμούς
Βασικοί 2D Μετασχηματισμοί

 Βασικοί 2D μετασχηματισμοί ως 3x3 πίνακες


 x '  s x 0 0  x 
 x ' 1 0 t x   x   y '   0 sy 0  y 
 y '   0 1 t   y    
   y    1   0 0 1  1 
 1  0 0 1   1 
Μετατόπιση Κλιμάκωση

 x' cos   sin  0  x   x '  1 shx 0  x 


 y '   sin  0  y   y '   sh
   cos 
   y 1 0  y 
 1   0 0 1  1   1   0 0 1  1 
Περιστροφή Στρέβλωση

Ομογενείς μετασχηματισμοί

 Ομογενείς μετασχηματισμοί είναι συνδυασμοί …


 Γραμμικών μετασχηματισμών  x'  a b c  x 
 Μετατοπίσεων  y '  d e f  y 
 w  0 0 1   w
  
 Ιδιότητες των ομογενών μετασχηματισμών:
 Η αρχή των συντεταγμένων δεν παραμένει η ίδια
 Γραμμές αντιστοιχούν σε γραμμές
 Παράλληλες γραμμές παραμένουν παράλληλες
 Οι αναλογίες διατηρούνται
Συνοπτικά

 2D Μετασχηματισμοί
 Βασικοί 2D μετασχηματισμοί
 Αναπαράσταση Πινάκων
 Σύνθεση πινάκων
 3D Μετασχηματισμοί
 Βασικοί 3D μετασχηματισμοί
 Αντίστοιχοι με τους 2D

Σύνθεση Πινάκων

 Οι μετασχηματισμοί συνδυάζονται από


πολλαπλασιασμό πινάκων

 x'   1 0 tx  cos   sin  0  sx 0 0   x 


 y '    0 1 ty   sin  cos  0  0 sy 0   y 
 w'  0 0 1   0 0 1 
 0 0 1    
       w
p’ = T(tx,ty) R() S(sx,sy) p
Σύνθεση Πινάκων

 Οι πίνακες είναι κατάλληλοι να


αναπαραστήσουν μια ακολουθία
μετασχηματισμών
 Γενική Αναπαράσταση
 Το Hardware μπορεί να υλοποιήσει
πολλαπλασιασμό πινάκων
p’ = (T * (R * (S*p) ) )
p’ = (T*R*S) * p

Σύνθεση Πινάκων

 Έχει σημασία η σειρά των μετασχηματισμών


 Ο πολλαπλασιασμός πινάκων δεν είναι αντιμεταθετικός

p’ = T * R * S * p

“Global” “Local”
Σύνθεση Πινάκων

 Εάν θέλουμε να περιστρέψουμε και να


μετατοπίσουμε?
 Να περιστρέψετε ένα τμήμα κατά 45 σε σχέση με
το τέλος του

a a

Σειρά πολλαπλασιασμού: Λαθος

 Το τμήμα ορίζεται από 2 σημεία


 Εφαρμογή περιστροφής για 45 μοίρες, R(45), επηρεάζει
και τα δύο σημεία

a
a a

Λάθος Σωστό
R(45) T(-3) R(45) T(3)
Σειρά Πολλαπλασιασμού - Σωστό

 Απομόνωση άκρων από την a


επίδραση της περιστροφής

 Μετατόπιση στην Αρχή των αξόνων: T a


(-3)

 Περιστροφή κατά 45 μοίρες: R(45) a

 Μετατόπιση πίσω όπου βρισκόταν:


T(3) a

Σύνθεση Πινάκων

Αυτή η ακολουθία είναι κατάλληλη?


1 0  3cos(45)  sin(45) 01 0 3ax  a'x 
0 1 0 sin(45) cos(45) 00 1 0a   a' 
    y   y 
0 0 1  0 0 10 0 1 1   1 
Σύνθεση Πινάκων

Αυτή είναι η σωστή!!


1 0 3 cos(45)  sin(45) 0 1 0  3  a x   a ' x 
0 1 0  sin(45) cos(45) 0 0 1 0  a   a ' 
    y   y 
0 0 1  0 0 1 0 0 1   1   1 

Κατηγοριοποίηση Μετασχηματισμών
Ασκήσεις
1. Εξηγήστε πως μπορούμε να μετατρέψουμε τις τυπικές καρτεσιανές
συντεταγμένες (x,y,z) σε ομογενείς και το αντίστροφο.
i. Μετατροπή από καρτεσιανές συντεταγμένες σε ομογενείς:
( x , y, z)  ( x, y, z,1) ή ( x , y, z )  ( xw , yw , zw , w )
ii. Μετατροπή από ομογενείς συντεταγμένες σε καρτεσιανές:
( x , y , z , w )  ( x w , y w , z w ,1 )

Ασκήσεις
2. Δείξτε πως μπορούμε να υλοποιήσουμε μία 2Δ περιστροφή γύρω από ένα
αυθαίρετο σημείο. Περιγράψτε και έναν πίνακα στις ομογενείς
συντεταγμένες για κάθε βήμα της παραπάνω διαδικασίας.
Περιστροφή κατά γωνία φ γύρω από το σημείο p=(x,y).

i. Μεταφορά του p στην αρχή των αξόνων. Βασικός πίνακας μετασχηματισμού:


1 0 x 
0 1 y 
 
0 0 1 

ii. Περιστροφή κατά γωνία φ γύρω από την αρχή των αξόνων: Βασικός πίνακας
μετασχηματισμού: cos  sin  0
 sin  cos 0
 
 0 0 1
iii. Μεταφορά του p στην αρχική του θέση: Βασικός πίνακας μετασχηματισμού:
1 0  x
0 1  y
 
0 0 1 
Ασκήσεις
3. Υπολογισμός του πίνακα μετασχηματισμού του συμμετρικού ενός σημείου
ως προς έναν άξονα W που σχηματίζει γωνία θ με τον άξονα Χ.

Υ A(x,y)

W

θ
X
Οι βασικοί μετασχηματισμοί είναι γνωστοί μόνο ως προς συγκεκριμένο σταθερό σημείο Ο.
Οποιοσδήποτε μετασχηματισμός μπορεί να προκύψει ως σύνθεση των τεσσάρων βασικών μετασχηματισμών.
Διαδοχικά βήματα:

 Στροφή της εικόνας κατά –θ γωνία, ώστε ο άξονας W να ευθυγραμμιστεί με τον X.


 Εύρεση του συμμετρικού του Α ως προς τον άξονα Χ ( S(1,-1) γιατί στο scaling με
και s y   1 έχουμε x '  s x  x  1  x  x και y'  s y  y  1 y   y ) sx  1
 Στροφή της εικόνας κατά γωνία +θ ώστε να επιστρέψει ο W στην αρχική του θέση και να
υπολογίσουμε έτσι το συμμετρικό του Α ως προς τον W.

Ασκήσεις

 Βήμα1: στροφή κατά γωνία -θ


 x '  x  cos()  sin( ) 0  x 
A'  R ()  A   y'  R ()   y    sin( ) cos() 0   y 
1  1   0 0 1 1  A(x,y) Το αρχικό σημείο
Υ • Α'(x',y') Το σημείο μετά την
Βήμα 2: Συμμετρικό ως προς τον X


περιστροφή κατά -θ
 x ' '  x ' 1 0 0  x ' W
A' '  S(1,1)  A '   y' '  S(1,1)   y'  0  1 0   y'

1  1  0 0 1 1 
 Βήμα: Στροφή κατά γωνία θ
θ
 x ' ' '  x ' ' cos   sin  0  x ' ' X
A' ' '  R ()  A' '   y' ' '  R ()   y' '   sin  cos  0   y' ' θ
• Α‘''(x''',y''')
1  1   0 0 1 1  το τελικό
σημείο
• Α'' (x'',y'')
 Τελικά: το συμμετρικό του
A ' ' '  ( R ( )  S(1 .  1)  R (  ))  A  ί   ύ A' ως προς τον Χ
 cos 2  sin 2  0
  R ( )  S(1 .  1)  R (  )   sin 2   cos 2  0 
 0 0 1 
Ασκήσεις
4. Υπολογισμός του πίνακα μετασχηματισμού που περιστρέφει ένα δοσμένο σημείο
Q(x,y) κατά γωνία θ ως προς ένα δοσμένο κέντρο περιστροφής P(h,k).

Υ
Q’’'(x’’',y’’')
• • Q(x,y)

Q’’(x’’,y’’)
• •Q’(x’,y’)
• P(h,k)
θ V

Χ
O(0,0)
Διαδοχικά βήματα:
 Μεταφορά του κέντρου περιστροφής P στην αρχή των αξόνων Ο. Η μεταφορά θα γίνει κατά ένα
διάνυσμα V  (h,k). Βασικός μετασχηματισμός T ( v )
 Περιστροφή κατά γωνία θ ως προς την αρχή των αξόνων, εφαρμόζοντας το μετασχηματισμό R(θ)
 Μεταφορά του P στην αρχική του θέση. Η μεταφορά θα γίνει κατά ένα διάνυσμα  v  ( h , k )
Βασικός μετασχηματισμός T(v)
Άρα, Q ' ' ' (x ' ' ', y' ' ' )   T (  v )  R (  )  T ( v )  Q ( x , y )  R (  , P )  Q ( x , y )

Ασκήσεις
5. Εκτελέστε περιστροφή κατά 45o του τριγώνου A(0,0), B(1,1), C(5,2)
α)ως προς την αρχή των αξόνων και β)ως προς το σημείο P(-1,-1).

A BC
α) To τρίγωνο ABC περιγράφεται υπό μορφή πίνακα ως εξής: ΑΒC= 0 1 5
0 1 2 
 
1 1 1
Αρκεί μια απλή περιστροφή κατά 45 o , άρα

cos45o  sin 45o 0 0 1 5


 
ABC  R(45o )  ABC sin 45o cos45o 0  0 1 2
 0 0 1 1 1 1

β)Η περιστροφή δεν γίνεται ως προς το Ο(0,0) αλλά ως προς το P(-1,-1). Άρα, κάνουμε εφαρμογή
του προηγούμενου παραδείγματος 2 στον τύπο R(θ,P) για θ=45 o και P(-1,-11).
Ασκήσεις
5. Εκτελέστε περιστροφή κατά 45o του τριγώνου A(0,0), B(1,1), C(5,2)
α) ως προς την αρχή των αξόνων και β) ως προς το σημείο P(-1,-1).

β) Η περιστροφή δεν γίνεται ως προς το Ο(0,0) αλλά ως προς το P(-1,-1).


Άρα, κάνουμε εφαρμογή
 Μεταφορά του κέντρου περιστροφής P στην αρχή των αξόνων Ο. Η μεταφορά θα γίνει κατά ένα
διάνυσμα V  (h,k) .
 Περιστροφή κατά γωνία θ=45 ως προς την αρχή των αξόνων, εφαρμόζοντας το
μετασχηματισμό R(θ)=R (45)
 Μεταφορά του P στην αρχική του θέση.

1 0  1 cos45  sin45 0 1 0 1 0 1 5
o o

 
ABC  T (v )  R(45o )  T (v )  ABC  0 1  1  sin45o cos45o 0  0 1 1  0 1 2
 
     
0 0 1   0 0 1 0 0 1 1 1 1

6.
Ασκήσεις
Υπολογισμός του μετασχηματισμού που κάνει scaling(αλλαγή κλίμακας) ενός
αντικειμένου ως προς ένα δοσμένο σημείο P(h,k). Το scaling θα πρέπει να
γίνεται κατά a μονάδες στον άξονα Χ και κατά b στον άξονα Υ.

Υ
Διαδοχικά βήματα:
 Βήμα 1:Μεταφορά του P στην αρχή των αξόνων, κατά ένα
διάνυσμα  v  (  h ,  k )
θ
Βασικός πίνακας μετασχηματισμού T( v)

Βήμα 2:Εκτελούμε scaling ως προς την αρχή των αξόνων με .P(h,k)


V

sx  a και s y  b. Βασικός πίνακας μετασχηματισμού S(a,b)
Χ
O(0,0)
 Βήμα 3:Επαναφορά του P στην αρχική θέση. Βασικός
πίνακας μετασχηματισμού T ( v)
Άρα ο ζητούμενος μετασχηματισμός είναι η σύνθεση των τριών αυτών μετασχηματισμών,
δηλαδή ο τελικός πίνακας μετασχηματισμού είναι ο
1 0 h a 0 0 1 0  h
S(a, b, P)  T(v) S(a, b)  T(v)  0 1 k  0 b 0  0 1  k
0 0 1 0 0 1 0 0 1 
Ασκήσεις
7. Να διπλασιαστεί το μήκος των πλευρών ενός τριγώνου με κορυφές Α(0,0),
Β(1,1) και C(5,2), διατηρώντας σταθερή την κορυφή C(5,2).
Υ Θα πρέπει να μεταφέρουμε στην αρχή των αξόνων το
σημείο ως προς το οποίο κάνουμε το scaling
δηλαδή το σημείο C(5,2) αφού αυτό θα πρέπει
να διατηρείται σταθερό.
C
Στην συνέχεια εφαρμόζουμε scaling κατά a=2
2
Β στον άξονα Χ και b=2 στον άξονα Υ, αφού
1
Α Χ
θέλουμε να διπλασιάσουμε το μήκος των
1 5 πλευρών του τριγώνου.
Αρχικό τρίγωνο Και στο τέλος επιστρέφουμε το σημείο ως προς
το οποίο κάναμε scaling στην αρχική του θέση.

1 0 5 2 0 0 1 0  5
S(a, b, P)  T(v)  S(a, b)  T(v)  0 1 2  0 2 0  0 1  2
   
0 0 1 0 0 1 0 0 1 

Ασκήσεις
7. Να διπλασιαστεί το μήκος των πλευρών ενός τριγώνου με κορυφές Α(0,0),
Β(1,1) και C(5,2), διατηρώντας σταθερή την κορυφή C(5,2).
Υ
Υ

C
C 2
2
Β -5
1 Β’
Χ
Α Χ 5
1 5

Αρχικό τρίγωνο Α’

Τελικό τρίγωνο

1 0 5 2 0 0 1 0 50 1 5 5 3 5
 
 
    S(2,2,C)  T(v)  S(2,2) T(v) ABC  0 1 2  0 2 0  0 1 20 1 2  2 0 2
ABC       
0 0 1 0 0 1 0 0 1 
1 1 1  1 1 1
Ασκήσεις
8. Να περιγραφεί ο μετασχηματισμός που βρίσκει το συμμετρικό ενός αντικειμένου
ως προς μια ευθεία L, που τέμνει τον άξονα Υ στο (0,b) και σχηματίζει γωνία θ με
τον Χ. Υ

Υ
P’

P
(0,b)

θ
v
Χ

Ο τελικός μετασχηματισμός θα προκύψει ως σύνθεση βασικών μετασχηματισμών:


 Βήμα 1:Μεταφέρουμε το σημείο (0,b) στην αρχή των αξόνων (μεταφορά κατά το
διάνυσμα  v  (0,b) ).
Βασικός πίνακας μετασχηματισμού T (  v )

Ασκήσεις

 Βήμα 2:Στροφή της ευθείας L κατά γωνία –θ για να ευθυγραμμιστεί με τον Χ. Βασικός
πίνακας μετασχηματισμού R(-θ).
 Βήμα 3: Υπολογισμός του συμμετρικού του σημείου P ως προς τον άξονα Χ. Β.
Βασικός πίνακας μετασχηματισμού S(1,-1).
 Βήμα 4:Στροφή της ευθείας L κατά γωνία θ. Βασικός πίνακας μετασχηματισμού R(θ).

 Βήμα 5: Επαναφορά του (0,b) στην αρχική του θέση. Βασικός πίνακας

μετασχηματισμού T ( v )

Άρα, ο τελικός μετασχηματισμός θα είναι:

P'   T(v)  R()  S(1,1)  R()  T(v)  P  ML  P


Ασκήσεις
9. Βρείτε το συμμετρικό του πολυγώνου Π με κορυφές Α(-1,0), Β(0,-2),C(1,0) και
D(0,2)ως προς
a)Την οριζόντια ευθεία y=2
b)Την κατακόρυφη ευθεία x=2
c)Την ευθεία y=x+2  1 0 1 0
a) Το πολύγωνο παριστάνεται σε μορφή πίνακα ως: Π=  0  2 0 2
 
 1 1 1 1 

Θέλουμε να βρούμε το συμμετρικό ως προς την ευθεία, y=2 η οποία έχει σημείο τομής με
τον άξονα Υ το (0,2) και είναι παράλληλη ως προς τον άξονα x.
Υ

L
(0,2)
'   T (v)  S(1,1)  T (v)  
Χ

 
ABCD  T(v)  S(1,1)  T(v) ABCD 

1 0 0 1 0 0 1 0 0  1 0 1 0 1 0 0 1 0 1 0 1 0 1 0


 0 1 2  0 1 0  0 1 2   0 2 0 2  0 1 4   0 2 0 2   4 6 4 2
0 0 1 0 0 1 0 0 1   1 1 1 1 0 0 1  1 1 1 1  1 1 1 1

Ασκήσεις
b)Η x=2 είναι ευθεία παράλληλη με τον άξονα Υ, άρα δεν έχει σημείο τομής με αυτόν. Έχει
δηλαδή άπειρη κλίση. Επομένως θα πρέπει να ακολουθήσουμε τα εξής βήματα:
Υ x=2

v
(2,0) Χ

Βήμα 1:Μεταφορά κατά το διάνυσμα



 v  (2,0) ώστε η ευθεία να συμπέσει με τον άξονα Υ. Βασικός
πίνακας μετασχηματισμού T (  v )
 Βήμα 2:Υπολογισμός του συμμετρικού ως προς τον Υ. Βασικός πίνακας μετασχηματισμού S(-1,1).

 Βήμα 3:Μεταφορά κατά το διάνυσμα v  (2,0) για να επαναφέρουμε την ευθεία στην αρχική της θέση.

Βασικός πίνακας μετασχηματισμού T ( v )

Άρα, '  ML     T(v) S(1,1)  T(v)  


Ασκήσεις
b)Η x=2 είναι ευθεία παράλληλη με τον άξονα Υ, άρα δεν έχει σημείο τομής με αυτόν. Έχει
δηλαδή άπειρη κλίση. Επομένως θα πρέπει να ακολουθήσουμε τα εξής βήματα:
Υ x=2
  1 0 1 0
   0  2 0 2
 
 1 1 1 1
v
(2,0) Χ

'  ML     T(v) S(1,1)  T(v)  

1 0 2 1 0 0 1 0  2 1 0 1 0 1 0 4 1 0 1 0 5 4 3 4


 0 1 0   0 1 0  0 1 0    0  2 0 2   0 1 0   0  2 0 2  0  2 0 2
         
0 0 1  0 0 1 0 0 1   1 1 1 1  0 0 1  1 1 1 1 1 1 1 1

Ασκήσεις
Βρείτε το συμμετρικό του πολυγώνου Π με κορυφές Α(-1,0), Β(0,-2),C(1,0) και
D(0,2) ως προς y=x+2   45 
H ευθεία y=x+2 έχει κλίση 1, άρα εφθ=1, δηλαδή   45  . Το σημείο τομής με τον
άξονα Υ είναι το (0,2), δηλαδή b=2.
Υ

y=x+2

(0,2)

  45 Χ

Ο τελικός μετασχηματισμός θα προκύψει ως σύνθεση βασικών μετασχηματισμών:


 Βήμα 1:Μεταφέρουμε το σημείο (0,b)=(0,2) στην αρχή των αξόνων (μεταφορά
κατά το διάνυσμα  v  (0,b)).
Βασικός πίνακας μετασχηματισμού T ( v)
Ασκήσεις
 Βήμα 2: Στροφή της ευθείας L κατά γωνία –θ=-45 για να ευθυγραμμιστεί με τον Χ.
Βασικός πίνακας μετασχηματισμού R(-θ)= R(-45).
 Βήμα 3: Υπολογισμός του συμμετρικού του σημείου P ως προς τον άξονα Χ. Β.

Βασικός πίνακας μετασχηματισμού S(1,-1).


 Βήμα 4:Στροφή της ευθείας L κατά γωνία θ=45. Βασικός πίνακας μετασχηματισμού

R(θ)= R(45).
 Βήμα 5: Επαναφορά του (0,b)= (0,2) στην αρχική του θέση. Βασικός πίνακας

μετασχηματισμού T ( v )

Άρα, ο τελικός μετασχηματισμός θα είναι:

 '   T ( v )  R ( )  S (1,1)  R(  )  T ( v )    M L  

Ασκήσεις   1 0 1 0
   0  2 0 2
 
 1 1 1 1
P '   T (v )  R ( )  S (1,1)  R (  )  T ( v )  P  M L  P

 2  2 0  2  2 0
1 0 0  2 2  1 0 0  2 2  1 0 0  1 0 1 0
 
 0 1 2   2 2    
0  0 1 0   2 2 0  0 1  2   0  2 0 2 
  2 2   2 2   
0 0 1  0 0 1 0 0 1  0 0 1 0 0 1   1 1 1 1
   

0 1  2 1 0 1 0  2  4  2 0
 1 0 2    0  2 0 2   1 2 3 2
    
0 0 1   1 1 1 1  1 1 1 1
Συνοπτικά

 2D Μετασχηματισμοί
 Βασικοί 2D μετασχηματισμοί
 Αναπαράσταση πινάκων
 Σύνθεση Πινάκων

2Δ Μετασχηματισμός
Παρατήρησης
Μετασχηματισμοί Μοντελοποίησης
(modeling transformations)
 Καθορισμός μετασχηματισμών των
αντικειμένων
 Τα αντικείμενα περιγράφονται στο δικό τους
σύστημα συντεταγμένων
 Επιτρέπει την χρήση του ορισμού ενός
αντικειμένου πολλές φορές σε μια σκηνή

2Δ Μετασχηματισμός Παρατήρησης
 Δημιουργία εικόνας στο ΠΣΣ (WCS), απεικόνιση στο ΣΣΟ (PDC)
 Χρήστης ορίζει παράθυρο WCS και πεδίο παρατήρησης PDC
Y V
Παράθυρο πεδίο παράστασης
window viewpoint

Παγκόσμιες συντεταγμένες X Συντεταγμένες συσκευής U


 Υπολογισμός M WV από  xmin , ymin ,  xmax , ymax , umin , vmin , u max , vmax 
Βήμα1: Μετατόπιση στην αρχή των αξόνων  T  x min , ymin 
umax  umin v v
 S sx , s y με sx 
Βήμα2: Αλλαγή κλίμακας, μέγεθος πεδίου παράσταση   s y  max min
xmax  xmin ymax  ymin
 T umin , vmin 
Βήμα3: Μετατόπιση, στην θέση πεδίου παράστασης
 M WV  T umin , vmin   S sx , s y   T  xmin , ymin 
Υ
x max , y max
 Υ V V u max ,vmax 
P  x, y  P  x, y
• •
xmin , ymin  u min
,vmin 
Χ Χ U U
Παράθυρο Βήμα 3
Βήμα 1 Βήμα 2
σε παγκόσμιες
συντεταγμένες
2Δ Μετασχηματισμός Παρατήρησης
Υ
x max
, ymax 
Υ V V u max
,vmax 
P  x, y  P  x, y
• •
x
min
, ymin  u min ,vmin 
Χ Χ U U
Παράθυρο Βήμα 3
Βήμα 1 Βήμα 2
σε παγκόσμιες
συντεταγμένες
M WV  T umin , vmin   S sx , s y   T  xmin , ymin 

1 0 umin   sx 0 0 1 0  xmin 
  Αλλά :
M WV  0 1 vmin   0 sy 0 0 1  ymin 
   
0 0 1   0 0 1 0 0 1  umax  umin v v
sx  s y  max min
xmax  xmin ymax  ymin

 umax  umin umax  umin 


x  x 0 umin  xmin 
 max min xmax  xmin 
vmax  vmin vmax  vmin
M WV  0 vmin  ymin 
 ymax  ymin ymax  ymin 
 
 0 0 1 
 

2Δ Μετασχηματισμός Παρατήρησης
 umax  umin umax  umin 
x  x 0 umin  xmin 
 max min xmax  xmin 
vmax  vmin vmax  vmin
 M WV  0 vmin  ymin 
 ymax  ymin ymax  ymin 
 
 0 0 1 
 
 Αλλοιώσεις σχημάτων αν sx  s y ή aw  av
Λόγος διαστάσεων με aw 
wdx v
, av  dx όπου wdx  xmax  xmin και wdy  ymax  ymin
wdy vdy
vdx  umax  umin και vdy  vmax  vmin

 Εάν aw  av τότε s x  s y και δεν παρατηρούνται αλλοιώσεις


 Διόρθωση παραμόρφωσης με μείωση πεδίου παράστασης, με τα βήματα:
if av  aw then vdx  vdy  wdx / wdy
else if 1 / av  1 / aw then vdy  vdx  wdy / wdx
2Δ Μετασχηματισμός Παρατήρησης

 Συνδυασμός με αποκοπή

Y V

Παγκόσμιες συντεταγμένες X Συντεταγμένες συσκευής U

2Δ Μετασχηματισμός Παρατήρησης
 Πολλαπλές συσκευές εξόδου: χρήση κανονικοποιημένων συντεταγμένων
συσκευής (NDC) [0,1] x [0,1]
 WCS  NDC & NDC  {PDC1, PDC2 … } (οδηγοί συσκευών)
 NDC  PDC είναι ομοιόμορφος μετασχηματισμός
Άσκηση
Προσδιορίστε το μετασχηματισμό που απεικονίζει ένα παράθυρο με κάτω αριστερή γωνία (1, 1) και
πάνω δεξιά γωνία (3, 5) α) σε ένα κανονικοποιημένο viewport και β) σε ένα viewport με κάτω αριστερή
γωνία (0, 0) και πάνω δεξιά γωνία (1/2, 1/2 ).

 umax  umin umax  umin 


x  x 0 umin  xmin 
 max min xmax  xmin 
vmax  vmin vmax  vmin
M WV  0 vmin  ymin 
 ymax  ymin ymax  ymin 
 
 0 0 1 
 

Άσκηση 3.9

 umax  umin umax  umin 


x  x 0 umin  xmin 
 max min
xmax  xmin 
 vmax  vmin vmax  vmin
M WV  0 vmin  ymin 
 ymax  ymin ymax  ymin 
 
 0 0 1 
 
Παράδειγμα 3.10

 umax  umin umax  umin 


x  x 0 umin  xmin 
 max min
xmax  xmin  cos   sin   h cos   k sin   h 
 vmax  vmin vmax  vmin R ( , P )   sin   h cos   k cos   k 
M WV  0 vmin  ymin  
cos 

 ymax  ymin ymax  ymin 
   0 0 1 
 0 0 1 
 
Μετασχηματισμοί 3Δ

Μετασχηματισμοί Μοντελοποίησης
(modeling transformations)
 Καθορισμός μετασχηματισμών των
αντικειμένων
 Τα αντικείμενα περιγράφονται στο δικό τους
σύστημα συντεταγμένων
 Επιτρέπει την χρήση του ορισμού ενός
αντικειμένου πολλές φορές σε μια σκηνή
Συνοπτικά

 3D Μετασχηματισμοί
 Βασικοί 3D μετασχηματισμοί
 Αντίστοιχοι με τους 2D

3D Μετασχηματισμοί

 Ίδια ιδέα με τους 2D μετασχηματισμούς


 Ομογενείς συντεταγμένες: (x,y,z,w)
 4x4 Πίνακες μετασχηματισμών

 x'   a b c d  x 
 y'  e f g h  y 
 z'    i j k l  z 
 w' m p   w
 n o
Βασικοί 3D μετασχηματισμοί
 x '  s x 0 0 0  x 
 x' 1 0 0 0  x   y '  0
 y ' 0 1 0 0  y    sy 0 0  y 
 z '   0 0 1 0  z   z'   0 0 sz 0  z 
 w  0 0 0 1  w     
w   0 0 0 1  w 
Μοναδιαίος Αλλαγή κλίμακας

 x ' 1 0 0 t x  x 
 y '  0  x'  1 0 0 0  x 
  1 0 t y   y   y '  0 1 0 0  y 
 z '  0 0 1 tz  z   z '   0 0 1 0  z 
      w   0 0 0 1  w
 w  0 0 0 1  w 
Μετατόπιση Συμμετρικός ως προς Y/Z επίπεδο

Βασικοί 3D Μετασχηματισμοί
 x' cos   sin  0 0  x 
Περιστροφή γύρω από τον άξονα Z:  y '   sin  cos  0 0  y 
 z'  0 0 1 0  z 
 w   0 0 0 1  w

 x '  cos  0 sin  0  x 


Περιστροφή γύρω από τον  y '  0 1 0 0  y 
άξονα Y:
 
 z '   sin  0 cos  0  z 
    
w   0 0 0 1  w 

 x' 1 0 0 0  x 
Περιστροφή γύρω από τον  y ' 0 cos   sin  0  y 
άξονα X :  z '   0 sin  cos  0  z 
 w  0 0 0 1  w
Αντίστροφή Περιστροφή

 Q: Πώς να κάνω αναιρέσω (undo) μια περιστροφή


κατά R()?
 A: Εφαρμόζω αντίστροφη περιστροφή… R-1() =
R(-)

 Πώς δημιουργώ τον R-1() = R(-)


 Μέσα στον πίνακα περιστροφής: cos() = cos(-)
 Το Συνημίτονο (cosine) του αντιστρόφου πίνακα
μετασχηματισμού δεν μεταβάλλεται
 Το πρόσημο του ημιτόνου (sine) αλλάζει
 Οπότε… R-1() = R(-) = RT()

Συσχετισμένοι Μετασχηματισμοί 3Δ
 Ομογενείς συντεταγμένες σημείων Ε3: (x,y,z,w)
 Bασική παράσταση (x,y,z,1)

 Δεξιόστροφα (εδώ) & Αριστερόστροφα συστήματα

Υ Υ
Ζ

Ζ (β)
(α) Χ
Συσχετισμένοι Μετασχηματισμοί 3Δ

 Μεταφορά 1 0 0 dx 
 0 1 0 dy 

T d 
0 0

1 dz 
 
0 0 0 1

 Αλλαγή κλίμακας 0 0 0
 sx
0 0 0
S sx , s y , sz   
sy

0 0 sz 0
 
0 0 0 1

Συσχετισμένοι Μετασχηματισμοί 3Δ
 Στροφή: ανάγκη ορισμού θετικής στροφής σε δεξιόστροφο σύστημα
 αντίθετη φοράς δεικτών ρολογιού όταν παρατηρητής στον +ve άξονα
κοιτάει προς
1 0 0 0  cos 0 sin  0
0 cos  sin  0   0 1 0 0
Rx      Ry     
0 sin  cos 0  sin  0 cos 0
   
0 0 0 1  0 0 0 1
cos  sin  0 0
 sin  cos 0 0
Rz     
 0 0 1 0
 
 0 0 0 1

Rx , R y , Rz είναι ορθογώνιοι  διατηρούν μήκη και γωνίες


Συσχετισμένοι Μετασχηματισμοί 3Δ

 Αντίστροφοι

  
 
T 1 d  T  d
1 1 1
S 1 sx , s y , sz   S  , , 
 sx s y sz 
Rx1    Rx   , Ry-1   Ry   , Rz1    Rz   

 Για στροφή ισχύει (ορθογώνιος)

Rx1    RxT  , Ry1    RyT  , Rz1    RzT  

Συσχετισμένοι Μετασχηματισμοί 3Δ
 Στρέβλωση στο XY επίπεδο
 α, b παράγοντες στρέβλωσης κατά X και Y άξονα

 z συντεταγμένη αμετάβλητη 1 0 a 0
0 1 b 0 
SH xy a, b    
0 0 1 0 
 
0 0 0 1 
Συσχετισμένοι Μετασχηματισμοί 3Δ
 Στρέβλωση στο XY επίπεδο
 α, b παράγοντες στρέβλωσης κατά X και Y άξονα

 z συντεταγμένη αμετάβλητη 1 0 a 0
0 1 b 0 
SH xy a, b    
0 0 1 0 
 
0 0 0 1 

1 0 0 0
a 0
 Στρέβλωση στο YZ επίπεδο 1 0
SH yz a, b    
b 0 1 0
 
0 0 0 1

0 a 0 0
0 1 0 0
 Στρέβλωση στο XZ επίπεδο SH xz a, b    
0 b 1 0
 
0 0 0 1

Παράδειγμα 3.11
Ορίζουμε ως καμπή την περιστροφή γύρω από τον άξονα X και στη συνέχεια γύρω από τον άξονα Y. (α)
Βρείτε τον πίνακα καμπής Tk και (β) εξετάστε εάν παίζει ρόλο η σειρά με την οποία εκτελούνται οι
περιστροφές.

Λύση: (α) Τα ακόλουθα βήματα καθορίζουν τον ζητούμενο πίνακα.

Βήμα 1: Στροφή κατά γωνία θx ως προς άξονα X. Βασικός πίνακας μετασχηματισμού: R x (θx ) .

Βήμα 2: Στροφή κατά γωνία θy ως προς άξονα Y. Βασικός πίνακας μετασχηματισμού: R y (θ y ) .

Ο ζητούμενος πίνακας θα προκύψει ως σύνθεση των παραπάνω βασικών μετασχηματισμών.


(β) Εάν εκτελεστούν οι παραπάνω μετασχηματισμοί με αντίθετη σειρά θα προκύψει ο ακόλουθος
πίνακας:

Παρατηρούμε ότι ο νέος πίνακας διαφέρει από αυτόν του ερωτήματος (α) επομένως παίζει
ρόλο η σειρά με την οποία εκτελούνται οι περιστροφές.
Παράδειγμα 3.12


Παράδειγμα 3.13


Ο πίνακας περιστροφής Rx(θ1) ισούται με:


Παρατηρήσεις: 1) Εάν b και c ισούνται με μηδέν τότε λ = 0. Σε αυτή την περίπτωση απαιτείται μόνο μία
περιστροφή 90° ως προς τον άξονα των Υ. Δηλαδή:
Παράδειγμα 3.14


Παράδειγμα 3.15

Από το παράδειγμα 3.14 ο πίνακας μετασχηματισμού που θα προσδιορίζει τις συντεταγμένες των νέων
κορυφών δίνεται από:
Για να προσδιοριστούν οι συντεταγμένες της στραμμένης φιγούρας εφαρμόζουμε τον πίνακα RL (θ)
πάνω στον πίνακα Π που εκφράζει τη δοσμένη πυραμίδα. Πιο συγκεκριμένα:
Οι καινούριες συντεταγμένες θα δίνονται από τις σχέσεις:

Το αποτέλεσμα που προκύπτει φαίνεται στο σχήμα

Αλγόριθμοι Αποκοπής
Τι είναι Αποκοπή (clip)?
• Η διαδικασία απεικόνισης μόνο των
τμημάτων των αντικειμένων που
βρίσκονται μέσα σε μια περιοχή
• Από μεγαλύτερη 2Δ σκηνή στην οποία
έχουμε ήδη τιμές για τα pixels
• Κατά την διάρκεια της μετατροπής των
αντικειμένων σε pixel

Γιατί χρησιμοποιούμε αποκοπή ( clip)?

 Δεν υπάρχει λόγος να αναπαραστούμε αντικείμενο


εκτός του παραθύρου θέασης (viewing window -
clipping window)
Τι είναι η αποκοπή (clipping)?

 Αναλυτικός υπολογισμός των αναλογιών των


σημείων τομής με το παράθυρο θέασης

Τι είναι
Η διαδικασία απεικόνισης μόνο των τμημάτων των αντικειμένων
που βρίσκονται μέσα σε μια περιοχή.

 Αποκοπή αντικειμένου (π.χ.ευθυγράμων τμημάτων, πολυγώνου) ως


προς ένα συγκεκριμένο αντικείμενο αποκοπής (π.χ. πολύγωνο,
πυραμίδα, κύβος).

 Το αντικείμενο αποκοπής ορίζει εκείνο το τμήμα του χώρου που


ενδιαφέρει τον παρατηρητή σχετικά με το ποιες επιφάνειες μιας
τρισδιάστατης σκηνής μπορεί αυτός να δει.
Αποκοπή σε τι?

Παράθυρο
θέασης

Up

Θέση ματιού Back


Σημείο εστίασης Towards

Right

Κώνος θέασης

Η αποκοπή στις 3Δ
 Γίνεται για:
 αποφυγή αντεστραμμένης εμφάνισης αντικειμένων που βρίσκονται πίσω από τον
παρατηρητή.
 σημαντική μείωση όγκου δεδομένων που προωθούνται προς την παράσταση στην
οθόνη(φίλτρο).
Θέσεις αντικειμένων Θέση
και φωτεινών πηγών παρατηρητή

3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα

Παράσταση
Είσοδοι Στην Οθόνη:
(για κάθε καρέ)
Σάρωση
Αντιταύτιση
Απόκρυψη
Φωτισμός Γραμμών/ Προβολή
Επιφανειών
Υφή

Γραφική σωλήνωση εξόδου


Αποκοπή στις 2Δ-Αποκοπή σημείων

 Παράθυρο αποκοπής: Είναι ένα ορθογώνιο παραλληλόγραμμο (συμβολίζει


την οθόνη).
 Ένα σημείο με συντεταγμένες x, y
 Είναι μέσα στο παράθυρο αν xminxxmax, yminyymax

 Διαφορετικά είναι εκτός οπότε και αποκόπτεται.

(xmax, ymax)

ymin  y  ymax
(x', y')
(x, y)
(xmin, ymin) xmin  x  xmax

Γρήγορη αποκοπή

Βελτιστοποίηση: γρήγορη αποκοπή


 Πώς μπoρούμε γρήγορα να αποφασίσουμε εάν το
τμήμα μιας γραμμής είναι ολόκληρο μέσα στο
παράθυρο θέασης?

Ελέγχω και τα δύο άκρα


Γρήγορη αποκοπή
Πώς γνωρίζω ότι μια γραμμή είναι εκτός του
παραθύρου θέασης?
A: Εάν και τα δυο άκρα της γραμμής
βρίσκονται στην λάθος πλευρά τότε απλά
αποκόπτω τη γραμμή

Αποκοπή γραμμών στο παράθυρο θέασης


 Συνδυασμός
 Αποδοχή γραμμών που και τα δυο σημεία βρίσκονται εντός του
παραθύρου θέασης
 Απόρριψη γραμμών που και τα δύο σημεία βρίσκονται εντός της
ίδια πλευράς του παραθύρου θέασης
 Διαφορετικά, αναγωγή στις απλές περιπτώσεις με διαίρεση της
γραμμής σε δύο τμήματα
Αποκοπή ευθείας (αλγόριθμος μέσου)
 Σε κάθε σημείο P(x,y) του επιπέδου αντιστοιχίζουμε με βάση το
παράθυρο δύο παραμέτρους ΙΧ και ΙY με πιθανές τιμές -1,0,+1.
 Συνολικά το επίπεδο χωρίζεται σε 9 περιοχές, με διαφορετικό συνδυασμό
ΙΧ και ΙΥ το καθένα.
ΙΧ=0 Οριζόντια:
ΙΧ=-1 ΙΧ=+1
Ίδια τιμή
ΙΥ=+1 ΙΥ=+1 ΙΥ=+1 στο IY
ymax
ΙΧ=0
ΙΧ=-1 P2(x2, y2)
ΙΥ=0 Κάθετα:
ΙΥ=0
ΙΧ=+1 Ίδια τιμή
στο IΧ
P1(x1, y1) ΙΥ=0

ymin
ΙΧ=-1 ΙΧ=0 ΙΧ=+1
ΙΥ=-1 xmin ΙΥ=-1 xmax ΙΥ=-1

Αποκοπή ευθείας (αλγόριθμος μέσου)


 Χωρίζουμε το επίπεδο σε 9 περιοχές, στηριζόμενοι στους διαφορετικούς συνδυασμούς IΧ
και IY .
 Κάνουμε έλεγχο αν το ευθύγραμμο τμήμα είναι ολόκληρο μέσα στο ορθογώνιο αποκοπής ή αν
είναι ολόκληρο έξω από αυτό.
 Διαφορετικά, υπολογισμός του μέσου του ευθυγράμμου τμήματος και χωρισμός του σε δύο
τμήματα.
 Αναδρομική εφαρμογή του αλγορίθμου και στα δύο ευθύγραμμα τμήματα που προκύπτουν.
ΙΧ=-1 ΙΧ=0 ΙΧ=+1
ΙΥ=+1 ΙΥ=+1 ΙΥ=+1

ymax
ΙΧ=0
ΙΧ=-1 P2(x2, y2)
ΙΥ=0 ΙΧ=+1
ΙΥ=0
ΙΥ=0
P1(x1, y1)
M((P1.x+P2.x)/2, (P1.y+P2.y)/2))
ymin
ΙΧ=-1 ΙΧ=0 ΙΧ=+1
ΙΥ=-1 xmin ΙΥ=-1 xmax ΙΥ=-1
Αποκοπή ευθείας (αλγόριθμος μέσου)
midpoint(P1,P2,xmin,xmax,ymin,ymax)
Point P1,P2; float xmin,xmax,ymin,ymax;
{point M;
/*Υπολογισμός IX1,IY1,IX2,IY2*/
if((IX1==0)&&(IY1==0)&&(Ix2==0)&&(IY2==0))
/*Το P1P2 είναι εντός παραθύρου*/
else if ((IX1==IX2)&&IX1!=0))||(IY1==IY2)&&(IY1!=0))
/*To P1P2 είναι εκτός παραθύρου*/
else {/*Υπολογισμός του μέσου Μ*/
M.x=(P1.x+P2.x)/2;
M.y =(P1.y+P2.y)/2;
/*Αναδρομική εφαρμογή στα δύο ευθύγραμμα τμήματα που προκύπτουν*/
midpoint( P1,M,xmin,xmax,ymin,ymax);
midpoint( M,P2,xmin,xmax,ymin,ymax);
}
}

Αποκοπή ευθείας (Cohen-Sutherland)

Χωρίζουμε το επίπεδο σε περιοχές με βάση το ορθογώνιο


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

Αναδρομική εφαρμογή σε ένα από τα δύο ευθύγραμμα τμήματα


που προκύπτουν.
2Δ Αποκοπή Ευθυγράμμων Τμημάτων: Αλγόριθμος
Cohen - Sutherland
 Αλγόριθμος Cohen - Sutherland:
 Αρχικά φθηνός έλεγχος για απλές περιπτώσεις.
 Π.χ. A B έξω, C D μέσα.
 Για άλλα ευθύγραμμα τμήματα, κόψιμο με ευθεία παραθύρου &
αναδρομή.
H

K
• ymax
• C
G • J
A

F
D • y
• min
I

• xmin E •x
max
B

Αποκοπή ευθείας (Cohen-Sutherland)


Χωρισμός του χώρου ως εξής: π.χ. το Po έχει κωδικό 0000
γιατί βρίσκεται
•1ο bit=1 για την περιοχή πάνω από την ευθεία y=ymax
Κάτω από την y=ymax
•2ο bit=1 για την περιοχή κάτω από την ευθεία y=ymin Πάνω από την y=ymin
Αριστερά της x=xmax
•3ο bit=1 για την περιοχή δεξιά από την ευθεία x=xmax
Δεξιά της x=xmin
•4ο bit=1 για την περιοχή αριστερά από την ευθεία x=xmin

1xxx
xxxx
1001 xxxx
1xxx
1000 xxxx
1xxx
1010
ymax
Pο(x,y)
xxxx
0xxx
0001 0000
xxxx
0xxx xxxx
0010
0xxx
ymin
0xxx
xxxx
0101 0100
xxxx
0xxx xxxx
0110
0xxx
xmin xmax
Αποκοπή ευθείας (Cohen-Sutherland)
Αλγόριθμος Cohen-Sutherland:
 Για κάθε άκρο (x,y) ενός ευθύγραμμου τμήματος υπολογίζουμε των κώδικα της
περιοχής στην οποία βρίσκεται.
 Το 1ο bit του κώδικα αντιστοιχεί στο πρόσημο της παράστασης (ymax-y)
 Αν είναι αρνητικό σημαίνει πως το 1ο bit στον κώδικα θα είναι το 1 και άρα το άκρο (x,y)
θα βρίσκεται πάνω από την y=ymax
 Το 2ο bit αντιστοιχεί στο πρόσημο της παράστασης (y-ymin)
 Το 3ο bit αντιστοιχεί στο πρόσημο της παράστασης (xmax-x)
 Το 4ο bit αντιστοιχεί στο πρόσημο της παράστασης (x-xmin)
1ο bit =1
P0(x,y)
1001 1000 1010
ymax

0001 0000 0010 1ο bit =0

ymin
0101 0100 0110
xmin xmax
P1

2Δ Αποκοπή Ευθυγράμμων Τμημάτων: Αλγόριθμος


Cohen - Sutherland
 Υπολόγισε κώδικες c1, c 2 για P1 , P.2
 Αν c1  c2  0000, P1 P2 είναι εντός (π.χ. C D ).
 Αν c1  c2  0000, P1 P2 είναι εκτός (π.χ. A B ).
 Διαφορετικά:
 Εύρεση ευθείας παραθύρου που αντιστοιχεί σε bit με
διαφορετικές τιμές.
 Τομή P1 P2 με ευθεία.
 Αναδρομική κλήση για “εσωτερικό” τμήμα ως προς ευθεία.
Αποκοπή ευθείας (Cohen-Sutherland)
 Αν c1Uc2=0000 τότε το ευθύγραμμο τμήμα βρίσκεται εντός του παραθύρου
(το ότι η ένωση των δύο κωδικών είναι 0, σημαίνει πως και οι δύο κωδικοί
αποτελούνται από μηδενικά μόνο, άρα και τα δύο άκρα είναι στην περιοχή
0000)

 Αν c1∩c2≠0 τότε το ευθύγραμμο τμήμα είναι εκτός του παραθύρου ( το ότι η


τομή των δύο κωδικών είναι διάφορη του μηδενός σημαίνει πως θα υπάρχει
τουλάχιστον ένας άσσος στο ίδιο bit των δύο κωδικών, άρα και τα δύο άκρα θα
βρίσκονται στην ίδια περιοχή ( πάνω από την y=ymax ή κάτω από την y=ymin
ή δεξιά από την x=xmax ή αριστερά από την x=xmin), άρα το ευθύγραμμο
τμήμα θα βρίσκεται όλο εκτός του παραθύρου)

 Διαφορετικά, προσδιορίζουμε ένα σημείο τομής ως εξής:


 Συγκρίνουμε τους κωδικούς των άκρων του ευθύγραμμου τμήματος
 Βρίσκουμε ένα bit στο οποίο διαφέρουν

2Δ Αποκοπή Ευθυγράμμων Τμημάτων: Αλγόριθμος


Cohen - Sutherland
 A 0001 Το AB εκτός παραθύρου αφού 0001  0101  0000

 B 0101 Το CD εντός παραθύρου αφού 0000  0000  0000


 C 0000
Για το E F παίρνουμε την τομή με την ευθεία
 D 0000 y=ymin αφού το δεύτερο bit των E , F είναι
 E 0100 διαφορετικό και στην συνέχεια καλείται
αναδρομικά για το τμήμα F I επειδή το δεύτερο bit
 F 0010 του F είναι μηδέν
 G 0001 H

 H 1010 K
• ymax
• C
G • J
A

F
D • y
• min
I

• xmin E •x
max
B
Αποκοπή ευθείας (Cohen-Sutherland)
 Βρίσκουμε την ευθεία που αντιστοιχεί σε αυτό το bit και υπολογίζουμε το σημείο τομής
του ευθύγραμμου τμήματος με την ευθεία αυτή.
 Το αρχικό ευθύγραμμο τμήμα χωρίζεται σε δύο και επιλέγουμε εκείνο το ευθύγραμμο
τμήμα με ένα άκρο το σημείο τομής και το άλλο άκρο να είναι εκείνο το άκρο του
αρχικού ευθύγραμμου τμήματος που είχε τιμή 0 στο bit του κωδικού που διέφεραν τα
δύο αρχικά άκρα.
 Εφαρμογή του αλγορίθμου αναδρομικά σε εκείνο το ευθύγραμμο τμήμα που επιλέχθηκε
CS (P1,P2,xmin,xmax,ymin,ymax)
Point P1,P2; float xmin,xmax,ymin,ymax;
{ int c1,c2; point I;
c1= code (P1); /*Υπολογισμός του κώδικα του P1*/
c2= code (P2);
if ( (c1|c2)==0) /* To P1P2 είναι εντός του παραθύρου*/
else if ( (c1&c2)!=0) /* To P1P2 είναι εκτός του παραθύρου*/
else
{ intersect ( P1,P2,I,xmin,xmax,ymin,ymax);
if exoteriko (P1) CS (I,P2,xmin,xmax,ymin,ymax);
else CS (P1,I,xmin,xmax,ymin,ymax);
}
}
Η ρουτίνα intersect υπολογίζει το Ι, ένα σημείο τομής μεταξύ του P1, P2 και ευθείας παραθύρου.
Η ρουτίνα exoteriko υπολογίζει εάν P1 βρίσκεται στο ημιεπίπεδο της ευθείας τομής όπου και το παράθυρο

2Δ Αποκοπή Ευθυγράμμων Τμημάτων: Αλγόριθμος


Liang - Barsky
 Bάση παραμετρικής εξίσωσης της P1  x1 , y1 P2  x2 , y2 

P  P1  t  P2  P1 , t  0, 1
ή x  x1  t  x, y  y1  t  y
με x  x2  x1 και y  y2  y1
 Για σημεία εντός παραθύρου ισχύει:
xmin  x1  t  x  xmax
ymin  y1  t  y  ymax

ή αλλιώς  t  x  x1  xmin ,  t  y  y1  ymin


t  x  xmax  x1 , t  y  ymax  y1

t  pi  qi , i  114
ή με p1  x, q1  x1  xmin
p2  x, q2  xmax  x1
p3  y, q3  y1  ymin
p4  y, q4  ymax  y1
2Δ Αποκοπή Ευθυγράμμων Τμημάτων: Αλγόριθμος
Liang - Barsky
 Αρίθμηση ακμών παραθύρου. Παράθυρο: τομή 4 ορατών ημιεπιπέδων.
ορατό ημιεπίπεδο
πλευράς 1
4 ymax
t2 •B
t1 •
1 • 2
A

ymin
μη ορατό ημιεπίπεδο 3
πλευράς 1
xmin xmax
q
 Τομή με ευθεία ακμής i : t  i , i  114
pi

 Αν pi  0, P1 P2 παράλληλη ακμής i
pi  0, P1 P2 “μπαίνει” στο ορατό ημιεπίπεδο ακμής i
 Αν
i
 Αν pi  0, P1P2 “βγαίνει” από ορατό ημιεπίπεδο ακμής
i
 Αν qi  0, P1 στο ορατό ημιεπίπεδο ακμής
 Αν qi  0, P1 στο μη ορατό ημιεπίπεδο ακμής i

2Δ Αποκοπή Ευθυγράμμων Τμημάτων: Αλγόριθμος


Liang - Barsky
 Υπολογισμός άκρων τμήματος P1 P2 που βρίσκονται
εντός παραθύρου.
q  
t1  max  i | pi  0, i  114  0
  pi  
q  
t 2  min  i | pi  0, i  114  1
  pi  

 0 και 1 εξασφαλίζουν επιλογή άκρων P1 P2 αν τομή εκτός


τμήματος.
 Αν t1  t2 τότε P1 P2 εκτός παραθύρου.
 Διαφορετικά υπολογισμός αποκοπής από t1 , t2 .

Αποκοπή Πολυγώνου
 Στην 2Δ αποκοπή πολυγώνων το αποκοπτόμενο αντικείμενο και το
αντικείμενο αποκοπής είναι πολύγωνα (αποκοπτόμενο πολύγωνο,
πολύγωνο αποκοπής)
 Γιατί είναι σημαντική η αποκοπή πολυγώνου?

 Η αποκοπή πολυγώνου δεν θεωρείται πολλαπλή αποκοπή ευθείας


2Δ Αποκοπή Πολυγώνων: Αλγόριθμος
Sutherland - Hodgman
 Κατάλληλος για αποκοπή τυχαίου (κυρτού ή μη κυρτού) πολυγώνου με κυρτό
πολύγωνο (παράθυρο) αποκοπής.
 m διαδοχικά βήματα του αλγορίθμου για m πλευρές παραθύρου αποκοπής.
 Είσοδος στο βήμα i i  21m  : πολύγωνο μετά από αποκοπή με πλευρά i-1.
παράθυρο πλευρά 4
αποκοπής

πλευρά 3 πλευρά 1
Αρχικό
πολύγωνο

πλευρά 2 Αποκοπή πολυγώνου Αποκοπή πολυγώνου


ως προς την πλευρά 1 ως προς την πλευρά 2

Τελικό
πολύγωνο

Αποκοπή πολυγώνου Αποκοπή πολυγώνου


ως προς την πλευρά 3 ως προς την πλευρά 4

Αποκοπή Πολυγώνου
Αλγόριθμος Sutherland – Hodgman (SH):
 Αποκόπτει ένα τυχαίο πολύγωνο ως προς ένα κυρτό πολύγωνο αποκοπής
 Περιλαμβάνει m στάδια σωλήνωσης που αντιστοιχούν στις m ακμές του
πολυγώνου αποκοπής
 Το στάδιο i | i: 0…m-1 αποκόπτει το αποκοπτόμενο πολύγωνο ως προς το
ευθύγραμμο τμήμα που ορίζεται από την ακμή i του πολυγώνου αποκοπής
 Η είσοδος του σταδίου i | i: 1…m-1 είναι η έξοδος του σταδίου i-1
 Το πολύγωνο αποκοπής πρέπει να είναι κυρτό
2Δ Αποκοπή Πολυγώνων: Αλγόριθμος
Sutherland - Hodgman
 Ένα πολύγωνο ορίζεται από κορυφές του P1 , P2 ,  , Pn με φορά αντίθετη από αυτή
των δεικτών του ρολογιού.
 Πλευρές P1 P2 , P2 P3 ,  , Pn 1 Pn , Pn P1
 Βήμα i εξετάζει τη σχέση κάθε πλευράς S P με ακμή παραθύρου i .
Πλευρά
Εσωτερικό Εξωτερικό
παραθύρου
P S
S

P •

P • • P S
S
Ευθεία
αποκοπής

Περίπτωση 1 Περίπτωση 2 Περίπτωση 3 Περίπτωση 4


1 έξοδος 1 έξοδος 0 έξοδοι 2 έξοδοι

• αυτή η κορυφή καταχωρείται στην έξοδο

Για κάθε πλευρά S P του πολυγώνου που προέκυψε από το προηγούμενο βήμα της αποκοπής,
προστίθενται στη λίστα κορυφών του νέου πολυγώνου 0,1 ή 2 κορυφές ανάλογα με τη θέση της
πλευράς σε σχέση με την ευθεία αποκοπής.

2Δ Αποκοπή Πολυγώνων: Αλγόριθμος


Sutherland - Hodgman
 Παράδειγμα βήματος αλγορίθμου Sutherland - Hodgman.

S P Περίπτωση Αποτελέσματα •
Πλευρά
P1 P2 1 P2 παραθύρου
P2 P3 1 P3
P3 P4 1 P4 •
P4 P5 2 I1

P5 P6 4 I 2 P6
P6 P1 1 P1 • • • •

 Οι κορυφές του νέου πολυγώνου που προέκυψε μετά από το παραπάνω


βήμα της αποκοπής είναι: P 1 , P 2 , P 3 , P 4 , I 1 , I 2 , P 6
Αποκοπή Πολυγώνου – Αλγόριθμος SH

 Παράδειγμα 1ου σταδίου του αλγορίθμου SH:

34

2Δ Αποκοπή Πολυγώνων: Αλγόριθμος


Sutherland - Hodgman
 Καθoρισμός της σχέσης της κορυφής P r , t  με την πλευρά παραθύρου
K  x1, .y1  L  x2 , y2 
 Πλευρές παραθύρου ορίζονται με φορά αυτή των δεικτών του ρολογιού.
 Εξίσωση ευθείας αποκοπής y  sx  c  0.

με
y2 y1 yx y2 x1
s= c= 1 2
x2 x1 x2 x1

 P εσωτερική αν t  sr  c  0
 P εξωτερική αν t  sr  c  0
Αποκοπή Πολυγώνου – Αλγόριθμος SH
 Αλγόριθμος:
polygon SH_Clip ( polygon C, S ) { /*C κυρτό */
int i, m;
edge e;
polygon InPoly, OutPoly;
m = getedgenumber(C);
InPoly = S;
for (i=0; i<m; i++) {
e = getedge(C,i);
SH_Clip_Edge(e,InPoly,OutPoly);
InPoly = OutPoly
}
return OutPoly
}

Αποκοπή Πολυγώνου – Αλγόριθμος SH


 Αλγόριθμος:
SH_Clip_Edge ( edge e, polygon InPoly, OutPoly ) {
int k, n; vertex vk, vkplus1, i;
n = getedgenumber(InPoly);
for (k=0; k<n; k++) {
vk = getvertex(InPoly,k); vkplus1=getvertex(InPoly,(k+1) mod n);
if (inside(e, vk) and inside(e, vkplus1))
/* Περίπτωση 1 */
putvertex(OutPoly,vkplus1)
else if (inside(e, vk) and !inside(e, vkplus1)) {
/* Περίπτωση 2 */
i = intersect_lines(e, (vk,vkplus1)); putvertex(OutPoly,i)
}
else if (!inside(e, vk) and !inside(e, vkplus1))
/* Περίπτωση 3 */
else {
/* Περίπτωση 4 */
i = intersect_lines(e, (vk,vkplus1)); putvertex(OutPoly,i);
putvertex(OutPoly,vkplus1)
}
}
}
Αποκοπή Πολυγώνου – Αλγόριθμος SH

 Η πολυπλοκότητα του αλγορίθμου SH είναι O(mn) όπου m


και n το πλήθος των κορυφών του πολυγώνου αποκοπής και
του αποκοπτόμενου πολυγώνου αντίστοιχα

 Δεν χρειάζονται περίπλοκες διαδικασίες ή δομές δεδομένων


 ο αλγόριθμος SH είναι πολύ αποδοτικός

 Ο αλγόριθμος SH είναι κατάλληλος για υλοποίηση σε υλικό


καθότι, εν γένει, το πολύγωνο αποκοπής είναι σταθερό

2Δ Αποκοπή Πολυγώνων: Αλγόριθμος Greiner - Hormann


 Κατάλληλος για τυχαία πολύγωνα αποκοπής (C), προς
αποκοπή (S).
 Mη κυρτά, self-intersecting (αλλά κλειστά).
 Μείωση απόδοσης σε σχέση με Sutherland - Hodgman.
 Κατάλληλος για αποκοπή στον αλγόριθμο αντιταύτισης του Catmull.

 Bασίζεται στον δείκτη περιστροφών (winding number)   , A 


Μετρά πόσες στροφές ολοκληρώνει ακτίνα με ένα άκρο το A και το άλλο
να διαγράφει περίμετρο καμπύλης (πολυγώνου)  .
 Για κάθε +ve στροφή , για κάθε -ve στροφή   , A.  
  , A   
 


A
2Δ Αποκοπή Πολυγώνων: Αλγόριθμος Greiner - Hormann
 Για τον δείκτη περιστροφών ισχύουν:
 Ο δείκτης περιστροφών δεν αλλάζει εφόσον δεν μεταβάλλεται η
τοπολογική σχέση του A με τη γ.
 Αν το A είναι εκτός της καμπύλης τότε   , A   0 .
 Αν το A μετακινηθεί και διασταυρώσει 1 φορά τη γ, τότε το   , A 
αυξάνεται ή μειώνεται κατά 1.
 Αν το A βρίσκεται εντός της γ, τότε το   , A  είναι περιττός
αριθμός , διαφορετικά είναι άρτιος.

 Αν μετακινήσουμε το A και διασχίσουμε τη γ τότε   , A   


ή   , A   
 Αντίστοιχο ελέγχου ημιευθείας προς άπειρο.

2Δ Αποκοπή Πολυγώνων: Αλγόριθμος Greiner - Hormann


 Αλγόριθμος Greiner - Hormann:
 Βήμα 1: » Ακολουθούμε περίμετρο S 1 φορά ξεκινώντας από κάποια κορυφή
του.
» Σε κάθε τομή με C η γραφίδα αλλάζει κατάσταση.
» Αρχική κατάσταση εξαρτάται από σχέση αρχικής κορυφής.
(εντός, εκτός) με C.
» Τελικό αποτέλεσμα: τμήματα του S εντός C (σχήμα β).
 Βήμα 2: Αντίστοιχο 1 με εναλλαγή S και C (σχήμα γ).
 Βήμα 3: Ένωση αποτελεσμάτων βημάτων 1 & 2 (σχήμα δ).
S S S

C C C
(α) (β) (γ) (δ)
2Δ Αποκοπή Πολυγώνων: Αλγόριθμος
Greiner - Hormann
 Αποτέλεσμα μπορεί να μην είναι συνεκτικό πολύγωνο.
 Δομή (διπλά συνδεδεμένη λίστα) προβλέπει ειδικούς δείκτες για
ένωση τμημάτων.

 On  m  με n,m τα πλήθη ακμών των S και C .

 Αποκοπή υπολογίζει το C  S . Greiner - Hormann


γενικεύεται για C  S , C  S , S  C

3Δ Αποκοπή

 Αντικείμενο αποκοπής στις 3 διαστάσεις:


 περιορισμένη πυραμίδα (προοπτική προβολή)
 κύβος (παράλληλη προβολή)

 Υπάρχουν 6 επίπεδα αποκοπής που ορίζουν το


τρισδιάστατο αντικείμενο αποκοπής.
3Δ Αποκοπή: Cohen - Sutherland 3Δ
 6 - bit κωδικοί για να κωδικοποιήσουμε τη θέση του κάθε άκρου P xp , yp , z p 
του ευθύγραμμου τμήματος σε σχέση με το αντικείμενο αποκοπής.
 Έστω ότι χρησιμοποιούμε κύβο αποκοπής.
 Επίπεδα αποκοπής: x=xmin, x=xmax, y=ymin, y=ymax, z=zmin, z=zmax
1ο Bit = 1  z p  z max δηλ. το σημείο βρίσκεται πίσω από τον κύβο
2ο Βit = 1  z p  z min
3ο Bit = 1  y p  y max
4ο Bit = 1  y p  y min
5ο Bit = 1  x p  xmax
6ο Bit = 1  x p  xmin

 Αν c1  c 2  000000, P1 P2 είναι εντός του κύβου αποκοπής


 Αν c1  c 2  000000, P1 P2 είναι εκτός.
 Διαφορετικά
 Εύρεση επιφάνειας κύβου που αντιστοιχεί σε bit με διαφορετικές τιμές.
 Τομή P P με επιφάνεια.
1 2
 Αναδρομική κλήση για “εσωτερικό” τμήμα ως προς επιφάνεια.

3Δ Αποκοπή: Cohen - Sutherland 3Δ

 Τομή ευθύγραμμου τμήματος P1 P2 και επιπέδου με χρήση παραμετρικής


εξίσωσης.
xt   x1  t  x2  x1   x1  t  x
y t   y1  t  y2  y1   y1  t  y
z t   z1  t  z 2  z1   z1  t  z

 Π.χ. τομή με y=Y


Y  y1
Y  y t   y1  t  y  t 
y
Αν t  0, 1, υπάρχει σημείο τομής με συντεταγμένες:

 x1  t  x, Y , z1  t  z  

 x1 
x
Y  y1 , Y , z1  z Y  y1 
 y y 
3Δ Αποκοπή: Αλγόριθμος Sutherland -
Hodgman 3Δ
 6 στάδια αποκοπής για τα 6 επίπεδα (αντί για 4 που είχαμε στις 2Δ).

Αποκομμένο
πολύγωνο

πολύγωνο
Αρχικό

Αποκοπή Αποκοπή Αποκοπή Αποκοπή Αποκοπή Αποκοπή


με z=zmax με z=zmin με y=ymax με y=ymin με x=xmax με x=xmin

 Παρόμοια λειτουργία του αλγορίθμου όπως και στις 2 διαστάσεις με


εξαίρεση:
 Έλεγχος αν P x , y, z  βρίσκεται στην εσωτερική ή στην εξωτερική
πλευρά του επιπέδου αποκοπής. Για τυχαίο επίπεδο αποκοπής (α,b,c,d) με
εξίσωση f x,y,z  a  x  b  y  c  z  d ελέγχουμε το πρόσημο της f ( P )

 Υπολογισμός τομής ευθύγραμμου τμήματος με το επίπεδο αποκοπής:


όπως στον Cohen - Sutherland 3Δ (1 τρόπος).

Ερωτήσεις
1. Πότε ένα σημείο βρίσκεται μέσα στο παράθυρο αποκοπής σύμφωνα με
i. τον αλγόριθμο σημειακής αποκοπής και ii. τον αλγόριθμο του μέσου;

i. Σύμφωνα με τον αλγόριθμο σημειακής αποκοπής ένα σημείο (x,y) βρίσκεται μέσα στο
παράθυρο αποκοπής όταν xminxxmax και yminyymax
ii. Σύμφωνα με τον αλγόριθμο του μέσου ένα σημείο (x,y) βρίσκεται μέσα στο παράθυρο
αποκοπής όταν οι μεταβλητές ΙΧ και ΙΥ που κρατώνται για αυτό έχουν και οι δύο την τιμή 0.

2. Στον αλγόριθμο του μέσου ποια είναι η ικανή και αναγκαία συνθήκη ώστε ένα ευθύγραμμο
τμήμα να βρίσκεται ολόκληρο μέσα στο παράθυρο αποκοπής;
a. (IX1==0)&&(IΧ2==0)
b. (IY1==0)&&(IY2==0))
c. (IX1==0)&&(IY1==0)&&(IX2==0)&&(IY2==0)
d. (IX1==0)&&(IY1==0)
Σωστή απάντηση c.

3. Στον αλγόριθμο του μέσου ποια από τις παρακάτω συνθήκες αρκεί να ισχύει ώστε ένα
ευθύγραμμο τμήμα να βρίσκεται ολόκληρο εκτός του παραθύρου αποκοπής;
a. (IX1==IX2)&&(IΥ1!=0)
b. (IX1==IX2)&&(IX1!=0)
c. (IY1==IY2)&&(IΧ2!=0)
d. (IY1==IY2)&&(IΧ1!=0) Σωστή απάντηση b.
Ερωτήσεις
4. Στον αλγόριθμο του Cohen-Sutherland ποια είναι η ικανή και αναγκαία συνθήκη ώστε ένα
ευθύγραμμο τμήμα να βρίσκεται ολόκληρο μέσα στο παράθυρο αποκοπής; Να δικαιολογήσετε
την απάντηση σας.
a. c1  c2=0000 b. c1 c2  0000 c. c1 c2=0000 d. c1  c2  0000
Σωστή απάντηση a.
Και αυτό γιατί από τις ιδιότητες της ένωσης, γνωρίζουμε πως για να είναι το αποτέλεσμα της ένωσης
δύο bits (δυνατές τιμές 0 και 1) ίσο με το 0, θα πρέπει και τα δύο bits να είναι ίσα με 1. Με την ίδια
λογική, αν η ένωση των δύο τετράμπιτων κωδικών είναι 0000, σημαίνει πως και οι δύο κωδικοί
αποτελούνται μόνο από μηδενικά .Επομένως, και τα δύο άκρα του ευθύγραμμου τμήματος βρίσκονται
στην περιοχή 0000, και άρα ολόκληρο το ευθύγραμμο τμήμα θα βρίσκεται μέσα στο παράθυρο
αποκοπής.

5. Στον αλγόριθμο του Cohen-Sutherland ποια είναι η ικανή και αναγκαία συνθήκη ώστε ένα
ευθύγραμμο τμήμα να βρίσκεται ολόκληρο έξω από το παράθυρο αποκοπής; Να δικαιολογήσετε
την απάντηση σας.
a. c1c2=0000 b. c1 c2  0000 c. c1 c2=0000 d. c1  c2  0000
Σωστή απάντηση d.
Και αυτό γιατί από τις ιδιότητες της τομής γνωρίζουμε πως για να είναι το αποτέλεσμα της τομής δύο
bits (δυνατές τιμές 0 και 1) διαφορετικό το μηδενός και άρα ίσο με το 1, θα πρέπει και τα δύο bits να
είναι ίσα με 1. Με την ίδια λογική, αν η τομή των δύο τετράμπιτων κωδικών είναι διαφορετική του
0000, σημαίνει πως θα υπάρχει τουλάχιστον ένας άσσος στο ίδιο bit των δύο κωδικών, άρα και τα δύο
άκρα θα βρίσκονται στην ίδια περιοχή ( πάνω από την y=ymax ή κάτω από την y=ymin ή δεξιά από
την x=xmax ή αριστερά από την x=xmin), και άρα το ευθύγραμμο τμήμα θα βρίσκεται ολόκληρο εκτός
του παραθύρου)
6. Μπορούμε να χρησιμοποιήσουμε

Ερωτήσεις
6. Μπορούμε να θεωρήσουμε ότι ένα πολύγωνο είναι ένα σύνολο ευθυγράμμων τμημάτων, οπότε να
χρησιμοποιήσουμε έναν αλγόριθμο αποκοπής ευθυγράμμων τμημάτων για την αποκοπή του
πολυγόνου?

7. ΌΧΙ, όπως φαίνεται στο παρακάτω σχήμα

8.
Ασκήσεις
1. Εφαρμόστε στο παρακάτω πολύγωνο τον αλγόριθμο αποκοπής Sutherland-
Hodgman. Η αποκοπή να γίνει ως προς τις πλευρές T, L ,B ,R.

Κορυφές αρχικού πολυγώνου: 1,2,3,4

i. Αποκοπή ως προς την πλευρά Τ: Κορυφές πολυγώνου 2,Α,Β,4,1


ii. Αποκοπή ως προς την πλευρά L: Κορυφές πολυγώνου A,B,4,1,2
iii. Αποκοπή ως προς την πλευρά B: Κορυφές πολυγώνου B,4,D,C,2,A
iv. Αποκοπή ως προς την πλευρά R: Κορυφές πολυγώνου G,H,D,C,E,F,A,B

Άρα, το τελικό πολύγωνο είναι το εξής:

Προβολές
Προβολές
 Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές.

Θέσεις αντικειμένων Θέση


και φωτεινών πηγών παρατηρητή

3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα

Είσοδοι
(για κάθε καρέ) Παράσταση
Στην Οθόνη:
Σάρωση
Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Επιφανειών
Φωτισμός
Υφή

Γραφική σωλήνωση εξόδου

Προβολές (projection)
 Δύο κατηγορίες προβολών:
 Προοπτική (perspective): πεπερασμένη απόσταση κέντρου προβολής
από επίπεδο προβολής.
 Παράλληλη: άπειρη απόσταση κέντρου προβολής από επίπεδο
προβολής.

 Ιδιότητες προβολών:
 Ευθείες προβάλλονται σε ευθείες.
 Αποστάσεις αλλάζουν (γενικά).
 3Δ παράλληλες ευθείες, που είναι μη παράλληλες με επίπεδο προβολής,
δεν προβάλλονται σε παράλληλες ευθείες, αλλά τέμνονται σε κάποιο
σημείο φυγής.
 Γωνία μεταξύ ευθειών αλλάζει, εκτός αν επίπεδο γωνίας παράλληλο με
επίπεδο προβολής.
Προοπτική Προβολής
 Στον πραγματικό κόσμο, τα αντικείμενα
παρουσιάζουν μια προοπτική να
μικραίνουν: τα μακρινά αντικείμενα
φαίνονται μικρότερα
 Απλή περίπτωση:

Προοπτική Προβολής
 Όταν φτιάχνουμε 3-D γραφικά, θεωρούμε την οθόνη ως
ένα 2-D παράθυρο μέσα στον 3-D κόσμο:

Πόσο ψηλό πρέπει


Να είναι?
Προοπτική Προβολής
 Η γεωμετρία της συγκεκριμένης κατάστασης είναι
παρόμοια με τα τρίγωνα. Φαίνεται:

View
X plane P (x, y, z)

(0,0,0) x’ = ?
Z

d
Πόσο είναι το x’ ?

Προοπτική Προβολής
 Το επιθυμητό αποτέλεσμα για ένα σημείο [x, y, z, 1]T
προβάλλεται μέσα στο πλάνο απεικόνισης:
x' x y' y
 , 
d z d z

dx x dy y
x'   , y'  , z' d
z z d z z d
 Ποιος θα μπορούσε να είναι ο πίνακας?
Προοπτική Προβολή
 Έστω προβολή στο επίπεδο ΧΥ με κέντρο προβολής K 0,0, d 

Y Επίπεδο
προβολής
• P3
Κέντρο
προβολής
P3

K 0,0, d  P2 P2
• • •
• Z
P x , y,0 

• • P  x, y , z 
P1
X

x d xd
  x  •
x dz dz P1
Ισχύει y  d yd
  y 
y dz dz

Προοπτική Προβολή
 Δεν είναι γραμμικός μετασχηματισμός (διαίρεση με z).
 Δεν μπορεί να δοθεί με μορφή πίνακα.

 Ωστόσο μπορούμε να χρησιμοποιήσουμε μεταβολή του w.

d 0 0 0  x   x  x  d 
0 d 0 0  y   y  y  d 
Ppers  
Οπότε
   Ppers      
0 0 0 0  z  z  0 
       
0 0 1 d  w 1   z  d 
 Ακολουθεί διαίρεση με την τιμή της ομογενούς συντεταγμένης w
(αφού πρέπει w=1)  xd 
z  d 
 x   yd 
 y   
Οπότε το τελικό σημείο: P     / w   z  d 
 z   0 
   
w   
 1 
 
Προοπτική Προβολή
 Χαρακτηριστικό: κεντρική σμίκρυνση (όπως το ανθρώπινο μάτι
αντιλαμβάνεται το βάθος).


K Z

Μετασχηματισμός Προοπτικής
 Τα αντικείμενα που βρίσκονται πιο κοντά στον
παρατηρητή φαίνονται μεγαλύτερα
 Οι παράλληλες γραμμές συγκλίνουν σε ένα σημείο
Προβολή Προοπτικής

 Πόσα σημεία?

3-Point 2-Point 1-Point


Προοπτική Προοπτική Προοπτική

Πίνακες προβολής

 Αφού μπορούμε να εκφράσουμε την προοπτική


μίκρυνσης (perspective foreshortening) ως έναν πίνακα,
μπορούμε να τα συνδυάσουμε με τους άλλους πίνακες
με τον συνηθισμένο πολλαπλασιασμό πινάκων
 Ένας μόνο πίνακας θα περιέχει τους μετασχηματισμούς
μοντελοποίησης, προβολής και προοπτικής
Παράλληλη Προβολή
 Κέντρο προβολής στο άπειρο, δίνεται κατεύθυνση προβολής.
 Διατηρεί αποστάσεις, χρήσιμο στοιχείο π.χ. στην αρχιτεκτονική.
 Ορθογώνια παράλληλη προβολή: πάνω σε ένα από τα βασικά επίπεδα με κάθετες
ακτίνες προβολής.

Προβολή

Κατεύθυνση προβολής

Παράλληλη Προβολή
 Κέντρο προβολής στο άπειρο, δίνεται κατεύθυνση προβολής.
 Διατηρεί αποστάσεις, χρήσιμο στοιχείο π.χ. στην αρχιτεκτονική.
 Ορθογώνια παράλληλη προβολή: πάνω σε ένα από τα βασικά επίπεδα με
κάθετες ακτίνες προβολής.
P  x, y , z  B
Z
Διεύθυνση
Προβολής

A

B Y
• P  x, y,0 
X A
 Πίνακας μετασχηματισμού για ορθογώνια π.χ. στο ΧΥ. Το επίπεδο προβολής το z=0
1 0 0 0
0 1 0 0
 
0 0 0 0
 
0 0 0 1
Ορθογραφικές Προβολές
 Κατεύθυνση προβολής για να προβληθεί το σχέδιο

Μπροστά

Πάνω Πλάγια

Ορθογραφικές Προβολές

Απλός Ορθογραφικός
Μετασχηματισμός

 Διατηρούνται οι αρχικές μονάδες


 Προτιμούνται μονάδες pixel
Ορθογραφικό: Μετασχηματισμός
στο χώρο Οθόνης
left =10 m right = 20 m

top=20 m

(max pixx, max pixy)

(height in pixels)

(0, 0)
bottom=10 m

(width in pixels)

Ορθογραφικό: Μετασχηματισμός στο χώρο


Οθόνης (Κανονικκοποίηση)

 Τα left, right, top, bottom αναφέρονται στις


συντεταγμένες μοντελοποίησης
 Τα width και height είναι μονάδες pixel
 Αυτός ο πίνακας κλιμακώνει και μετασχηματίζει τις
μονάδες
Παράλληλη Προβολή
 Παράλληλες προβολές διακρίνονται σε:
 Ορθογραφικές: ακτίνες προβολής κάθετες στο επίπεδο προβολής.
 Πλάγιες: ακτίνες όχι κάθετες.
 Ορθογραφικές διακρίνονται σε:
 Ορθογώνιες: ακτίνες προβολής παράλληλες με Χ, Υ ή Ζ. (π.χ. κάτοψη πάνω σε
επίπεδο XY)
 Αξονομετρικές: μη ορθογώνιες. Το επίπεδο προβολής τέμνει 2 ή 3 άξονες
 Ισομετρικές: ακτίνες προβολής παράλληλες με κύρια διαγώνιο χώρου, όπως στο
παρακάτω σχήμα.
Z

I1  I 2  I 3
I3

I1
I2 Y

Πλάγια Παράλληλη Προβολή


 Χαρακτηρίζεται από γωνίες α (πρόσπτωσης) και φ.
Y
P  x, y , z 
• P  x, y
Z a •
L
 X

P0  x, y 
O
x  x  L  cos 
y  y  L  sin  με L  P P0

1
Αλλά tan a   L  z  c όπου c 
z

L tan a
1 0 c cos  0
0 1 c sin  0
 Πίνακας πλάγιας παράλληλης προβολής  
0 0 0 0
 
0 0 0 1
Πλάγια Παράλληλη Προβολή
 Ειδικές περιπτώσεις.
 Cavalier ( a  45  c  1)

 2 
1 0
2
0
 
2
PCav  0 1 0
 2 
0 0 0 0
 
0 0 0 1

 Ευθείες κάθετες στο επίπεδο προβολής δεν μεταβάλλουν το μήκος


τους. Z

1 1
X
1
Y a  45

Πλάγια Παράλληλη Προβολή


 Ειδικές περιπτώσεις
 Cabinet ( a  63,   30  c  1 2)

 3 
1 0
4
0
 1 
PCab  0 1 0
 4 
0 0 0 0
0 0 0 1

 Ευθείες κάθετες στο επίπεδο προβολής μικραίνουν κατά 1/2


Z

1
X
1
Y a  63
Πλάγια Παράλληλη Προβολή

  63 .4
  45

Cavalier Cabinet
o o
(Προβολή = 45 ) (Προβολή  = 63.4 )
tan() = 1 tan() = 2

Πλάγια Παράλληλη Προβολή

Πλάγια Προβολή Μετασχηματισμένη Προβολή


Πλάγια Παράλληλη Προβολή

Πλάγια Προβολή Μετασχηματισμένη Προβολή

Παράδειγμα
1. Σχεδιάστε στο επίπεδο XY την Cavalier προβολή του μοναδιαίου κύβου.

Y
D C
H
E

A B
1 X
F1
G
Z

 Αναπαράσταση μοναδιαίου κύβου με χρήση πίνακα


0 1 1 0 0 0 1 1
0 0 1 1 1 0 0 1
V   ABCDEFGH    
0 0 0 0 1 1 1 1
 
1 1 1 1 1 1 1 1
Πλάγια Παράλληλη Προβολή
 Cavalier
(a  45  c  1)

 2  0 1 1 0 0 0 1 1
1 0
2
0 0 0 1 1 1 0 0 1

2
 V   ABCDEFGH    
PCav  0 1 0 0 0 0 0 1 1 1 1
 2 
0 0 0 0  
  1 1 1 1 1 1 1 1
0 0 0 1

 2   2 2 2 2
1 0 0 0 1 1 0 0 0 1 1  0 1 1 0 1 1 
 2  0 2 2 2 2 
2 0 1 1 1 0 0 1  2 2 2 2
V   PCavV  0 1 0   0 0 1 1 1 1
 2  0 0 0 0 1 1 1 1  2 2 2 2 
0 0 0 0 1   0 0 0 0 0 0 0 0 
  1 1 1 1 1 1 1  
0 0 0 1  1 1 1 1 1 1 1 1 

Παράδειγμα
 Αναπαράσταση μοναδιαίου κύβου μετά την Cavalier προβολή του

 2 2 2 2
 0 1 1 0 1 1 
 2 2 2 2 
2 2 2 2
V   PCav V   0 0 1 1 1 1
 2 2 2 2 
 0 0 0 0 0 0 0 0 
 
 1 1 1 1 1 1 1 1 

Y
V '   A' B' C ' D ' E ' F ' G ' H '  E H

D C
1 F G

A B
1 X
Παράδειγμα
Σχεδιάστε στο επίπεδο XY την Cabinet προβολή του μοναδιαίου κύβου.
 3 
1 0
4
0
V '   A' B' C ' D ' E ' F ' G ' H '   
1
PCab  0 1 0
 4 
0 0 0 0
 3 3 3 3 0
 0 1 1 0 1 1  0 0 1
 4 4 4 4 
1 1 1 1
V   PCab  V   0 0 1 1 1 1 
 4 4 4 4 
 0 0 0 0 0 0 0 0 
 1 1 1 Y 1 1 1 1 1 

E H

D C
1

F G
A B
1 X

Προοπτική vs. Παράλληλη


 Προοπτική Προβολή
+ Το μέγεθος μεταβάλλεται με την απόσταση- μοιάζει ρεαλιστικό
– Οι αποστάσεις και οι γωνίες δεν διατηρούνται (γενικά)
– Οι παράλληλες γραμμές δεν παραμένουν (γενικά παράλληλες)

 Παράλληλη προβολή
+ Κατάλληλη για ακριβής μετρήσεις
+ Οι παράλληλες γραμμές παραμένουν παράλληλες
– Οι γωνίες δεν διατηρούνται (γενικά)
– Λιγότερο ρεαλιστική απεικόνιση
Κλασσικές προβολές

Ταξινόμηση Προβολών
Παράδειγμα 5.1
Σχεδιάστε στο επίπεδο XY την Προοπτική Προβολή του μοναδιαίου κύβου.

Y
D C
H
E

A B
1 X
F1
G
Z
V   Ppers V
 Αναπαράσταση μοναδιαίου κύβου με χρήση πίνακα
0 1 1 0 0 0 1 1 d 0 0 0
0 0 1 1 1 0 0 1 0 d 0 0
V   ABCDEFGH     Ppers  
0 0 0 0 1 1 1 1 0 0 0 0
   
1 1 1 1 1 1 1 1 0 0 1 d



Παράδειγμα 5.2


Παράδειγμα 5.3



Παράδειγμα 5.4



Παράδειγμα 5.5

Προσδιορίστε την προοπτική προβολή σχήματος (κάθε σημείου του) πάνω στο
επίπεδο προβολής z = d χρησιμοποιώντας ως κέντρο προβολής την αρχή των
αξόνων, σχήμα 5.17 .

Λύση:


Ερωτήσεις
1. Ποια από τα παρακάτω αποτελούν χαρακτηριστικά της προοπτικής προβολής;
Δώστε μια σύντομη περιγραφή τους.

a. πεπερασμένη απόσταση κέντρου προβολής από επίπεδο προβολής.


b. άπειρη απόσταση κέντρου προβολής από επίπεδο προβολής.
c. κεντρική σμίκρυνση
d. διατηρεί τις αποστάσεις

Σωστές απαντήσεις: a,c


a. Θεωρούμε πως το κέντρο προβολής απέχει πεπερασμένη απόσταση από το επίπεδο
προβολής. Συνήθως όταν το επίπεδο προβολής είναι το ΧΥ, θεωρούμε πως το κέντρο
προβολής είναι πάνω στον αρνητικό Ζ άξονα, σε κάποιο σημείο έστω Κ(0,0,-d).
c. Επίσης, σημαντικό χαρακτηριστικό της προοπτικής προβολής είναι η κεντρική
σμίκρυνση, δηλαδή η μείωση του μεγέθους των αντικειμένων κατά ένα παράγοντα
που είναι ανάλογος της απόστασης του αντικειμένου από το κέντρο προβολής,

Ερωτήσεις
2. Ποιο είναι το μειονέκτημα της προοπτικής προβολής που μας οδηγεί στη
χρήση της παράλληλης προβολής;

Η προοπτική προβολή προσομοιώνει καλά τον τρόπο που αντιλαμβάνεται το


βάθος το ανθρώπινο μάτι. Όμως σε πολλές εφαρμογές, π.χ αρχιτεκτονικό
σχέδιο, θέλουμε να διατηρήσουμε τις αποστάσεις αναλλοίωτες. Τότε
καταφεύγουμε στην παράλληλη προβολή.
Ερωτήσεις
3. Περιγράψτε τις κατηγορίες στις οποίες
διακρίνονται οι παράλληλες προβολές και
αναλύστε μία από αυτές.
Οι παράλληλες προβολές διακρίνονται σε:
Ορθογραφικές όπου οι ακτίνες προβολής είναι κάθετες στο επίπεδο
προβολής
Πλάγιες όπου οι ακτίνες προβολής δεν είναι κάθετες στο επίπεδο
προβολής.

Πιο συγκεκριμένα οι ορθογραφικές διακρίνονται σε:


Ορθογώνιες όπου οι ακτίνες προβολής είναι παράλληλες με τους
άξονες Χ, Υ ή Ζ.
Αξονομετρικές οι οποίες είναι μη ορθογώνιες.
Ισομετρικές όπου οι ακτίνες προβολής είναι παράλληλες με την κύρια
διαγώνιο του χώρου.

Ερωτήσεις

4. Ποια είναι η απλούστερη παράλληλη προβολή; Δώστε ένα


παράδειγμα.

Η απλούστερη παράλληλη προβολή είναι η ορθογώνια προβολή πάνω σε ένα από


τα βασικά επίπεδα συντεταγμένων x=0, y=0, z=0. Για παράδειγμα, εάν το επίπεδο
προβολής είναι το z=0, τότε ένα σημείο Α(x,y,z) στον τρισδιάστατο χώρο
προβάλλεται στο Α'(x,y,0).

Ο πίνακας μετασχηματισμού είναι ο

1 0 0 0
0 1 0 0 

0 0 0 0
 
0 0 0 1
3Δ Μετασχηματισμός
Παρατήρησης

Μετασχηματισμός Παρατήρησης
 Παγκόσμιο Σύστημα Συντεταγμένων Σύστημα
Συντεταγμένων Παρατηρητή.
 Σύνθεση βασικών μετασχηματισμών.
 Καθορίζει όρια αποκοπής & παραμέτρους προβολής
 Θα εξετάσουμε ΜΠ Ι και ΜΠ ΙΙ
Θέσεις αντικειμένων Θέση
και φωτεινών πηγών παρατηρητή

3Δ 3Δ 3Δ Απομάκρυνση
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα

Είσοδοι
(για κάθε καρέ)
Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Ακμών/ Προβολή
Επιφανειών 1
Φωτισμός 2 D ΣΣΟ
2
Υφή (SCS)
Μετασχηματισμός Παρατήρησης Ι
 ΜΠ Ι χρησιμοποιεί προοπτική προβολή και καθορίζεται από:
α. Σημείο παρατήρησης O
β. 2 ανύσματα για ΥΠ και ΖΠ (αριστερόστροφο).
• ΠΣΣ ΣΣΠ βήματα:
1. Μεταφορά O στην αρχή ΠΣΣ.
2. Στροφές γύρω από Χ, Υ και Ζ του ΠΣΣ ώστε να ταυτισθούν
με αντίστοιχους ΣΣΠ.
3. Αποκοπή.
4. Προοπτική Προβολή.
• Χρησιμοποιούνται 3 ακόμα παράμετροι για καθορισμό ορίων αποκοπής:
γ. Μέγεθος παραθύρου προβολής 2h.
δ. Απόσταση d έμπροσθεν επιπέδου αποκοπής από O (κάθετο στον
ΖΠ).
ε. Απόσταση f όπισθεν επιπέδου αποκοπής από O (κάθετο στον ΖΠ).

Μετασχηματισμός Παρατήρησης Ι
Y
y  h  z  / d

x   h  z / d
O • •
h Z
z  d
X
x  h  z / d z  f
• Ορια αποκοπής:
x   h  z / d y   h  z  / d

y   h  z  / d
z  d
z  f
Μετασχηματισμός Παρατήρησης Ι
 Χαρακτηριστικά ΜΠ Ι:
 Επίπεδο προβολής ταυτόσημο με έμπροσθεν επίπεδο
αποκοπής zΠ=d.
 Κέντρο προβολής ταυτόσημο με σημείο παρατήρησης.
 Προοπτική προβολή.
 Τετράγωνο παράθυρο, συμμετρικό ως προς ΖΠ .

 Πληροφορία z διατηρείται κατά την προβολή για 2


λόγους:
 3Δ αποκοπή ευκολότερη σαν ενδιάμεσο στάδιο της
προβολής.
 Απόκρυψη απαιτεί z πληροφορία.

Προβολή στον ΜΠ Ι
d  x
xO   1  xO  1
h  z
d  y
yO   1  yO  1
h  z
 Μετασχηματισμός Z πρέπει να πληρεί:
 Ευθείες ΣΣΠ  ευθείες ΣΣΟ.
 Επίπεδα ΣΣΠ  επίπεδα ΣΣΟ.
 Κανονικοποιημένες τιμές zO .
 zO=A+B/zΠ είναι ΟΚ, με περιορισμούς:
1. Β<0, ώστε αύξηση zΠ  αύξηση zO.
2. z  d , f   zO  0, 1
 2 εξισώσεις με 2 αγνώστους:
0=Α+B/d 1=A+B/f
 Επίλυση με περιορισμό 1. δίνει: Α=f/(f-d) B= -fd/(f-
d) f 1  d / z 
zO  0  z  1
 Τελικά: f d
Προβολή στον ΜΠ Ι
 Παραπάνω μετασχηματισμός μπορεί να χωρισθεί σε:
 Γραμμικό μέρος (πίνακας).
 x   x 
 y  y 
   P    
 z   z 
   
w  1
d 
h 0 0 0 
 
Με 0
d
0 0 
P  h 
0 0
f

fd 
 f d f d
0 0 1 0 

 Διαίρεση με ομογενή συντεταγμένη (= zΠ)


 xO   x 
 y   y 
 O     / w
 zO   z  
   
 1  w 

Προβολή στον ΜΠ Ι
 P πιο κατανοητός αν γραφεί:
d 
1 0 0 0   0 0 0
0 1 0 0  
h

  d
  P
P  P  f fd   0 0 0
0 0  
f  d  0 
h
 f d 0 1 0

0 0 1 0  
0 0 0 1
 
P είναι αλλαγή κλίμακας κατά d/h :
 Πυραμίδα αποκοπής γίνεται κανονική πυραμίδα.
 π.χ. 0, h, d ,1  0, d , d ,1
 μετατρέπει κανονική πυραμίδα σε ορθογώνιο

P
παραλληλεπίπεδο:
 Εμπροσθεν επίπεδο αποκοπής zΠ=d γίνεται XY .
 Οπισθεν επίπεδο αποκοπής zΠ=f γίνεται z=1 .
 π.χ. 0, d , d ,1  0, d ,0, d  δηλ. 0,1,0,1
Προβολή στον ΜΠ Ι
Y 0, h, d 

h
Z
d
f


P
Y

0, d, d 
•  YO
P
1
d και κανονικοποίηση / w
1
Z ZO
1

Αποκοπή στο ΜΠ Ι

 Τιμή w ορίζει και τα όρια αποκοπής:


 w  x  w
 w  y  w
0  z   w

 Αποκοπή γίνεται μετά την εφαρμογή PΜΠΙ αλλά πριν


τη διαίρεση με το w
Μετασχηματισμός Παρατήρησης ΙΙ
 Από PHIGS, GKS-3Δ. Γενικός αλλά δύσχρηστος (πολλές παράμετροι).
 Χαρατηριστικά:
α. Κέντρο ΣΣΠ VRP (view reference point)  κέντρο προβολήςPRP (projection
reference point). Επιτρέπονται πολλαπλές και διαφορετικές προβολές
(προοπτική ή παράλληλη, ορθογώνια ή πλάγια).
β. Επίπεδο προβολής και έμπροσθεν επίπεδο αποκοπής μπορεί να διαφέρουν.
γ. Παράθυρο προβολής δεν είναι απαραίτητα τεράγωνο και μπορεί να βρίσκεται
οπουδήποτε πάνω στο επίπεδο προβολής.
ΠΣΣ (world coordinates)

Ορισμός ΣΣΠ
(view orientation)

ΣΣΠ (view reference coordinates, VRC)


Ορισμός παραμέτρων προβολής
(view mapping)
Κανονικοποιημένο Σύστημα Συντεταγμένων Οθόνης
(Normalised projection coordinates)
Μετασχηματισμός Συσκευής
(workstation transformation)
Σύστημα Συντεταγμένων Συσκευής
(device coordinates)

Μετασχηματισμός Παρατήρησης ΙΙ
 Oρισμός ΣΣΠ (view orienation) με 3 παραμέτρους (δεξιόστροφο):
α. Κέντρο ΣΣΠ VRP
β. Κάθετο άνυσμα στο επίπεδο προβολής VPN
γ. “Ανω” άνυσμα VUV (προβολή VUV στο κάθετο επίπεδο στο VPN που
περνά από VRP ορίζει Y(V) ).

U
V

VUV

VRP
N
VPN
U  VUV  VPN
V  VPN  U

 Μετατροπή ΠΣΣ ΣΣΠ όπως και στο ΜΠ Ι


Μετασχηματισμός Παρατήρησης ΙΙ
 Ορισμός Παραμέτρων Προβολής (view mapping) με 6 παραμέτρους:
α. Κέντρο προβολής PRP
β. Είδος προβολής: προοπτική ή παράλληλη.
γ. Απόσταση VPD επιπέδου προβολής από VRP (το επίπεδο προβολής είναι
παράλληλο με επίπεδο UV).
δ. Απόσταση έμπροσθεν και όπισθεν επιπέδων αποκοπής ΑΕΕΑ και ΑΟΕΑ (επίσης
παράλληλα με UV).
ε. Ορια παραθύρου στο επίπεδο προβολής umin , vmin , umax , vmax 
ζ. Ορια viewport στο κανονικοποιημένο σύστημα συντεταγμένων (0…1) .
U
V

• •
VRP
U N
V
• VPN

VPN

Ορισμός Παραμέτρων Προβολής στο MΠ IΙ

 Αν PRPδεν είναι πάνω στην ευθεία που περνάει από το κέντρο του
παραθύρου και είναι παράλληλη του VPN τότε έχουμε πλάγια προβολή.
Προοπτική Προβολή στο ΜΠ ΙΙ
 Ταύτιση δεδομένων με ΜΠ Ι και χρήση αντίστοιχου
μετασχηματισμού ΜΠ Ι:
 Ταύτιση PRP με VRP :

1 0 0  PRPu 
0 1 0  PRPv 
T  
0 0 1  PRPn 
 
0 0 0 1 

 Τ εφαρμόζεται στα αντικείμενα της σκηνής και στα σημεία ορισμού


παραθύρου: xmin , ymin , z, 1T  T  umin , vmin , n, 1T
xmax , ymax , z, 1T  T  umax , vmax , n, 1
T

 Μετατροπή VPD, ΑΕΕΑ, ΑΟΕΑ. Αν VPD, AEEA, AOEA προσημασμένα


μεγέθη:
d  VPD  PRPn
n  AEEA  PRPn
f  AOEA  PRPn

Προοπτική Προβολή στο ΜΠ ΙΙ


Y επίπεδο
όπισθεν
προβολής
επίπεδο
έμπροσθεν • 0, y  αποκοπής
επίπεδο max , d
αποκοπής

κεντρική ευθεία
επιπέδου προβολής

PRP •
 Z
n

0, ymin ,d 
d
f

 Διαφορές από ΜΠ Ι:
 Δ1. Πυραμίδα δεν είναι συμμετρική ως προς ΖΠ .
 Δ2. Επίπεδο προβολής δεν ταυτίζεται με έμπροσθεν επίπεδο
αποκοπής.
 Δ3. ΖΠ έχει αντίθετη φορά.
 Η Δ3 δεν επηρεάζει τους μετασχηματισμούς.
Προοπτική Προβολή στο ΜΠ ΙΙ
 Η Δ1 αντιμετωπίζεται με μια αρχική στρέβλωση των x και y.
 xmax  xmin 
1 0
2d
0
 ymax  ymin 
O
PΜΠ ΙΙ  0 1 0
 2d 
0 0 1 0
0 0 0 1

Y  xmax  xmin ymax  ymin 


 , ,d
 2 2 

Z


 xmax  xmin ymax  ymin 
 , ,d
 2 2 

Προοπτική Προβολή στο ΜΠ ΙΙ


 Μετατροπή σε κανονική πυραμίδα (45ο πλευρές). Αντίστοιχο  
P

 2d 
x  x 0 0 0
 max min

 2d
 ΙΙ
PΜΠ  0 0 0
 ymax  ymin 
 0 0 1 0
 
 0 0 0 1

 Π.χ. Μετατροπή κέντρου αρχικού παραθύρου

 xmax  xmin 
 2 
y  y   0 
 max min
  0 

 ΙΙ  PΜΠ
PΜΠ  2  
ΙΙ
 d   d 
   1 
   
 1 
 
Προοπτική Προβολή στο ΜΠ ΙΙ
 Μετατροπή σε ορθογώνιο παραλληλεπίπεδο. Αντίστοιχο  Ι
PΜΠ
( d  n λόγω της Δ2):
 
1 0 0 0 
 
0 1 0 0 
 ΙΙ
PΜΠ  
0 f fn 
0 
 fn f  n
 
0 0 1 0 

 Συνοψίζοντας για προοπτική προβολή στο ΜΠ ΙΙ:


 Μετασχηματισμός Τ για κέντρο PRP

  ΙΙ  PΜΠ
PΜΠ ΙΙ  PΜΠ  ΙΙ  PΜΠ ΙΙ

 (Αποκοπή).
 Διαίρεση με w.

Παράλληλη Προβολή στο ΜΠ ΙΙ


 Υλοποιείται με μετατροπή όγκου αποκοπής στο μοναδιαίο κύβο.
 Διεύθυνση προβολής δίνεται από κέντρο παραθύρου (CW ) και PRP :

DOP  CW  PRP
T
 u  umin vmax  vmin 
  max , , n, 1  PRPu , PRPv , PRPn , 1
T

 2 2 
 u  umin v v
T

  max  PRPu , max min  PRPv , n  PRPn , 0
 2 2 
 DOPu , DOPv , DOPn , 0
T

 Αν DOPu  0 ή DOPv  0 τότε η προβολή είναι πλάγια.


Παράλληλη Προβολή στο ΜΠ ΙΙ
 Μετατροπή DOP ώστε να ταυτισθεί με VPN

V DOP YΠ

VPN DOP

N  ZΠ

 Απαιτείται στρέβλωση u και v κατά μήκος N με πίνακα  ΙΙ


LΜΠ
DOP  0,0, DOPn ,0  LΜΠ
 ΙΙ  DOPu , DOPv , DOPn ,0
T T

άρα
DOPu  a  DOPn  0  a   DOPu / DOPn
DOPv    DOPn  0     DOPv / DOPn
Ο πίνακας της στρέβλωσης είναι:

1 0  0  1 0  DOPu / DOPn 0
0 1  0  0 1  DOPv / DOPn 0
 ΙΙ
LΜΠ   
0 0 1 0  0 0 1 0
   
0 0 0 1  0 0 0 1

Παράλληλη Προβολή στο ΜΠ ΙΙ


 Ο  ΙΙ
LΜΠ εφαρμόζεται στα αντικείμενα και στις κορυφές του παραθύρου:

xmin , ymin , z, 1T  ΙΙ  umin , vmin , n, 1


 LΜΠ
T

xmax , ymax , z, 1T  ΙΙ  umax , vmax , n, 1


 LΜΠ
T

 Νέος χώρος αποκοπής: ορθογώνιο παραλληλεπίπεδο με πλευρές


παράλληλες με επίπεδα ΧΥ, ΥΖ και ΧΖ .

Y ( xmax , ymax , AOEA)



( xmin , ymin , AEEA)
X
Z
Παράλληλη Προβολή στο ΜΠ ΙΙ
 Μετατροπή ορθογώνιου παραλληλεπίπεδου στο μοναδιαίο κύβο:
 Μεταφορά:
1 0 0  xmin 
0 1 0  ymin 
 ΙΙ
LΜΠ  
0 0 1  AEEA
 
0 0 0 1 

 Αλλαγή κλίμακας:
 1 
 0 0 0 
xmax  xmin
 
 1 
 ΙΙ 0 0 0
LΜΠ  ymax  ymin 
 1 
 0 0 0 
 AOEA  AEEA 
 0 0 0 1 

 Τελικά:  ΙΙ  LΜΠ


LΜΠ ΙΙ  LΜΠ  ΙΙ  LΜΠ
 ΙΙ

Αποκοπή στον ΜΠ ΙΙ
 Μετά από κανονικοποίηση ( PΜΠ
 ΙΙ ή LΜΠ
 ΙΙ ).

 Ορια αποκοπής:
 Για την προοπτική προβολή (πριν από διαίρεση με w):

w x w
w yw
0 zw
 Για την παράλληλη προβολή:
0  x 1
0  y 1
0  z 1
 Π.χ. για Cohen-Sutherland χρησιμοποιούμε 6-bit κωδικούς:
Σημασία για σημείο (x, y, z) με προβολή:
Προοπτική Παράλληλη
Bit 0 = 1 z<0 z<0
Bit 1 = 1 z>w z>1
Bit 2 = 1 x < -w x<0
Bit 3 = 1 x>w x>1
Bit 4 = 1 y < -w y<0
Bit 5 = 1 y>w y>1
Αποκοπή στον ΜΠ ΙΙ
 Εύρεση τομής ευθύγραμμου τμήματος s με επίπεδο
αποκοπής:
 Παραμετρική εξίσωση s από a  [a x , a y , a z , 1] σε b  [bx , by , bz , 1]

a  μ  b  a  0  μ 1

 Π.χ. για y-συντεταγμένη τομής με επίπεδο y=1 (παράλληλη προβολή):


1  ay
a y  μ  by  a y   1  μ 
by  a y

 Π.χ. για y-συντεταγμένη τομής με επίπεδο y=w=z (προοπτική


προβολή):
a y  μ  by  a y   a z  μ  bz  a z 
az  a y
 μ
by  a y   bz  az 

Μετασχηματισμός Viewport στον ΜΠ ΙΙ


 Μετασχηματισμός κανονικοποιημένων συντεταγμένων σε viewport
xmin , ymin , zmin , xmax , ymax , zmax  εντός του μοναδιαίου κύβου.
 Απαιτείται αλλαγή κλίμακας και μεταφορά T .S
 Παράλληλη προβολή: όρια κανονικοποιημένων συντεταγμένων 0  x, y, z  1

 xmax  xmin 0 0 0 
 0 ymax  ymin 0 0 
S 
 0 0 z max  z min 0 
 
 0 0 0 1 

 1 0 0 xmin 
 0 1 0 ymin 
T  
 0 0 1 z min 
 
 0 0 0 1 
Μετασχηματισμός Viewport στον ΜΠ ΙΙ
 Προοπτική προβολή: όρια κανονικοποιημένων συντεταγμένων  1  x, y  1
0  z 1
 xmax  xmin 
 0 0 0 
2
 ymax  ymin 
 0 0 0 
S   2 
 0 0 z max  z min 0 
 
 
 0 0 0 1 
 

 xmax  xmin 
 1 0 0 
2
 ymax  ymin 
T   0 1 0 
 2 
 0 0 1 z min 
 0 0 0 1 

 z συντεταγμένη φυλάσσεται για απόκρυψη.

Αλγόριθμοι Απόκρυψης
Πρόβλημα Απόκρυψης
 Ποιο είναι το εμφανές αντικείμενο (χρώμα) σε κάθε σημείο του επιπέδου
προβολής;

Επίπεδο προβολής Εμφανές αντικείμενο στο σημείο Σ

 Χωρίζονται σε αλγόριθμους απόκρυψης ακμών και επιφανειών.


 Χρησιμοποιούν άμεσα ή έμμεσα ταξινόμηση στις διαστάσεις X Y και Z.

Αλγόριθμοι Απόκρυψης
 Χωρίζονται σε αλγόριθμους χώρου αντικειμένων και αλγόριθμους χώρου εικόνας.
 Αλγόριθμοι χώρου αντικειμένων συγκρίνουν αντικείμενα μεταξύ τους για να
βρουν το πλησιέστερο σε κάθε σημείο του επιπέδου προβολής:
Για κάθε αντικείμενο π{
Εύρεση των ορατών τμημάτων του π μέσω σύγκρισης (Χ,Υ,Ζ)
με όλα τα άλλα αντικείμενα;
Χρωματισμός των ορατών τμημάτων του π στην οθόνη
}
 Αλγόριθμοι χώρου εικόνας έχουν την εξής μορφή:
Για κάθε pixel ρ της εικόνας
{Εύρεση του πλησιέστερου αντικειμένου που τέμνεται από την
ακτίνα προβολής που περνά από το ρ;
Χρωματισμός του ρ με το χρώμα του πλησιέστερου αντικειμένου στο σημείο τομής
}
 Αλγόριθμοι χώρου αντικειμένων είναι ενώ αλγόριθμοι χώρου εικόνας είναι
O Πκαι
όπου Π ο αριθμός των πολυγώνων 2
 P ο αριθμός των pixels.
O Π  Ρ 
Αλγόριθμοι Απόκρυψης
 Υπολογιστική ακρίβεια.
 Αλγόριθμοι χώρου εικόνας: ακρίβεια που απαιτεί η ανάλυση της εικόνας.
 Αλγόριθμοι χώρου αντικειμένων: ακρίβεια ορισμού αντικειμένων (=ακρίβεια
υπολογιστή).
 Θέση στη γραφική σωλήνωση εξόδου.
 Αλγόριθμοι χώρου αντικειμένων: μετά την προβολή (διακεκομμένη γραμμή).
 Αλγόριθμοι χώρου εικόνας: ενσωματώνονται στη διαδικασία παράστασης στην
οθόνη.
 Διαγραφή πίσω επιφανειών.
Θέση
Θέσεις αντικειμένων
παρατηρητή
και φωτεινών πηγών

3Δ 3Δ 3Δ Διαγραφή
Μετασχ/σμοί Μετασχ/σμός Πίσω 3Δ
Μαθηματικά
Μοντέλου Παρατήρησης Επιφανειών Αποκοπή
Μοντέλα

Είσοδοι
(για κάθε καρέ) Παράσταση
Στην Οθόνη:
Σάρωση Απόκρυψη
Αντιταύτιση Γραμμών/ Προβολή
Φωτισμός Επιφανειών
Υφή

Αλγόριθμοι Απόκρυψης

 Τεχνικές βελτίωσης αποτελεσματικότητας αλγορίθμων


απόκρυψης.
 Εκμετάλλευση προοπτικού μετασχηματισμού.
 Εκμετάλλευση συνάφειας.
 Περιβάλλοντες όγκοι.
 Διαμερισμός χώρου.
Προοπτικός Μετασχηματισμός
 Ζήτημα απόκρυψης μεταξύ δύο σημείων Σ1  x1,y1,z1 και Σ 2  x2 ,y2 ,z 2  υπάρχει
μόνο αν τα δύο σημεία βρίσκονται πάνω στην ίδια ακτίνα προβολής.
YΠ YΠ
Ακτίνες
Σ2 προβολής
• Ακτίνες Σ1 •
προβολής

Σ1
Σ2
ZΠ ZΠ
XΠ Παράλληλη προβολή XΠ Προοπτική προβολή
 Συνθήκη απόκρυψης στην παράλληλη προβολή:
 x1  x2  &  y1  y2 
 Συνθήκη απόκρυψης στην προοπτική προβολή:
 x1 / z1  x2 / z2  &  y1 / z1  y2 / z2 
 Απαιτεί (ακριβή) διαίρεση με z.
 Η διαίρεση αυτή γίνεται κατά την προοπτική προβολή.
 Η προοπτική προβολή μετατρέπει τις ακτίνες προβολής σε παράλληλες.
 Φυλάμε z συντεταγμένη για σύγκριση βάθους.

Συνάφεια

 Συνάφεια: ιδιότητα γεωμετρικών οντοτήτων να


διατηρούν τοπικά σταθερές τις τιμές των
χαρακτηριστικών τους ή να τις μεταβάλλουν ομαλά.
 Π.χ. αυξητικός υπολογισμός z σημείων πολυγώνου.

 Είδη συνάφειας:
 Συνάφεια ακμής.
 Συνάφεια επιφάνειας.
 Συνάφεια γραμμών σάρωσης.
 Συνάφεια καρέ.
Περιβάλλοντες Όγκοι

 Απλούστεροι όγκοι από τα αντικείμενα που περιβάλλουν για


μείωση κόστους συγκρίσεων κατά την ταξινόμηση στις
διαστάσεις Χ, Υ και Ζ.
 Συχνά έχουν τη μορφή ορθογώνιου παραλληλογράμμου (2Δ) ή
ορθογώνιου παραλληλεπιπέδου (3Δ).
 Οχι απαραίτητα κλειστοί.

Διαμερισμός Χώρου

 Διαμέριση χώρου σε σύνολο διατεταγμένων μερών


(π.χ. voxels).

 Τα μέρη του χώρου που καταλαμβάνει ένα αντικείμενο


ορίζουν έμμεσα τη διάταξή του σε σχέση με άλλα αντικείμενα.
Διαγραφή Πίσω Επιφανειών
επιφάνεια Γορατή

  90
V • Γ
 90

επιφάνεια Β ορατή  90 •
A
B
 Α πίσω επιφάνεια
N
 
 Έστω N το κάθετο διάνυσμα σε μία επιφάνεια και V το διάνυσμα παρατήρησης
 
 Αν η γωνία μεταξύ V και N είναι < 90° τότε η επιφάνεια είναι ορατή, αλλιώς
θεωρείται πίσω επιφάνεια(αόρατη).
 
 Μια επιφάνεια είναι ορατή αν V NVx  Nx Vy Ny Vz  Nz 0
 Μειώνει όγκο δεδομένων κατά ~50%.
 Λύνει πρόβλημα απόκρυψης για ένα κυρτό αντικείμενο.

Διαγραφή Πίσω Επιφανειών


 Λειτουργεί στο χώρο αντικειμένων και είναι O Π  .

 V μπορεί να υπολογισθεί από μία κορυφή P της επιφάνειας.
 
 Αν ο παρατηρητής βρίσκεται στο κέντρο του ΣΣΠ τότε V   P

 N μπορεί να υπολογισθεί από 3 διαδοχικές, μη συγγραμμικές κορυφέςP1 P2 και P3
  
N  A  B  P 2  P1   P 3  P1 


N

 • P3
B
P1 • •

A

P2

   
 Προσοχή A B  B  A . Χρήση σειράς κορυφών.
Αλγόριθμοι Απόκρυψης Επιφανειών

 Ακολούθησαν την εμφάνιση της πλεγματικής οθόνης.

 4 Βασικές κατηγορίες.
 z-buffer (πιο διαδεδομένος).
 scanline.
 ταξινόμηση κατά βάθος.
 υποδιαίρεση επιφάνειας.

Αλγόριθμοι Απόκρυψης Επιφανειών


 Βασική πράξη: σύγκριση βάθους 2 στοιχείων με ίδιο ΧΥ.
 Η προοπτική προβολή διευκολύνει.

 Μετατρέπει ακτίνες προβολής ώστε να είναι παράλληλες του Z.

 Ίσες αποστάσεις στον Ζπ δεν μετασχηματίζονται σε ίσες αποστάσεις στον Ζο .

 Ζο μεταβάλλεται ταχύτερα καθώς πλησιάζει τη μέγιστη τιμή του (1).


YO Πρoοπτική προβολή

 ZO
XO
Αλγόριθμος z-buffer

 Απαιτεί ύπαρξη μνήμης βάθους (z-buffer) για κάθε pixel.


 Οι τιμές βάθους βρίσκονται (για τα περισσότερα σχήματα)
με παρεμβολή.
 Έμμεση ταξινόμηση.

 Για κάθε pixel ο z-buffer φυλάει την ελάχιστη (ως τώρα)


τιμή βάθους στο pixel αυτό.
 Αρχικοποίηση στο μέγιστο z (πίσω επίπεδο αποκοπής).

Αλγόριθμος z-buffer
/* Αλγόριθμος z-buffer */
/* Αρχικοποίηση: m,n οι διαστάσεις της οθόνης */
for (x=0; x<m; x++) {
for (y=0; y<n; y++) {
z_buffer[x,y]=f; /*μέγιστο βάθος*/
frame_buffer[x,y]=background; /*φόντο*/
}
}
/*Επεξεργασία πολυγώνων*/
for (π=0; π<number_of_polygons(); π++) {
/*Επεξεργασία scanlines πολυγώνου ymin…ymax*/
for (y=ymin; y<=ymax; y++) {
/*Βρες με γραμμική παρεμβολή μεταξύ των αντίστοιχων κορυφών,
τις τιμές τομής με scanline y :xleft,xright
τις τιμές βάθους στις τομές :zleft,zright
τις τιμές χρωματισμού στις τομές :cleft,cright*/
for (x=xleft; x<=xright; x++) {
/*Βρες με γραμμική παρεμβολή μεταξύ xleft και xright την τιμή
βάθους z και χρώματος c σε κάθε pixel x,y*/
if (z<z_buffer[x,y]) {
z_buffer[x,y]=z;
frame_buffer[x,y]=c;
}}}}
Αλγόριθμος z-buffer

 Πολυπλοκότητα: O Π  S  , όπου Π ο αριθμός πολυγώνων και S o μέσος


αριθμός pixel ανά πολύγωνο.
 Για τυπικές σκηνές Π  S  m  n (σταθερό).

 Ανάγκη σε μνήμη:
 Ένας καλός z-buffer απαιτεί 32 bits/pixel.

 Για ανάλυση 1024x1024 αυτό συνεπάγεται 4Mbytes.

Ερωτήσεις
1. Ποιες διαδικασίες ταξινόμησης χρησιμοποιούν οι αλγόριθμοι απόκρυψης;

i. Ταξινόμηση στην οριζόντια και κάθετη διάσταση Χ και Υ, για να βρούμε ποια
αντικείμενα τέμνονται από την κάθε ακτίνα προβολής και να επιλέξουμε το πλησιέστερο
από αυτά σαν εμφανές στο αντίστοιχο σημείο.
ii. Ταξινόμηση στη διάσταση του βάθους Ζ, καθώς όσο μακρύτερα είναι ένα αντικείμενο,
τόσο λιγότερο πιθανό είναι να είναι ορατό.

2. Ποια από τις παρακάτω αποτελεί τη συνθήκη απόκρυψης στην παράλληλη


προβολή;

a.  x1  x2  &  y1  y2  b. x1  y1  & x 2  y 2 


c. x1  x 2  d.  x1 / z1  x2 / z2  &  y1 / z1  y2 / z2 
Σωστή απάντηση a.

3. Ποια από τις παρακάτω αποτελεί τη συνθήκη απόκρυψης στην προοπτική


προβολή;
a. x1 / z1  x 2 / z 2  b.  x1 / z1  x2 / z2  &  y1 / z1  y2 / z2 
c.  x1  x2  &  y1  y2  d. y 1 / z 1  y 2 / z 2 
Σωστή απάντηση b.
Ερωτήσεις
4. Αν οι περιβάλλοντες όγκοι δύο αντικειμένων δεν τέμνονται τότε τα αντικείμενα
τέμνονται;

Αν οι περιβάλλοντες όγκοι δύο αντικειμένων δεν τέμνονται, τότε δεν μπορούν να τέμνονται ούτε
τα ίδια τα αντικείμενα, όπως φαίνεται και στο παρακάτω σχήμα:
Οι περιβάλλοντες όγκοι δεν
τέμνονται αλλά και τα ίδια τα
αντικείμενα δεν τέμνονται

5. Το αντίθετο ισχύει πάντα;


Όχι. Αν οι περιβάλλοντες όγκοι δύο αντικειμένων τέμνονται, τότε απαιτείται περισσότερη
επεξεργασία για να αποφανθούμε αν τα αντικείμενα τέμνονται ή όχι, όπως φαίνεται και στο
παρακάτω σχήμα:
Οι περιβάλλοντες Οι περιβάλλοντες
όγκοι τέμνονται όγκοι τέμνονται χωρίς
μαζί με τα ίδια τα να τέμνονται τα ίδια τα
αντικείμενα αντικείμενα

Ερωτήσεις
6. Ποια συνθήκη πρέπει να ισχύει ώστε μια επιφάνεια να είναι ορατή από ένα
σημείο παρατήρησης;

Θα πρέπει η γωνία μεταξύ του διανύσματος παρατήρησης και του κάθετου διανύσματος
στην επιφάνεια να είναι μικρότερη από 90ο. Τη γωνία μεταξύ δύο διανυσμάτων την
υπολογίζουμε από το εσωτερικό τους γινόμενο. Επομένως, η επιφάνεια είναι ορατή όταν το
εσωτερικό γινόμενο των δύο παραπάνω διανυσμάτων είναι θετικό, που σημαίνει πως η
γωνία μεταξύ τους θα είναι μικρότερη από 90ο.

7. Τι συμβαίνει στην οριακή περίπτωση που η γωνία είναι ίση με 90ο;

Στην οριακή περίπτωση κατά την οποία η γωνία μεταξύ του διανύσματος παρατήρησης και
του κάθετου διανύσματος στην επιφάνεια είναι ίση με 90ο, κάποιες μόνο από τις ακμές της
επιφάνειας είναι ορατές, οι οποίες όμως μπορούν να αγνοηθούν αφού είναι κοινές με
κάποιες άλλες (ορατές) επιφάνειες.
Ερωτήσεις
8. Για ποιο λόγο χρησιμοποιείται ο z-buffer ως κύριος αλγόριθμος απόκρυψης
επιφανειών;

Τα κύρια πλεονεκτήματα του αλγορίθμου z-buffer είναι τα εξής:

i. Η ευκολία υλοποίησης του σε υλικό και λογισμικό


ii. Η δυνατότητα επεξεργασίας των πολυγώνων με τυχαία σειρά.
iii. Η δυνατότητα χρήσης του για μη πολυγωνικά αντικείμενα (με χρήση συνάρτησης
βάθους).

Αναπαράσταση & Απλοποίηση


Μοντέλων
Εισαγωγή
• Οι 3Δ εικόνες στα Γραφικά αποτελούνται από διάφορα σχήματα
& δομές:
 Γεωμετρικά σχήματα (π.χ. σφαίρες)
 Μαθηματικές επιφάνειες (π.χ. τμήματα επιφάνειας NURBS)
 Τυχαίες επιφάνειες, όχι μαθηματικά ορισμένες (π.χ. επιφάνεια
ψηφιοποιημένου αντικειμένου)
 Αντικείμενα όγκου, όπου η εσωτερική δομή του αντικειμένου είναι
εξίσου σημαντική με την επιφάνεια του (π.χ. ανθρώπινο όργανο)
 Ακανόνιστα αντικείμενα (π.χ. καπνός)
• Μοντέλα: Προσεγγιστικές αναπαραστάσεις αντικειμένων,
κατασκευασμένα ώστε να διατηρούν πολλές από τις ιδιότητες
του αντικειμένου
• Τα μοντέλα επιδέχονται την επεξεργασία που απαιτούν οι
αλγόριθμοι γραφικών

Εισαγωγή (2)
• Πολυγωνικά Μοντέλα: Συνηθέστερη αναπαράσταση
επιφανειών
• Η πληροφορία που περιέχεται στα μοντέλα αυξάνεται
συνεχώς
• Βασικές εφαρμογές στα Γραφικά συχνά απαιτούν
μοντέλα με λιγότερη πληροφορία
• Απλοποίηση Μοντέλου: Μειώνει την ποσότητα
πληροφορίας που περιέχει ένα μοντέλο, χωρίς να
θυσιάσει σημαντικά την ποιότητα της αναπαράστασης

3
Ανασκόπηση Μοντέλων
• 2 κύριες κατηγορίες μοντέλων:
 Αναπαράσταση Επιφάνειας (ή αναπαράσταση συνόρου (b-rep))
u Αναπαριστά μόνο την επιφάνεια αντικειμένου

 Αναπαράσταση Όγκου (ή υποδιαίρεση χώρου)


u Αναπαριστά όλο τον όγκο που καταλαμβάνει ένα αντικείμενο

• Η αναπαράσταση επιφάνειες χρησιμοποιείται συχνότερα διότι:


 Πολλά αντικείμενα δεν είναι κλειστά  αναπαράσταση όγκου μη
εφαρμόσιμη
 Τα περισσότερα αντικείμενα είναι αδιαφανή  εξοικονόμηση
επεξεργασίας με την αναπαράσταση μόνο της επιφάνειας τους, που
καθορίζει την εμφάνιση τους
• Η αναπαράσταση όγκου χρησιμοποιείται:
 Για ημιδιαφανή αντικείμενα
 Για αντικείμενα με ενδιαφέρουσα εσωτερική δομή
 Σαν βοηθητική δομή σε γενικούς αλγόριθμους γραφικών
4

Ανασκόπηση Μοντέλων (2)


• Κάποια μοντέλα δεν κατηγοριοποιούνται εύκολα σε μια από τις
παραπάνω κατηγορίες:
 Μοντέλα κατασκευαστικής στερεάς γεωμετρίας (CSG): αναπαριστούν ένα
αντικείμενο συνδυάζοντας στοιχειώδη γεωμετρικά σχήματα
 Άμορφα αντικείμενα & φαινόμενα: μοντελοποιούνται σαν νέφη σημείων ή
σαν συνοθύλευμα στοιχειωδών επιφανειών ή όγκων
• Τα Μοντέλα Επιφάνειας κατηγοριοποιούνται:
 Σε αυτά που έχουν κάποια μαθηματική περιγραφή όπως:
u Στοιχειώδη Γεωμετρικά Σχήματα

u Επιφάνειες NURBS

u Επιφάνειες Υποδιαίρεσης

u Γενικές Παραμετρικές Επιφάνειες

 Και σε αυτά που δεν έχουν κάποια μαθηματική περιγραφή:


u Αποτελούνται από ένα σύνολο σημείων & ένα σύνολο πολυγώνων

που κατασκευάζονται από τα σημεία του συνόλου σαν κορυφές 


πολυγωνικά μοντέλα
5
Ανασκόπηση Μοντέλων (3)
• Συγκρίνοντας τις δυο μορφές των μοντέλων επιφάνειας:
 Τα μαθηματικά μοντέλα:
u Είναι συνήθως ακριβείς αναπαραστάσεις αντικειμένων

u Επιτρέπουν ακριβείς υπολογισμούς για το αντικείμενο (π.χ. κανονικό

διάνυσμα)
u Περιορίζονται σε ορισμένα είδη αντικειμένων

u Δεν μπορούν να περιγράψουν τυχαία σχήματα

 Τα πολυγωνικά μοντέλα:
u Είναι προσεγγίσεις των αρχικών αντικειμένων

u Αν χρησιμοποιούνται αρκετές κορυφές, είναι αρκετά ακριβείς


προσεγγίσεις
u Είναι πιο γενικά

u Ακόμα και η μαθηματικές αναπαραστάσεις συνήθως


κατασκευάζονται σε μια ‘διακριτή’ μορφή πολυγωνικών μοντέλων

Ανασκόπηση Μοντέλων (4)


• Τα πολύγωνα μπορεί να αποτελούνται από οποιοδήποτε πλήθος
κορυφών. Στην πράξη:
 Τετράπλευρα
 Τρίγωνα
• Πολυγωνικά Μοντέλα Τετραπλεύρων:
 Παράγονται κατά τον σχεδιασμό παραμετρικών επιφανειών
 Δυστυχώς, ένα τετράπλευρο στις 3Δ δεν είναι απαραίτητα επίπεδο:
u Περιορίζεται το σχήμα και η ευελιξία του μοντέλου

u Δυσκολότεροι υπολογισμοί

• Πολυγωνικά Μοντέλα Τριγώνων:


 Ένα τρίγωνο είναι πάντα επίπεδο
 Κάθε πολύγωνο τριγωνοποιείται εύκολα  τριγωνικό μοντέλο παράγεται
από οποιοδήποτε πολυγωνικό μοντέλο  τριγωνικά μοντέλα (ή
τριγωνικά πλέγματα) χρησιμοποιούνται σχεδόν πάντα σε εφαρμογές που
περιλαμβάνουν πολυγωνικά μοντέλα
7
Ανασκόπηση Μοντέλων (5)
• Τα πολυγωνικά μοντέλα γενικεύονται σε πολυεδρικά μοντέλα
για την αναπαράσταση όγκου
• Βασικό πολυεδρικό σχήμα είναι το τετράεδρο  τα τετραεδρικά
πλέγματα είναι η πιο γενική & ευέλικτη αναπαράσταση όγκου
• Τα μοντέλα που αποτελούνται από παραλληλεπίπεδα είναι πολύ
διαδεδομένα, κυρίως σαν παράγωγα διαδικασιών υποδιαίρεσης
του χώρου που χρησιμοποιούν ορθογώνια πλέγματα
• Δομικό στοιχείο των παραλληλεπιπέδων καλείται ογκοστοιχείο
• Χρησιμοποιούνται ακόμα Ιεραρχικές αναπαραστάσεις όγκου
(οκταδικά δέντρα, δέντρα δυαδικής διαμέρισης χώρου)

• Θα επικεντρωθούμε στα πολυγωνικά μοντέλα


8

Ιδιότητες Πολυγωνικών Μοντέλων


• Μοντέλο επιφάνειας πολλαπλότητας 2Δ (ή απλά πολλαπλότητα):
Κάθε σημείο της επιφάνειας έχει γειτνίαση ομοιομορφική με έναν
ανοικτό δίσκο (εσωτερικό κύκλου)
 Αν και η επιφάνεια υπάρχει στον 3Δ χώρο, όταν εξεταστεί σε μια μικρή
περιοχή γύρω από ένα σημείο είναι τοπολογικά επίπεδη
• Σε μια επιφάνεια-πολλαπλότητα:
 Κάθε ακμή μοιράζεται μεταξύ ακριβώς 2 εδρών
 Γύρω από κάθε κορυφή υπάρχει ένας κλειστός βρόγχος εδρών
• Επιφάνεια πολλαπλότητα με σύνορο: Κάθε σημείο της επιφάνειας
έχει γειτνίαση ομοιομορφική με έναν μισό δίσκο
• Σε μια επιφάνεια πολλαπλότητα με σύνορο:
 Κάποιες ακμές (συνοριακές) ανήκουν ακριβώς σε μια έδρα
 Γύρω από κάποιες κορυφές (συνοριακές) ο βρόγχος εδρών είναι ανοικτός
• Συνήθως, μια 3Δ επιφάνεια που δεν είναι πολλαπλότητα με σύνορο
είναι μια κλειστή επιφάνεια 9
Ιδιότητες Πολυγωνικών Μοντέλων (2)
(a) Τμήμα επιφάνειας πολλαπλότητας
(b) Συνοριακή κορυφή επιφάνειας πολλαπλότητας με σύνορο
(c) Ακμή που δεν ανήκει σε επιφάνεια πολλαπλότητας
(d) Μη συνοριακή κορυφή που δεν ανήκει σε επιφάνεια πολλαπλότητας

10

Ιδιότητες Πολυγωνικών Μοντέλων (3)


• Ένα μοντέλο επιφάνειας είναι ένα απλοειδές σύμπλοκο αν τα
πολύγωνα που το αποτελούν εφάπτονται μόνο κατά μήκος των
ακμών τους, και οι ακμές του μοντέλου τέμνονται μόνο στα άκρα
τους

• (a) Απλοειδές σύμπλοκο (b) Μη απλοειδές σύμπλοκο


(τριγωνικό πλέγμα) (τριγωνικό πλέγμα)

11
Ιδιότητες Πολυγωνικών Μοντέλων (4)
• Προσανατολισμένη επιφάνεια: Επιφάνεια που έχει 2 “όψεις”
 Όπως μια κόλλα χαρτιού
• Οι περισσότερες επιφάνειες είναι προσανατολισμένες
• Στις κλειστές προσανατολισμένες επιφάνειες το ‘εσωτερικό’ &
‘εξωτερικό’ τμήμα της επιφάνειας είναι σαφώς διακριτά
• Κατά σύμβαση, το κανονικό διάνυσμα μιας κλειστής
προσανατολισμένης επιφάνειας δείχνει προς την ‘έξω’ μεριά
• Η ταινία Moebius είναι μια μη προσανατολισμένη επιφάνεια

12

Ιδιότητες Πολυγωνικών Μοντέλων (5)


• Τα κλειστά μοντέλα πολλαπλότητας που είναι ομοιομορφικά ως
προς τη σφαίρα, ικανοποιούν τον τύπο του Euler:
V–E+F=2
όπου:


V: # κορυφών
E: # ακμών του μοντέλου
F: # εδρών

13
Ιδιότητες Πολυγωνικών Μοντέλων (6)
• Για ένα κλειστό τριγωνικό μοντέλο ο παραπάνω τύπος
υποδηλώνει:
 Ότι το πλήθος των τριγώνων του μοντέλου είναι σχεδόν 2-πλάσιο του
πλήθους των κορυφών
 Ότι ο μέσος αριθμός τριγώνων γύρω από μια κορυφή είναι 6
• Ο τύπος του Euler γενικεύεται για μοντέλα που δεν είναι
πολλαπλότητες:
V – E + F = 2 – 2G
όπου G είναι το γένος (genus) του μοντέλου
• Το γένος ενός μοντέλου μπορεί να θεωρηθεί το πλήθος των
διαμπερών οπών του μοντέλου:
 Ο τόρος (torus) έχει γένος 1
 Ο διπλός τόρος έχει γένος 2

14

Δομές Δεδομένων για Πολυγωνικά Μοντέλα


• Πολλές δομές δεδομένων έχουν προταθεί για την
αναπαράσταση πολυγωνικών μοντέλων. Διαφέρουν:
 Στον τύπο των πολυγωνικών μοντέλων που μπορούν να αναπαραστήσουν
 Στην ποσότητα & τύπο πληροφορίας που φυλάσσουν άμεσα για το
μοντέλο
 Στις λοιπές πληροφορίες που μπορούν να παράγουν έμμεσα για το
μοντέλο

• Χρήσιμες πληροφορίες για τα Γραφικά:


 Τοπολογικές πληροφορίες: αν το μοντέλο είναι πολλαπλότητα, είναι
κλειστό, έχει όριο ή έχει τρύπες
 Πληροφορίες γειτνίασης: γειτονικές έδρες δοθέντων ακμών και εδρών,
γειτονικές ακμές και έδρες γύρω από δοθείσα κορυφή, σύνορο ενός
ανοικτού μοντέλου
 Χαρακτηριστικά συνημμένα στο μοντέλο: κανονικά διανύσματα, χρώματα,
ιδιότητες υλικού, συντεταγμένες υφής
15
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (2)
• Οι βασικότερες δομές δεδομένων που χρησιμοποιούνται:


Άμεση λίστα ακμών
Άμεση λίστα εδρών  περιέχουν για κάθε ακμή/έδρα του μοντέλου
τις συντεταγμένες των αντίστοιχων κορυφών
Παράδειγμα:
• Για το τετράεδρο της εικόνας ισχύει:
 Λίστα ακμών:
e0 =( (x 0 ,y 0 ,z 0 ), (x1 ,y1 ,z1 )), e3 = ( (x1 ,y1 ,z1 ), (x 2 ,y 2 ,z 2 )),
e1 =( (x 0 ,y0 ,z 0 ), (x 2 ,y 2 ,z 2 )), e4 = ( (x1 ,y1 ,z1 ), (x 3 ,y3 ,z3 )),
e 2 =( (x 0 ,y0 ,z 0 ), (x 3 ,y3 ,z 3 )), e5 = ( (x 2 ,y 2 ,z 2 ), (x 3 ,y3 ,z3 ))

 Λίστα εδρών:
f 0 =((x 3 ,y3 ,z3 ), (x 2 ,y 2 ,z 2 ),(x1 ,y1 ,z1 )),
f1 =((x 2 ,y 2 ,z 2 ), (x 3 ,y3 ,z 3 ),(x 0 ,y 0 ,z 0 )),
f 2 =((x1 ,y1 ,z1 ), (x 0 ,y0 ,z 0 ),(x 3 ,y3 ,z3 )),
f3 =((x 0 ,y0 ,z 0 ),(x1 ,y1 ,z1 ), (x 2 ,y 2 ,z 2 ))
16

Δομές Δεδομένων για Πολυγωνικά Μοντέλα (3)


• Λίστα ακμών:
 Δεν αναπαριστά επιφάνεια
 Δεν καθορίζει τις έδρες του μοντέλου
 Οι έδρες πρέπει να συμπεραθούν από τα δεδομένα των ακμών  οδηγεί
σε πιθανές ασάφειες

• Λίστα εδρών:
 Οι συντεταγμένες κάθε κορυφής επαναλαμβάνονται για κάθε ακμή ή
έδρα που την περιέχει  σπατάλη χώρου
 Δεν δίνει πληροφορίες για την γειτνίαση των εδρών και των ακμών
 Οι κορυφές μπορούν να ανιχνευθούν με σύγκριση συντεταγμένων 
μπορεί να προκύψουν προβλήματα αριθμητικής ακρίβειας  ο
υπολογισμός της γειτνίασης μπορεί να παρουσιάζει προβλήματα

17
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (4)
• Αρκετά από τα παραπάνω μειονεκτήματα επιλύονται από την
δεικτοδοτημένη λίστα εδρών:
 Περιέχει λίστα κορυφών & λίστα εδρών του μοντέλου
 Οι κορυφές των εδρών δίνονται σαν αναφορές στη λίστα κορυφών

• Παράδειγμα: το προηγούμενο τετράεδρο αναπαρίσταται ως:


v 0 =(x 0 ,y 0 ,z 0 ), f 0 = (v 3 , v 2 , v1 ),
v1 =(x1 ,y1 ,z1 ), f1 = (v 2 , v 3 , v 0 ),
v 2 =(x 2 ,y 2 ,z 2 ), f 2 = (v1 , v 0 , v 3 ),
v 3 =(x 3 ,y3 ,z3 ), f3 = (v 0 , v1 , v 2 )
• Για την αναπαράσταση προσανατολισμένων μοντέλων με χρήση της
δεικτοδοτημένης λίστας εδρών, συνηθίζεται να ταξινομούνται οι κορυφές
των εδρών είτε με την φορά των δεικτών του ρολογιού είτε αντίστροφα 
ευκολότεροι υπολογισμοί
18

Δομές Δεδομένων για Πολυγωνικά Μοντέλα (5)

• Δεικτοδοτημένη λίστα εδρών:


 Μπορεί να αναπαραστήσει όλα τα είδη πολυγωνικών
μοντέλων
 Επιτρέπει άμεσες τροποποιήσεις στις θέσεις των κορυφών
του μοντέλου
 Οι ακμές των πολυγώνων μπορούν να διαπιστωθούν έμμεσα
αλλά επαναλαμβάνονται για κάθε πολύγωνο που τις
χρησιμοποιεί
 Απαιτείται κάποια διαδικασία για παραγωγή λίστας
μοναδικών ακμών
 Δεν παρέχει πληροφορίες γειτνίασης αν και τα δεδομένα της
δομής επαρκούν για τον υπολογισμό της γειτνίασης
19
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (6)
• Ειδικά για τριγωνικά μοντέλα, τα γειτονικά τρίγωνα μπορούμε
να τα χειριστούμε πιο αποδοτικά σαν ταινία τριγώνων ή
βεντάλια τριγώνων, προκειμένου να μειωθούν οι επαναλήψεις
δεδομένων

Ταινία τριγώνων Βεντάλια τριγώνων


(v0, v1, v2, v3, v4) (v0, v1, v2, v3, v4)

20

Δομές Δεδομένων για Πολυγωνικά Μοντέλα (7)


• Η δεικτοδοτημένη λίστα εδρών μπορεί να συνδυαστεί με άλλα
δεικτοδοτημένα (ως προς κορυφές ή έδρες) δεδομένα που
αφορούν άλλα γνωρίσματα του μοντέλου :
 Πχ. χρώμα

• Κάποιες δομές δεδομένων μπορούν να αναπαραστήσουν


απευθείας κάποια πληροφορία γειτνίασης & επιτρέπουν την
εύκολη παραγωγή πληροφοριών που αφορούν την γειτνίαση

• Αυτές οι δομές δεδομένων είναι δεικτοδοτημένες, περιέχουν


τουλάχιστον μια λίστα κορυφών και πραγματεύονται μοντέλα
πολλαπλότητας

21
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (8)
• Η δομή winged-edge, είναι μια τέτοια δομή:
 Κεντρικός κόμβος πληροφορίας είναι η ακμή

 Κάθε ακμή αποθηκεύει αναφορές:


u Στις 2 κορυφές της

u Στις 2 γειτονικές της έδρες

u Στις 4 γειτονικές της ακμές

22

Δομές Δεδομένων για Πολυγωνικά Μοντέλα (9)


• Η δομή ημι-ακμής είναι παρόμοια με την δομή winged-edge,
αλλά χρησιμοποιεί προσανατολισμένες ακμές:
 Κάθε ακμή διαχωρίζεται σε 2 ημι-ακμές
 Κάθε ημι-ακμή αποθηκεύει μια αναφορά:
u Στην κορυφή που αρχίζει & την κορυφή

που τελειώνει
u Στη γειτονική έδρα της

u Στις 2 γειτονικές της ημι-ακμές κατά μήκος

της γειτονικής της έδρας


u Στην αντίθετή της ημι-ακμή

 Η δομή ημι-ακμής είναι πιο αποδοτική από την


δομή winged-edge για αρκετές ερωτήσεις
γειτνίασης

23
Δομές Δεδομένων για Πολυγωνικά Μοντέλα (10)
• Η δομή Quad-edge είναι παρόμοια με τις παραπάνω:
 Είναι πιο πολύπλοκη
 Χρησιμοποιείται για τον αποδοτικό υπολογισμό ερωτήσεων γειτνίασης
 Μπορεί να αναπαραστήσει ταυτόχρονα ένα μοντέλο πολλαπλότητας & το
δυϊκό του
u Το δυϊκό μοντέλο κατασκευάζεται περιστρέφοντας τις ακμές κατά

90o, και αντικαθιστώντας τις κορυφές με έδρες & αντίστροφα


Π.χ. Το δυϊκό ενός τετραέδρου είναι ένα τετράεδρο
Το δυϊκό ενός κύβου είναι ένα οκτάεδρο & αντίστροφα

 Χρήσιμη στην υπολογιστική γεωμετρία, την αλγοριθμική δηλαδή μελέτη


γεωμετρικών προβλημάτων

24

Απλοποίηση Πολυγωνικού Μοντέλου


• Τα πολυγωνικά μοντέλα συχνά δημιουργούνται αυτόματα με:
 Σχεδίαση των επιφανειών, που είναι ορισμένες με μαθηματικό τρόπο
 3Δ σάρωση αληθινών αντικειμένων
• Η αύξηση της δύναμης των υπολογιστών και τα πλεονεκτήματα
της 3Δ σάρωσης οδηγούν σε μοντέλα με μεγάλο αριθμό
κορυφών και εδρών

• Το έργο Digital Michelangelo, π.χ., χρησιμοποίησε σαρωτές


προηγμένης τεχνολογίας για να σαρώσει και ανακατασκευάσει
κάποια από τα γλυπτά του Μιχαήλ Άγγελου
 Αποτέλεσμα: εκατομμύρια τρίγωνα (1/4 mm πλέγμα σάρωσης)
 Μερικά gigabytes δεδομένα
 Το μέγεθος της πληροφορίας είναι δύσκολο στην επεξεργασία
 Αυτή η λεπτομέρεια είναι χρήσιμη μόνο σε συγκεκριμένες εφαρμογές
25
Απλοποίηση Πολυγωνικού Μοντέλου (2)
• Οι εφαρμογές των γραφικών μπορούν να ωφεληθούν από
πολλαπλές αναλύσεις (επίπεδα λεπτομέρειας (LODs)) του
μοντέλου που μπορούν να χρησιμοποιηθούν σε διαφορετικές
συνθήκες θέασης
 Όταν η προβολή του μοντέλου είναι μικρή, μόνο ένα μικρό τμήμα
λεπτομέρειας είναι ορατό
• Είναι επίσης ωφέλιμο να μεταβάλλεται η λεπτομέρεια σε
διαφορετικές περιοχές του ίδιου μοντέλου
 Συνεπίπεδα τρίγωνα συγχωνεύονται σε λιγότερα και μεγαλύτερα τρίγωνα
 Περιοχές κοντά στον παρατηρητή χρειάζονται περισσότερη λεπτομέρεια
από εκείνες που βρίσκονται μακριά
• Τα επίπεδα λεπτομέρειας και η επιλεκτική εκλέπτυνση είναι
κατάλληλα για αλληλεπιδραστικές εφαρμογές

26

Απλοποίηση Πολυγωνικού Μοντέλου (3)


• Διαφορετικά επίπεδα λεπτομέρειας και μεγέθη: (5000 –αριστερά- vs.
1000 –δεξιά- τρίγωνα)

• Εχουν αναπτυχθεί αρκετές τεχνικές απλοποίησης μοντέλων


• Μειώνουν τον αριθμό των εδρών ενός πολυγωνικού μοντέλου, ενώ
παράλληλα προσπαθούν να διατηρούν την εμφάνιση και δομή του
αρχικού μοντέλου
• Οι σχετικές εφαρμογές, συνήθως έχουν το αρχικό μοντέλο σε
διαφορετικά επίπεδα λεπτομέρειας και δυναμικά επιλέγουν την
κατάλληλη

27
Απλοποίηση Πολυγωνικού Μοντέλου (4)

• Οι αλγόριθμοι απλοποίησης:
 Αντιμετωπίζουν ευκολότερα κλειστά πλέγματα που είναι
πολλαπλότητες
 Χειρίζονται συχνά και το σύνορο των μη-κλειστών μοντέλων

28

Απλοποίηση Πολυγωνικού Μοντέλου (5)


• Οι μέθοδοι απλοποίησης χωρίζονται σε 2 μεγάλες ομάδες:
 Αυτές που παράγουν διακριτά επίπεδα λεπτομέρειας του αρχικού μοντέλου
 Αυτές που παράγουν συνεχή επίπεδα λεπτομέρειας του αρχικού μοντέλου

• Διακριτά επίπεδα λεπτομέρειας:


 Ορίζεται ο επιθυμητός αριθμός εδρών
 Δημιουργείται ένα νέο μοντέλο με τον επιθυμητό αριθμό εδρών
 Αν ζητηθεί άλλο επίπεδο λεπτομέρειας, ο αλγόριθμος εκτελείται ξανά
• Συνεχή επίπεδα λεπτομέρειας:
 Παράγεται μια συνεχής ακολουθία από όλο και περισσότερο απλοποιημένα
μοντέλα, χρησιμοποιώντας τοπικές απλοποιήσεις του αρχικού μοντέλου
 Μπορεί να παραχθεί οποιοδήποτε ενδιάμεσο επίπεδο λεπτομέρειας, με
καταγραφή των βημάτων απλοποίησης

29
Απλοποίηση Πολυγωνικού Μοντέλου (6)
• Οι αλγόριθμοι συνεχούς απλοποίησης είναι πιο ενδιαφέροντες
από τους διακριτούς
• Είναι προσαρμοστικοί και εύκολα αντιστρέψιμοι  επιτρέπουν
την μετακίνηση «πάνω» και «κάτω» μεταξύ επιπέδων
λεπτομέρειας
• Υποστηρίζουν την επιλεκτική εκλέπτυνση, δηλαδή την δυναμική
προσαρμογή της λεπτομέρειας σε διάφορα μέρη του μοντέλου
• Ομαλή εκλέπτυνση του πλέγματος  ελαχιστοποίηση οπτικών
ατελειών κατά την εναλλαγή επιπέδων λεπτομέρειας σε
διαδραστικές εφαρμογές.

30

Απλοποίηση Πολυγωνικού Μοντέλου (7)


• Πως εκτιμούμε την ποιότητα του απλοποιημένου μοντέλου σε
σχέση με το αρχικό;

• Οι περισσότεροι αλγόριθμοι οδηγούνται από συγκεκριμένα


μέτρα για να ορίσουν, π.χ.:
 Ποια είναι η κατάλληλη θέση για μια νέα κορυφή
 Ποια ακμή πρέπει να αφαιρεθεί πρώτη για να μειωθεί η διαφορά μεταξύ
αρχικού και απλοποιημένου μοντέλου

• Αυτά τα μέτρα δίνουν επίσης μια εκτίμηση της ποιότητας του


τελικού μοντέλου  οι αλγόριθμοι απλοποίησης μπορούν να
συγκριθούν

31
Απλοποίηση Πολυγωνικού Μοντέλου (8)
• Τα πιο διαδεδομένα μέτρα, εκτιμούν κάποια απόσταση του
απλοποιημένου μοντέλου από το αρχικό:
 Απόσταση Hausdorff: μετράει τη μέγιστη απόσταση μεταξύ 2
οποιωνδήποτε σημείων δύο επιφανειών M και M’
d¥ ( M , M ') = max(max{d ( v, M ')}, max{d ( v ', M )}),
vΞ M v'Ξ M '

όπου d ( v, M ) = min{
wΞ M
v - w } είναι η απόσταση ενός σημείου v από μια
επιφάνεια M, ορισμένη ως η απόσταση του v από το πιο κοντινό σημείο
w της επιφάνειας

 1 2 επιφανειών:1
Μέση τετραγωνική απόσταση
s vς s ' v'ς
d 2 ( M , M ') = d ( v, M ') + d ( v ', M ),
ΞM ΞM '

όπου s και s’ είναι επιφάνειες των M και M’ αντίστοιχα


 Αυτές οι εξισώσεις πρέπει να είναι διακριτές για να μπορούν να
υπολογιστούν πάνω σε πολυγωνικά μοντέλα  πετυχαίνεται με τη
δειγματοληψία σημείων πάνω στις επιφάνειες 32

Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών


• Κατάρρευση Ακμής (edge collapse):
 Τοπική πράξη σε τριγωνικό πλέγμα
 Αφαιρεί μια ακμή του μοντέλου και 2 γειτονικά της τρίγωνα με την
κατάρρευση μιας ακμής σε μία κορυφή
κατάρρευση
vd ακμής
Δlt Δrt Δlt Δrt
vl Δl Δr vl
vr Δlb vs
Δrb vr
Δlb Δrb
vo διάσπαση
κορυφής

• Χρησιμοποιώντας κατάρρευση ακμών, είναι εύκολος ο υπολογισμός της


απόστασης μεταξύ του απλοποιημένου και του αρχικού μοντέλου 
διαφέρουν στις έδρες γύρω από την ακμή που κατέρρευσε
• Υποθέτουμε μοντέλα που είναι πολλαπλότητες, αλλά υπάρχουν και
παραλλαγές για μη πολλαπλότητες
33
Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (2)
• Αλγόριθμος κατάρρευσης ακμής:
1. Για κάθε ακμή του μοντέλου που μπορεί να καταρρεύσει, υπολόγισε
μια προτεραιότητα κατάρρευσης και ταξινόμησε τις ακμές σε μια
ουρά προτεραιότητας
2. Όσο υπάρχουν υποψήφιες ακμές στην ουρά και ο στόχος απλοποίησης
(μέγιστο σφάλμα, πλήθος εδρών του μοντέλου) δεν έχει επιτευχθεί:
a) Αφαίρεσε την πρώτη ακμή από την ουρά
b) Κατέρρευσε την ακμή (το πλέγμα αλλάζει μόνο τοπικά γύρω από
την ακμή)
c) Επανυπολόγισε τις προτεραιότητες των ακμών που επηρέασε η
κατάρρευση

• Παράγοντες που επηρεάζουν το αποτέλεσμα της μεθόδου:


 Το μέτρο εκτίμησης μεταβολής του πλέγματος για κάθε κατάρρευση
ακμής (εκχώρηση της προτεραιότητας)
 Η θέση της νέα κορυφής κατά την κατάρρευση ακμής

34

Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (3)

• Σε μερικές υλοποιήσεις, η θέση της νέας κορυφής είναι σταθερή


(π.χ. ένα από τα δύο άκρα ή μέσον)

• Σε άλλες υλοποιήσεις, οι παραπάνω 2 παράγοντες είναι


συσχετισμένοι:
 Η θέση της νέας κορυφής υπολογίζεται σαν αποτέλεσμα μιας μεθόδου
βελτιστοποίησης, που ελαχιστοποιεί το σφάλμα απλοποίησης
 Το ελάχιστο σφάλμα που επιτυγχάνεται χρησιμοποιείται και σαν
προτεραιότητα της κατάρρευσης ακμής

35
Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (4)
• Απλοποίηση με τη μέθοδο τετραγωνικού σφάλματος:
 Ελαχιστοποιεί την τετραγωνική απόσταση της νέας κορυφής από τις
έδρες γύρω από την ακμή που κατέρρευσε
 Έστω Δ μια τριγωνική έδρα του μοντέλου με εξίσωση επιπέδου:

ax + by + cz + d = 0
 Τετραγωνική απόσταση σημείου x = [x, y, z] από το επίπεδο Δ :
T


(ax + by + cz + d ) 2 (nT x + d ) 2
QD (x) = 2 2 2
=  2
= (nˆ T x + dˆ ) 2 = xT (nn
ˆ ˆ T )x + 2dˆnˆ T x + dˆ 2 ,
a +b +c n

n
όπου nˆ   είναι το μοναδιαίο κανονικό διάνυσμα του Δ και dˆ  
d
n n

 Μπορεί να αναπαρασταθεί από την τετραγωνική μορφή:


ˆ ˆ T , dˆ nˆ , dˆ 2 ),
QD = ( A, b, p ) = (nn
οπότε:
QD (x) = xT Ax + 2bT x + p
36

Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (5)


 Έτσι, το άθροισμα των τετραγωνικών αποστάσεων του x από 2 τρίγωνα
Δ1 και Δ2 υπολογίζεται με άθροιση των τετραγωνικών μορφών:
QD1 = ( A1 , b1 , p1 ) και QD 2 = ( A 2 , b 2 , p2 ) :
QD1 (x) + QD 2 (x) = (QD1 + QD 2 )(x) = xT ( A1 + A 2 )x + 2(b1 + b 2 )T x + ( p1 + p2 )

 Το αποτέλεσμα είναι επίσης τετραγωνικής μορφής


 Γενικεύεται για οποιοδήποτε αριθμό τριγώνων

 Ο αλγόριθμος απλοποίησης αρχικά αποδίδει σε κάθε κορυφή v του


πλέγματος, τη μορφή που εκφράζει το άθροισμα των τετραγωνικών
αποστάσεων ενός σημείου από τις έδρες γύρω από την κορυφή:

Qv = ε
D arround x
wD QD

όπου wΔ είναι το βάρος της επιφάνειας της αντίστοιχης έδρας 


καλύτερη κλιμάκωση

37
Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (6)
 Αφού η ακμή e(v0, vd) καταρρεύσει, η συνολική τετραγωνική απόσταση
της προκύπτουσας κορυφής vs από όλες τις έδρες γύρω από τις v0 και vd
είναι:
Q( v s )  Qv0 ( v s )  Qvd ( v s ) ή Q  Qv  Qv
0 d

που είναι η γνωστή μορφή Q = (A, b, p)


 Η θέση που ελαχιστοποιεί το Q είναι η βέλτιστη για την vs
 Μετά από παραγώγιση, προκύπτει ότι το ελάχιστο του Q επιτυγχάνεται
για vs = A-1b και το ελάχιστο είναι:
Q( v s )  bT A 1b  p  bT v s  p
 Αν ο A είναι ιδιάζων πίνακας η ελαχιστοποίηση περιορίζεται πάνω
στην ακμή e(v0,vd)
u Αν αποτύχει, η vs επιλέγεται ανάμεσα στις v0 και vd , ανάλογα με το ποια
κορυφή δίνει τη μικρότερη τιμή στο Q

38

Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (7)


• Η απλοποίηση με επαναληπτική κατάρρευση ακμών έχει όλες
τις ιδιότητες των μεθόδων συνεχών επιπέδων λεπτομέρειας:
 Είναι εύκολα αντιστρέψιμη με την πράξη διάσπασης κορυφής σε
αντίστροφη σειρά σε σχέση με τις καταρρεύσεις ακμών  πρέπει να
διατηρούνται οι αρχικές θέσεις κορυφών για κάθε κατάρρευση ακμής
u Προοδευτικό πλέγμα: το απλοποιημένο πλέγμα μαζί με την ακολουθία
διασπάσεων κορυφών που οδηγούν στο αρχικό
 Με τη φύλαξη πληροφορίας για γειτονικές κορυφές και έδρες κάθε
κατάρρευσης ακμής, είναι δυνατή η εφαρμογή επιλεκτικής εκλέπτυνσης
και εκτράχυνσης του πλέγματος σε περιοχές ενδιαφέροντος
 Μπορούν να εφαρμοσθούν διάφορα μέτρα σφάλματος και στρατηγικές
για την τοποθέτηση κορυφής, οπότε η μέθοδος προσαρμόζεται σε
πολλαπλούς σκοπούς και διαθέσιμους πόρους.

39
Απλοποίηση με Διαδοχικές Καταρρεύσεις Ακμών (8)
• Η απλοποίηση μεγάλων μοντέλων είναι χρονοβόρα
 Αν χρησιμοποιείται διαδικασία βελτιστοποίησης, κοστίζει ακόμα
περισσότερο  συνήθως προϋπολογίζεται
 Τα επίπεδα λεπτομέρειας μπορούν να αξιοποιηθούν διαδραστικά σε
πραγματικό χρόνο για επιλεκτική εκλέπτυνση του μοντέλου

• Η απλοποίηση με βάση την κατάρρευση ακμών διαδίδεται και


υπάρχει σε αρκετές βιβλιοθήκες γραφικών (π.χ. DirectX)

40

Ερωτήσεις
Ερώτηση 1
Ποίες είναι οι κύριες κατηγορίες μοντέλων?
 Αναπαράσταση Επιφάνειας

u Αναπαριστά μόνο την επιφάνεια αντικειμένου

 Αναπαράσταση Όγκου

u Αναπαριστά όλο τον όγκο που καταλαμβάνει ένα αντικείμενο

Ερώτηση 2
• Ποιες είναι οι μορφές των μοντέλων επιφάνειας:
 Τα μαθηματικά μοντέλα:

 Τα πολυγωνικά μοντέλα:

Ερώτηση 3
Ποίες οι μέθοδοι απλοποίησης μοντέλων:
 Αυτές που παράγουν διακριτά επίπεδα λεπτομέρειας του αρχικού
μοντέλου
 Αυτές που παράγουν συνεχή επίπεδα λεπτομέρειας του αρχικού μοντέλου

41
Διαχείριση Σκηνής

Εισαγωγή
• Διαχείριση Σκηνής:
 Τα στοιχειώδη αντικείμενα της σκηνής συγκεντρώνονται σε χωρικά
συνεπείς συστάδες
 Οι συστάδες μπορούν να ομαδοποιηθούν σε μεγαλύτερες χωρικές ομάδες
• Γιατί είναι χρήσιμη η διαχείριση σκηνής:
 Όλα τα στοιχειώδη αντικείμενα τακτοποιούνται ιεραρχικά &
προσπελαύνονται αποδοτικά
 Περικόπτονται νωρίς (σε υψηλό ιεραρχικό επίπεδο) από διαδικασίες
όπως η περικοπή στο οπτικό πεδίο
 Διευκολύνεται η διαχείριση των δεδομένων (δυναμικό φόρτωμα,
λειτουργίες κρυφής μνήμης, κ.τ.λ.)
• Κατά τη σχεδίαση εικονικών κόσμων σκεφτόμαστε με
οντολογικούς όρους & ομαδοποιούμε τις οντότητες σύμφωνα με
κάποιες λογικές σχέσεις αλλά:
 Μπορούμε εναλλακτικά, να οργανώσουμε τα δεδομένα με χωρικά
συνεπή τρόπο (διαμέριση χώρου)

2
Εισαγωγή (2)
• Η διάσπαση της σκηνής σε χωρικά συνεχείς ιεραρχίες
προσφέρει μεγάλη αποδοτικότητα
• Οι οντολογικές ιεραρχίες δε συμβαδίζουν απαραίτητα με τη
χωρική διάταξη των αντικειμένων  δε βοηθάνε τη διαμέριση
χώρου
• Η κατασκευή & ομαδοποίηση ενός ιεραρχικού κόσμου
προσφέρει καλύτερη διαχείριση της σκηνής και λιγότερη
σπατάλη μνήμης
• Η πολύ ενδελεχής αποσύνθεση της σκηνής σε ιεραρχικά
τμήματα μπορεί να έχει αρνητικά αποτελέσματα:
 Η εφαρμογή ξοδεύει χρόνο στην διάσχιση της ιεραρχίας της σκηνής
 Στα γραφικά που επιταχύνονται από το υλικό του υπολογιστή, η
διαμέριση μπορεί να οδηγήσει σε κακές γεωμετρίες & συχνές αλλαγές
κατάστασης των χαρακτηριστικών σχεδίασης

Παραδείγματα

4
Παραδείγματα (2)
Οντολογική διαμέριση
με βάση τα υλικά

Χωρική διαμέριση

Παραδείγματα (3)
• Τα εσωτερικά περιβάλλοντα δημιουργούνται με περικοπή
πυλών και δέντρα Δυαδικής Διαμοίραση Χώρου (BSP)
• Οι εξωτερικές σκηνές δημιουργούν ιεραρχίες με μεγάλο
παράγοντα διακλάδωσης για αποδοτική περικοπή στο
οπτικό πεδίο

6
Γράφοι Σκηνής
• Γράφος Σκηνής (ΓΣ): Ιεραρχία γεωμετρικών στοιχείων συσχετιζόμενα
με οντολογικό τρόπο και χωρική (γεωμετρική) εξάρτηση
• Αποτελείται από κόμβους που αναπαριστούν:
 Γεωμετρικά στοιχεία (στατικά ή κινούμενα)
 Συναθροίσεις κόμβων
 Μετασχηματισμούς
 Εξαρτώμενες επιλογές
 Άλλες οντότητες προς αναπαραγωγή (π.χ. ήχους)
 Κόμβους εργασιών προσομοίωσης
 Γράφους άλλων σκηνών
• Οι ΓΣ είναι κατευθυνόμενοι, μη κυκλικοί γράφοι κόμβων, των οποίων
οι ακμές ορίζουν γεωμετρικές ή λειτουργικές εξαρτήσεις ενός κόμβου
παιδιού με τον πατρικό του
• Οι κόμβοι περιέχουν όλη την λειτουργικότητα που χρειάζεται για να
ορισθεί μια συμπεριφορά  η λειτουργικότητα είναι ‘προσκολλημένη’
σε ένα αντικείμενο (βλ. αντικειμενοστραφή υλοποίηση)

Γράφοι Σκηνής (2)


• Ο κόμβος ρίζα είναι μια αφηρημένη αναπαράσταση της
σκηνής:
 Δίδει ένα σημείο έναρξης διάσχισης
 Διαδίδει στην ιεραρχία όλες τις λειτουργίες που πρέπει να εφαρμοστούν στα
στοιχεία της
• Μια λειτουργία σε ένα κόμβο επηρεάζει όλα τα παιδιά του
• Οι ομάδες (συναθροίσεις κόμβων) αντιμετωπίζονται σαν
αυτοτελείς υπο-γράφοι σκηνής:
 Κάνει εύκολη την μοντελοποίηση περίπλοκων περιβαλλόντων και των
κινήσεων εντός αυτών
 Επαναχρησιμοποιήσιμες οντότητες
• Περίπλοκες κινήσεις και συμπεριφορές χωρίζονται σε απλούστερες
δίνοντας τοπική συμπεριφορά στα στοιχεία που οργανώνονται
ιεραρχικά

8
Παράδειγμα
• Η κίνηση κάθε μηχανικού
μέρους ενός σκάφους που
σχετίζεται με το ΠΣΣ είναι
δύσκολο να παραχθεί
άμεσα
• Πχ, Ποια είναι η
φαινομενική κίνηση της
προπέλας του σκάφους σε
σχέση με το άτομο στο
λιμάνι και ποια σε σχέση
με τον οδηγό?

Σχέσεις Κόμβων
• Εν γένει, εκφράζουμε ένα κόμβο γράφου σκηνής (στόχος) που
σχετίζεται με έναν άλλο (κόμβος αναφοράς) με μια αλλαγή του
συστήματος συντεταγμένων αναφοράς σύμφωνα με τους
ενδιάμεσους μετασχηματισμούς:
 Εφαρμογή μιας προς τα πάνω διάσχισης του δέντρου από τον στόχο προς τον
κοινό γονικό κόμβο του στόχου και του κόμβου αναφοράς
 Διάσχιση προς τα κάτω στον κόμβο αναφοράς με εφαρμογή των αντίστροφων
μετασχηματισμών του μονοπατιού
• Ο μετασχηματισμός ενός κόμβου στο επίπεδο k σε ένα κλαδί A
που σχετίζεται με έναν άλλο κόμβο που βρίσκεται στο επίπεδο
m σε ένα κλαδί B με κοινή ρίζα στο επίπεδο r είναι:
r 1 k
M A B   M 1
Bj M Ai
j m i  r 1

10
Σχέσεις Κόμβων (2)

r
M Ak  2 M Bm1

M Ak 1 M Bm

M Ak Β

11

Οργάνωση Δεδομένων
• Οι πλειοψηφία των γράφων σκηνής περιγράφει σχέσεις μεταξύ:
 Οντοτήτων
 Συναθροίσεων κόμβων
• Οι κόμβοι γεωμετρίας μπορούν να περιέχουν:
 Δεδομένα
 Πληροφορίες δεδομένων στοιχειωδών αντικειμένων (Επιφάνειες NURBS, δεδομένα
όγκου)
• Τα δεδομένα των κόμβων μπορεί να είναι:
 Αταξινόμητα (ακατέργαστα)
 Ευρετηριοποιημένα

12
Υβριδική Οργάνωση
• Οι κόμβοι γεωμετρίας μπορεί να είναι κομμάτι δομών χωρικής
διαμέρισης (Δέντρα AABB)
• Αυτή η δομή χρησιμοποιείται συχνά σε εφαρμογές με μεγάλα σύνολα
δεδομένων (σχεδίαση σε μη πραγματικό χρόνο)
• Γράφος Σκηνής:
 Αναπαριστά την οντολογική οργάνωση των δεδομένων, αλλά:
 Η γεωμετρία συνυπάρχει δηλωμένη και στα φύλλα του γράφου και σε ένα
μηχανισμό χωρικής διαμέρισης
• Για την ενημέρωση των χαρακτηριστικών των αντικειμένων και τους
μετασχηματισμούς τους χρησιμοποιείται ο γράφος σκηνής
• Για τη σχεδίαση της γεωμετρίας χρησιμοποιείται η προσπέλαση μέσω
του συστήματος χωρικής διαμέρισης (βλ. κεφάλαιο Παρακολούθησης
ακτινών)

13

Υβριδική Οργάνωση – Πραγμ. Χρόνος


• Ένας γράφος σκηνής χρησιμοποιείται μόνο για κινούμενα
αντικείμενα
• Όλη η πληροφορία του στατικού περιβάλλοντος απομονώνεται
σε ένα σύστημα χωρικής διαμέρισης υψηλής απόδοσης:
 Πχ. Δέντρο BSP

14
Δημιουργία Στιγμιότυπου Κόμβου
• Γιατί πρέπει να διπλασιαστεί ένας κόμβος για την δημιουργία αντιγράφων
της ίδιας οντότητας εφόσον αυτά είναι ταυτόσημα με την αρχική;
• Δημιουργείται μια αναφορά στον αρχικό κόμβο, όποτε πρέπει να εισαχθεί
στον γράφο ένας ταυτόσημος κόμβος
• Στο νέο κόμβο δεν επισυνάπτεται αντίγραφο των δεδομένων
• Όταν υπάρχει δημιουργία στιγμιότυπου, η δενδρική δομή του γράφου
σκηνής μετασχηματίζεται σε ένα κατευθυνόμενο κυκλικό γράφο

15

Δημιουργία Στιγμιότυπου Κόμβου (2)


• Η δημιουργία στιγμιότυπων κόμβων αντί αντιγράφων:
 Εξοικονομεί χώρο αποθήκευσης
 Επιταχύνει τους υπολογισμούς για συγκεκριμένα βήματα προσομοίωσης
 Η επεξεργασία γίνεται μια φορά για τον αρχικό κόμβο & έπειτα όλα τα
στιγμιότυπα επανά-χρησιμοποιούν τα νέα δεδομένα
• Η σειρά προσπέλασης δεν είναι σημαντική:
 Όταν τα δεδομένα ενός κόμβο προσπελαύνονται πρώτη φορά στο καρέ k+1,
ο κόμβος σημειώνεται σαν “επεξεργασμένος” για το τρέχον χρονικό
διάστημα
 Μεταγενέστερες επισκέψεις στον κόμβο (απευθείας ή μέσω αναφοράς)
ελέγχουν τον μετρητή καρέ και παραλείπουν τους τοπικούς υπολογισμούς

16
Διάσχιση Γράφου Σκηνής
• Κύριο πλεονέκτημα αναπαράστασης γράφου σκηνής ενός 3Δ κόσμου:
 Κάθε διαδικασία εφαρμόζεται στον κόμβο ρίζα της ιεραρχίας & διαδίδεται στις
υπόλοιπες οντότητες μέσω της διάσχισης του γράφου σκηνής
• 4 κύριες διαδικασίες εφαρμόζονται σε ένα γράφο σκηνής:
 Αρχικοποίηση
 Προσομοίωση
 Περικοπή
 Σχεδίαση
• Κάθε διαδικασία εφαρμόζεται ιεραρχικά στους κόμβους

17

Διαδικασία Προσομοίωσης (app)


• Καθορίζει όλες τις εσωτερικές παραμέτρους των κόμβων για το k
καρέ
• Ενημερώνει τις μεταβλητές σύμφωνα με τη συμπεριφορά του
κόμβου
• Κάνει οποιεσδήποτε αλλαγές στα δεδομένα του κόμβου είναι
απαραίτητες για τη μετάβαση από την κατάσταση του καρέ k-1 σε
αυτή του καρέ k

18
Περικοπή (cull)
• Η περικοπή σε ένα γράφο σκηνής συνδέεται με τις εξαρτήσεις κόμβων
 Κάθε κόμβος “περιέχει” όλα τα παιδιά του:
 Αν ο κόμβος ρίζα ενός υποδέντρου θεωρηθεί “αφανής”  κάθε κόμβος παιδί του
είναι επίσης αφανής  ολόκληρο το υποδέντρο περικόπτεται
 Αν ένας συναθροιστικός κόμβος είναι ορατός  τα παιδιά του ελέγχονται ξεχωριστά
 σε περίπτωση μερικής παρεμπόδισης του κόμβου γονέα, κάποιοι κόμβοι παιδιά
μπορεί να είναι ορατοί
 Το αποτέλεσμα τις διαδικασίας περικοπής καθορίζεται από τον έλεγχο του
περιβάλλοντα όγκου του κόμβου που έχει επιλεχθεί
 Για έναν συναθροιστικό κόμβο, ο περιβάλλον όγκος αντικατοπτρίζει τις
συγκεντρωτικές επεκτάσεις των παιδιών του  Ιεραρχίες περιβαλλόντων όγκων

19

Ιεραρχίες Περιβαλλόντων Όγκων


 Αν ένας κόμβος περιέχει ένα ιεραρχικό παρακλάδι κόμβων που εκφράζουν κίνηση, τα
όρια του περιβάλλοντος όγκου του πρέπει να διευθετούνται δυναμικά κάθε φορά που
αλλάζουν τα όρια κάποιου από τα παιδιά του
 Ο επανυπολογισμός των ορίων των κόμβων γεωμετρίας απαιτεί τουλάχιστο την
επαναληπτική καταγραφή της μέγιστης και ελάχιστης συντεταγμένης
 Για τα υποδέντρα κόμβων κίνησης που πρέπει να υπάρξει επαναληπτική επεξεργασία
στα ακατέργαστα δεδομένα τους ούτως ή άλλως (πχ. Σκελετική Κίνηση), αυτό δεν
επιβάλλει πρόσθετη δουλειά
 Για την κίνηση στερεών σωμάτων, ο επανυπολογισμός σπαταλά αρκετό χρόνο και
μπορεί να είναι απαγορευτικός για μεγάλα μοντέλα

20
Ιεραρχίες Περιβαλλόντων Όγκων (2)
 Μια τεχνική που υιοθετείται όταν η ταχύτητα είναι πιο σημαντικός παράγοντας από
την ακριβή ορατότητα: Προσαρμογή του περιβάλλοντα όγκου ενός συναθροιστικού
κόμβου με βάση:
u Τα μετασχηματισμένα όρια των περιβαλλώντων όγκων των παιδιών του
u Αντί για τα όρια των μετασχηματισμένων παιδιών του

21

Ιεραρχίες Περιβαλλόντων Όγκων (3)


 Η παραπάνω λύση δεν παράγει βέλτιστους περιβάλλοντες
όγκους
u Τα όρια των μετασχηματισμένων περιβαλλόντων όγκων είναι, εν γένει,
μεγαλύτερα από τα όρια της περικλειόμενης γεωμετρίας
 Η χωρική υποδιαίρεση (αν υπάρχει), μπορεί σε μεγάλο βαθμό να
χειριστεί την περικοπή

22
Σχεδίαση Γράφου Σκηνής (draw)
• Η διαδικασία σχεδίασης :
 Αναδρομικά κατέρχεται την ιεραρχία και εφαρμόζει αλγορίθμους σχεδίασης
εικόνας σε κάθε ορατό κόμβου
 Στην απευθείας σχεδίαση εικόνας και τον αλγόριθμο εκπομπής ακτινών 1ου
επιπέδου τα υποδέντρα που έχουν περικοπεί αγνοούνται

23

Προγραμματίζοντας με Γράφους Σκηνής


• Σε ένα γράφο σκηνής, οι περισσότεροι κόμβοι είναι αυτό-
διαχειριζόμενοι  παρέχουν οι ίδιοι τις λειτουργίες σχεδίασης
και τη συμπεριφορά τους
• Ένας συναθροιστικός κόμβος (που δε σχεδιάζεται) πρέπει να
μεταβιβάζει στους απογόνους του λειτουργίες όπως η
σχεδίαση και η περικοπή
• Η κατανεμημένη λειτουργία ενός γράφου σκηνής:
 Διευκολύνει μια αντικειμενοστραφή σχεδίαση των κόμβων
 Επωφελείται από τον πολυμορφισμό και την αφαιρετικότητα

24
Προγραμματίζοντας με Γράφους Σκηνής (2)
• Όλοι οι κόμβοι ενός γράφου σκηνής προέρχονται από μια κλάση κόμβων
& μεταβάλλουν τη συμπεριφορά τους καθώς ένας κόμβος κληρονομεί
κοινά χαρακτηριστικά και εξειδικεύει τη συμπεριφορά του:
 class Node
{
protected:
bool active;
bool culled;
public:
Node();
virtual void init();
virtual void simulate();
virtual void cull();
virtual void draw();
virtual void reset();
};

25

Προγραμματίζοντας με Γράφους Σκηνής (3)


 class Group : Node
{
protected:
vector<Node*> children;
Bvolume extents;
public:
Group();
void add(Node *n);
void remove(int i);
Node * getChild(int i);
int getNumChildren();
virtual void init();
virtual void simulate();
virtual void cull();
virtual void draw();
};

26
Προγραμματίζοντας με Γράφους Σκηνής (4)
• Οι κόμβοι που είναι επέκταση της κλάσης Node κληρονομούν τις 4
βασικές λειτουργίες
• Οι συναθροιστικοί κόμβοι παράγονται από την κλάση Group &
μοιράζονται ένα κοινό τρόπο λειτουργίας:
 Διατηρούν μια λίστα απογόνων και διαθέτουν βασικές λειτουργίες μιας συλλογής
• Πιο περίπλοκες υποκλάσεις Group επεκτείνουν τη συμπεριφορά με
την πρόσθεση ειδικών μεθόδων
• Κοινό χαρακτηριστικό όλων των κόμβων Group είναι η διάσχιση των
απογόνων τους:
 Εκδηλώνεται ως ένα αναδρομικό κάλεσμα όλων των αντικειμένων Node στην
εσωτερική τους λίστα
• Λόγω του πολυμορφισμού, ένα αντικείμενο Group μπορεί καλέσει τις
μεθόδους init(), draw(), cull(), simulate() χωρίς να
ξέρει από ποιες υποκλάσεις προέρχεται το αντικείμενο

27

Προγραμματίζοντας με Γράφους Σκηνής (5)


• Όλοι οι κόμβοι του γράφου σκηνής μοιράζονται ένα κοινό interface:
 void Group::draw()
{
vector <Node>::size_type i, sz;
sz = children.size();
for (i=0; i<sz; i++)
children[i] -> draw();
}
 void Geometry::draw() // Geometry: υποκλάση του Node
{
if (!enabled || culled)
return;
// ... Σχεδίαση της γεωμετρίας
}
• Η περικοπή, αρχικοποίηση και προσομοίωση ορίζονται με όμοιο τρόπο

28
Προγραμματίζοντας με Γράφους Σκηνής (6)
• Ο τρόπος διάσχισης ενός γράφου σκηνής ορίζει τη σειρά
εκτέλεσης κάθε μεθόδου
• Η αρχικοποίηση και τα 3 επαναλαμβανόμενα βήματα
εκτελούνται ιεραρχικά το ένα μετά το άλλο ξεκινώντας από
τη ρίζα της σκηνής
• Μετά την αρχικοποίηση, οι αρμοδιότητες ενός γράφου
σκηνής περιλαμβάνουν:
 Την εκτέλεση της προσομοίωσης
 Την περικοπή
 Τις μεθόδους σχεδίασης (draw) του κόμβου ρίζας
• Οπότε, γίνονται 3 διασχίσεις πριν οπτικοποιηθεί ο γράφος
σκηνής

29

Προγραμματίζοντας με Γράφους Σκηνής (7)


 //H Scene είναι μια υποκλάση της Group
Scene *myScene = new Scene();
myScene -> load("village.scn");
myScene -> init();
while (notTerminating)
{
//... Άλλες λειτουργίες
myScene -> simulate() ;
myScene -> cull() ;
myScene -> draw() ;
}
• Έτσι οι κόμβοι συγχρονίζονται σε σχέση με την κατάστασή τους και τις
τιμές των παραμέτρων

30
Ενημέρωση Δεδομένων με Υστέρηση
• Σε αυτή τη μέθοδο, οι αλλαγές στην κατάσταση μιας οντότητας δεν
παράγουν άμεσο αποτέλεσμα:
 Μια φορά γίνεται ο υπολογισμός τιμής για όλα τα χαρακτηριστικά για την
παραγωγή μιας προσομοίωσης, περικοπής, ή οπτικού αποτελέσματος
• Οι ενημερώσεις με υστέρηση είναι χρήσιμες όταν πρέπει να γίνεται μια
υπολογιστικά ακριβή διαδικασία κάθε φορά που αλλάζει μια μεταβλητή
• Παραδείγματα σε ένα γράφο σκηνής:
 Συνθετική κίνηση βασισμένη σε μηχανική προσομοίωση
 Υπολογισμός πολυέδρου σκιάς

31

Μεταφορά Μηνυμάτων
• Σύνθετοι γράφοι σκηνής δεν περιοριζόμαστε στον ιεραρχικό έλεγχο
• Άμεση επικοινωνία: οι κόμβοι μπορούν να επικοινωνήσουν μεταξύ τους
 Με άμεσο κάλεσμα μεθόδων άλλων κόμβων
 Με μηνύματα
• Στη δεύτερη περίπτωση (πιο εύκολη στο συγχρονισμό), κάθε κόμβος
πρέπει να επεκταθεί για να υποστηρίζει μια ουρά μηνυμάτων και ένα
χάρτη γεγονότων:
 class NodeMessage
{
Node *from, *to;
int ID;
void * params;
};
typedef EventID int;

32
Μεταφορά Μηνυμάτων (2)
 class Node
{
protected:
...
vector<NodeMessage *> msgQueue;
multimap<EventID,NodeMessage *> eventMap;
// Επεξεργασία εισερχομένων μηνυμάτων
void processMessages();
// Αποστολή εξερχομένων μηνυμάτων
void dispatchMessages();
public:
...
// Εισαγωγή μηνύματος στην ουρά του κόμβου
message( NodeMessage *msg );
registerEvent( EventID evt, Node* target,
int msgID, void* params );
};

33

Μεταφορά Μηνυμάτων (3)


• Απαραίτητη η ουρά μηνυμάτων ένας κόμβος μπορεί να λάβει πολλά
μηνύματα εντολών από άγνωστο πλήθος κόμβων
• Χάρτης γεγονότων:
 Δημιουργεί μια διεπαφή για αντιδράσεις που ορίζονται από το χρήστη στις αλλαγές
κατάστασης του κόμβου

34
Μεταφορά Μηνυμάτων: Παράδειγμα
• Θεωρείστε ένα δωμάτιο γεμάτο έπιπλα.
 Αρχικά το φως είναι σβηστό  δε χρειάζεται να έχουν τα έπιπλα σκιές  αρχικά
απενεργοποιημένο για αυτούς του κόμβους γεωμετρίας
 Όταν ανάβει το φως  τα έπιπλα πρέπει να αποκτήσουν σκιές
• Θέτουμε ένα αντικείμενο με όνομα halo ορατό γύρω από τη λάμπα για να
είναι ρεαλιστική η σκηνή
 Light * bulb; // Το Light επεκτείνει το Node
Geometry *furniture, *halo;
...
bulb -> registerEvent( EVENT_ON, furniture, MSG_SHADOWS_ON,
NULL);
bulb -> registerEvent( EVENT_ON, halo, MSG_ENABLE, NULL);

35

Μεταφορά Μηνυμάτων (4)


• Στην επεκταμένη κλάση Node προστίθενται 2 νέες συναρτήσεις protected :
 processMessages()
 dispatchMessages()
• Αυτές οι λειτουργίες εκτελούνται πριν & μετά από το βήμα προσομοίωσης

36
Προ/Μετά Βήματα Επεξεργασίας Κόμβων
• Πρέπει να προσθέσουμε μεθόδους προ/μετα-προσομοίωσης  θα
εκτελούνται μέσω ενός βήματος προ/μετά προσομοίωσης για όλη τη σκηνή :
 void Scene::simulate()
{
preSimulate();
Group::simulate();
postSimulate();
}
...
void Group::preSimulate()
{
vector <Node>::size_type i,sz; sz = children.size();
for (i=0; i<sz; i++)
children[i]->preSimulate();
}

37

Προ/Μετά Βήματα Επεξεργασίας Κόμβων (2)


• Όμοιες προ/μετα συναρτήσεις υλοποιούνται για τα στάδια της σχεδίασης και
της περικοπής:
 Είτε τοπικά για κάθε κόμβο (εκτελείται πριν & μετά από την αντίστοιχη λειτουργία κάθε
κόμβου)
 Ή καθολικά (σαν στάδια προ- και μετα-προσομοίωσης)

Παραδείγματα:
• Όταν σχεδιάζουμε με OpenGL, πρέπει να υλοποιηθεί ένας κόμβος
Transformation :
 Μια συνάρτηση προ-σχεδίασης για να τοποθετήσει το τρέχοντα πίνακα κατάστασης στη
στοίβα
 Μια συνάρτηση μετα-σχεδίασης για να αφαιρέσει το τρέχοντα πίνακα κατάστασης από
τη στοίβα
• Μια καθολική συνάρτηση μετα-σχεδίασης μπορεί να προκαλέσει εναλλαγή
καταχωρητών εικόνας

38
Κατανεμημένη Δημιουργία Σκηνής
• Απαιτητικές εφαρμογές ή πολλαπλών-χρηστών/πολλαπλών-οθονών
χρειάζονται να κατανέμουν τα δεδομένα του γράφου σκηνής και να τα
σχεδιάζουν σε πολλαπλούς επεξεργαστές
• Ένας επεξεργαστής μπορεί να είναι:
 Ένας ηλεκτρονικό υπολογιστής
 Ένας ειδικός συνεπεξεργαστής
 Ένα ή παραπάνω συστήματα παράλληλων επεξεργαστών
• Η σκηνή δεν είναι απαραίτητο να βρίσκεται σε κοινό χώρο στη μνήμη

39

Κατανεμημένη Δημιουργία Σκηνής (2)


• Μια διαδικασία κατανεμημένης σχεδίασης μιας σκηνής χωρίζεται σε 3
κατηγορίες
 Κατανομή στο πεδίο του τριδιάστατου χώρου
 Κατανομή στο πεδίο του χρόνου
 Κατανομή στο πεδίο της εικόνας
• Η διαδικασία σχεδίασης ενός καρέ μιας συνθετικής αναπαράστασης
αποτελείται από 4 στάδια:
 Διάσπαση (Splitting)
 Κατανομή (Distribution)
 Σχεδίαση (Rendering)
 Σύνθεση (Compositing)

40
Κατανεμημένη Σχεδίαση με Μετα-Ταξινόμηση
• Κατανομή της σχεδίασης μιας σκηνής σε επεξεργαστές με χωρικό
κατακερματισμό:
 ένα μέρος της σκηνής μεταφέρεται σε κάθε επεξεργαστή
 το κάθε μέρος σχεδιάζεται ανεξάρτητα
 μετά συντίθεται ένα ενιαίο τελικό αποτέλεσμα
• Η σκηνή διαιρείται σύμφωνα με την ιεραρχία του γράφου σκηνής ή το
μηχανισμό υποδιαίρεσης χώρου
 τα τμήματα κατανέμονται στους διαθέσιμους επεξεργαστές
 κάθε επεξεργαστής σχεδιάζει ένα τμηματικό αποτέλεσμα
 μετά το αποτέλεσμα πρέπει να συνδυαστεί με τα υπόλοιπα αποτελέσματα
• Στην περίπτωση της άμεσης σχεδίασης:
 Οι ενδιάμεσες εικόνες-αποτελέσματα δεν είναι ταξινομημένες ως προς το βάθος
 Επικαλύπτονται στο χώρο της εικόνας
 Οι προκύπτοντες καταχωρητές εικόνας δεν μπορούν να συνδυαστούν άμεσα
 Συνήθης πρακτική είναι η διατήρηση και μετάδοση των καταχωρητών βάθους
κάθε μέρους και η σχεδίαση με βάση το συγκριτικό βάθος

41

Κατανεμημένη Σχεδίαση με Μετα-Ταξινόμηση (2)


 Οι διαδικασίες κατανεμημένης σχεδίασης,
ονομάζονται μετα-ταξινόμηση γιατί η
απόφαση για το ποιο μέρος της τελικής
εικόνας προκύπτει από ποιο κόμβο
συμβαίνει στο τέλος της παραγωγής
του καρέ

42
Κατανεμημένη Σχεδίαση με Προ-Ταξινόμηση
• Διαδικασίες προ-ταξινόμησης:
 Εκτελούν μια προ-διαμέριση του πεδίου εξόδου (εικόνα)
 Σε κάθε επεξεργαστής ανατίθεται ένα ή περισσότερα κομμάτια
• Η σύνθεση των κομματιών προς σχεδίαση είναι τετριμμένη
σε αυτούς τους αλγορίθμους  τα κομμάτια εικόνας που
μαζεύονται δεν έχουν επικαλύψεις
• Στην περίπτωση της έμμεσης (offline) σχεδίασης συνθετικής
κίνησης :
 Κάθε επεξεργαστής διατηρεί ένα πλήρες αντίγραφο της βάσης δεδομένων
της σκηνής καθώς και εξωτερικά χαρακτηριστικά (υφές), και σχεδιάζει
ανεξάρτητα μια ολοκληρωμένη εικόνα καρέ ή τμήμα της.
 Τετριμμένα παράλληλα: όχι επικοινωνία εκτός από την αρχικοποίηση και
τη συγκομιδή των τελικών τμημάτων εικόνας.

43

Κατανεμημένη Σχεδίαση με Προ-Ταξινόμηση(2)


• Οι στρατηγικές προ-ταξινόμησης στο χώρο εικόνας είναι
πιο κοινές:
 Η βάση δεδομένων της σκηνής αντιγράφεται στους επεξεργαστές, ή
μοιράζεται από πολλαπλές διεργασίες που εκτελούν τη σχεδίαση
 Σε κάθε επεξεργαστή ανατίθενται ένα ή περισσότερα “παράθυρα” της
τελικής εικόνας
 Τα αποτελέσματα συντίθενται με την αντιγραφή των τμημάτων εικόνας σε
έναν κοινό καταχωρητή
 Η άμεση κατανεμημένη σχεδίαση σε πολλαπλά συστήματα γραφικών στην
ίδια μηχανή διαχειρίζεται από το υλικό των οθονών

44
Διαμέριση με Προ-Ταξινόμηση
• Οι στρατηγικές διαμέρισης στο χώρο εικόνας είναι
σημαντικές και αποτελεσματικές ως προς το φόρτο
εργασίας:
 Συνήθεις μέθοδοι διαμέρισης:
 Εναλλαγή γραμμών σάρωσης (interlaced scan-line)

 Σε Ψηφίδες (Tiled )

 Ολίσθηση ολόκληρης εικόνας (offset full-image – για παράλληλο

antialiasing)

45

Έγχρωμο και ασπρόμαυρο φως


Εισαγωγή
 Η μελέτη του χρώματος και της αντίληψής του από τον άνθρωπο,
είναι κλάδος των:
 Φυσικής
 Φυσιολογίας
 Τέχνης
 Γραφικών με Υπολογιστή
 Οπτικοποίησης
 Το αποτέλεσμα των αλγορίθμων γραφικών και οπτικοποίησης είναι
μια έγχρωμη (ή ασπρόμαυρη) εικόνα που αποτυπώνεται σε μια
συσκευή εξόδου (οθόνη, εκτυπωτής)
 Ο προγραμματιστής γραφικών πρέπει να γνωρίζει τις θεμελιώδεις αρχές του
χρώματος και της ψηφιακής παράστασής του

Έγχρωμο και Ασπρόμαυρο Φως


 Αν αφαιρέσουμε χρωματικά χαρακτηριστικά, λαμβάνουμε
ασπρόμαυρο φως.
 Μόνο χαρακτηριστικό η φωτεινότητα ή ένταση.

 Φωτεινότητα: 0 (μαύρο) … 1 (άσπρο) αποχρώσεις του γκρι.


Αποχρώσεις Γκρι (grayscale)
 Αχρωματικό φως: μόνο χαρακτηριστικό η ένταση
 Τα χρωματικά χαρακτηριστικά έχουν αφαιρεθεί

 Μια τιμή έντασης αναπαρίσταται από ένα πραγματικό αριθμό μεταξύ του 0
(μαύρο) και του 1 (άσπρο)
 Οι ενδιάμεσες τιμές καλούνται αποχρώσεις του γκρι

 Έστω d το πλήθος των ψηφίων για την αναπαράσταση της έντασης ενός
εικονοστοιχείου  n=2d διαφορετικές τιμές έντασης για κάθε εικονοστοιχείο.
 Εστω μία οθόνη με d bits/pixel.
 Με d bits μπορούμε να αναπαριστούμε n=2 διαφορετικές τιμές
d

φωτεινότητας για κάθε pixel.


 Ποιες από αυτές επιλέγουμε;

 Φυσιολογία: μάτι αντιλαμβάνεται λόγους φωτεινότητας (όχι απόλυτες τιμές).


 Π.χ. (0.1, 0.2) και (0.3, 0.6) φαίνονται σα να έχουν ίδια διαφορά επειδή
έχουν τον ίδιο λόγο.
 Αρα επιλέγουμε φωτεινότητες με λογαριθμική κατανομή

Αποχρώσεις Γκρι (grayscale)

 Ερώτηση: Ποιες τιμές έντασης πρέπει να


αναπαρασταθούν;
 Απάντηση:
 Η γραμμική διαβάθμιση των τιμών έντασης μεταξύ
μέγιστης & ελάχιστης, δεν έχει καλά αποτελέσματα:
 Το ανθρώπινο μάτι αντιλαμβάνεται λόγους έντασης και όχι
απόλυτες τιμές. Πχ. Λαμπτήρας 20-40-60W
 Έτσι, επιλέγεται λογαριθμική κατανομή των τιμών έντασης
Αποχρώσεις Γκρι (2)
 Λογαριθμική επιλογή φωτεινοτήτων.
• Έστω Φ0 η ελάχιστη τιμή έντασης φωτεινότητας (Απόλυτο μαύρο δεν
επιτυγχάνεται (αντανάκλαση φωσφόρου). H μικρότερη τιμή (1/300 ως 1/40 της
max τιμής 1).
 Για τις συνήθεις οθόνες: Φ0 = (1/300) * μέγιστη τιμή 1 (άσπρο)

 Τέτοιες οθόνες έχουν δυναμικό εύρος 300:1

 Έστω λ ο λόγος μεταξύ διαδοχικών τιμών έντασης


 Τότε:

Φ1 = λ* Φ0
Φ2 = λ* Φ1=λ2*Φ0

Φn-1 = λn-1*Φ0 = 1
 Δοθέντος του Φ0 της συσκευής εξόδου, το λ υπολογίζεται:
λ = (1 / Φ0)(1/n-1) (1)

Αποχρώσεις Γκρι
 Ερώτηση: Πόσες τιμές έντασης απαιτούνται;
 Απάντηση:
 Αν λ < 1.01, τότε το ανθρώπινο μάτι δεν μπορεί να διαχωρίσει διαδοχικές
τιμές έντασης
 Θέτοντας λ = 1.01 και
επιλύοντας την (Λ) ως
προς n:
1.01(n-1)*Φ0 = 1 
n = log1.01(1/Φ0) + 1
 Οι συνήθεις οθόνες έχουν
Φ0 ~ (1/300)  n = 500
 Δεξιά: Εικόνα με
n=2,4,8,16,32,64,128 & 256

7
Αποχρώσεις Γκρι
 Υπολογισμός του ελάχιστου αριθμού τιμών φωτεινότητας:
(1)  1.01n 1  Φ 0  1
 n  log1.01 1/ Φ0   1
 Για τυπικά Φ0 , n  500

Παρατηρούμε πως
όσο περισσότερο
αυξάνει το n τόσο
καλύτερα
προσεγγίζουμε την
πραγματική μορφή
n=2 n=4 n=8 n=16 της εικόνας.

n=32 n=64 n=128 n=256

Αναπαράσταση εικόνας με διαφορετικά επίπεδα φωτεινότητας

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

 Αυτοτυπία (Halftoning): μαύρες κουκίδες διαφόρων μεγεθών παριστάνουν διάφορες


τιμές φωτεινότητας (εφημερίδες).

Αρχική Εικόνα Halftoning


Αυτοτυπία (halftoning)
 Οι τεχνικές αυτοτυπίας ανταλλάσουν την χωρική ανάλυση με
ανάλυση αποχρώσεων του γκρι (ή χρώματος)
 Λειτουργούν αντίθετα από την αντιταύτιση
 Η αυτοτυπία προέρχεται από την τυπογραφία:
 Στις ασπρόμαυρες φωτογραφίες των εφημερίδων, φαίνεται εξ’ αποστάσεως ότι
διατηρούν ένα πλήθος αποχρώσεων του γκρι
 Με προσεκτικότερη ματιά, διακρίνονται οι μαύρες κουκίδες ποικίλων μεγεθών
που τις αποτελούν
 Μέγεθος κουκίδας: ανάλογο τιμής απόχρωσης του γκρι

10

Αυτοτυπία (2)
 Ψηφιακή προσέγγιση για την αυτοτυπία: προσομοίωση μεγέθους κουκίδας με
πυκνότητα ‘μαύρων’ εικονοστοιχείων
 Η εικόνα διαιρείται σε περιοχές των (m x m) εικονοστοιχείων
 Ανταλλαγή χωρικής ανάλυσης για ανάλυση αποχρώσεων γκρι
 Μείωση χωρικής ανάλυσης κατά m σε κάθε διάσταση
 Αύξηση πλήθους τιμών αποχρώσεων γκρι κατά m2
 Παράδειγμα: Έστω μια ασπρόμαυρη εικόνα. Η (2x2) διαμέριση των
εικονοστοιχείων (m = 2) δίνει 5 αποχρώσεις γκρι. Εν γένει, για (m xm) περιοχές
διαμέρισης, με 2 αρχικές αποχρώσεις γκρι, παίρνουμε m2+1 τελικές αποχρώσεις
του γκρι

11
Αυτοτυπία (3)
 Η παραπάνω ανάθεση αποχρώσεων του γκρι μπορεί να
παρασταθεί με τον πίνακα:

3 1 
0 2 
 

όπου μια συγκεκριμένη απόχρωση του γκρι k (0 ≤ k ≤


4) αναπαρίσταται ‘ανάβοντας’ τις θέσεις της (2 x 2)
περιοχής στις οποίες η αντίστοιχη τιμή είναι μικρότερη
του k

12

Αυτοτυπία (4)
 Τα όρια των τεχνικών αυτοτυπίας τίθενται από:
 Την αρχική χωρική ανάλυση της εικόνας
 Την απόσταση παρατήρησης
 Πχ: Δεν έχει νόημα η ανταλλαγή όλης της χωρικής ανάλυσης για
αποχρώσεις του γκρι
 Η ακολουθία που ορίζει τις αποχρώσεις του γκρι πρέπει να
επιλεγεί προσεχτικά
 Αυξητική: τα εικονοστοιχεία που επιλέγονται για την απόχρωση i πρέπει
να είναι υποσύνολο των εικονοστοιχείων της απόχρωσης j για κάθε j>i
 Κακή επιλογή για απόχρωση 2:

13
Αυτοτυπία (5)
 Μια καλή ακολουθία (2x2) περιοχές είναι η:
0 2 
H2   
3 1 
 Αναδρομική κατασκευή μεγαλύτερων πινάκων, όπως, (4x4),
(8x8) ως εξής:
 4·H m/ 2 4·H m/ 2  2·U m/ 2 
Hm    , m  4, m  2k
 4·H m/ 2  3·U m/ 2 4·H m/ 2  U m/ 2 
όπου Um είναι ο (m x m) πίνακας με όλα τα στοιχεία ίσα με 1

14

Αυτοτυπία (6)
 Η αυτοτυπία επεκτείνεται άμεσα σε μέσα που μπορούν να
αποτυπώσουν πολλαπλά επίπεδα αποχρώσεων του γκρι ανά
εικονοστοιχείο
 Χρήση περιοχών (m x m) για αύξηση του πλήθους αποχρώσεων
του γκρι από k σε (k−1)m2+1, με ταυτόχρονη μείωση της
διαθέσιμης χωρικής ανάλυσης κατά m στους άξονες x και y
 Π.χ. m=2
k=4

15
Αυτοτυπία (7)
 Στην αυτοτυπία υποθέτουμε ότι υπάρχει αφθονία χωρικής
ανάλυσης (ανάλυση οθόνης >> ανάλυση εικόνας)  ανταλλαγή
χωρικής ανάλυσης για ανάλυση αποχρώσεων γκρι
 Ερώτηση: Τι γίνεται αν η εικόνα και η οθόνη έχουν την ίδια
χωρική ανάλυση, αλλά η εικόνα έχει μεγαλύτερη ανάλυση
αποχρώσεων γκρι από την οθόνη;
 Απάντηση 1: Απλή στρογγύλευση: κακό αποτέλεσμα (μεγάλη
απώλεια πληροφορίας):

16

Αυτοτυπία (8)
 Απάντηση 2: Οι Floyd & Steinberg πρότειναν μέθοδο που
περιορίζει την απώλεια πληροφορίας, μεταβιβάζοντας το
σφάλμα στρογγύλευσης από ένα εικονοστοιχείο στα γειτονικά
του
 Η διαφορά ε ανάμεσα στην πραγματική τιμή τις εικόνας Ex,y &
της πλησιέστερης τιμής παράστασης Ox,y του εικονοστοιχείου
(x, y) στην οθόνη υπολογίζεται ως:
ε = Ex,y − Ox,y
 Το εικονοστοιχείο παίρνει την τιμή Ox,y και το σφάλμα ε
μεταβιβάζεται σε 3 γειτονικά εικονοστοιχεία ως εξής:
Ex+1,y = Ex+1,y + 3 ∙ ε / 8,
Ex,y−1 = Ex,y−1 + 3 ∙ ε /8,
Ex+1,y−1 = Ex+1,y−1 + ε /4
17
Αυτοτυπία (9)

 Βελτιωμένα αποτελέσματα σε σύγκριση με απλή στρογγύλευση

18

Αυτοτυπία (10)

 όπου DG: ανάλυση αποχρώσεων γκρι οθόνης


IG: ανάλυση αποχρώσεων γκρι εικόνας
DS: χωρική ανάλυση οθόνης
IS: χωρική ανάλυση εικόνας

19
Αυτοτυπία
 Halftoning υποθέτει την ύπαρξη ανάλυσης συσκευής >>
ανάλυση εικόνας.
 Τι γίνεται αν οι αναλύσεις είναι ίσες και η εικόνα έχει
περισσότερες τιμές φωτεινότητας από pixel συσκευής;
 Απλή στρογγύλευση, όχι καλή (Σχήμα Α).

 Floyd - Steinberg: έλεγχος απώλειας πληροφορίας με Σχήμα Α


μεταφορά σφάλματος σε γειτονικά pixels.
 Αν Ex,y και Ox,y η τιμή της εικόνας και η πλησιέστερη
τιμή της οθόνης αντίστοιχα στο pixel x,y.
ε  E x,y  Ox,y 3
ε ε
E x 1, y  E x 1, y  3  ε/ 8 8
E x, y 1  E x, y 1  3  ε/ 8 3 1
ε ε
E x 1, y 1  E x 1, y 1  ε/ 4 8 4

 Καλά αποτελέσματα (σχήμα Β).


Σχήμα Β

Διόρθωση Γάμμα
 Η τάση (είσοδος) μιας οθόνης σχετίζεται μη γραμμικά με την
ένταση (έξοδος) ενός εικονοστοιχείου:
έξοδος = είσοδος γ
όπου γ[1.5 , 3.0] και εξαρτάται από την οθόνη
 Οι τιμές τάσης εισόδου κανονικοποιούνται στο [0, 1]
 Εικόνες που δεν έχουν διορθωθεί ως προς γ, εμφανίζονται πολύ
σκοτεινές
 Διόρθωση Γάμμα: Διορθώνει τις τιμές τάσης εισόδου ώστε να
διασφαλίσει γραμμική σχέση μεταξύ τιμών εισόδου και
απεικόνισης (εξόδου) :
είσοδος’ = είσοδος1/γ
 Οι τιμές είσοδος’ αποτελούν την εικόνα με Διόρθωση Γάμμα

21
Διόρθωση Γάμμα (2)
 Αριστερά: Διορθωμένη εικόνα Δεξιά: μη διορθωμένη εικόνα

 Δυσκολίες υλοποίησης:
 Μια συσκευή απεικόνισης μπορεί (και πρέπει να γνωρίζουμε):
 να εφαρμόζει Διόρθωση Γάμμα
 να εφαρμόζει μερικώς Διόρθωση Γάμμα
 να ΜΗΝ εφαρμόζει Διόρθωση Γάμμα
 Τρέχουσες δομές εικόνων δεν αποθηκεύουν πληροφορίες για Διόρθωση
Γάμμα  δύσκολη η διαχείριση της τεχνικής μεταξύ συσκευών
 Διόρθωση Γάμμα σε ασπρόμαυρες αλλά και σε έγχρωμες εικόνες
 Στην δεύτερη περίπτωση επηρεάζει την
22
ένταση

Χρωματικά Μοντέλα
 Σε έναν κόσμο πλούσιο σε χρώματα, δεν υπάρχουν χρώματα!
Goethe
 Χρώμα: Αποτέλεσμα διαδικασιών ατομικής αντίληψης
 Χρωματικό Μοντέλο: ένα μοντέλο το οποίο
 Περιγράφει
 Συγκρίνει
 Κατηγοριοποιεί
 Ταξινομεί
τα χρώματα
 Απλή προσέγγιση: Γραμμικό μοντέλο
Αριστοτέλη

 Εμπνευσμένο από την κυκλική διαδοχή των


χρωμάτων στον ουρανό από κατά τη διαδοχή μέρας - νύχτας

23
Χρωματικά Μοντέλα
 Τα ορατά χρώματα αντιστοιχούν σε συχνότητες φωτός:
 Καλύπτουν μικρό μέρος του ηλεκτρομαγνητικού φάσματος
 Διαφορετικές συχνότητες αναπαριστούν διαφορετικά χρώματα
 4.3 · 1014 Hz (κόκκινο) ως 7.5 · 1014 Hz (μωβ)

• Εγχρωμο φως: μικρή περιοχή ηλεκτρομαγνητικού φάσματος.


 Εκφράζεται με συχνότητα ν (Hz) ή μήκος κύματος λ (nm),
 Το μάτι διακρίνει ~ 400.000 διαφορετικά χρώματα από 780 nm (κόκκινο) ως
380 nm (βιολετί).
 Η οθόνη πραγματικού χρώματος αφιερώνει 3 bytes για το χρώμα του κάθε pixel.
• Χρώμα: απόκριση ματιού - εγκεφάλου στη συγκεκριμένη συχνότητα.
 Οπτικό νεύρο: διαφορετική εστίαση για κάθε χρώμα.
 Αποφυγή ταυτόχρονης εμφάνισης χρωμάτων με μεγάλες διαφορές εστίασης π.χ.
κόκκινο - μπλέ.
24

Χρωματικά Μοντέλα: Κατηγορίες


 Μη Εξαρτημένα από συσκευή προβολής
 Οι χρωματικές συντεταγμένες αναπαριστούν ένα μοναδικό χρώμα
 Χρήσιμα για την μετατροπή μεταξύ εξαρτημένων από συσκευή
χρωματικών μοντέλων
 Πχ. CIE XYZ
 Εξαρτημένα από συσκευή προβολής
 Ίδιες χρωματικές συντεταγμένες παράγουν ελαφρώς διαφορετικό χρώμα σε
διαφορετικές συσκευές
 Πχ. RGB, CMY
 Κάποια μοντέλα ακολουθούν τη φιλοσοφία της συσκευής προβολής και
χρησιμοποιώντας βασικά χρώματα παράγουν τυχαία χρώματα:
i. Προσθετικό Μοντέλο: προσθέτει συνεισφορές βασικών χρωμάτων (οθόνη)
ii. Αφαιρετικό Μοντέλο: μίξη χρώματος επιτυγχάνεται μέσω αφαιρετικής διαδικασίας
(εκτυπωτής)

25
Χρωματικά Μοντέλα: Κατηγορίες (2)
 Αντιλαμβανόμενη γραμμικότητα (Perceptual
linearity):
 Ισχύει όταν η αντιληπτή διαφορά μεταξύ 2 χρωμάτων είναι ανάλογη της
διαφοράς των αντίστοιχων χρωματικών τιμών σε ολόκληρο το φάσμα του
χρωματικού μοντέλου
 Διαισθητική χρηστικότητα: Επιθυμητή
 Θα εξεταστούν τα παρακάτω χρωματικά μοντέλα:
1. CIE XYZ
2. CIE Yu΄v΄
3. CIE L*a*b*
4. RGB
5. HSV
6. CMY(K)

26

1. Χρωματικό Μοντέλο CIE XYZ


 1ος Νόμος του Grassman:
 Οποιοδήποτε χρώμα προκύπτει σαν γραμμικός συνδυασμός 3 βασικών
χρωμάτων
 Προϋπόθεση: Κανένας συνδυασμός οποιουδήποτε υποσυνόλου βασικών δεν παράγει άλλο
βασικό χρώμα
 Ανάλογο με τη γραμμική ανεξαρτησία των διανυσμάτων βάσης σε ένα σύστημα
συντεταγμένων
  
 Αναπαράσταση χρώματος στον 3Δ χρωματικό χώρο X, Y, Z
 Οι άξονες του χρωματικού χώρου ορίζονται από τα 3 χρώματα
  
 X, Y, Z δεν είναι ορατά χρώματα, αλλά υπολογιστικές ποσότητες
 Αναμιγνύοντας τα βασικά χρώματα με κατάλληλες αναλογίες
X,Y,Z μπορούν να παραχθούν όλα τα ορατά χρώματα

27
1. Χρωματικό Μοντέλο CIE XYZ (2)
 X,Z παρέχουν πληροφορία χρωματικότητας
 Y αντιστοιχεί στην ένταση
 Τα βασικά χρώματα συνθέτουν μια χρωματική βάση

 Τα λοιπά χρώματα F εκφράζονται σαν γραμμικοί
   
συνδυασμοί της βάσης: F  X ·X  Y ·Y  Z ·Z

όπου X,Y,Z είναι οι χρωματικές συντεταγμένες του F

28

1. Χρωματικό Μοντέλο CIE XYZ (3)


 Χρωματική μίξη:
 2ος Νόμος
 του Grassman
     
 Αν 1 F  X 1·X  Y1·Y  Z1·Z και F 2  X 2 ·X  Y2 ·Y  Z 2 ·Z
είναι 2 δοθέντα χρώματα, η μίξη τους εκφράζεται ως:
   
FM  ( X 1  X 2 )·X  (Y1  Y2 )·Y  ( Z1  Z 2 )·Z

 Παρομοίως ορίζεται η παρεμβολή χρώματος κατά


 
παράγοντα (0≤ t ≤1) μεταξύ των χρωμάτων : F1 , F2
   
FI  (t·X 1  (1  t )·X 2 )·X  (t·Y1  (1  t )·Y2 )·Y  (t·Z1  (1  t )·Z 2 )·Z

29
1. Χρωματικό Μοντέλο CIE XYZ (4)
 Χρωματικό τρίγωνο ΧYZ:
 Δημιουργείται με την προβολή του μοντέλου CIE XYZ στο επίπεδο
X+Y+Z=1
 Ένα τυχαίο χρώμα (X,Y,Z) αντιστοιχεί στο σημείο (x, y, z) του τριγώνου:
X Y Z
x , y , z
(X Y  Z) (X Y  Z) (X Y  Z)

 Το (x, y, z) είναι η τομή του διανύσματος (X,Y,Z) & του τριγώνου XYZ
 Αφού X+Y+Z=1 Χρώματα τριγώνου περιγράφονται από 2 συντεταγμένες
 XY τρίγωνο: Προβολή του τριγώνου XYZ στο επίπεδο xy:

30

1. Χρωματικό Μοντέλο CIE XYZ (5)


 Εναλλακτικός τρόπος καθορισμού χρώματος, μέσω χρωματικού
τριγώνου, είναι το CIE Yxy
 Δίνει τις τιμές των x & y (ή άλλου ζεύγους της τριπλέτας (x, y, z))
 Επιπρόσθετα δίνει την τιμή έντασης Y
Y Y Y
 CIE Yxy  CIE XYZ : X  x· , Y  Y , Z  (1  x  y)·  z·
y y y
 Το τρίγωνο XY περιέχει όλα τα ορατά χρώματα (εντός καμπύλης)
 Η σκιασμένη περιοχή αναπαριστά τα χρώματα που απαντώνται στην φύση

31
2. Χρωματικό Μοντέλο CIE Yu΄v΄
 Μετασχηματισμός του CIE XYZ
 Παρέχει αντιλαμβανόμενη γραμμικότητα
 Ορίζει u΄ & v΄ ως προς x & y του CIE XYZ:
4x 9y
u  , v 
2 x  12 y  3 2 x  12 y  3

 Ο παραπάνω μετασχηματισμός είναι εύκολα αντιστρέψιμος


 3η συνιστώσα είναι περιττή
 Πλήρης καθορισμός χρώματος στο CIE Yu΄v΄ δίνεται από την
τριπλέτα (Y, u΄,v΄)
 Y είναι η ίδια τιμή έντασης όπως στο CIE XYZ

32

3. Χρωματικό Μοντέλο CIE L*a*b*


 Επίσης μετασχηματισμός του CIE XYZ
 Επίσης παρέχει αντιλαμβανόμενη γραμμικότητα
 Εξαρτώμενο από συσκευή προβολής
 Οι παράμετροί του καθορίζονται σε σχέση με το λευκό σημείο της
συσκευής προβολής
 Λευκό σημείο:
 Χρώμα που αποτυπώνεται στη συσκευή όταν όλες οι χρωματικές συνιστώσες
λαμβάνουν τις μέγιστες τιμές τους
 Συνήθως για r = g = b = 1
 Το χρώμα αυτό εκφράζεται στο CIE XYZ σαν (Xn, Yn, Zn)
 Το CIE L*a*b* ορίζει 3 παραμέτρους:
 L* για την ένταση
 a*b* για την χρωματικότητα

33
3. Χρωματικό Μοντέλο CIE L*a*b* (2)
 Με όρους του CIE XYZ και με λευκό σημείο το (Xn, Yn, Zn), οι
παράμετροι του CIE L*a*b* είναι:
1163 Yr 16, if Yr  0.008856, Xr 
X
Yr 
Y
Zr 
Z
,
L*   Xn Yn Zn
 903.3Yr , if Yr  0.008856, όπου
a*  500( f ( Xr )  f (Yr ))  3
t, if t  0.008856
f (t )  
b*  200( f (Yr )  f (Zr )) 7.787t 16 /116, if t  0.008856

 Ο παραπάνω μετασχηματισμός είναι


αντιστρέψιμος

34

4. Το Χρωματικό Μοντέλο RGB


 Προσθετικό μοντέλο με βασικά χρώματα R-κόκκινο, G-πράσινο, B-
μπλε
 Χρησιμοποιείται γιατί η ανθρώπινη όραση βασίζεται σε χρωμο-ευαίσθητα κωνία
R,G,B

 Ένα τυχαίο χρώμα F εκφράζεται ως:
   
 F  r·R  g·G  b·B
  
όπου R, G , B: τα διανύσματα βάσης
κόκκινο, πράσινο και μπλε, και

r, g, b : οι συντεταγμένες χρώματος του F
 Στις οθόνες :
 Τα χρώματα δημιουργούνται με προσθετικό τρόπο
 Ο προσθετικός τρόπος μίξης ξεκινά με το μαύρο (χωρίς φως)
 Και καταλήγει στο άσπρο (το άθροισμα των βασικών χρωμάτων)
 Όσο προστίθενται βασικά, το αποτέλεσμα είναι πιο φωτεινό & προς το άσπρο
35
4. Το Μοντέλο RGB
 Έγχρωμοι σαρωτές:
 Δουλεύουν παρόμοια με τις οθόνες
 Μετρούν την ποσότητα των βασικών χρωμάτων που αντανακλά / διαδίδει ένα
αντικείμενο
 Τις μετατρέπουν σε ψηφιακές τιμές
 Το μοντέλο RGB είναι χρήσιμο σε τέτοιες συσκευές λόγω:
 Της προσθετικής φύσης του
 Χρήσης ως βάση των κόκκινο, πράσινο, μπλε: ορατά χρώματα, όχι θεωρητικές
ποσότητες
 Μίξη και Παρεμβολή Χρώματος: όμοια με το CIE XYZ
 Χρωματικό μοντέλο: προδιαγραφή ενός συνόλου χρωμάτων με συνδυασμούς λίγων
βασικών.
 Συνήθως 3 βασικά χρώματα, τέτοια ώστε ο συνδυασμός οποιωνδήποτε δύο να
μη δημιουργεί το τρίτο.

36

4. Το Μοντέλο RGB
 RGB κύβος:
 Ο μοναδιαίος κύβος στο χώρο RGB
 Τα χρώματα αντιστοιχούν σε διανύσματα που ξεκινούν από το κέντρο
(0,0,0), σημείο του μαύρου, και καταλήγουν εντός κύβου
 Π.Χ. το λευκό είναι το (1,1,1) και το πράσινο το (0,1,0)
 Η κατεύθυνση του διανύσματος είναι η χρωματικότητα
 Το μήκος του διανύσματος ορίζει την ένταση
 Η κύρια διαγώνιος αποτελείται από αποχρώσεις του γκρι (από μαύρο
στο άσπρο)
G Πράσινο
• (0, 1, 0) • Κίτρινο
(1, 1, 0)
Θαλασσί Ασπρο
(0, 1, 1)• •(1, 1, 1)
Μαύρο •Κόκκινο
R
(0, 0, 0) (1, 0, 0)
•Μπλε Μωβ•
B
(0, 0, 1) (1, 0, 1)

37
4. Το Μοντέλο RGB
 RGB τρίγωνο: η τομή του RGB κύβου με το επίπεδο που
ορίζουν τα σημεία:
 Κόκκινο (1,0,0)
 Πράσινο (0,1,0)
 Μπλε (0,0,1)
 Όλα τα RGB χρώματα απεικονίζονται στο RGB τρίγωνο
 Η μόνη πληροφορία που χάνεται
είναι η ένταση

38

Μοντέλο RGB
 Η κύρια διαγώνιος κύβου RGB δίνει τις αποχρώσεις του γκρι.
 Τομή κύβου RGB με επίπεδο που περνά από σημεία R(1,0,0), G(0,1,0) και
B(0,0,1) = χρωματικό τρίγωνο.
 Επαρκής 2Δ περιγραφή χρωματικού χώρου επειδή τα χρώματα συνήθως
ορίζονται από “τύπο” χρώματος και όχι από τη φωτεινότητα τους.

g 1

G Αποχρώσεις
του γκρι

R
W r 1
B
b 1
4. Το Μοντέλο RGB
 Με το RGB τρίγωνο, η έννοια της χρωματικότητας αναλύεται σε:
1. Απόχρωση:
 Είναι το κυρίαρχο μήκος κύματος
 Δίνει στο χρώμα την ταυτότητά του
 Όλες οι αποχρώσεις βρίσκονται στην περίμετρο του RGB τριγώνου
2. Κορεσμό:
 Είναι η ποσότητα του άσπρου σε ένα χρώμα
 Είναι μέγιστος στο κέντρο του τριγώνου
 Είναι ελάχιστος στην περίμετρο
 Χρώματα με ίδια απόχρωση και διαφορετικό κορεσμό βρίσκονται
στο ευθύγραμμο τμήμα που συνδέει ένα σημείο της παραμέτρου με
το κέντρο του τριγώνου
 Στον RGB κύβο, κορεσμός είναι η γωνία που σχηματίζει το
διάνυσμα του χρώματος με τη διαγώνιο του κύβου
40

4. Το Μοντέλο RGB
 Αντιστοιχία μεταξύ ορατών χρωμάτων & μοντέλου RGB:
 Αναλογίες κόκκινου, πράσινου και μπλε που απαιτούνται για την παραγωγή ορατών
χρωμάτων:

 Το μοντέλο RGB:
 Δεν παρέχει αντιλαμβανόμενη γραμμικότητα
 Δεν παρέχει διαισθητική χρηστικότητα: δεν είναι εύκολο να βρεθεί κατάλληλος
συνδυασμός RGB για τυχαίο χρώμα
 Είναι εξαρτημένο από συσκευή (Device- dependent)

 Καμπύλες μείξης R,G,B για τη σύνθεση των άλλων χρωμάτων.

 Γραμμική σύνθεση χρωμάτων από τα 3 βασικά:

 (r, g, b) είναι οι συντεταγμένες του F στον χρωματικό χώρο


F  r  R  g G  b B

41
4. Το Μοντέλο RGB
 Το μοντέλο RGB είναι εξαρτημένο από συσκευή:
 Η ίδια τριπλέτα (r,g,b) πιθανώς εμφανίζει διαφορετικά χρώματα σε
διαφορετικές οθόνες
 Πρέπει να εξασφαλίζεται ότι τα χρώματα θα εμφανίζονται ίδια κατά
τη μεταφορά έγχρωμων εικόνων μεταξύ συσκευών
 Μετατροπή RGB διαφορετικών συσκευών μέσω ενδιάμεσου
μοντέλου, ανεξάρτητου συσκευής
 Συνήθως οι οθόνες παρέχουν πίνακα M για μετατροπή στο ΧΥΖ:
X  r  XR XG XB
Y   M · g όπου M   YR YG YB 
   
 Z   b   Z R ZG Z B 
 Δεδομένων πινάκων μετατροπής M1, M2, δύο οθονών, η μετατροπή
των RGB χρωμάτων μεταξύ τους γίνεται ως εξής:
 r2   r1 
 g   M 1 · M · g 
 2 2 1  1
 b2  42
 b1 

4. Το Μοντέλο RGB
Διαφάνεια: Χρώμα Άλφα
 Bits ανά εικονοστοιχείο (bpp)
 Ο αριθμός των bits για την αποθήκευση του χρώματος ενός εικονοστοιχείου
 Ορίζει -το μέγιστο αριθμό χρωμάτων που εμφανίζονται ταυτόχρονα στην εικόνα
- το μέγεθος της εικόνας
 Συνήθως: 8 bits για κάθε κανάλι χρώματος  24 bpp
 Οι λέξεις είναι 32 bits  τα υπόλοιπα 8 bits αναπαριστούν τη διαφάνεια a
 Χρώμα άλφα:
 Είναι μια τετραπλέτα [r, g, b, a]T , a≠0
 Ισοδυναμεί με [r/a, g/a, b/a]T
 a παριστάνει την επιϕάνεια (ή όγκο) μέσα στην οποία υϕίσταται η χρωματική
ενέργεια
 Χρώμα άλφα: [C, a]=[συνεισφορά-ενέργειας,συνεισφορά-επιφάνειας], C = r,g,b
 Η παράσταση άλφα είναι παρόμοια με τις ομογενείς συντεταγμένες
στην προβολική γεωμετρία
43
4. Το Μοντέλο RGB
Διαφάνεια: Χρώμα Άλφα
Παράδειγμα:
 Έστω διαφανές αντικείμενο A με χρώμα άλφα [CA,1]T βρίσκεται
μπροστά από διαφανές αντικείμενο B με χρώμα άλφα [CB,1]T
 Το A είναι διαφανές άρα το χρώμα του συνεισφέρει μόνο aA
 Πρέπει να μειώσουμε την επιφάνεια κάλυψης του A
 Η συνεισφορά του είναι [aA CA, aA ]T σε όρους προβολής
 Η συνεισφορά του πίσω αντικειμένου είναι aB της δικής του
διαφάνειας × το ποσοστό του χρώματος (1- aA ) που επιτρέπει το Α
να περάσει: [ B (1   A )CB ,  B (1   A )]T
 Η συνολική συνεισφορά των 2 αντικειμένων (γνωστό ως τελεστής
over) είναι:
[ AC A   B (1   A )CB ,  A   B (1   A )]T
44

4. Το Μοντέλο RGB
Συμπιεσμένη μορφή RGB
 Το μέγεθος μιας εικόνας μειώνεται, μειώνοντας το bpp

 Επιτυγχάνεται με επαναδειγματοληψία του φάσματος


κάθε χρωματικής συνιστώσας
 r:g:b:a δείχνει την κατανομή των bit του bpp σε r, g, b, a
 Αν δίνονται 3 αριθμοί  δε χρησιμοποιείται διαφάνεια
 Π.χ. 4:4:4:4, 5:5:5:1, 5:6:5, 3:3:2

45
Μοντέλο RGB
 Χρωματικό τρίγωνο: περιέχει 2 χαρακτηριστικά
χρωμάτων (εκτός από τη φωτεινότητα).
 Απόχρωση (hue): βαρύνουσα συχνότητα.
 Καθαρότητα (saturation): ποσοστό συμμετοχής
άσπρου χρώματος.

 Χρώματα ίδιας απόχρωσης βρίσκονται πάνω σε


κάποιο ευθύγραμμο τμήμα που συνδέει το κέντρο
χρωματικού τριγώνου (γκρί) με σημείο της
περιμέτρου του.
καθαρότητα
 Η καθαρότητα είναι μεγαλύτερη όσο πιο κοντά
βρισκόμαστε στην περίμετρο.
 Το κέντρο του τριγώνου έχει καθαρότητα 0% .
 Τα χρώματα που προστιθέμενα δίνουν γκρί
F
ονομάζονται συμμετρικά. F'

Μοντέλο ΧΥΖ
 Όμως, ο συνδυασμός R, G, B δεν μπορεί να δώσει όλα τα χρώματα της φύσης.
 Ορισμός κανονικών χρωμάτων Χ, Υ, Ζ που μπορούν να συνθέσουν
οποιοδήποτε εμφανές χρώμα.
 Χ, Υ, Ζ είναι υπολογιστικά μεγέθη, δεν αντιστοιχούν σε εμφανή χρώματα.

 Ορισμός από CIE 1931.

 Aπεικόνιση RGB σε XYZ X  2,7690r  1,7518 g  1,1300b


Y  1,0000r  4,5907 g  0,0601b
Z 0,0565 g  5,5943b

 Απεικόνιση XYZ σε RGB r 0,4175 X  0,1578Y  0,0828Z


g  0,0912 X  0,2524Y  0,0157 Z
b  0,0009 X  0,0026Y  0,1786 Z

Mετασχηματίζοντας τις καμπύλες μείξης RGB


στο XYZ παίρνουμε τις καμπύλες μείξης XYZ.
Μοντέλο ΧΥΖ
 To κανονικό χρωματικό τρίγωνο ΧΥΖ βρίσκεται στο επίπεδο x + y + z=1.

 Ενα διάνυσμα (Χ,Υ,Ζ) του XYZ -χώρου αντιστοιχεί στο σημείο (x,y,z) του
κανονικού χρωματικού τριγώνου: x  X /  X  Y  Z  y  Y /  X  Y  Z  z  Z /  X  Y  Z 
 (x,y) συντεταγμένες αρκούν αφού x + y + z=1.

Εμφανή και φυσικά χρώματα στο κανονικό χρωματικό τρίγωνο.

5. Το Χρωματικό Μοντέλο HSV


 Οι αναλογίες κόκκινου, πράσινου, μπλε ενός χρώματος ελέγχουν:
 Απόχρωση
 Κορεσμό
 Ένταση
 Ευκολότερο να ορίσουμε ένα χρώμα με τις παραπάνω ιδιότητες
 Ο καλλιτέχνης A.H.Munsell πρότεινε το σύστημα απόχρωση-κορεσμός-τιμή έντασης (HSV)
 Τα χρώματα γεωμετρικά απεικονίζονται πάνω σε κώνο on a cone
 Απόχρωση:
 Παράταξη χρωμάτων πάνω σε κύκλο (τροχός χρωμάτων)
 Απόχρωση είναι η γωνία αναφορικά με αρχική θέση κύκλου
 Πχ. το κόκκινο είναι στις 0°, το πράσινο στις 120°,
το μπλε στις 240°
 Ο κύκλος αντιστοιχεί σε μια εγκάρσια τομή κώνου

49
5. Το Μοντέλο HSV (2)
 Κορεσμός:
 Μέγιστος στην επιφάνεια του κώνου (χωρίς τη βάση) 
είναι τα αμιγή χρώματα με μέγιστη χρωματικότητα
 Ο άξονας του κώνου έχει την ελάχιστη χρωματικότητα
(αποχρώσεις γκρί)
 Τιμή έντασης:
 Ελάχιστη τιμή (0): απουσία φωτός (μαύρο)
 Μέγιστη τιμή: το χρώμα έχει τη μέγιστη τιμή έντασης
 Απεικονίζεται πάνω στον άξονα του κώνου:
 0 : η κορυφή του κώνου
 Μέγιστη τιμή: το κέντρο της βάσης του κώνου

50

6. Το Χρωματικό Μοντέλο CMY(K)


 Αφαιρετικό μοντέλο :
 Χρησιμοποιείται στη εκτύπωση (& ζωγραφική!)
 Η αφαιρετική μίξη ξεκινά με το άσπρο (καμβάς ή χαρτί)
 Καθώς προστίθεται χρώμα, το αποτέλεσμα σκουραίνει & τείνει στο μαύρο
 Πχ. αν ρίξουμε κυανή μπογιά σε χαρτί, αυτή απορροφά το κόκκινο φως:
αν το χαρτί φωτίζεται με άσπρο φως (άσπρο= κόκκινο + πράσινο + μπλε)
το ανακλώμενο φως θα είναι (κόκκινο + πράσινο + μπλε) – κόκκινο = κυανό
 Το μοντέλο CMY είναι συμπληρωματικό του RGB
  
 Βασικά χρώματα : κυανό ( C), μωβ ( M), κίτρινο ( Y)

 Ένα χρώμα F γράφεται ως γραμμικός συνδυασμός των 3 βασικών
χρωμάτων:    
F  c ·Cm ·M  y ·Y


όπου c, m, y: οι χρωματικές συντεταγμένες του F

51
6. Το Μοντέλο CMY(K) (2)
 Το μοντέλο CMY δεν παρέχει αντιλαμβανόμενη γραμμικότητα
ούτε διαισθητική χρηστικότητα (όπως και το RGB, συμπλήρωμα)
 Μετατροπές μεταξύ CMY και RGB:
 c  1 r   r  1 c
 m   1   g    g   1   m 
           
 y  1  b   b  1  y 

 Ο κύβος CMY:
 Είναι ο μοναδιαίος κύβος στο χώρο CMY
 Το άσπρο βρίσκεται στο (0, 0, 0)
 Το μαύρο βρίσκεται στο (1, 1, 1)
 Τα υπόλοιπα χρώματα βρίσκονται στις
συμπληρωματικές θέσεις από ότι στον
RGB κύβο

52

Μοντέλο CMY
 Τα RGB και ΧΥΖ είναι προσθετικά μοντέλα.
 Τα χρώματα συντίθενται με πρόσθεση ποσοστών των τριών βασικών.

 Κατάλληλα για αντίστοιχες συσκευές (π.χ. οθόνες).

 Εκτυπωτές: αφαιρετική διαδικασία.


 Π.χ. θαλασσί μπογιά αφαιρεί το κόκκινο από το ανακλώμενο φως

 Αποτέλεσμα Ασπρο - Κόκκινο = (Κόκκινο + Πράσινο + Μπλε) - Κόκκινο =


Πράσινο + Μπλε = Θαλασσί.
 Αφαιρετικό Μοντέλο είναι το CMY.
 Στηρίζεται στα βασικά χρώματα Cyan (Θαλασσί), Magenta (Μωβ) και Yellow
(Κίτρινο). M Μωβ
(0, 1, 0)
• • Μπλε
 Αυτά είναι συμπληρωματικά των R,G και Β. Μαύρο (1, 1, 0)
Kόκκινο (1, 1, 1)
(0, 1, 1) • •


Άσπρο Θαλασσί C
(0, 0, 0) (1, 0, 0)
•Κίτρινο •
Πράσινο
Y
 Μετασχηματισμοί μεταξύ RGB και CMY. (0, 0, 1) (1, 0, 1)

c  1   r  r  1   c 
m   1    g  g   1    m 
           
 y  1   b   b  1   y 
6. Το Μοντέλο CMY(K) (3)
 Το μοντέλο CMYK :
 Όμοιο με CMY μόνο που περιέχει και το μαύρο χρώμα
 Το μαύρο χρησιμοποιείται για να επιτρέψει τη διαδικασία

σύνθεσης ενός χρώματος F με τα ελάχιστα συστατικά του
 Χρήσιμο για εκτυπωτές
 Αποφυγή σύνθεσης του μαύρου (για κείμενο, διαγράμματα)
 Οικονομία στο μελάνι
 Καλύτερη ποιότητα μαύρου

54

6. Το Μοντέλο CMY(K) (4)


 Μετατροπή από CMY σε CMYK:
b  min(c, m, y )
c b
c 
1 b
mb
m 
1 b
y b
y 
1 b

όπου c΄, m΄, y΄, b: οι χρωματικές συνιστώσες του CMYK

55
Μετασχηματισμός Χρωμάτων από Οθόνη
σε Οθόνη
 Η ίδια τριάδα (r, g, b) μπορεί να δίνει λίγο διαφορετικό χρώμα σε διαφορετικές
οθόνες
 Εξαρτάται από είδος φωσφόρου κλπ.

 Η διαφορά μπορεί να ξεπεραστεί μέσω του standard μοντέλου XYZ.


 Απαιτείται πίνακας μετασχηματισμού M για κάθε οθόνη:

X  r  Xr Xg Xb 
Y   M  g   
M   Yr Yg Yb 
   
 Z   b   Zr Zg Yb 

 Για μετάβαση από Οθόνη 1 σε Οθόνη 2:

 r2   r1 
 g   M 1  M   g 
 2 2 1  1
 b2   b1 

6. Το Μοντέλο CMY(K) (5)


 Μετατροπή από RGB (οθόνη) σε CMY (εκτυπωτής):
 Και τα δυο μοντέλα είναι εξαρτημένα από συσκευή
 Αρχικά, μετατροπή του RGB σε σύστημα μη εξαρτημένο από συσκευή (πχ.
CIE XYZ)
 Ύστερα, μετατροπή σε CMY χρησιμοποιώντας τους πίνακες μετασχηματισμού
των συσκευών:
 c   XYZ    RGB    r 
 m    CMY  ·  XYZ  ·  g 
       
 y  ofprinter  ofdisplay   b 

57
Σύνοψη χρωματικών μοντέλων

58

Θέματα Διαδικτύου
 Όταν δημιουργούμε εικόνες για το διαδίκτυο:
 Θα τις δουν πολλοί, με διαφορετικές συσκευές απεικόνισης
 Η ίδια ψηφιακή εικόνα θα εμφανιστεί διαφορετική σε διαφορετικές οθόνες
1. Διαφορές στη διόρθωση γάμμα:
 Μια εικόνα αποθηκευμένη με διαφορετική διόρθωση γάμμα, από εκείνη της
οθόνης που εμφανίζεται, θα είναι πιο φωτεινή ή πιο σκούρα
 Χρήση “μέσης” διόρθωσης γάμμα, π.χ. 2.2
2. Διαφορές στο χρωματικό μοντέλο:
 Συχνά οι εικόνες αποθηκεύονται με το μοντέλο RGB (εξαρτώμενο συσκευής)
 Διαφορές μεταξύ συσκευών παραγωγής και εμφάνισης
 Μπορεί να χρησιμοποιηθεί ένα από τα ανεξάρτητα συσκευής CIE μοντέλα
 Αλλά και αυτό έχει μειονεκτήματα:
i. Επιπλέον βήμα βαθμονόμησης (σημείο λευκού)
ii. Ακριβή μετατροπή αν χρησιμοποιείται ένα ημι-διαισθητικό μοντέλο (√)
iii. Μοντέλα RGB ευρέως αποδεκτά για οθόνες
59
Θέματα Διαδικτύου (2)
sRGB (standard RGB)
 Εύκολο για κατασκευαστές λόγω ομοιότητας με RGB

 Ανεξάρτητο συσκευής λόγω:


 Χρωματομετρικού ορισμού κόκκινου, πράσινου και μπλε, σε σχέση με το
πρότυπο CIE XYZ
 Γάμμα ίσο με2.2
 Σαφώς ορισμένες συνθήκες παρατήρησης
 Χρήσιμο στη βιομηχανία ηλεκτρονικών (π.χ. ψηφιακές
μηχανές)

60

Εικόνες υψηλού δυναμικού εύρους (ΥΔΕ-HDR)


 Ερώτηση: Πώς δημιουργούμε εικόνες σε αθάνατο φορμάτ ;
 Αδύνατο να προβλέψουμε τη μελλοντική τεχνολογία
 Λογικό να θεωρήσουμε ότι το ανθρώπινο οπτικό σύστημα θα παραμείνει ίδιο
 Δυναμικό εύρος μιας εικόνας: ο λόγος της υψηλότερης ως προς την
χαμηλότερη τιμή έντασης
 Το ανθρώπινο μάτι έχει τρομερές δυνατότητες αντίληψης
δυναμικού εύρους (10.000:1)
 Με λίγα δευτερόλεπτα προσαρμογής, αυτό αυξάνεται σε ~109:1
 Το δυναμικό εύρος τυπικών οθονών είναι ~1000:1
 Η κωδικοποίηση 24-bit RGB έχει δυναμικό εύρος 90:1
 Παριστά οριακά ό,τι μπορεί να εμφανισθεί σε μια οθόνη (διαφορά 1 τάξη μεγέθους)
 Παριστά ανεπαρκώς ό,τι μπορεί να αντιληφτεί το ανθρώπινο μάτι (>2 τάξεις μεγέθους)
 Το δυναμικό εύρος του συμβατικού φίλμ κάμερας είναι υψηλότερο από εκείνο του 24-bit RGB, πράγμα που το
καθιστά πιο ‘αθάνατο’

61
Εικόνες υψηλού δυναμικού εύρους (HDR) (2)
 HDR εικόνες παράγονται:
 Με ειδικό φωτογραφικό εξοπλισμό
 Με συνδυασμό πολλαπλών εικόνων μιας σκηνής τραβηγμένης με διαφορετικά
επίπεδα φωτεινότητας
 Συνθετικά (τεχνικές ολικού φωτισμού)
 Τονική Απεικόνιση: Συμπίεση εικόνων HDR στο δυναμικό εύρος
οθονών με δεδομένες προθέσεις διατήρησης χαρακτηριστικών
 Απούσα είναι η ικανότητα να εμφανίζεται ένα ευρύ δυναμικό εύρος
ταυτόχρονα (πχ. οδήγηση τη νύχτα με προβολείς)
 Πλεονεκτήματα για τη δημιουργία εικόνων HDR:
 Εικόνες μπορούν να αποθηκεύονται στο δυναμικό εύρος που αντιλαμβάνεται ο
άνθρωπος, για μελλοντική χρήση
 Δυνατότητα εφαρμογής διαφορετικών μέθοδοι τονικής απεικόνισης, για
διαφορετικές προθέσεις

62

Εικόνες υψηλού δυναμικού εύρους (HDR) (3)


 Φωτογραφικό παράδειγμα HDR :
Μια σκοτεινή λήψη χάνει Μια φωτεινή λήψη χάνει
πληροφορία από το εσωτερικό πληροφορία από τα σύννεφα
της αψίδας

63
Εικόνες υψηλού δυναμικού εύρους (HDR) (4)
 Φωτογραφικό παράδειγμα HDR :
HDR εικόνα με τονική HDR εικόνα με τονική
απεικόνιση ιστογράμματος απεικόνιση Reinhard

64

Εικόνες υψηλού δυναμικού εύρους (HDR) (5)


 Μπορούμε να αποθηκεύσουμε εικόνες HDR αν αυξήσουμε τα bpp
 Πχ. 32 bits ανά χρωματική συνιστώσα, δίνοντας συνολικά 96 bpp
 Οι HDR κωδικοποιήσεις χρησιμοποιούν έξυπνα την ιδέα της
Ελάχιστης Αντιληπτής Διαφοράς (ΕΑΔ-JND)
 JND: η ελάχιστη διαφορά έντασης που μπορεί να εντοπίσει το ανθρώπινο
μάτι σε ένα δεδομένο επίπεδο έντασης
 Λογαριθμική σχέση ανάμεσα σε JNDs και επίπεδα έντασης:
 Είναι λογικό να διαχωρίσουμε τη συνιστώσα έντασης ενός εικονοστοιχείου
από τη χρωματική συνιστώσα και να αποθηκεύσουμε χωριστά την πρώτη
κωδικοποιημένη σε λογαριθμική κλίμακα
 Αυτή την προσέγγιση ακολουθούν οι HDR κωδικοποιήσεις, όπως το RGBE
του Radiance και το LogLuv στο οποίο θα εστιάσουμε

65
Εικόνες υψηλού δυναμικού εύρους (HDR) (6)
 Το 32-bit LogLuv έχει:
 32 bpp
 15 bits για την τιμή έντασης
 1 bit για το πρόσημο της έντασης (επιτρέπεται αρνητική ένταση)
 16 bits για τη χρωματικότητα

 Λογαριθμική μετατροπή μεταξύ της πραγματικής έντασης L και


της (ακέραιας) αποθηκευόμενης τιμής κατά LogLuv Le :

Le  c1 (log 2 L  c2 )  ,
L  2[ Le / c1 c2 ]
 Το παραπάνω περιέχει ολόκληρο το εύρος της αντιληπτής έντασης
σε μικρά, μη αντιληπτά, βήματα

66

Εικόνες υψηλού δυναμικού εύρους (HDR) (7)


 Κατανομή των bits στο 32-bit LogLuv:

67
Ερωτήσεις
1. Αν σε μία ασπρόμαυρη οθόνη αφιερώσουμε d bits για την παράσταση της
φωτεινότητας του κάθε pixel, πόσες διαφορετικές φωτεινότητες μπορούμε
να πάρουμε; Να δικαιολογήσετε την απάντηση σας.

a. d2 b. 2d c. d d. 2

Σωστή απάντηση b.
Αν έχουμε αριθμούς που αποτελούνται από d bits και με το δεδομένο ότι κάθε bit
μπορεί να πάρει μόνο τιμές 0 και 1, μπορούμε να πάρουμε 2d διαφορετικούς
αριθμούς, όσοι και οι δυνατοί συνδυασμοί των d bits. Επομένως, μπορούμε να
πάρουμε 2d διαφορετικές φωτεινότητες.

Ερωτήσεις

2. Τα ζεύγη φωτεινοτήτων (0.1, 0.2) και (0.3, 0.6) έχουν την ίδια διαφορά;

Απάντηση
Από τη φυσιολογία είναι γνωστό ότι το μάτι αντιλαμβάνεται λόγους φωτεινότητας
παρά τιμές φωτεινότητας. Επομένως, τα δύο παραπάνω ζεύγη έχουν την ίδια
διαφορά καθώς οι λόγοι τους είναι ίσοι.
Ερωτήσεις
3. Εξηγείστε γιατί η παρακάτω επιλογή αναμμένων pixels για τιμή φωτεινότητας 2
είναι κακή;

Απάντηση

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

Ερωτήσεις
4. Ποιο κριτήριο πρέπει να πληρείται για να έχουμε μια καλή επιλογή αναμμένων
pixels;

Απάντηση

Τα αναμμένα pixels που παριστάνουν μια σειρά τιμών φωτεινότητας θα πρέπει να


αποτελούν μια αυξητική σειρά, δηλαδή τα αναμμένα pixels για την τιμή
φωτεινότητας i θα πρέπει να αποτελούν υποσύνολο αυτών για την τιμή i+1.
Ερωτήσεις
5. Ποιο το μειονέκτημα της τεχνικής Halftoning; Αναφέρετε ένα παράδειγμα.

Απάντηση

Με την τεχνική Halftoning πετυχαίνουμε την αύξηση των διαθέσιμων τιμών φωτεινότητας,
σε βάρος της ανάλυσης της οθόνης. Για παράδειγμα, αν χρησιμοποιούμε περιοχές 2x2
pixels, μπορούμε να πετύχουμε την αύξηση των τιμών φωτεινότητας από 2 σε 5 με
παράλληλη όμως μείωση της οριζόντιας και της κάθετης ανάλυσης κατά 1/2.

Ερωτήσεις
6. Ποιο είναι το κύριο χαρακτηριστικό του RGB χρωματικού μοντέλου;

Απάντηση
Γενικά ,ένα χρωματικό μοντέλο προσπαθεί να συνθέσει όσο το δυνατόν
περισσότερα χρώματα με συνδυασμό κάποιων βασικών χρωμάρων. Το RGB
χρωματικό μοντέλο χρησιμοποιεί τρία βασικά χρώματα, με την ιδιότητα ότι
κανένας συνδυασμός δύο εξ αυτών δε μπορεί να δώσει το τρίτο. Η μείξη των
τριών βασικών χρωμάτων με σκοπό τη σύνθεση ενός χρώματος F γίνεται
γραμμικά με τους συντελεστές r,g,b ως εξής:

F  r  R  g G  b B
Ερωτήσεις
7. Ποιος ο λόγος ορισμού των κανονικών χρωμάτων;

Απάντηση

Επειδή όλα τα χρώματα που συναντώνται στη φύση δεν είναι δυνατόν να
δημιουργηθούν με μείξη πεπερασμένου αριθμού βασικών χρωμάτων, πολύ δε
περισσότερο των τριών χρωμάτων R,G,B, είναι αναγκαίος ο ορισμός ενός ενιαίου
συστήματος χρωμάτων. Για το λόγο αυτό ορίστηκαν τα κανονικά χρώματα
(X,Y,Z) με τη βοήθεια των οποίων μπορούμε να ορίσουμε οποιοδήποτε εμφανές
χρώμα.

You might also like