Επικοινωνιακά προβλήµατα οπτικοποίησης ψηφιακών τρισδιάστατων µοντέλων εδάφους

Σχετικά έγγραφα
Περίληψη ιπλωµατικής Εργασίας

Μεθοδολογίες παρεµβολής σε DTM.

Εγγυημένη ποιότητα υπηρεσίας

Οδηγίες σχεδίασης στο περιβάλλον Blender

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Κεφάλαιο 7. Τρισδιάστατα Μοντέλα

Απεικόνιση Υφής. Μέρος Α Υφή σε Πολύγωνα

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Πανεπιστήµιο Θεσσαλίας

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Σηµειώσεις στις σειρές

Εισαγωγή. Τεχνολογία Πολυµέσων 01-1

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

Αρχές κωδικοποίησης. Τεχνολογία Πολυµέσων 08-1

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Λύση: Λύση: Λύση: Λύση:

Λιβανός Γιώργος Εξάμηνο 2017Β

Εισαγωγή ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΣΠ

Σχεδιαστικά Προγράμματα Επίπλου

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville

Απαραίτητες αφού 3Δ αντικείμενα απεικονίζονται σε 2Δ συσκευές. Θέση παρατηρητή. 3Δ Μετασχ/σμός Παρατήρησης

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

Τεχνολογία Πολυμέσων. Ενότητα # 8: Αρχές κωδικοποίησης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κωδικοποίηση βίντεο (MPEG)

Αρχές κωδικοποίησης. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 08-1

3. Προσομοίωση ενός Συστήματος Αναμονής.

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

Γεωμετρικές Σκιές. Θ. Θεοχάρης Ι. Κακαδιάρης - Γ. Πασσαλής

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ιαφορική εντροπία Σεραφείµ Καραµπογιάς

9. Τοπογραφική σχεδίαση

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Αρχιτεκτονική σχεδίαση με ηλεκτρονικό υπολογιστή

Κεφάλαιο 8. Οπτικοποίηση Απαλοιφή

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

Λειτουργικά Συστήματα Η/Υ

11 Το ολοκλήρωµα Riemann

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

αx αx αx αx 2 αx = α e } 2 x x x dx καλείται η παραβολική συνάρτηση η οποία στο x

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Εικόνες και γραφικά. Τεχνολογία Πολυµέσων 05-1

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΟΔΗΓΙΕΣ ΓΙΑ ΕΓΚΑΤΑΣΤΑΣΗ ΚΑΙ ΧΡΗΣΗ ΤΟΥ GOOGLE EARTH [ΠΛΟΗΓΗΣΗ ΚΑΙ ΕΚΤΥΠΩΣΗ ΑΕΡΟΦΩΤΟΓΡΑΦΙΩΝ]

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

4.3. Γραµµικοί ταξινοµητές

Η γνώση του αναγλύφου

Άσκηση 1. (σημειώστε πως 1KB = 2 10 bytes, 1Mbps = 10 6 bits/sec).

WIRELESS SENSOR NETWORKS (WSN)

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

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

Γ ΚΟΙΝΟΤΙΚΟ ΠΛΑΙΣΙΟ ΣΤΗΡΙΞΗΣ

Συστήµατα και Αλγόριθµοι Πολυµέσων

5.1 Θεωρητική εισαγωγή

Μετρήσεις µε παλµογράφο

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

Επιµέλεια Θοδωρής Πιερράτος

Κεφάλαιο 3 Πολυπλεξία

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Στο Κεφάλαιο 5 µελετώντας την προβολή του τρισδιάστατου χώρου στο επίπεδο της κάµερας εξετάστηκε

ΜΕΤΡΩΝΤΑΣ ΤΟΝ ΠΛΑΝΗΤΗ ΓΗ

Nao becomes a painter

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

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

ισδιάστατοι μετασχηματισμοί ΚΕΦΑΛΑΙΟ 4: ισδιάστατοι γεωμετρικοί μετασχηματισμοί

Γραφικά με υπολογιστές

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

Διαχρονικές δομές δεδομένων

Εισαγωγή στην επιστήµη των υπολογιστών ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ

5. Απλή Ταξινόμηση. ομές εδομένων. Χρήστος ουλκερίδης. Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Stellarium Εγχειρίδιο Οδηγιών

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

Εισαγωγή στο 3DS Max 2009

Επεξεργασία Χαρτογραφικής Εικόνας

Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα

ΨΗΦΙΑΚΑ ΚΥΚΛΩΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3

Cubitech Hellas Ακροπόλεως 24, Καλλιθέα, Αθήνα Τ.Κ , Ελλάδα, Τηλ Φαξ

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

CARDISOFT. User Guide. ClassWeb VERSION 1.1. [February] [2007] Cardisoft Ανώνυµη Εταιρία Παραγωγής Λογισµικού

Εφαρμογή ψηφιοποίησης RollMan

ΤΟ ΠΡΟΒΛΗΜΑ ΜΕΤΑΦΟΡΑΣ

ΕΝ ΕΙΚΤΙΚΑ ΠΑΡΑ ΕΙΓΜΑΤΑ ΚΡΙΤΗΡΙΩΝ ΑΞΙΟΛΟΓΗΣΗΣ. Κεφάλαιο 17

ΒΑΣΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΣΥΓΧΡΟΝΙΚΗΣ ΛΗΨΗΣ ΚΑΙ ΑΠΕΙΚΟΝΙΣΗΣ (MBL) DBLAB 3.2 ΤΗΣ FOURIER.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ. ΕΞΕΤΑΣΗ ΣΤΗ ΜΗΧΑΝΙΚΗ Ι Σεπτέµβριος 2004

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

Εξαγωγή κανόνων από αριθµητικά δεδοµένα

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

Εικόνα. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 05-1

ΓΝΩΡΙΜΙΑ ΜΕ ΤΟΝ ΠΑΛΜΟΓΡΑΦΟ

Transcript:

Πτυχιακή Εργασία Επικοινωνιακά προβλήµατα οπτικοποίησης ψηφιακών τρισδιάστατων µοντέλων εδάφους Πετράκης Στυλιανός Τµήµα Πληροφορικής Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Σεπτέµβριος 2007

Πίνακας Περιεχοµένων 2 Πίνακας Περιεχοµένων Πίνακας Περιεχοµένων... 2 ΠΙΝΑΚΑΣ ΣΧΗΜΑΤΩΝ... 3 Περίληψη... 6 ΚΕΦΑΛΑΙΟ 1... 7 Εισαγωγή... 7 ΚΕΦΑΛΑΙΟ 2... 11 Σχετικές ηµοσιεύσεις... 11 ΚΕΦΑΛΑΙΟ 3... 15 Τριγωνοποίηση και απόδοση... 15 3.1 Οµοιόµορφη υποδιαίρεση... 17 3.2 Μετρικές σφάλµατος προσέγγισης... 20 3.3 Προσαρµοστική υποδιαίρεση... 22 ΚΕΦΑΛΑΙΟ 4... 24 Μεταφορά µέσω δικτύου... 24 4.1 Συµπίεση... 25 4.2 ιαµέριση στο χώρο... 28 4.2.1 Τρόπος αξιολόγης τµηµάτων υφής... 30 4.2.2 Σύστηµα Απόδοσης Προτεραιοτήτων... 30 4.3 ιαµέριση στη συχνότητα... 32 4.4 Μετρήσεις... 39 4.4.1 Σύνοψη µετρήσεων... 50 4.5 Πρωτόκολλο... 51 ΚΕΦΑΛΑΙΟ 5... 52 Περαιτέρω ανάλυση... 52 5.1 Λεπτοµέρειες υλοποίησης... 52 5.2 ιάγραµµα κλήσεων από τον πελάτη... 54 5.3 ιάγραµµα κλήσεων από τον διακοµιστή... 56 5.4 Οδηγίες χρήσης... 56 5.5 Πιθανές βελτιώσεις... 59 ΒΙΒΛΙΟΓΡΑΦΙΑ... 62

ΠΙΝΑΚΑΣ ΣΧΗΜΑΤΩΝ 3 ΠΙΝΑΚΑΣ ΣΧΗΜΑΤΩΝ Σχήµα 1.1 : Σκηνή από το mmo παιχνίδι World of Warcraft... 8 Σχήµα 1.2 : Σκηνή από το κοινωνικό online πρόγραµµα Second Life... 9 Σχήµα 2.1 : Σκηνή το πρόγραµµα περιήγησης του πλανήτη Google Earth... 13 Σχήµα 3.1 : Κάτοψη τριγωνικής προσέγγισης µιας γεωγραφικής περιοχής.... 16 Σχήµα 3.2 : Η αρχική τριγωνοποίηση, ένα µοναδικό διαµάντι, και το αποτέλεσµα µετά από δύο υποδιαιρέσεις... 18 Σχήµα 3.3 : Τα πρώτα 5 επίπεδα υποδιαίρεσης... 19 Σχήµα 3.4 : Το σφάλµα προσέγγισης µετρηµένο στο µέσο της βάσης ενός τριγώνου... 21 Σχήµα 3.5 : Το ίδιο σφάλµα προσέγγισης παρατηρούµενο από διαφορετικές οπτικές γωνίες.... 22 Σχήµα 4.1 : ύο τµήµατα εδάφους όπως προκύπτουν από τη διαµέριση του συνολικού χάρτη σε υποπεριοχές... 32 Σχήµα 4.2 : Τα τµήµατα του προηγούµενου σχήµατος αφού προβληθούν στην οθόνη. Βλέπουµε ότι αν και είναι ίδιου µεγέθους και γειτονικά η επιφάνεια που καταλαµβάνουν στην παραγόµενη εικόνα είναι αρκετά διαφορετική... 33

