Πίνακας περιεχομένων:
- Βήμα πρώτο: Προσθέστε έναν κύλινδρο
- Βήμα δεύτερο: Δημιουργήστε ένα υλικό
- Βήμα τρίτο: Μετάφραση του κυλίνδρου
Βίντεο: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024
Σε μερικά σύντομα βήματα μπορείτε να δημιουργήσετε ένα σχετικά απλό 3D πρόγραμμα στο JavaFX που εμφανίζει τον τρισδιάστατο κόσμο (ένα παράδειγμα φαίνεται παρακάτω). Όπως μπορείτε να δείτε, αυτός ο 3D χώρος περιλαμβάνει τέσσερα σχήματα: σφαίρα, κύβο, κύλινδρο και πυραμίδα. Αυτή η σύντομη λίστα σας δείχνει πώς να ξεκινήσετε με έναν κύλινδρο.
Βάλτε το Thinking Cap, καθώς αυτό το παράδειγμα είναι αρκετά τεχνικό κατά περιόδους και πολλές από τις έννοιες που σχετίζονται με την οικοδόμηση τρισδιάστατων κόσμων μπορεί να προκαλέσουν σύγχυση, ειδικά αν αυτή είναι η πρώτη σας εμπειρία με 3D προγραμματισμό.
Βήμα πρώτο: Προσθέστε έναν κύλινδρο
Σε αυτό το βήμα, προσθέτετε ένα βασικό αντικείμενο 3D στον κόσμο σας. Το JavaFX παρέχει τρία βασικά σχήματα που μπορείτε να προσθέσετε: κυλίνδρους, κιβώτια και σφαίρες. Ξεκινήστε προσθέτοντας έναν κύλινδρο:
Κύλινδρος κυλίνδρων = νέος κύλινδρος (100, 50); ρίζα. getChildren (). Προσθήκη (κύλινδρος).
Ο κατασκευαστής κλάσης κυλίνδρων δέχεται δύο επιχειρήματα: την ακτίνα του κυλίνδρου και το ύψος του. Αυτό το παράδειγμα δημιουργεί έναν κύλινδρο περίπου στο σχήμα μιας ράβδου χόκεϊ, τέσσερις φορές τόσο φαρδύ όσο είναι ψηλό. τότε, προσθέτει τον κύλινδρο στον κόμβο ρίζας της σκηνής.
Σε αυτό το σημείο, ο κύλινδρος υπάρχει στον κόσμο, αλλά δεν είναι ορατός. Με βάση τα στοιχεία που γνωρίζετε για τα 2D σχήματα, ίσως μπείτε στον πειρασμό να το ορίσετε προσθέτοντας ένα χρώμα πλήρωσης (setFill) ή ένα χρώμα εγκεφαλικού επεισοδίου (setStroke). Αλλά δεν λειτουργούν τα τρισδιάστατα αντικείμενα. Στο επόμενο βήμα, θα ανακαλύψετε πώς να εφαρμόσετε ένα υλικό στην επιφάνεια του κυλίνδρου έτσι ώστε να είναι ορατό στη σκηνή.
Βήμα δεύτερο: Δημιουργήστε ένα υλικό
Η απόδοση των προσώπων ενός 3D αντικειμένου είναι πολύ πιο περίπλοκη από την απόδοση επίπεδων, δισδιάστατων αντικειμένων. Για ένα αντικείμενο 2D, απλά εφαρμόζετε ένα αντικείμενο Paint μέσω της μεθόδου setFill. Το χρώμα μπορεί να είναι ένα απλό χρώμα, ένα χρώμα κλίσης ή μια εικόνα.
Για τρισδιάστατα αντικείμενα, δεν εφαρμόζετε χρώμα. Αντίθετα, εφαρμόζετε ένα ειδικό αντικείμενο που ονομάζεται υλικό Phong , το οποίο αντιπροσωπεύεται από την κλάση PhongMaterial. Ένα υλικό Phong (το οποίο ονομάστηκε από τον Bui Tuong Phong, πρωτοπόρο εμπειρογνώμονα γραφικών ηλεκτρονικών υπολογιστών στη δεκαετία του '70), παρέχει τα μέσα με τα οποία απεικονίζονται ρεαλιστικά τα πρόσωπα ενός τρισδιάστατου αντικειμένου.
Ο παρακάτω κώδικας δημιουργεί ένα απλό υλικό Phong βασισμένο σε δύο αποχρώσεις του μπλε και στη συνέχεια εφαρμόζει το υλικό στον κύλινδρο:
PhongMaterial blueStuff = new PhongMaterial (); blueStuff. setDiffuseColor (Χρώμα.LIGHTBLUE); blueStuff. setSpecularColor (Χρώμα, ΜΠΛΕ). κύλινδρος. setMaterial (blueStuff);
Μετά την εφαρμογή του υλικού Phong στον κύλινδρο, ο κύλινδρος θα είναι ορατός μέσα στη σκηνή, όπως φαίνεται.
Ο τρισδιάστατος κύλινδρος με υλικό Phong.Βήμα τρίτο: Μετάφραση του κυλίνδρου
Αναμφισβήτητα παρατηρήσατε ότι ο κύλινδρος δεν φαίνεται πολύ τρισδιάστατος. Αυτό συμβαίνει επειδή το βλέπετε με άκρη: Η κάμερα δείχνει ευθεία στη διασταύρωση των αξόνων x και y και ο κύλινδρος είναι κεντραρισμένος σε αυτό το σημείο.
Για να κερδίσετε κάποια προοπτική στον κύλινδρο, μπορείτε να τον μετακινήσετε σε διαφορετική θέση σε 3D χώρο μεταφράζοντας τις συντεταγμένες x, y και z. Για παράδειγμα: κύλινδρος
. setTranslateX (-200); κύλινδρος. setTranslateY (200); κύλινδρος. setTranslateZ (200);
Εδώ, ο κύλινδρος μετακινείται 200 μονάδες προς τα αριστερά, 200 μονάδες προς τα κάτω και 200 μονάδες μακριά από την κάμερα. Η προκύπτουσα θέα μοιάζει περισσότερο με έναν κύλινδρο, όπως μπορείτε να δείτε εδώ.
Ο μεταφρασμένος τρισδιάστατος κύλινδρος.Σε αυτό το σχήμα, φαίνεται ότι ο κύλινδρος έχει περιστραφεί προς τα εμπρός, ώστε να μπορείτε να δείτε λίγο από την κορυφαία επιφάνεια. Αυτό όμως δεν συμβαίνει. Αυτό που πραγματικά συνέβη είναι ότι δεν βλέπετε πλέον το άκρο του κυλίνδρου.
Αντίθετα, επειδή ο κύλινδρος βρίσκεται κάτω από την κάμερα, κοιτάζετε προς τα κάτω. Έτσι, μπορείτε να δείτε λίγο από την κορυφαία όψη. Το βλέπετε και από το πλάι, πράγμα που εξηγεί γιατί φαίνεται απλά να έχει κλίση.