Σκιές

Η WME υποστηρίζει διάφορους τύπους σκιών για τους χαρακτήρες που διαφέρουν στην οπτική τους πιστότητα και τις απαιτήσεις σε υλικό.

Είδη σκιών

Καμία σκιά

Η απενεργοποίηση των σκιών είναι βεβαίως η ποιο απλή περίπτωση που χρειάζεται σε συγκεκριμένες συνθήκες. Για παράδειγμα όταν ο χαρακτήρας σας είναι ξαπλωμένος στο κρεβάτι πιθανότατα δεν θα θέλετε να έχει σκιά.

No shadow

Απλές σκιές

Αυτή είναι η τελευταία επιλογή για σκιά. Είναι πάντα διαθέσιμη και δεν έχει ιδιαίτερες απαιτήσεις υλικού. Μπορείτε να αλλάξετε τη γραφική απεικόνισή της με την μέθοδο SetShadowImage().

Simple shadow

Επίπεδες σκιές

Οι επίπεδες σκιές προβάλλονται σε ένα αόρατο δισδιάστατο επίπεδο στα πόδια του χαρακτήρα. Μπορείτε να ορίσετε το σχήμα και την κατεύθυνση της σκιάς τοποθετώντας το φως που θα την προβάλλει με την μέθοδο SetLightPosition(). Επιπλέον παρέχεται η δυνατότητα να αλλάξετε το χρώμα της σκιάς με την ιδιότητα ShadowColor.

Δεν υποστηρίζονται από παλαιότερες κάρτες γραφικών. Αν η μηχανή ανιχνεύσει ότι οι επίπεδες σκιές δεν υποστηρίζονται θα χρησιμοποιήσει αυτόματα τις απλές σκιές.

Η χρήση των επίπεδων σκιών έχει ένα μικρό αντίκτυπο στην απόδοση του παιχνιδιού γιατί ο χαρακτήρας θα πρέπει να αποδοθεί γραφικά δύο φορές. Μία για το σχήμα της σκιάς και μία για τον ίδιο τον χαρακτήρα στη σκηνή.

Flat shadow

Σκιές stencil

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

Όπως και στις επίπεδες σκιές, έτσι και εδώ, μπορείτε να ορίσετε το σχήμα και την κατεύθυνση της σκιάς τοποθετώντας το φως που θα την προβάλλει με την μέθοδο SetLightPosition() και το χρώμα της σκιάς με την ιδιότητα ShadowColor.

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

Οι σκιές stencil είναι οι οι πιο απαιτητικές σε υλικό. Χρησιμοποιούν τον επεξεργαστή και την κάρτα γραφικών, ιδιαίτερα σε πολύ λεπτομερή μοντέλα χαρακτήρων. Για αυτό η WME σας δίνει την δυνατότητα να ορίσετε μία ειδική έκδοση του χαρακτήρα με λίγα πολύγωνα για χρήση στην σκιά. Η απλή έκδοση του χαρακτήρα ορίζεται στο αρχείο προσδιορισμού για 3D χαρακτήρες και θα πρέπει να έχει ακριβώς τον ίδιο σκελετό με το βασικό μοντέλο γιατί θα μοιράζονται τα ίδια animations.

Stencil shadow

Περιορισμός διαθέσιμων τύπων σκιάς

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

Για να ορίσετε την μέγιστη διαθέσιμη ποιότητα σκιάς για το παιχνίδι χρησιμοποιήστε την ιδιότητα Game.MaxShadowType που μπορεί να δεχθεί τις τιμές 0 (καμία σκιά), 1 (απλές σκιές), 2 (επίπεδες σκιές) ή 3 (σκιές stencil). Αν προσπαθήσετε να ορίσετε ένα τύπο σκιάς που δεν υποστηρίζεται από το παρόν υλικό η μηχανή θα επιλέξει αυτόματα το αμέσως καλύτερο που είναι διαθέσιμο. Ο έλεγχος της διαθεσιμότητας ή όχι των διαφόρων τύπων σκιάς γίνεται με την μέθοδο Game.IsShadowTypeSupported().

Για να ορίσετε την μέγιστη διαθέσιμη ποιότητα σκιάς σε μία συγκεκριμένη σκηνή χρησιμοποιήστε την ιδιότητα Scene.MaxShadowType. Η τιμή της ιδιότητας μπορεί να οριστεί στον SceneEdit όταν σχεδιάζετε μία σκηνή χρησιμοποιώντας τις επιπλέον ρυθμίσεις 3D.

Επιπλέον, μπορείτε να ορίσετε τον τύπο σκιάς ξεχωριστά σε κάθε 3D χαρακτήρα με την ιδιότητα ShadowType.

Σημείωση: Δεν μπορείτε να χρησιμοποιήσετε διαφορετικούς τύπους σκιάς σε μία σκηνή. Αν ενεργοποιήστε τις σκιές stencil σε μία σκηνή όλοι οι χαρακτήρες θα πρέπει να τις χρησιμοποιήσουν. Αν σε αυτή την περίπτωση χρησιμοποιήσετε απλές ή επίπεδες σκιές θα έχετε γραφικές ατέλειες και προβλήματα.