ΠΙΝΑΚΑΣ ΣΧΗΜΑΤΩΝ 4 Σχήµα 4.3 : Σχηµατικό διάγραµµα του συστήµατος... 36 Σχήµα 4.4 : Flowchart της διαδικασίας... 38 Σχήµα 4.5 : Γράφηµα των καθυστερήσεων διάδοσης των αιτήσεων.... 40 Σχήµα 4.6 : Γράφηµα του ρυθµού αποστολής των κοµµατιών (patches) κατά την διάρκεια της σύνδεσης για τοπική σύνδεση και ακίνητη κάµερα... 41 Σχήµα 4.7 : Γράφηµα των CPU ticks κατά την διάρκεια της σύνδεσης για τοπική σύνδεση και ακίνητη κάµερα... 42 Σχήµα 4.8 Σχήµα 4.9 : Γράφηµα του ρυθµού αποστολής των κοµµατιών (patches) κατά την διάρκεια της σύνδεσης για τοπική σύνδεση και κάµερα εν κινήσει.43 : Γράφηµα των CPU ticks κατά την διάρκεια της σύνδεσης για τοπική σύνδεση και κάµερα εν κινήσει.... 43 Σχήµα 4.10 : Γράφηµα των καθυστερήσεων διάδοσης των αιτήσεων.... 44 Σχήµα 4.11 Σχήµα 4.12 : Γράφηµα του ρυθµού αποστολής των κοµµατιών (patches) κατά την διάρκεια της σύνδεσης για σύνδεση adsl 256kbps και ακίνητη κάµερα.... 45 : Γράφηµα των CPU ticks κατά την διάρκεια της σύνδεσης για σύνδεση adsl 256kbps και ακίνητη κάµερα... 45 Σχήµα 4.13 : Γράφηµα του ρυθµού αποστολής των κοµµατιών (patches) κατά την διάρκεια της σύνδεσης για σύνδεση adsl 256kbps και κάµερα εν κινήσει.... 46 Σχήµα 4.14 : Γράφηµα των CPU ticks κατά την διάρκεια της σύνδεσης για σύνδεση adsl 256kbps και κάµερα εν κινήσει.... 47 Σχήµα 4.15 : Γράφηµα των καθυστερήσεων διάδοσης των αιτήσεων... 48 Σχήµα 4.16 : Γράφηµα του ρυθµού αποστολής των κοµµατιών (patches) κατά την διάρκεια της σύνδεσης για απλή σύνδεση 56kbps και ακίνητη κάµερα.... 48 Σχήµα 4.17 : Γράφηµα των CPU ticks κατά την διάρκεια της σύνδεσης για απλή σύνδεση 56kbps και ακίνητη κάµερα... 49

ΠΙΝΑΚΑΣ ΣΧΗΜΑΤΩΝ 5 Σχήµα 4.18 : Γράφηµα του ρυθµού αποστολής των κοµµατιών (patches) κατά την διάρκεια της σύνδεσης για απλή σύνδεση 56kbps και κάµερα. εν κινήσει.... 49 Σχήµα 4.19 : Γράφηµα των CPU ticks κατά την διάρκεια της σύνδεσης για απλή σύνδεση 56kbps και κάµερα. εν κινήσει.... 50 Σχήµα 5.1 Σχήµα 5.2 : Μία άποψη του προγράµµατος που γίνεται αισθητή η προοδευτική µεταφορά των επιπέδων λεπτοµέρειας του εδάφους... 54 : Τρόπος αρίθµησης των τεµαχισµένων κοµµατιών (patches) του εδάφους... 57 Σχήµα 5.2 : Άποψη του προγράµµατος µε την camera κοντά στο έδαφος... 59 Σχήµα 5.3 : Μία άποψη της εφαρµογής... 61

6 Περίληψη Οι ταχύτατοι ρυθµοί ανάπτυξης της τεχνολογίας τα τελευταία χρόνια έχουν οδηγήσει στην δυνατότητα δηµιουργίας εικονικών κόσµων, µε µεγάλο βαθµό αληθοφάνειας και διάδρασης τόσο µε την τεχνητή νοηµοσύνη όσο και µε τις διαπροσωπικές σχέσεις µέσω διαδικτύου. Η συγκεκριµένη ανάπτυξη οδηγεί στην έρευνα για την βελτίωση υπαρχόντων αλγορίθµων απεικόνισης των τρισδιάστατων κόσµων µέσω του διαδικτύου όπως επίσης και στην δηµιουργία νέων τεχνικών µεταφοράς τρισδιάστατης πληροφορίας και υφής πάνω από ένα δίκτυο. Στο συγκεκριµένο paper θα αναφερθούµε σε ένα ολοκληρωµένο δικτυακό σύστηµα απεικόνισης τρισδιάστατων περιοχών. Η µέθοδος χωρίζεται στις τεχνικές απεικόνισης από πλευράς του χρήστη (client) κάνοντας χρήση αλγορίθµων τριγωνοποίησης και απεικόνισης επιπέδων λεπτοµέρειας (LOD) αλλά και στο δικτυακό κοµµάτι και κυριότερα στον τρόπο προοδευτικής αποστολής και παραλαβής διαφορετικών αναλύσεων των στοιχειωδών κοµµατιών υφής (texture tiles) ενός τρισδιάστατου κόσµου πάνω από το δίκτυο.

ΚΕΦΑΛΑΙΟ 1 7 ΚΕΦΑΛΑΙΟ 1 Εισαγωγή Οι ταχύτατοι ρυθµοί ανάπτυξης της τεχνολογίας τα τελευταία χρόνια έχουν οδηγήσει στην δυνατότητα δηµιουργίας εικονικών κόσµων, µε µεγάλο βαθµό αληθοφάνειας και διάδρασης τόσο µε την τεχνητή νοηµοσύνη όσο και µε τις διαπροσωπικές σχέσεις µέσω διαδικτύου. Πιο συγκεκριµένα η ραγδαία ανάπτυξη της βιοµηχανίας των videogames είναι φαινοµενική, χρήζοντας επιτακτική την ανάγκη ρεαλιστικής απεικόνισης τρισδιάστατων περιοχών. Κάθε χρόνο οι εταιρίες ανάπτυξης προσπαθούν να προχωρήσουν την τεχνολογία ένα βήµα πιο µπροστά, χρησιµοποιώντας στο έπακρο τις τελευταίες γενιές του hardware (κάρτες γραφικών, επεξεργαστές) και των διαθέσιµων APIs (OpenGL, DirectX) δηµιουργώντας έτσι πιο λεπτοµερείς κόσµους που προσεγγίζουν όλο και περισσότερο την πραγµατικότητα.

ΚΕΦΑΛΑΙΟ 1 8 Ο τοµέας που δραστηριοποιείται αρκετά τα τελευταία χρόνια είναι αυτός των τρισδιάστατων εφαρµογών που κάνουν χρήση του διαδικτύου. Τέτοιες εφαρµογές αποτελούν και τα σύγχρονα διαδικτυακά videogames (Massively Multiplayer Online games) όπως τα World of Warcraft, Everquest, Lord of the Rings Online, µε το πρώτο να απασχολεί εννιά εκατοµµύρια παίκτες παγκοσµίως, αλλά και οι µεγάλες κοινότητες που δεν µπορούν να χαρακτηριστούν παιχνίδια αλλά κοινωνικά πειράµατα, όπως το Second Life που έχει γίνει γνωστό τελευταία καθώς αρκετοί το προτιµούν όχι µόνο για διασκέδαση αλλά και για εκπαίδευση µέσω εικονικών διαλέξεων. Η συγκεκριµένη ανάπτυξη οδηγεί στην έρευνα για την βελτίωση υπαρχόντων αλγορίθµων απεικόνισης των τρισδιάστατων κόσµων µέσω του διαδικτύου όπως επίσης και στην δηµιουργία νέων τεχνικών µεταφοράς τρισδιάστατης πληροφορίας και υφής πάνω από ένα δίκτυο. Σχήµα 1.1: Σκηνή από το mmo παιχνίδι World of Warcraft Το terrain visualization πρόκειται για την µέθοδο απεικόνισης πραγµατικών ή φανταστικών τρισδιάστατων κόσµων και συχνά χρησιµοποιείται σε εφαρµογές που ο χρήστης πρέπει να έχει ένα σηµείο αναφοράς στον χώρο, όπως προσοµοιωτές, ηλεκτρονικά παιχνίδια, επιστηµονικά και στρατιωτικά προγράµµατα.

ΚΕΦΑΛΑΙΟ 1 9 Σχήµα 1.2: Σκηνή από το κοινωνικό online πρόγραµµα Second Life Η τρισδιάστατη απόδοση γεωγραφικών εκτάσεων είναι ένα δύσκολο πρόβληµα για εφαρµογές που απαιτούν την λεπτοµερή απεικόνιση µεγάλων περιοχών σε πραγµατικό χρόνο. Η εξαιρετικά µεγάλη πολυπλοκότητα των απαιτούµενων γεωµετρικών µοντέλων που απαιτούνται για την λεπτοµερή απόδοση ακόµη και µιας περιορισµένης περιοχής καθιστούν αναγκαία την ανάπτυξη αλγορίθµων προσέγγισης των µοντέλων αυτών από απλούστερα. Επιπλέον πρέπει να αντιµετωπισθεί το µέγεθος των φωτογραφιών που χρησιµοποιούνται ως χάρτες υφής και το οποίο γρήγορα γίνεται απαγορευτικό για τα περισσότερα υποσυστήµατα απόδοσης καθώς αυξάνει η απεικονιζόµενη περιοχή. Για παράδειγµα αν θέλουµε να παραστήσουµε µια γεωγραφική περιοχή έκτασης 100km 2 µέσω ενός υψοµετρικού χάρτη και αντίστοιχης φωτογραφίας µε ανάλυση 30 µέτρων χρησιµοποιώντας ένα τριγωνικό πλέγµα πλήρους ανάλυσης θα απαιτούνταν πάνω από 22 εκατοµµύρια τρίγωνα και ένας χάρτης υφής µεγέθους πάνω από 33ΜΒ. ιπλασιασµός της έκτασης θα οδηγούσε σε τετραπλασιασµό των απαιτήσεων. Όπως βλέπουµε λοιπόν, αν και η υφή µπορεί και να µην είναι πολύ σοβαρό πρόβληµα

ΚΕΦΑΛΑΙΟ 1 10 ανάλογα µε την εφαρµογή (µε αποτέλεσµα να έχει τύχει λιγότερης ερευνητικής προσοχής) το πρόβληµα της γεωµετρικής πολυπλοκότητας παρ' όλα αυτά πρέπει να αντιµετωπιστεί σε όλες εκτός από τις πιο στοιχειώδεις περιπτώσεις. Για τον λόγο αυτό εφαρµόζονται συνήθως αλγόριθµοι προσέγγισης µεταβλητού επιπέδου λεπτοµέρειας (Level of Detail, LOD) οι οποίοι αποδίδουν διαφορετική λεπτοµέρεια σε κάθε περιοχή του εδάφους µε σκοπό την παραγωγή µιας απλής προσέγγισης της πραγµατικής επιφάνειας µε ταυτόχρονη διατήρηση όσο το δυνατόν περισσότερης "παρατηρήσιµης" λεπτοµέρειας. Στο συγκεκριµένο paper θα αναφερθούµε σε ένα ολοκληρωµένο δικτυακό σύστηµα απεικόνισης τρισδιάστατων περιοχών. Η µέθοδος χωρίζεται στις τεχνικές απεικόνισης από πλευράς του χρήστη (client) κάνοντας χρήση αλγορίθµων τριγωνοποίησης και απεικόνισης επιπέδων λεπτοµέρειας (LOD) αλλά και στο δικτυακό κοµµάτι και κυριότερα στον τρόπο προοδευτικής αποστολής και παραλαβής διαφορετικών αναλύσεων των στοιχειωδών κοµµατιών υφής (texture tiles) ενός τρισδιάστατου κόσµου πάνω από το δίκτυο. Σκοπός του συστήµατος είναι η ελαχιστοποίηση του όγκου δεδοµένων που αποστέλλονται στον χρήστη κατά την επικοινωνία µε τον αποµακρυσµένο διακοµιστή (server), η καλύτερη χρήση του εύρους ζώνης της σύνδεσης (bandwidth) και η ταχύτερη και λεπτοµερής απεικόνιση του σηµείου που εστιάζει (focus point) ο χρήστης της εφαρµογής. Κύριες εφαρµογές που κυριαρχούν στον τοµέα της προοδευτικής µεταφοράς της πληροφορίας ενός τρισδιάστατου κόσµου είναι τα προγράµµατα περιήγησης του πλανήτη που χωρίζονται στα ανοιχτού λογισµικού όπως το Terravision και στα εµπορικά όπως τα Google Earth (πρώην Keyhole), Skylinesoft, Geonova, Virtual Earth και World Wind.

