Παρασκευή 22 Οκτωβρίου 2010

Water in Video Games

Πριν αρχίσω, ένα βίντεο σχετικά με την ιστορία των water effects στα βιντεοπαιχνίδια των τελευταίων δεκαετιών.



To νερό, όντας βασικό στοιχείο της καθημερινής ζωής, δεν θα μπορούσε να λείπει από τα βιντεοπαιχνίδια, ειδικά την στιγμή που οι επιχειρήσεις δημιουργίας τους επιδιώκουν να είναι όσο πιο ρεαλιστικά γίνεται.
Και το καταφέρνουν. Το νερό, αν και σε πολλές περιπτώσεις σε στέλνει απευθείας στο προηγούμενο checkpoint, σε ελκύει και σε ενθουσιάζει ανάλογα με τον βαθμό ρεαλισμού.



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

Το δεύτερο στάδιο περιλαμβάνει την οπτικοποίηση, που δέχεται τα δεδομένα που έχουν υπολογιστεί μέσω του Wave Model και τα προβάλλει στην οθόνη. Για να υπάρχει ρεαλισμός, ωστόσο, πρέπει να γίνουν υπολογισμοί και σε αυτό το στάδιο, λαμβάνοντας υπόψιν περαιτέρω φυσικούς νόμους (π.χ. Το νερό πρέπει να ανακλά όσο γίνεται καλύτερα το φως από τον ήλιο ή άλλες πηγές φωτός).
Σε αντίθεση με το πρώτο στάδιο της σχεδίασης που μπορεί να υπολογιστεί στον κεντρικό επεξεργαστή του υπολογιστή, το δεύτερο στάδιο χρειάζεται περίπλοκες διαδικασίες για κάθε pixel (!) σχεδίασης. Κάρτες γραφικών που έχουν και per-pixel και per-vetrex δυνατότητα προγραμματισμού είναι ιδανικές για αυτές τις λειτουργίες.

Φυσικά σε ένα βιντεοπαιχνίδι δεν έχουμε το χρονικό περιθώριο για rendering που έχουμε στα CGI οπότε έχουμε κάτι τέτοιο:

αντί για κάτι τέτοιο:


Η πιο συνηθισμένη τεχνική απεικόνισης του νερού, και ταυτόχρονα η πιο αποτελεσματική σε θέμα αλληλεπίδρασης, είναι με την χρησιμοποίηση ενός συστήματος σωματιδίων. Το κάθε σωματίδιο έχει στοιχεία περί της θέσης του, των δυνάμεων που του ασκούνται, των συνδέσεων του με άλλα σωματίδια, της κατεύθυνσης της κίνησής του κ.α. Τα περισσότερα από αυτά ανανεώνονται και υπολογίζονται μέσω του Wave Model πριν γίνει η τελική οπτικοποίηση.

Πριν το rendering:

Μετά το rendering:


Πάντως με την εξέλιξη των DirectX και OpenGL APIs το εικονικό νερό έχει αρχίσει να πλησιάζει όλο και περισσότερο στο άγιο δισκοπότηρο, των βιντεοπαιχνιδιών, της "πλήρους ρεαλιστικότητας".

Και τέλος ένα αντιπροσωπευτικό βίντεο σχετικά με το real-time rendering ενός ωκεανού σχεδιασμένου με χρήση OpenGL και των επιπτώσεων που έχουν πάνω του οι αλλαγές του φωτισμού, του αέρα κτλ.




Reference:
http://www.gamedev.net/reference/articles/article2138.asp
http://en.wikipedia.org/wiki/
http://www.youtube.com/
http://www.neeyik.info/3dspecs/3dspecs_terms.html

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου