Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Αλγόριθμοι και Συστήματα για 3-Δ Γραφικά Random Terrain Generation Γεωργία Καστίδου.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Αλγόριθμοι και Συστήματα για 3-Δ Γραφικά Random Terrain Generation Γεωργία Καστίδου."— Μεταγράφημα παρουσίασης:

1 Αλγόριθμοι και Συστήματα για 3-Δ Γραφικά Random Terrain Generation Γεωργία Καστίδου

2 Περιεχόμενα Τι είναι το Terrain Generation Εφαρμογές του Terrain Generation Είδη Terrain Generation Random Terrain Generation Αλγόριθμοι για Random Terrain Generation

3 Τι είναι Terrain Generation? Terrain Generation: Είναι η δημιουργία της διαμόρφωσης του εδάφους. Δηλαδή η δημιουργία βουνών, λόφων κτλ.

4 Εφαρμογές Terrain Generation Δημιουργία Landscapes για προσομοιώσεις Δημιουργία Landscapes για παιχνίδια

5 Heightmaps Ο βασικός τρόπος για τη δημιουργία 3-Δ terrains είναι μέσω της χρήσης των heightmaps. Ένα heightmap είναι ένας απλός δισδιάστατος πίνακας τιμών. Κάθε μια από τις τιμές του παραπάνω πίνακα αναπαριστά το ύψος του terrain στο σημείο της συγκεκριμένης τιμής. Για να αποδοθεί το heightmap στις τρεις διαστάσεις δημιουργείται ένα σύνολο σημείων (mesh) εισάγοντας μέσω των δεικτών του πίνακα το ύψος σε κάθε κορυφή και θέτοντας το ίσο με την τιμή του heightmap στο σημείο εκείνο.

6 Heightmaps

7 Αλγόριθμοι Random Terrain Generation Hill – Circle Algorithm Fault Algorithm

8 The Fault Algorithm Αρχικά θεωρούμε ένα επίπεδο height field του οποίου όλες οι τιμές είναι 0.

9 The Fault Algorithm 1 iteration

10 The Fault Algorithm Το πρώτο πρόβλημα είναι πως πρέπει να δημιουργηθεί μια τυχαία ευθεία, η οποία διαιρεί σε δύο κομμάτια το terrain. Λύση: The Normal Form –ax + bz = c όπου a*a + b*b = 1 και c >= 0 –a = sin(v) b = cos(v) όπου v είναι μια τυχαία τιμή. –Η απόσταση από ένα σημείο (x1,z1), από μια ευθεία, ax+by-c=0, είναι: dist = a*x1 + b*z1 - c

11 The Fault Algorithm

12 1 Εισαγωγή 2 Εισαγωγές

13 The Fault Algorithm 3 Εισαγωγές 4 Εισαγωγές

14 The Fault Algorithm 16 Εισαγωγές 100 Εισαγωγές

15 The Fault Algorithm 400 Εισαγωγές

16 The Fault Algorithm Variations The Step Function The sine Function

17 The Fault Algorithm The cosine Function

18 The Fault Algorithm The Step Function. Iterations 1000

19 The Fault Algorithm Sine Function. Iterations 1000

20 The Fault Algorithm Cosine Function. Iterations 1000

21 Hill Algorithm Βήμα 1: Αρχικοποίηση το terrain θέτοντας τις τιμές όλων των υψών σε 0. Βήμα 2: Επιλογή ενός τυχαίου σημείου πάνω ή κοντά στο terrain και μιας τυχαίας ακτίνας (έστω r) μεταξύ μιας προκαθορισμένης μέγιστης και ελάχιστης τιμής. Βήμα 3: Δημιουργία λόφου στο terrain με κέντρο το σημείο (x 1, y 1 ), δοθέντος της ακτίνας r. –Παράδειγμα: Το ύψος του λόφου στο σημείο (x 1, y 1 ) είναι z = r 2 – (( x 1 – x 2 ) 2 + ( y 1 – y 2 ) 2 ) Βήμα 4: Επιστροφή στο βήμα 2 και επανάληψη τόσες φορές όσες χρειάζονται. 5. Κανονικοποίηση του terrain. 6. Flatten out the valleys.

22 Hill Algorithm Αγνοεί τις αρνητικές τιμές ύψους. Ένα ύψος z θα έχει αρνητικές τιμές εάν το σημείο του οποίου υπολογίζεται το ύψος είναι βρίσκεται σε απόσταση από το κέντρο του λόφου που ανήκει μεγαλύτερη από την ακτίνα. Όταν δύο λόφοι ταυτίζονται προσθέτουμε το ύψος του ενός στον άλλον.

23 Hill Algorithm Παράδειγμα 1 Εισαγωγή

24 Hill Algorithm Examples

25 Hill Algorithm Κανονικοποίηση Ο αλγόριθμος Hill δεν περιορίζει αυτόματα τις τιμές των υψών σε κάποια περιοχή. Ιδανικά οι τιμές των υψών θα κυμαίνονταν από το 0 στο 1, ώστε να μπορούμε να αλλάξουμε το σύστημα αναφοράς ολόκληρου του terrain κάνοντας το όσο ψηλό θέλουμε χωρίς να επηρεάζουμε τίποτα άλλο. Για να το επιτύχουμε αυτό κανονικοποιούμε το terrain.

26 Hill Algorithm Κανονικοποίηση Εύρεση νέου z: z norm = ( z – min) / ( max – min )

27 Hill Algorithm Flattening Θέλουμε έναν τρόπο να «πλαταίνουμε» το terrain χωρίς να ισοπεδώσουμε τα βουνά. Ένας απλός τρόπος να πλαταίνουμε τις χαμηλές περιοχές είναι να υψώσουμε στο τετράγωνο την τιμή κάθε ύψους. Αυτό θα έχει σαν αποτέλεσμα να μειωθεί η μέση τιμή των υψών χωρίς να επηρεαστεί σε μεγάλο βαθμό η μέγιστη τιμή.

28 Hill Algorithm Flattening

29 Hill Algorithm

30 Δημιουργία Νησιών με τον αλγόριθμο Hill Θέλουμε να έχουμε τους λόφους ομαδοποιημένους προς το κέντρο του heightmap Εύρεση τυχαίων τιμών: απόσταση (d) και θήτα (θ). –Η απόσταση υποδηλώνει το πόσο μακριά από το κέντρο του heightmap βρίσκεται ο λόφος που θέλουμε να τοποθετήσουμε: 0  d  (1/2)*μέγεθος heightmap –To θήτα καθορίζει προς τα ποια διεύθυνση από το κέντρο θα τοποθετηθεί ο λόφος. 0  θ  2*pi Υπολογισμός του κέντρου του λόφου χρησιμοποιώντας τα θ,d : x=heightmap_size/2 + cos(θ) *d y=heightmap_size/2 + cos(θ) *d

31 Δημιουργία Νησιών με τον αλγόριθμο Hill

32 Προσθήκη Νερού

33 Αναφορές http://www.lighthouse3d.com/opengl/terrain/index.php3?faultvar http://www.robot-frog.com/3d/hills/index.html http://www.riaz.de/tutorials/terrain01/terrain01.html http://www.ridgecrest.ca.us/~jslayton/terrain.html

34 Τέλος Παρουσίασης


Κατέβασμα ppt "Αλγόριθμοι και Συστήματα για 3-Δ Γραφικά Random Terrain Generation Γεωργία Καστίδου."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google