ΚΕΦΑΛΑΙΟ 2 11 ΚΕΦΑΛΑΙΟ 2 Σχετικές ηµοσιεύσεις Για την εκτέλεση της ακριβούς απεικόνισης µιας τρισδιάστατης έκτασης, συνήθως απαιτούνται ισχυρά συστήµατα, δεδοµένου ότι το µέγεθος των δεδοµένων υπερβαίνει την περιορισµένη ικανότητα αποθήκευσης ή/και επεξεργασίας διαθέσιµη στους κοινούς υπολογιστές. Με την υιοθέτηση των τεχνικών level of detail (LOD), είναι δυνατό να µειωθούν τα στοιχεία σε ένα εύχρηστο µέγεθος διατηρώντας µια αποδεκτή λεπτοµέρεια επιπέδων όπου απαιτείται, εξαλείφοντας την ανάγκη ενός high performance συστήµατος για την απεικόνιση.

ΚΕΦΑΛΑΙΟ 2 12 Στον ερευνητικό τοµέα της απεικόνισης ενός τρισδιάστατου κόσµου υπάρχουν αρκετές αναφορές που σχετίζονται µε τις τεχνικές LOD (level of detail) για την γεωµετρία του terrain. Οι Soumyajit, Narayanan, Bhattacharjee [1] ασχολήθηκαν µε την προοδευτική µεταφορά πληροφορίας του κόσµου πάνω από το δίκτυο για περιπτώσεις που το τοπίο αλλάζει δυναµικά όπως σε battlefields και online games. Άλλοι ερευνητές επικεντρώθηκαν στην µεταφορά κοµµατιών του terrain ανάλογα µε το που έχει εστιάσει ο χρήστης, όπως οι Din-Chang Tseng, Chung-Chien Huang [3] και Peter Lindstrom, Valerio Pascucci [17]. Οι εργασίες σχετικά µε την βελτίωση της τριγωνοποίησης είναι αρκετές, ξεκινώντας από τις παλαιότερες (ROAM [12], QuadTIN [19] και Progressive Meshes [14]) µέχρι νεότερες που σχετίζονται µε Strip Masks [16] και Quadtrees [18]. Τέλος υπάρχουν και papers που σχετίζονται µε γενικές τεχνικές προοδευτικής αποστολής δεδοµένων ([4] και [9]) που εστιάζουν στο εύρος ζώνης των χρηστών ([5] και [21]) αλλά και στο µέγεθος των terrain προς τριγωνοποίηση [7]. Ειδική αναφορά πρέπει να γίνει στις εργασίες των Brodersen για το κατακερµατισµό τις επιφάνειας σε GeoMipMaps [20] και των Bettio, Gobbetti, Marton και Pintore [10] που έκαναν χρήση wavelets για την προοδευτική ανανέωση της λεπτοµέρειας του terrain. Στον τοµέα της ασύγχρονης µεταφοράς της υφής πάνω από το δίκτυο, χρησιµοποιούνται κυρίως τεχνικές ([8] και [15]) που ξεκινούν µε τον κατακερµατισµό µιας µεγάλης σε ανάλυση υφής σε texture tiles και τον τρόπο αποστολής αυτών σε σχέση µε τα επίπεδα λεπτοµέρειας που υπάρχουν αποθηκευµένα είτε ως mipmaps [11] είτε ως διαφορετικές µορφές (image pyramids ή multiresolution textures που συµπιέζονται µε wavelets [13]). Τελευταία παρουσιάστηκε µια ακόµη µέθοδος που φαίνεται να ξεχωρίζει αρκετά από όλες τις προσεγγίσεις. Η µέθοδος των Tanner, Migdal και Jones [6] στην οποία

ΚΕΦΑΛΑΙΟ 2 13 βασίζει και την λειτουργία του η εφαρµογή τρισδιάστατης απεικόνισης του πλανήτη Γη από την Google Google Earth, διαφοροποιείται αρκετά από τις παραπάνω. Σχήµα 2.1: Σκηνή από το πρόγραµµα περιήγησης του πλανήτη Google Earth Η µέθοδος clipmapping χρησιµοποιεί µια καθολική επιφάνεια (Universal Texture) που δεν διαχωρίζει τον κόσµο σε µικρά κοµµάτια (texture tiles) αλλά χρησιµοποιεί clipmaps (µια συνεχώς ανανεώσιµη απεικόνιση που βασίζεται στα mipmaps) και εξαρτάται από τον τρόπο που ο παρατηρητής ζητάει τα επίπεδα λεπτοµέρειας. Βασικός λόγος που οι [6] ακολούθησαν αυτή την τεχνική ήταν γιατί τα texture tiles εµφανίζουν µεγάλο βαθµό aliasing µετά από τους γεωµετρικούς µετασχηµατισµούς και έτσι η χρήση ενός καθολικού ενιαίου texture βελτιώνει την ποιότητα του αποτελέσµατος. Χρήση της εργασίας των [6] έκαναν και οι Losasso και Hoppe στο [2] για την αναπαράσταση διαφορετικών επιπέδων λεπτοµέρειες στο terrain. Χάρη στην ανάπτυξη των GPUs χαµηλού κόστους (από το 1999) έχει επέλθει µια τεράστια αύξηση στις δυνατότητες γραφικής απεικόνισης των κοινών υπολογιστών. Η παρούσα απόδοση µιας GPU έχει ξεπεράσει τα 100 εκατοµµύρια τρίγωνα το

ΚΕΦΑΛΑΙΟ 2 14 δευτερόλεπτο ενώ πρόσφατες εργασίες επαναξιολογούν το πρόβληµα LOD χρησιµοποιώντας πλέον την δύναµη των GPUs και των πρόσφατα προγραµµατιζόµενων GPU tessellators. Ο αλγόριθµος που επιλέχθηκε για την γραφική απεικόνιση των γεωγραφικών περιοχών στην παρούσα υλοποίηση περιγράφεται στο [12]. Αν και η σχετική δηµοσίευση είναι αρκετά παλιά, και µάλιστα σε έναν τόσο ραγδαία αναπτυσσόµενο τοµέα όπως τα γραφικά υπολογιστών, η επιλογή αυτή έγινε βάση ορισµένων πλεονεκτηµάτων του εν λόγω αλγορίθµου. Έτσι αν και όπως περιγράφεται στην σχετική δηµοσίευση (χωρίς δηλαδή µετατροπές, οι οποίες όµως δεν είναι δύσκολο να γίνουν σε µια υπάρχουσα υλοποίηση) δεν θα µπορεί να εκµεταλλευτεί στο έπακρο τους νέους επεξεργαστές γραφικών, από την άλλη δεν απαιτεί και την χρήση τους σε αντίθεση µε τους περισσότερους νεότερους αλγορίθµους. Επίσης η πολυπλοκότητά του σε χώρο και χρόνο είναι αρκετά µικρή τόσο συγκρινόµενη µε άλλους αλγορίθµους της κατηγορίας του όσο και µε τους νεώτερους. Αυτό έχει ως αποτέλεσµα την σχετικά καλή (και σταθερή) του απόδοση ακόµα και σε µεγάλο όγκο δεδοµένων. Θεωρητικά η απόδοση του εξαρτάται µόνο από τον αριθµό των τριγώνων στην τελική προσέγγιση και όχι από την πολυπλοκότητα η το µέγεθος του υψοµετρικού χάρτη. Ένα όµως από τα σηµαντικότερα πλεονεκτήµατά του είναι αναµφισβήτητα η απλότητα και η κοµψότητά του. Όλος ο αλγόριθµος, στη βασική του µορφή, στηρίζεται στο δυαδικό δένδρο τριγώνων (triangle bintree) και τις ιδιότητές του αποφεύγοντας έτσι την επιβολή περίπλοκων κανόνων για την εξασφάλιση της συνέπειας του πλέγµατος που παράγεται σε κάθε βήµα. Οι ιδιότητες αυτές (ιδιαίτερα οι δύο τελευταίες) καθιστούν τον αλγόριθµο ιδανικό ως βάση για περαιτέρω εξέλιξη όταν και αν το απαιτήσει η εφαρµογή Να σηµειωθεί πως η παρούσα εργασία περιέχει κοµµάτια της διπλωµατικής του µεταπτυχιακού φοιτητή ηµήτρη Παπαβασιλείου µε τίτλο ικτυακή µεταφορά και απόδοση γεωγραφικών περιοχών (Νοέµβριος 2006) που ασχολήθηκε νωρίτερα µε το θέµα.

ΚΕΦΑΛΑΙΟ 3 15 ΚΕΦΑΛΑΙΟ 3 Τριγωνοποίηση και απόδοση Στα παρακάτω, αντί να αναλύσουµε µε κάθε λεπτοµέρεια τον επιλεγµένο αλγόριθµο θα παρουσιάσουµε µια γενική επισκόπηση των χαρακτηριστικών των αναδροµικών (ιεραρχικών) αλγορίθµων τριγωνοποίησης που βασίζονται σε υποδιαίρεση τριγώνων µε έµφαση στις επιλογές που γίνονται στον αλγόριθµο ROAM. Η αφοµοίωση των αρχών αυτών θα απλοποιήσει την κατανόηση των λεπτοµερειών υλοποίησης, ανάλυση των οποίων µπορεί να βρεθεί στη σχετική βιβλιογραφία [12]. Μιλώντας λοιπόν για µοντέλα γεωγραφικών τοποθεσιών κατάλληλα για αναδροµικούς αλγορίθµους εννοούµε ουσιαστικά ένα προς ένα διακριτές

ΚΕΦΑΛΑΙΟ 3 16 τρισδιάστατες συναρτήσεις (επιφάνειες) ορισµένες πάνω σε µια πεπερασµένη περιοχή. Όπως έχει ήδη αναφερθεί ο περιορισµός των µοντελοποιήσιµων επιφανειών σε ένα προς ένα συναρτήσεις µπορεί να δηµιουργήσει προβλήµατα (αποκλείει για παράδειγµα την αναπαράσταση σπηλαίων) τα οποία δεν υπάρχουν σε άλλες κατηγορίες αλγορίθµων (βλ. πχ. progressive meshes). Παρ' όλα αυτά απλή σύγκριση των εν λόγω αλγορίθµων εύκολα αποκαλύπτει την αρκετά χειρότερη πολυπλοκότητά τους τόσο σε χώρο όσο και σε χρόνο. εδοµένης λοιπόν µίας συνάρτησης z = h(x, y) η οποία µας δίνει το υψόµετρο για κάθε σηµείο (x, y) του πλέγµατος, και η οποία είναι ορισµένη σε κάποιο πεπερασµένο σύνολο D στόχος µας είναι η προσέγγιση της επιφάνειας που ορίζεται από την h πάνω στο D µέσω µιας τµηµατικώς τριγωνικής επιφάνειας (Σχ.3.1). Σχήµα 3.1: Κάτοψη τριγωνικής προσέγγισης µιας γεωγραφικής περιοχής.

ΚΕΦΑΛΑΙΟ 3 17 3.1 Οµοιόµορφη υποδιαίρεση Οι αλγόριθµοι που θα εξετάσουµε παρακάτω στηρίζονται σε διαδοχικές υποδιαιρέσεις µιας απλής προσεγγιστικής επιφάνειας µέχρι την επίτευξη του επιθυµητού επιπέδου λεπτοµέρειας. Για το λόγο αυτό το πεδίο ορισµού D πρέπει να είναι της µορφής {x, y: 0 < x < 2 ^ l + 1, 0 < y < 2 ^ l + 1}. Ο πιο απλός αλγόριθµος αναδροµικής προσέγγισης µιας επιφάνειας ορισµένης σε ένα πεδίο της παραπάνω µορφής είναι ο ακόλουθος: Ξεκινάµε µε την πιο απλή τριγωνική προσέγγιση, στην περίπτωσή µας δύο ορθογώνια ισοσκελή τρίγωνα που ενωµένα σχηµατίζουν ένα τετράγωνο που καλύπτει όλο το πεδίο ορισµού (Σχ.3.2). Η βασική αυτή µονάδα αποτελεί ένα λεγόµενο διαµάντι και µιας και είναι µάλλον ανεπαρκής ως προσέγγιση των περισσοτέρων τοποθεσιών πρέπει να υποδιαιρεθεί περαιτέρω. Αυτό επιτυγχάνεται εύκολα αντικαθιστώντας κάθε τρίγωνο του διαµαντιού µε δυο άλλα τα οποία προκύπτουν αν φέρουµε τη µεσοκάθετο του. Έτσι εισάγεται στην προσέγγιση ένα νέο σηµείο µε συντεταγµένες x και y που υπολογίζονται εύκολα από δύο αντικριστές κορυφές του διαµαντιού. Η z συντεταγµένη του υπολογίζεται από την τιµή της h(x, y). Η διαδικασία αυτή φαίνεται στο σχήµα 3.4 όπου το αρχικό τρίγωνο pqr έχει υποδιαιρεθεί στα prc' και qrc'. Το ευθύγραµµο τµήµα rc είναι η µεσοκάθετος του αρχικού τριγώνου ενώ η z- συντεταγµένη του c' είναι ίση µε το ύψος h(x, y).

ΚΕΦΑΛΑΙΟ 3 18 Σχήµα 3.2: Η αρχική τριγωνοποίηση, ένα µοναδικό διαµάντι, και το αποτέλεσµα µετά από δύο υποδιαιρέσεις. Το γεγονός ότι κάθε νέο σηµείο που προκύπτει από την διαδικασία αυτή θα ανήκει στο πλέγµα ορισµού (ότι θα έχει δηλαδή ακέραιες συντεταγµένες) και ακόµα ότι η επιθυµητή επιφάνεια µπορεί να προκύψει µε αρκετές εκτελέσεις τέτοιων βηµάτων εξασφαλίζεται από τη µορφή του πεδίου ορισµού και της αρχικής τριγωνοποίησης. Ακολουθώντας λοιπόν την παραπάνω διαδικασία υποδιαίρεσης για κάθε διαµάντι της τριγωνοποίησης (και παραβλέποντας τα µισά διαµάντια στα όρια του πεδίου ορισµού) προκύπτει µια σειρά τριγωνικών προσεγγίσεων αυξανόµενης λεπτοµέρειας που καταλήγει στην επιθυµητή επιφάνεια για 2l υποδιαιρέσεις (Σχ. 3.3). Πρόωρη διακοπή του αλγορίθµου έχει ως αποτέλεσµα ένα τριγωνικό πλέγµα χαµηλής ανάλυσης µε αντίστοιχα χαµηλές όµως απαιτήσεις σε µνήµη και χρόνο επεξεργασίας που απαιτείται για την απεικόνισή του. Αν και ο παραπάνω αλγόριθµος δεν είναι και πολύ χρήσιµος πρακτικά µπορεί παρόλα αυτά να οδηγήσει σε µείωση των πόρων που απαιτούνται για την απόδοση µιας γεωγραφικής τοποθεσίας. Σε έναν εξοµοιωτή πτήσης για παράδειγµα ο αριθµός των βηµάτων υποδιαίρεσης θα εξαρτιόνταν από το ύψος του αεροσκάφους µε αποτέλεσµα µια πτήση µεγάλου υψόµετρου να απαιτεί πολύ λιγότερα τρίγωνα για να αποδοθεί ικανοποιητικά χωρίς να απαγορεύεται η κάθοδος σε χαµηλότερα υψόµετρα (η οποία θα οδηγούσε σε επιπλέον υποδιαιρέσεις.).

ΚΕΦΑΛΑΙΟ 3 19 Σχήµα 3.3: Τα πρώτα 5 επίπεδα υποδιαίρεσης.

ΚΕΦΑΛΑΙΟ 3 20 3.2 Μετρικές σφάλµατος προσέγγισης Είναι προφανές ότι θα ήταν προτιµότερο να κάνουµε τοπικά επιλεκτική υποδιαίρεση έτσι ώστε πολύπλοκες ' γεωγραφικές περιοχές (για παράδειγµα µια οροσειρά) να προσεγγίζονται µε περισσότερα τρίγωνα από απλές (όπως ένας κάµπος). Χρειαζόµαστε δηλαδή έναν τρόπο να ποσοτικοποιήσουµε τοπικά το σφάλµα µιας δεδοµένης προσέγγισης της ζητούµενης επιφάνειας. Για υψοµετρικούς χάρτες (δηλαδή ένα προς ένα συναρτήσεις ύψους της µορφής που θεωρήσαµε) µια επιλογή (η οποία χρησιµοποιείται και στον αλγόριθµο ROAM) είναι ο ορισµός του σφάλµατος ενός τριγώνου ως e T = max{e T0, e T1 } + z(u c ) - z_t(u c ) όπου e T0, e T1 τα σφάλµατα των τριγώνων που προκύπτουν από την υποδιαίρεση του, των λεγοµένων παιδιών του, z T (u c ) το ύψος του τριγώνου στο µέσο της βάσης του (το σηµείο c στο σχ. 3.4) και z(u c ) το ύψος της επιφάνειας στο ίδιο σηµείο (c' στο σχ. 3.4). Αν φανταστούµε το µέγεθος αυτό ως το πάχος του τριγώνου τότε προκύπτει ένας σφηνοειδής όγκος (που ονοµάζεται σφήνα) και αποτελεί ένα εγγυηµένο όριο η φράγµα της επιφάνειας στην συγκεκριµένη περιοχή. Αυτό σηµαίνει ότι όσο και να υποδιαιρέσουµε το συγκεκριµένο τρίγωνο το αποτέλεσµα δεν πρόκειται να προεκταθεί εκτός των ορίων της σφήνας αυτής. Ο όγκος αυτός είναι χρήσιµος για ν αποφανθούµε περί του ποια γεωγραφική περιοχή βρίσκεται εντός του οπτικού πεδίου και συνεπώς πρέπει να σταλεί στο υποσύστηµα απεικόνισης. Περισσότερες λεπτοµέρειες µπορούν να βρεθούν στην ενότητα 6 του [12].

ΚΕΦΑΛΑΙΟ 3 21 Σχήµα 3.4: Το σφάλµα προσέγγισης µετρηµένο στο µέσο της βάσης ενός τριγώνου. Το σφάλµα που ορίσθηκε παραπάνω αφορά την µορφολογία του εδάφους ανεξαρτήτως της θέσης από την οποία το παρατηρούµε. Όπως φαίνεται και από το σχήµα 3.5 το αντιληπτό σφάλµα εξαρτάται σε µεγάλο βαθµό από την οπτική γωνία παρατήρησης. Για να λάβουµε το γεγονός αυτό υπ' όψη πρέπει να προβάλλουµε το σφάλµα ενός τριγώνου (στην πραγµατικότητα πρόκειται για άνω φράγµα τους σφάλµατος) στην οθόνη. Αυτό µπορεί να γίνει µε διάφορους τρόπους. Στο [12] περιγράφεται ένας τρόπος υπολογισµού εγγυηµένων µονοτονικών σφαλµάτων αλλά µιας και αυτός είναι πολύπλοκος τόσο στην κατανόηση όσο και υπολογιστικά µπορεί να χρησιµοποιηθεί η παρακάτω απλή προσέγγιση: θεωρούµε δύο σηµεία τα οποία συµπίπτουν µε το κέντρο του διαµαντιού όσον άφορα τις x και y συντεταγµένες αλλά απέχουν από το κέντρο στον z άξονα κατά e T και -e T αντίστοιχα. Το ευθύγραµµο τµήµα µε άκρα τα σηµεία αυτά προβάλλεται στην οθόνη και το µήκος του τµήµατος που προκύπτει αποτελεί το σφάλµα του διαµαντιού.

ΚΕΦΑΛΑΙΟ 3 22 Τέλος σηµαντικό ρόλο στην εκτίµηση του σφάλµατος παίζει και η ορατότητα του διαµαντιού. Αν δηλαδή κάποιο τµήµα του εδάφους βρίσκεται εκτός του πεδίου ορατότητας (είτε γιατί βρίσκεται για παράδειγµα πίσω από τον παρατηρητή ή γιατί κρύβεται από οµίχλη) τότε στα διαµάντια του τµήµατος αυτού µπορούν να αποδοθούν µηδενικά ή πολύ µικρά σφάλµατα χωρίς περαιτέρω υπολογισµούς. Η τεχνική αυτή, γνωστή γενικά ως view frustum culling, µπορεί να οδηγήσει σε µεγάλη βελτίωση της ορατής λεπτοµέρειας της παραγόµενης εικόνας εξασφαλίζοντας ότι δεν θα γίνεται σπατάλη τριγώνων σε µη ορατά τµήµατα του εδάφους αλλά απαιτεί στην γενική περίπτωση αρκετούς υπολογισµούς (εύρεση της τοµής κάθε τριγώνου µε την πυραµίδα παρατήρησης σε κάθε καρέ). Και εδώ η ιεραρχική δοµή που προκύπτει από την αναδροµική υποδιαίρεση µπορεί να οδηγήσει σε µεγάλη οικονοµία χώρου και χρόνου. Σχήµα 3.5: Το ίδιο σφάλµα προσέγγισης παρατηρούµενο από διαφορετικές οπτικές γωνίες. 3.3 Προσαρµοστική υποδιαίρεση εδοµένου λοιπόν ενός τρόπου εκτίµησης του σφάλµατος προσέγγισης µιας τριγωνοποίησης της ζητούµενης επιφάνειας ο αλγόριθµος είναι αρκετά απλός. Ξεκινάµε µε µια βασική τριγωνοποίηση, τυπικά ένα µοναδικό διαµάντι το οποίο καλύπτει όλη την έκταση και στη συνέχεια σε κάθε βήµα διαιρούµε το τρίγωνο µε το µεγαλύτερο σφάλµα (στο [12] αναφέρεται ως προτεραιότητα λόγω της χρήσης ουρών προτεραιότητας για την διάταξη τον τριγώνων σε φθίνουσα σειρά σφάλµατος προσέγγισης). Ο αλγόριθµος τερµατίζει µόλις ξεπεραστεί κάποιο όριο πάνω στον αριθµό τριγώνων, το µέγιστο σφάλµα ή τον χρόνο εκτέλεσης.

ΚΕΦΑΛΑΙΟ 3 23 Η παραπάνω µέθοδος απαιτεί την δηµιουργία της τριγωνοποίησης εκ νέου σε κάθε καρέ κάτι που συχνά οδηγεί σε σπατάλη χρόνου αφού το αποτέλεσµα για το προηγούµενο καρέ θα είναι κατά πάσα πιθανότητα σχεδόν βέλτιστο και για το τρέχον. Αν λοιπόν εισάγουµε µια διαδικασία συγχώνευσης ενός τριγώνου, ουσιαστικά την αντίστροφη της διαδικασίας διάσπασης, µπορούµε να τροποποιήσουµε τον αλγόριθµο ώστε σε κάθε καρέ η αρχική τριγωνοποίηση να είναι αυτή του προηγουµένου. Στην περίπτωση αυτή θα πρέπει σε κάθε βήµα να εκτελούµε συγχωνεύσεις ή διασπάσεις ανάλογα µε το αν βρισκόµαστε πάνω ή κάτω από το όριο τριγώνων ή µέγιστου σφάλµατος. Τα παραπάνω, αν και αρκετά απλοποιηµένα, παρουσιάζουν τις βασικές αρχές λειτουργίας όλων των αλγορίθµων τριγωνοποίησης συνεχώς µεταβαλλόµενης λεπτοµέρειας (continuous level of detail, CLOD) µε υποδιαίρεση τριγώνων µε έµφαση στις διάφορες επιλογές που γίνονται στον αλγόριθµο ROAM. Αποµένουν βέβαια αρκετές λεπτοµέρειες υλοποίησης για την πλήρη παρουσίαση του αλγορίθµου (για παράδειγµα ο χειρισµός µισών διαµαντιών στα όρια της περιοχής, η λογική ελέγχου για την επίτευξη συγκεκριµένων στόχων αριθµού τριγώνων ή χρόνου επεξεργασίας κλπ.) και για αυτά ο αναγνώστης παραπέµπεται στην αρχική δηµοσίευση [12].

ΚΕΦΑΛΑΙΟ 4 24 ΚΕΦΑΛΑΙΟ 4 Μεταφορά µέσω δικτύου Σε όλη την παραπάνω ανάλυση έχει γίνει η σιωπηλή υπόθεση ότι όλα τα απαραίτητα δεδοµένα (υψοµετρία και φωτογραφία) βρίσκονται ήδη στην κεντρική µνήµη όταν ξεκινάει η διαδικασία τριγωνοποίησης και απόδοσης. Αν και σε πολλές περιπτώσεις δεν είναι δύσκολο να ικανοποιηθεί αυτή η προϋπόθεση σε ορισµένες εφαρµογές η βάση γεωγραφικών δεδοµένων µπορεί να βρίσκεται σε κάποιον αποµακρυσµένο υπολογιστή µε αποτέλεσµα να είναι απαραίτητη η µεταφορά τους µέσω δικτύου στον τοπικό υπολογιστή πριν την γραφική απόδοση.

ΚΕΦΑΛΑΙΟ 4 25 Ο προφανής τρόπος για την αντιµετώπιση του προβλήµατος αυτού είναι να µεταφερθούν ολόκληροι οι χάρτες υψοµετρίας και υφής πριν την έναρξη της διαδικασίας απόδοσης. Αν και αυτή είναι η απλούστερη λύση µιας και δεν απαιτεί καµία απολύτως αλλαγή στα όσα έχουν παρουσιαστεί µέχρι τώρα (αρκεί µε κάποιο τρόπο να γίνει η µεταφορά των δυο αρχείων πριν την εκτέλεση του προγράµµατος απόδοσης) δεν είναι πρακτική στις περισσότερες εφαρµογές. Παρ' όλη την συνεχή αύξηση του εύρους ζώνης στη διαδικτύωση οικιακών υπολογιστών ο όγκος των δεδοµένων γρήγορα γίνεται απαγορευτικός αν δεν είµαστε διατεθειµένοι να υποστούµε µεγάλους χρόνους αναµονής πριν την έναρξη της εφαρµογής. Ο λόγος βέβαια έχει να κάνει τόσο µε την απαίτηση τουλάχιστον 4 bytes ανά δείγµα για την αποθήκευση των χαρτών (6 bytes στη περίπτωση του ROAM), όσο και µε την τετραγωνική εξάρτηση του χώρου αποθήκευσης από το επίπεδο λεπτοµέρειας (διπλασιασµός της λεπτοµέρειας των δεδοµένων τετραπλασιάζει τον όγκο τους). 4.1 Συµπίεση Στην περίπτωση λοιπόν που η εφαρµογή απαιτεί άµεση περιήγηση σε σχετικά µεγάλο όγκο δεδοµένων που όµως δεν είναι τοπικά διαθέσιµα το πρώτο βήµα πρέπει οπωσδήποτε να είναι η συµπίεση των δεδοµένων αυτών. Εφαρµόζοντας έναν αλγόριθµο απολεστικής συµπίεσης εικόνας όπως για παράδειγµα το πρότυπο JPEG µπορούµε να πετύχουµε µεγάλους λόγους συµπίεσης της τάξης του 1/15 στην φωτογραφία και 1/20 στην υψοµετρία µε σχετικά µικρό αντίκτυπο στην ποιότητα της εικόνας. Αυτό οφείλεται κυρίως στην τάση τόσο της µορφολογίας όσο και της υφής του εδάφους να αλλάζει αργά και οµαλά. Έτσι σχετικά αραιή δειγµατοληψία (της τάξης των 15 µέτρων για παράδειγµα) οδηγεί σε εικόνες µε την ενέργεια συγκεντρωµένη στις χαµηλές συχνότητες οι οποίες είναι ιδιαίτερα κατάλληλες για συµπίεση. Εκτός από συµπίεση µετασχηµατισµού DCT (όπως στο πρότυπο JPEG [23] µπορεί να χρησιµοποιηθεί και ή σχετικά νέα τεχνολογία των κυµατιδίων (wavelets). Για αυτό

ΚΕΦΑΛΑΙΟ 4 26 τον λόγο για την αποθήκευση των υφών στον διακοµιστή και για την προοδευτική αποστολή τους στον client, εξετάστηκε αρχικά η πιθανότητα χρήσης του προτύπου Jpeg 2000 που από την δοµή του υποστηρίζει µεγαλύτερη ευελιξία. Το Jpeg 2000, σύµφωνα µε το specification paper του, χωρίζεται σε 12 ενότητες καθεµιά από τις οποίες ασχολείται µε διαφορετικό τοµέα χαρακτηριστικών του. Πιο συγκεκριµένα οι ενότητες αυτές είναι οι ακόλουθες: 1. Κώδικας πυρήνα 2. Επεκτάσεις (προσθήκη περισσότερων χαρακτηριστικών και εκλέπτυνση sophistication του πυρήνα) 3. Motion JPEG 2000 4. Πιστοποίηση 5. Υλοποιήσεις σε C και Java 6. Ενοποιηµένος τύπος αρχείου εικόνας 7. που έχει εγκαταλειφθεί 8. JPSEC (θέµατα ασφαλείας) 9. JPIP (διαδραστικό πρωτόκολλο και API) 10. JP3D (ογκοµετρικές volumetric εικόνες) 11. JPWL (ασύρµατες εφαρµογές) 12. ISO Base Media File Format (προσφιλές του MPEG-4) Ενδιαφέρον παρουσιάζει η ένατη ενότητα που αναφέρεται σε Interactive Protocols και API, µε προσανατολισµό το πρωτόκολλο JPIP που χρησιµοποιείται για να παραχθεί µια εικόνα µε το ελάχιστο δυνατό bandwidth. Οι βιβλιοθήκες που κάνουν χρήση του JPIP protocol σε συνδυασµό µε τις δυνατότητες ROI (Region of Interest) του Jpeg 2000, είναι τόσο εµπορικές (Kakadu Software) όσο και δωρεάν (OpenJPEG, Jasper, J2K-Codec) που για διάφορους λόγους (υψηλές τιµές, φτωχό documentation, εγκατάλειψη κώδικα) οδήγησαν στην µη χρήση του προτύπου Jpeg 2000.

ΚΕΦΑΛΑΙΟ 4 27 Απεναντίας, στην περίπτωση του αρχικού JPEG είναι διαθέσιµες ανοιχτές δοκιµασµένες και ώριµες βιβλιοθήκες (η βιβλιοθήκη του IJG για παράδειγµα δεν χρειάστηκε να αλλάξει από το 1998) οι οποίες υλοποιούν σχεδόν ολόκληρο το πρότυπο (προοδευτική αποσυµπίεση κλπ.) Θεωρήθηκε λοιπόν προτιµότερο να αποφευχθεί η χρήση του JPEG2000 εις βάρος του αρχικού JPEG αφού τα οφέλη του πρώτου δεν φαίνεται να δικαιολογούν την επιπρόσθετη δυσκολία και πολυπλοκότητα που θα εισήγαγε. Συγκεκριµένα χρησιµοποιήθηκε η βιβλιοθήκη libjpeg [22] του Independent JPEG Group (IJG) για την αποσυµπίεση των δεδοµένων πριν την τριγωνοποίηση ενώ είναι χρήσιµες και οι εφαρµογές που συνοδεύουν (και χρησιµοποιούν) την βιβλιοθήκη για συµπίεση εικόνων διαφόρων τύπων κατά JPEG. Τελικά λοιπόν η συµπίεση µπορεί να µειώσει δραµατικά τον όγκο των δεδοµένων και συνεπώς και τον χρόνο µεταφοράς τους µέσα από το δίκτυο στον τοπικό υπολογιστή άλλα δεν µπορεί, θεωρητικά, να εγγυηθεί διαδραστική χρήση αν τα αρχικά δεδοµένα είναι εξαιρετικά µεγάλα. Το πόσο βέβαια αυτό ισχύει στη πράξη εξαρτάται από την τάξη µεγέθους των δεδοµένων που σκοπεύουµε να χρησιµοποιήσουµε. Για παράδειγµα ένας χάρτης υφής µεγέθους 2048 x 2048 απαιτεί για την αποθήκευσή του 12.5 MB αλλά συµπιέζεται σε µόλις 900 kb. Αν αυξήσουµε το µέγεθος του χάρτη σε 4096 x 4096 ο χώρος που καταλαµβάνει στην µνήµη τετραπλασιάζεται όπως ήταν αναµενόµενο αλλά µετά από συµπίεση απαιτούνται πλέον µόλις 2.5 MB. Αν λάβουµε υπ' όψη ότι ένας 4096 x 4096 χάρτης επαρκεί για την αναπαράσταση µιας περιοχής 122 τετραγωνικών χιλιοµέτρων σε ανάλυση 30 µέτρων αλλά και ότι η ταχύτητα των δικτύων συνεχώς αυξάνει βλέπουµε ότι πρέπει να λάβουµε σοβαρά υπ' όψη την απλή αυτή λύση πριν στρέψουµε την προσοχή µας σε πιο πολύπλοκες (και συνεπώς ακριβές στην ανάπτυξη και συντήρηση) προσεγγίσεις. Παραµένει όµως παρ' όλα αυτά γεγονός ότι µε το να µεταφέρουµε όλα τα δεδοµένα προκαταβολικά πρέπει αναγκαστικά να υποστούµε και τον αντίστοιχο χρόνο αναµονής ο οποίος µάλιστα είναι ανάλογος του όγκου των δεδοµένων. Μια άλλη προσέγγιση είναι να µην απαιτήσουµε την µεταφορά όλων των δεδοµένων πριν την εκτέλεση της εφαρµογής αλλά να ξεκινήσουµε απευθείας την διαδικασία τριγωνοποίησης και απόδοσης µεταφέροντας παράλληλα τα δεδοµένα και

ΚΕΦΑΛΑΙΟ 4 28 ενηµερώνοντας την παραγόµενη εικόνα καθώς αυτά καταφθάνουν. Αν σχεδιαστεί προσεκτικά η σειρά µεταφοράς των δεδοµένων ανάλογα µε το σηµείο όπου εστιάζεται η προσοχή του παρατηρητή σε κάθε στιγµή µπορούµε, όχι µόνο να πετύχουµε µείωση του χρόνου αναµονής αλλά και να απεξάρτηση του χρόνου αυτού από τον συνολικό όγκο των δεδοµένων. Πρέπει όµως να κάνουµε µια διάκριση ανάµεσα στις περιπτώσεις των υψοµετρικών και φωτογραφικών δεδοµένων. Ο χειρισµός των υψοµετρικών δεδοµένων αποτελεί γενικά πολύ µικρότερο πρόβληµα από τα φωτογραφικά. Αυτό συµβαίνει από τη µια γιατί µπορούν να κωδικοποιηθούν ικανοποιητικά χρησιµοποιώντας µόλις 1 Byte ανά δείγµα και από την άλλη λόγω της αρκετά αργής και οµαλής διακύµανσης τους(σε πολύ µεγαλύτερο από τη φωτογραφία βαθµό) η οποία οδηγεί σε µεγαλύτερους λόγους συµπίεσης. Έτσι για παράδειγµα ένας τυπικός χάρτης υψοµετρίας µεγέθους 4096 x 4096 καταλαµβάνει µετά από συµπίεση µόλις 400 kb ενώ αύξηση του µεγέθους σε 8192 x 8192, δηλαδή τετραπλασιασµός της επιφάνειας, οδηγεί σε κάτι παραπάνω από διπλασιασµό των απαιτήσεων σε αποθηκευτικό χώρο (περίπου 1 MB). Για το λόγω αυτό, αν και η διαδικασία που αναφέρθηκε στην προηγούµενη παράγραφο µπορεί να εφαρµοστεί τόσο σε φωτογραφικούς όσο και υψοµετρικούς χάρτες, επιλέχθηκε η χρήση της µόνο για τη φωτογραφία. Η υψοµετρία αντίθετα µεταφέρεται εξ' ολοκλήρου πριν την έναρξη της εφαρµογής. Αυτό απλοποιεί αρκετά τόσο το γραφικό όσο και το δικτυακό τµήµα της εφαρµογής µε ελάχιστο αντίκτυπο στις επιδόσεις της (ο οποίος µάλιστα θα τείνει να γίνει µηδαµινός καθώς αναπτύσσεται η τεχνολογία των δικτύων υπολογιστών). 4.2 ιαµέριση στο χώρο Σε ότι αφορά λοιπόν τους χάρτες υφής η µέθοδος που ακολουθείται είναι η ακόλουθη: ο αρχικός χάρτης µεγέθους N x N διαµερίζεται σε ένα πλέγµα υπο-χαρτών µεγέθους M x M, όπου το M µπορεί να είναι οποιαδήποτε δύναµη του 2 µικρότερη (ή και ίση) του N. Κάθε τµήµα µπορεί να µεταφερθεί ανεξάρτητα µέσω του δικτύου

ΚΕΦΑΛΑΙΟ 4 29 στον τοπικό υπολογιστή κατόπιν αιτήσεως. Οι επιπτώσεις του µεγέθους τµήµατος στην απόδοση του συστήµατος είναι σηµαντικές. ιαµερισµός σε πολλά µικρά τµήµατα θα έχει ως αποτέλεσµα η επιλογή του ορατού τµήµατος του εδάφους το οποίο και πρέπει να µεταφερθεί να είναι πιο λεπτοµερής. Από την άλλη όµως, όσο µικραίνει το µέγεθος κάθε τµήµατος περιορίζεται και ο λόγος συµπίεσης που µπορεί να επιτευχθεί. Επιπλέον η αλλαγή του τµήµατος που µεταφέρεται από το διακοµιστή συνεπάγεται και κάποια επιβάρυνση µε αποτέλεσµα η µεταφορά πολλών µικρών τµηµάτων να οδηγεί σε σπατάλη του διαθέσιµου εύρους ζώνης. Τέλος µικρό µέγεθος τµηµάτων οδηγεί σε πολύ µικρά συµπιεσµένα αρχεία για κάθε τµήµα οπότε χάνουµε τη δυνατότητα προοδευτικής µεταφοράς η οποία θα αναλυθεί στην επόµενη ενότητα. Η επιλογή του µεγέθους τµήµατος συνεπώς εξαρτάται από το µέγεθος του χάρτη και είναι ένας συµβιβασµός των παραγόντων που αναφέρθηκαν. Ενδεικτικά αναφέρουµε οτι σε εναν χάρτη µεγέθους 4096 x 4096 διαµέριση σε τµήµατα 256 x 256 ή και 128 x 128 είναι µια καλή επιλογή. Οι αλλαγές που απαιτούνται στον αλγόριθµο απόδοσης, όπως αυτός περιγράφηκε προηγουµένως είναι σχετικά λίγες. Συγκεκριµένα πρέπει να εξασφαλιστεί ότι κανένα από τα τρίγωνα που προκύπτουν από την διαδικασία τριγωνοποίησης δεν θα έχει ακµή µεγαλύτερη του M κάτι που µπορεί να υλοποιηθεί τροποποιώντας τον υπολογισµό προτεραιοτήτων ώστε τα «µεγάλα» τρίγωνα να παίρνουν την µέγιστη προτεραιότητα. Επιθυµούµε επίσης τα τµήµατα «υψηλής προτεραιότητας» τα οποία περιέχουν σηµαντική πληροφορία, να εµφανιστούν όσο το δυνατόν γρηγορότερα ή σε περίπτωση που ο χρήστης έχει εκδηλώσει ρητά την επιθυµία του να δει ένα συγκεκριµένο τµήµα αυτό να απεικονιστεί απευθείας. Επιπλέον απαιτούνται δυο νέες ρουτίνες που να πραγµατοποιούν την αποσυµπίεση και φόρτωση των νεοαφιχθέντων τµηµάτων υφής καθώς και τον προγραµµατισµό της σειράς µεταφοράς των τµηµάτων αυτών.

ΚΕΦΑΛΑΙΟ 4 30 4.2.1 Τρόπος αξιολόγης τµηµάτων υφής Κάθε φορά που ανανεώνεται η σκηνή στην οθόνη του χρήστη, γίνεται µια αξιολόγηση όλων των τµηµάτων του εδάφους σε σύγκριση µε το οπτικό πεδίο του παρατηρητή. Με αυτό τον τρόπο κάθε τµήµα υφής έχει µια συγκεκριµένη προτεραιότητα. Κατά το τέλος της αξιολόγησης το patch µε την µεγαλύτερη προτεραιότητα καλείται από τον διακοµιστή και απεικονίζεται στην οθόνη. Πως όµως αυτή η τεχνική εκµεταλλεύεται τα επίπεδα λεπτοµέρειας που έχει η υφή κάθε τµήµατος? Αυτό που θέλουµε να επιτύχουµε είναι η γρήγορη και αποδοτική αναπαράσταση των υφών των τµηµάτων που ζητάει ο χρήστης µια δεδοµένη στιγµή. Για αυτό τον λόγο πρέπει να επιτύχουµε κυκλική εναλλαγή ώστε αρχικά να γεµίζουν όλα τα patches που παρατηρεί µια δεδοµένη στιγµή η camera µε το πρώτο επίπεδο λεπτοµέρειας (βλ. 4.2 ιαµέριση στην Συχνότητα) και το πιο χαµηλό σε ποιότητα- και µε συνεχή περάσµατα να βελτιώνουµε την λεπτοµέρεια ανανεώνοντας αυτές τις τιµές. Για να καταφέρουµε κάτι τέτοιο, είναι επιτακτικό να µάθουµε πρώτα πως λειτουργεί το σύστηµα απόδοσης προτεραιοτήτων στα patches του terrain. 4.2.2 Σύστηµα Απόδοσης Προτεραιοτήτων Το σύστηµα απόδοσης προτεραιοτήτων προβάλλει τις ακµές κάθε τµήµατος του εδάφους (patch) στην οθόνη, ζητώντας κάθε φορά έστω και µια να βρίσκεται εντός του οπτικού πεδίου. Αν δεν συµβαίνει κάτι τέτοιο τότε αποδίδεται στο εν λόγω patch προτεραιότητα 0 ώστε να επέλθει η επεξεργασία του στο τέλος. Σε διαφορετική περίπτωση υπολογίζεται η προτεραιότητα του σε σχέση µε την απόστασή του από την camera, αξιολογώντας µε µεγαλύτερη προτεραιότητα τα πιο κοντινά. Αυτό επιτυγχάνεται υπολογίζοντας την επιφάνεια σε pixels που

ΚΕΦΑΛΑΙΟ 4 31 καταλαµβάνει κάθε M x M τµήµα του εδάφους στην παραγόµενη εικόνα και ζητώντας να µεταφερθεί στη συνέχεια το τµήµα µε τη µεγαλύτερη επιφάνεια (βλ. σχήµατα 4.1 κα 4.2). Αυτό θα έχει γενικά ως αποτέλεσµα τµήµατα που βρίσκονται κοντά στον παρατηρητή να φορτώνονται πριν από τα αποµακρυσµένα και λιγότερο σηµαντικά τµήµατα. Σε περίπτωση που το patch έχει ξανακαλεστεί τότε του αποδίδεται προτεραιότητα ίση µε την τελευταία µη µηδενική στην λίστα των προτεραιοτήτων -1. Αυτό γίνεται γιατί στην λίστα των προτεραιοτήτων, µη µηδενική προτεραιότητα έχουν µόνο τα patches που είναι ορατά στον παρατηρητή την δεδοµένη στιγµή, έτσι το συγκεκριµένο patch, επειδή έχει καλεστεί τουλάχιστον µια φορά (το ίδιο ισχύει και για τις υπόλοιπες) θα πρέπει να τοποθετηθεί στο τέλος αυτών των µη µηδενικών patches περιµένοντας την σειρά του για το επόµενο πέρασµα. Σε περίπτωση που δεν ισχύει τίποτα από τα παραπάνω, τότε η προτεραιότητα του τµήµατος του εδάφους είναι ίση µε αυτή που υπολογίστηκε λαµβάνοντας υπόψη την συνολική έκταση που καλύπτει το patch στην οθόνη (βλ. Παραπάνω). Συνοψίζοντας, κάθε φορά φορτώνεται το πρώτο επίπεδο λεπτοµέρειας για όλα τα patches που είναι µέσα στο πεδίο που κοιτάει η camera (frustum) και στην συνέχεια σε κάθε πέρασµα ανανεώνονται όλα τα patches µε το επόµενο επίπεδο λεπτοµέρειας µέχρι να φτάσουν στο µέγιστο οπότε και αφαιρούνται από την λίστα προτεραιοτήτων. Αφού ολοκληρωθεί η απεικόνιση όλων των patches του οπτικού πεδίου του παρατηρητή, σειρά έχουν αυτά που χαρακτηρίστηκαν µε µηδενική προτεραιότητα, τα οποία όµως πλέον φορτώνονται πλήρως ένα προς ένα, χωρίς επιπλέον περάσµατα. Πριν την έναρξη οποιασδήποτε επικοινωνίας και µεταφοράς µεταξύ του χρήστη (client) και του διακοµιστή (server), ο client έχει ήδη φορτώσει µια υφή χαµηλής ανάλυσης, που είναι αποθηκευµένη τοπικά, και εκτίνεται σε όλη την επιφάνεια του τρισδιάστατου.

ΚΕΦΑΛΑΙΟ 4 32 Αυτό γίνεται τόσο για λόγους ταχύτητας, ώστε ο χρήστης να βλέπει απευθείας µια άποψη του χώρου που παρατηρεί, ανεξάρτητη από την ταχύτητα της σύνδεσής του, του uptime του διακοµιστή και των όποιων προβληµάτων σύνδεσης που ενδέχεται να εµφανιστούν σε ένα δίκτυο, όσο και για λόγους απόδοσης, αφού έτσι όταν η camera στοχεύει σε ένα συγκεκριµένο σηµείο, πρώτα θα αρχίσουν να φαίνονται µε µεγαλύτερη ευκρίνεια τα κοντινότερα κοµµάτια του εδάφους, µε την αλλαγή στα µακρύτερα να είναι ορατή µόνο εάν ο χρήστης µετακινήσει την κάµερα προς αυτά, που θα έχουν όµως ήδη φορτωθεί στην µέγιστη δυνατή ανάλυση. Σχήµα 4.1: ύο τµήµατα εδάφους όπως προκύπτουν από τη διαµέριση του συνολικού χάρτη σε υποπεριοχές. 4.3 ιαµέριση στη συχνότητα Φορτώνοντας όµως τα τµήµατα υφής κατευθείαν σε πλήρη ανάλυση σπαταλάµε εύρος ζώνης για τα τµήµατα εκείνα που βρίσκονται µακριά από τον παρατηρητή. Για παράδειγµα σε ένα πανοραµικό πλάνο από µεγάλο υψόµετρο (σαν αυτό του σχήµατος 4.1) ο χρήστης δεν θα είναι σε θέση να διακρίνει την λεπτοµέρεια της υφής του εδάφους αλλά θα είναι παρ όλα αυτά υποχρεωµένος να περιµένει µέχρι αυτή να µεταφερθεί µέσω του δικτύου για κάθε τµήµα. Αντί για αυτό µπορούµε να

ΚΕΦΑΛΑΙΟ 4 33 επιτρέψουµε στην ρουτίνα απεικόνισης να υπολογίζει την απαιτούµενη ανάλυση για κάθε τµήµα υφής και να ζητάει από τον διακοµιστή το τµήµα στην ανάλυση αυτή. Σε ένα πανοραµικό πλάνο, όπου πολλά τµήµατα είναι ορατά, θα είχαµε τότε µεγαλύτερο ρυθµό άφιξης τµηµάτων εφόσον θα απαιτούνταν η µεταφορά λίγων kilobyte για το κάθε ένα. Παράλληλα σε κοντινά πλάνα δεν θα είχαµε απώλεια πληροφορίας µιας και τα τµήµατα θα ζητούνταν σε πλήρη ανάλυση ενώ ο βραδύτερος ρυθµός άφιξης δεν θα αποτελούσε πρόβληµα αφού λίγα τµήµατα θα ήταν ταυτόχρονα ορατά ανά πάσα στιγµή. Σχήµα 4.2: Τα τµήµατα του προηγούµενου σχήµατος αφού προβληθούν στην οθόνη. Βλέπουµε ότι αν και είναι ίδιου µεγέθους και γειτονικά η επιφάνεια που καταλαµβάνουν στην παραγόµενη εικόνα είναι αρκετά διαφορετική. Η παραπάνω µέθοδος είναι δυνατόν να υλοποιηθεί όπως περιγράφηκε αλλά για το σκοπό αυτό θα απαιτούνταν η δυνατότητα προοδευτικής µεταφοράς και αποσυµπίεσης µιας συµπιεσµένης εικόνας µε τρόπο που να µπορεί να ελεγχθεί πλήρως από την ρουτίνα απόδοσης. υστυχώς όµως η απαίτηση αυτή δεν είναι συνηθισµένη σε εφαρµογές που σχετίζονται µε συµπίεση εικόνας µε αποτέλεσµα να

ΚΕΦΑΛΑΙΟ 4 34 απαιτείται η ανάπτυξη ειδικού codec και πρωτοκόλλου µεταφοράς για το σκοπό αυτό. Εναλλακτικά µπορεί να χρησιµοποιηθεί για το σκοπό αυτό µια ειδική µορφή JPEG αρχείων, τα προοδευτικά JPEG (progressive JPEG)}, τα οποία επιτρέπουν αποσυµπίεση σε προκαθορισµένα επίπεδα ανάλυσης. Σκοπός της επέκτασης αυτής του προτύπου JPEG ήταν κυρίως η εξυπηρέτηση αναγκών που σχετίζονται µε τις εφαρµογές πλοήγησης του διαδικτύου και είναι συνεπώς αναµενόµενο να µην ανταποκρίνεται πλήρως στις απαιτήσεις µας. Συγκεκριµένα δεν µας δίνεται η δυνατότητα να αποσυµπιέσουµε µια εικόνα σε οποιαδήποτε ανάλυση επιθυµούµε αλλά υπάρχει ένας προκαθορισµένος αριθµός επιπέδων ανάλυσης ανεξάρτητα από το µέγεθος της εικόνας. Επιπλέον, και αυτό είναι και το µεγαλύτερο πρόβληµα, το κάθε επίπεδο ανάλυσης δεν προκύπτει από απλή αναδειγµατοληψία της αρχικής εικόνας µε µικρότερη συχνότητα δειγµατοληψίας όπως θα επιθυµούσαµε. Αντί για αυτό ο τρόπος µε τον οποίον η πληροφορία της εικόνας µοιράζεται στα διάφορα επίπεδα λεπτοµέρειας (τα οποία στην γλώσσα του προτύπου JPEG ονοµάζονται σαρώσεις, scans) έχει να κάνει µε την εσωτερική λειτουργία του προτύπου και δεν διευκρινίζεται. Ένα παράδειγµα θα βοηθήσει να κατανοήσουµε γιατί αυτό είναι πρόβληµα. Όπως αναφέραµε ήδη µια κοινή µέθοδος υπολογισµού του απαραίτητου επιπέδου λεπτοµέρειας µιας υφής (η οποία χρησιµοποιείται για παράδειγµα στο [24]) είναι η εξής: Προβάλλουµε το µοντέλο (στη περίπτωσή µας το τµήµα του εδάφους) στο οποίο θα εφαρµοστεί η υφή στην οθόνη και µετρούµε την επιφάνειά του σε pixels}. Η επιφάνεια αυτή είναι και η επιφάνεια που θα πρέπει να έχει η υφή που θα χρησιµοποιηθεί για τη σκίαση του µοντέλου αυτού. Αυτή η µέθοδος αγνοεί βέβαια την γεωµετρική και προοπτική παραµόρφωση της υφής καθώς αυτή εφαρµόζεται στο µοντέλο αλλά είναι παρ όλα αυτά ικανοποιητική για την εκτίµηση της απαιτούµενης ανάλυσης. Έστω για παράδειγµα ότι ο πλήρης χάρτης υφής του εδάφους έχει µέγεθος 4096 x 4096 και χωρίζεται σε 16 x 16 τµήµατα µεγέθους 256 x 256. Τότε αν σε µια εικόνα κάποιο τµήµα του εδάφους (που βρίσκονται στον ορίζοντα για παράδειγµα) καταλαµβάνει µια επιφάνεια λίγων pixels}, ας πούµε, 10 x 10 θα ήταν ανώφελο να χρησιµοποιήσουµε την υφή του τµήµατος αυτού σε πλήρη ανάλυση και θα

ΚΕΦΑΛΑΙΟ 4 35 µπορούσαµε αντί για αυτό να χρησιµοποιήσουµε µια µικρότερη έκδοση της υφής η ακριβείς διαστάσεις της οποίας εξαρτώνται από το υλικό απόδοσης και τη µέθοδο συµπίεσης. Αν επιπλέον γνωρίζαµε ότι σε κάποια χρονική στιγµή το µέγεθος ενός τµήµατος στην οθόνη είναι x τετραγωνικά pixel αλλά η χρησιµοποιούµενη για την απόδοση του υφή είναι y τετραγωνικά pixel τότε θα µπορούσε να κατασκευαστεί µια µετρική του σφάλµατος της υφής αυτής, µια συνάρτησης δηλαδή f(x, y) που να µας δίνει ένα µέτρο του πόση ορατή λεπτοµέρεια χάνεται λόγω της χρήσης της υφής αυτής αντί για την πλήρους λεπτοµέρειας έκδοση της. Το µέτρο αυτό θα χρησιµοποιούνταν στη συνέχεια για να αποφασιστεί η σειρά µε την οποία θα µεταφερθεί το κάθε τµήµα. Παράδειγµα µιας τέτοιας µετρικής και του αντίστοιχου αλγορίθµου απόφασης µπορούµε να δούµε στο [24]. Στη δική µας περίπτωση όµως η κατασκευή µιας τέτοιας µετρικής είναι αδύνατη αφού είναι αδιευκρίνιστος ο τρόπος µε τον οποίο αυξάνεται η λεπτοµέρεια σε κάθε σάρωση ενός προοδευτικού JPEG αρχείου. Τα µόνα στοιχεία που µας είναι διαθέσιµα είναι η επιφάνεια του τµήµατος στη οθόνη και ένας αριθµός που χαρακτηρίζει το επίπεδο λεπτοµέρειας της τρέχουσας έκδοσης της υφής µε τη µόνη εγγύηση ότι µεγαλύτεροι αριθµοί αντιστοιχούν σε περισσότερη λεπτοµέρεια. Είναι αδύνατον λοιπόν να ποσοτικοποιήσουµε το σφάλµα που προκύπτει από την χρήση του k-οστού επιπέδου λεπτοµέρειας σε ένα τµήµα του εδάφους επιφάνειας A τετραγωνικών pixel και συνεπώς να επιλέξουµε τη βέλτιστη ανάλυση αλλά είναι παρ όλα αυτά δυνατόν να κάνουµε µια εκτίµηση του τµήµατος υφής στο οποίο πρέπει να προστεθεί πληροφορία σε κάθε στιγµή της περιήγησης. Ανακεφαλαιώνοντας και εξειδικεύοντας την ανάλυση στην υλοποίησή µας η γενική διαδικασία που ακολουθείται είναι η ακόλουθη (βλ. σχ. 4.3): Στον αποµακρυσµένο υπολογιστή εκτελείται µια διεργασία διακοµιστής η οποία έχει άµεση πρόσβαση στα αρχεία εικόνας και περιµένει για αιτήσεις µέσω του δικτύου για να σερβίρει τις εικόνες αυτές σε διεργασίες πελάτες.

ΚΕΦΑΛΑΙΟ 4 36 Σχήµα 4.3: Σχηµατικό διάγραµµα του συστήµατος. Στον τοπικό υπολογιστή εκτελείται η διεργασία πελάτης η οποία έχει πρόσβαση στην υψοµετρία όπως και σε µια καθολική υφή χαµηλής ανάλυσης ( 256 x 256 ) που όπως αναφέραµε είναι τυπικά πολύ µικρές ώστε να µπορούν να µεταφερθούν προκαταβολικά µε κάποιο µηχανισµό. Επιπλέον στον πελάτη είναι διαθέσιµη η διεύθυνση του διακοµιστή από τον οποίο µπορεί να ζητήσει τµήµατα του χάρτη υφής. Ο πελάτης ξεκινάει µε την διαδικασία τριγωνοποίησης και απόδοσης και σε κάθε καρέ υπολογίζει την µετρική σφάλµατος υφής για κάθε ορατό τµήµα του εδάφους. Στη συνέχεια επιλέγεται το τµήµα µε την µεγαλύτερη προταιρεότητα και όχι απαραίτητα αυτό που αντιστοιχεί στο µεγαλύτερο σφάλµα και αποστέλλεται αίτηση στον διακοµιστή να αρχίσει να του στέλνει συµπιεσµένα δεδοµένα από το αρχείο αυτό. Καθώς λοιπόν καταφθάνουν νέα συµπιεσµένα δεδοµένα στον πελάτη αυτός τα αποσυµπιέζει και µόλις συµπληρώσει την επόµενη σάρωση ενηµερώνει την υφή. Όπως σηµειώσαµε παραπάνω όλα τα τµήµατα του εδάφους αποθηκεύονται σε µια, ταξινοµηµένη από τα µεγαλύτερα στα µικρότερα, λίστα προταιρεωτήτων και κάθε φορά γίνεται κλήση της κεφαλής για αποστολή. Στην λίστα αυτή τα τµήµατα που δεν

ΚΕΦΑΛΑΙΟ 4 37 είναι ορατά έχουν µηδενικές τιµές, ενώ αυτά που βρίσκονται στο ορατό πεδίο (frustum) έχουν τιµές υπολογισµένες από την µετρική που αναλύθηκε. Σε περίπτωση που ένα κοµµάτι έχει καλεστεί τουλάχιστον µια φορά, δηλαδή έχει ολοκληρωθεί το πρώτο πέρασµα για αυτό, τότε του αποδίδεται προταιρεότητα ίση µε την τελευταία µη µηδενική 1. Με αυτόν τον τρόπο εξασφαλίζεται πως όταν ολοκληρωθεί το πρώτο πέρασµα και στα υπόλοιπα ορατά κοµµάτια, θα ξεκινήσει το δεύτερο πέρασµα για αυτό. Μόλις λοιπόν αποφασιστεί ότι κάποιο άλλο τµήµα έχει περισσότερη ανάγκη επιπρόσθετης λεπτοµέρειας δηµιουργείται νέα σύνδεση µε τον διακοµιστή και αποστέλλεται αίτηση για επιπλέον συµπιεσµένη πληροφορία από το νέο τµήµα. Στο σηµείο αυτό ο διακοµιστής διακόπτει την παλιά σύνδεση και συνεχίζει µε τη νέα µέχρι να αλλάξει και πάλι το τµήµα µεγίστου σφάλµατος οπότε επαναλαµβάνεται η ίδια διαδικασία. Σχηµατική απόδοση της παραπάνω διαδικασίας φαίνεται στο σχήµα 4.3.

ΚΕΦΑΛΑΙΟ 4 38 Υποσύστηµα Απόδοσης Πελάτης initialize_terrain() glgentexturejpg() initialize_patches() Σχήµα 4.4: Flowchart της διαδικασίας prioritize_patches() prioritize_patch() Patch µη ορατό: προτεραιότητα 0 Patch ορατό για πρώτη φορά: προτεραιότητα ανάλογη της επιφάνειας που καταλαµβάνει. Patch ορατό > 1 φορά: προτεραιότητα ίση µε την µικρότερη µη µηδενική στην priority list - 1 subdivide_terrain() draw_terrain() reset_terrain() Υποσύστηµα επικοινωνίας request_image() update_patch_texture() Άνοιξε καινούργια σύνδεση µε το διακοµιστή και στείλε µια αίτηση για το ζητούµενο τµήµα. TCP/IP GIMME Συµπιεσµένα δεδοµένα Άνοιξε µια δικτυακή σύνδεση και περίµενε για εισερχόµενες συνδέσεις. ιακοµιστής Νέα αίτηση ιέκοψε την τρέχουσα σύνδεση Άνοιξε το αρχείο του ζητούµενου τµήµατος και στείλε τα περιεχόµενα στον πελάτη µέχρι την διακοπή της σύνδεσης.

ΚΕΦΑΛΑΙΟ 4 39 Στο σηµείο αυτό θα πρέπει να αναφερθούν ορισµένες συνέπειες της χρήσης πολλαπλών προσωρινών συνδέσεων ανά πελάτη. Ο σχεδιασµός αυτός αν και δεν είναι πολύ συνηθισµένος απλοποιεί σε µεγάλο βαθµό την λειτουργία του πρωτοκόλλου. Συγκεκριµένα διευκολύνει την διάκριση του τµήµατος για το οποίο προορίζεται κάθε πακέτο συµπιεσµένων δεδοµένων αφού κάθε σύνδεση ανοίγεται ειδικά για ένα συγκεκριµένο τµήµα και κλείνεται µόλις πάψουµε να ενδιαφερόµαστε για περισσότερη πληροφορία στο τµήµα αυτό. Μια εναλλακτική που δοκιµάστηκε ήταν η χρήση µιας µόνο σύνδεσης και η προσθήκη µιας επικεφαλίδας στα συµπιεσµένα δεδοµένα που να αναγράφει το τµήµα από το προέρχονται. Ο µικρός όµως βαθµός ελέγχου του τρόπου µε τον οποίο τα δεδοµένα µεταφέρονται µέσω της γραµµής δικτύου κάνει την εύρεση και αφαίρεση των επικεφαλίδων αυτών δύσκολη και επιρρεπή σε σφάλµατα. Επιπλέον η µέθοδος των πολλαπλών συνδέσεων έχει το επιπρόσθετο πλεονέκτηµα της ανθεκτικότητας σε βλάβες του δικτύου. Αν η γραµµή σύνδεσης πέσει και επανέλθει µετά από κάποιο χρονικό διάστηµα η διαδικασία µεταφοράς θα συνεχίσει κανονικά µόλις αλλάξουν ελαφρώς οι προτεραιότητες των τµηµάτων µε αποτέλεσµα να δηµιουργηθεί νέα σύνδεση. Το µόνο µειονέκτηµα είναι η επιπρόσθετη καθυστέρηση που εισάγεται από το χρόνο που χρειάζεται για να αποκατασταθεί µια νέα σύνδεση. Για το σκοπό αυτό όµως χρειάζεται τυπικά η ανταλλαγή λίγων µόλις bytes δεδοµένων µέσω του δικτύου οπότε ο χρόνος αυτός θα είναι ίσος µε τη µέση καθυστέρηση διάδοσης του δικτύου δηλαδή τυπικά λίγα ms υπό κανονικές συνθήκες. Άλλωστε ο χρόνος αυτός θα απαιτούνταν για την µεταφορά της επικεφαλίδας ούτως ή άλλως. 4.4 Μετρήσεις Λόγω της δυσκολίας µας στην ποσοτικοποίηση του οπτικού σφάλµατος έχουµε περιοριστεί σε µετρήσεις της απόδοσης του δικτύου και συγκεκριµένα της καθυστέρησης, δηλαδή του χρόνου που µεσολαβεί από τη στιγµή που θα γίνει η αίτηση για κάποιο τµήµα µέχρι να αρχίσει να έρχεται, και του µέσου ρυθµού