Παρουσιάστηκε η νέα μηχανή προσομοίωσης φυσικής Box3D

Η Erin Catto, συγγραφέας του έργου Box2D, ανακοίνωσε τη δημιουργία μιας νέας μηχανής προσομοίωσης φυσικής, της Box3D, η οποία είναι ένα fork της Box2D με πανομοιότυπη αρχιτεκτονική, αλλά επανασχεδιασμένη και επεκταμένη για χρήση σε τρισδιάστατα παιχνίδια. Ο κώδικας του έργου είναι γραμμένος σε C και διανέμεται με την άδεια MIT. Μεταγλώττιση για Linux, Windows и macOS.

Η μηχανή Box3D δημιουργήθηκε κατά την ανάπτυξη του νέου τρισδιάστατου παιχνιδιού σκοποβολής The Legend of California στα Kintsugiyama Studios, όπου εργάζεται η Erin. Το παιχνίδι χρησιμοποιεί την Unreal Engine, αλλά οι προγραμματιστές δεν ήταν ικανοποιημένοι με την ενσωματωμένη μηχανή φυσικής Chaos. Προέκυψαν προβλήματα με την έλλειψη γυροσκοπικής ροπής (τα λεπτά αντικείμενα χρειάζονταν αφύσικα πολύ χρόνο για να περιστραφούν), τη συνεχή ανίχνευση συγκρούσεων (μη ρεαλιστική συμπεριφορά των δέντρων που πέφτουν) και την κακή απόδοση κατά την επεξεργασία εκατοντάδων χιλιάδων αντικειμένων.

Αρχικά, τα προβλήματα είχαν προγραμματιστεί να λυθούν με τη δημιουργία ενός fork της μηχανής φυσικής Jolt. Ωστόσο, ακολουθώντας τις συμβουλές του δημιουργού της μηχανής Rubikon που χρησιμοποιήθηκε στο Half-Life, χρησιμοποιήθηκε ως βάση μια απλοποιημένη έκδοση του Rubikon-Lite, που αναπτύχθηκε ως χόμπι. Αναδιαμορφώθηκε χρησιμοποιώντας κώδικα και βελτιστοποιήσεις από το Box2D για να συνδυάσει τις υπάρχουσες δυνατότητες 3D με τις εξελίξεις της μηχανής Box2D. Ως αποτέλεσμα, σχεδόν όλα τα API, οι δομές δεδομένων και οι αλγόριθμοι στο Rubikon-Lite αντικαταστάθηκαν με κώδικα από το Box2D και μόνο οι αλγόριθμοι για την κατασκευή του κυρτού κελύφους και τον χειρισμό τρισδιάστατων συγκρούσεων παρέμειναν από το Rubikon-Lite. Με τη συγκατάθεση του συγγραφέα του Rubikon-Lite και του Kintsugiyama, αποφασίστηκε να δημοσιευτεί η μηχανή που προέκυψε ως ξεχωριστό έργο ανοιχτού κώδικα, το Box3D.

Η πρώτη έκδοση του Box3D 0.1 έχει πλέον δημοσιευτεί και θεωρείται ποιότητας alpha. Η βασική λειτουργικότητα έχει υλοποιηθεί, αλλά απαιτείται ακόμη τεκμηρίωση και δοκιμές. Εκτός από το The Legend of California, η νέα μηχανή παιχνιδιών χρησιμοποιείται ήδη στην πλατφόρμα παιχνιδιών S&B, στην ανοιχτού κώδικα μηχανή παιχνιδιών Esoterica και στο διαστημικό παιχνίδι για πολλούς παίκτες Space Game για 1000 παίκτες.

Για τα τρισδιάστατα παιχνίδια, η νέα μηχανή προσθέτει λειτουργίες όπως υπολογισμούς συγκρούσεων με πολυγωνικά πλέγματα και χάρτες ύψους που χρησιμοποιούνται στη δημιουργία εδάφους, επιτρέποντας ρεαλιστικά εφέ πτώσης δέντρων σε επιφάνειες voxel στο The Legend of California. Έχει προστεθεί υποστήριξη για ψημένες σύνθετες συγκρούσεις, που αποτελούνται από πολλά απλά σχήματα, μειώνοντας σημαντικά την κατανάλωση πόρων κατά την προσομοίωση συγκρούσεων μεταξύ ενός μεγάλου αριθμού τυπικών μικρών αντικειμένων.

Μεταξύ των λειτουργιών που ήταν προηγουμένως διαθέσιμες στο Box2D και έχουν μεταφερθεί στο Box3D:

  • Συνεχής ανίχνευση συγκρούσεων (επεξεργασία της κίνησης του αντικειμένου ως συνεχής τροχιά), φιλτράρισμα συγκρούσεων και δημιουργία συμβάντων κατά την επαφή με το αντικείμενο. Υποστήριξη σφαιρικών σχημάτων, σχημάτων κάψουλας και κελύφους για ανίχνευση συγκρούσεων. Ένας χειριστής συγκρούσεων αντικειμένων βελτιστοποιημένος για SIMD.
  • Επίλυση υπο-βημάτων για τη βελτίωση της ακρίβειας της προσομοίωσης διαιρώντας τα βήματα προσομοίωσης σε πολλά μικρότερα βήματα.
  • Χρήση χρωματισμού γραφημάτων για τον χειρισμό μεγάλων ομάδων σχετικών αντικειμένων.
  • Ένας ελεγκτής χαρακτήρα υπεύθυνος για τον χειρισμό της κίνησης, των συγκρούσεων και των αλληλεπιδράσεων μεταξύ του χαρακτήρα και των γύρω αντικειμένων.
  • Υποστήριξη για ανίχνευση ακτίνων, ανίχνευση σχήματος και έλεγχο τομής κατά τη σάρωση του περιβάλλοντος χώρου. Σύστημα αισθητήρων για την ανίχνευση αντικειμένων στο διάστημα.
  • Επίλυση Soft Step για υπολογισμούς φυσικής στερεάς κατάστασης με πολύπλοκες αλληλεπιδράσεις.
  • Υποστήριξη για το πάγωμα της κατάστασης ομάδων ανενεργών ή στατικών αντικειμένων για εξοικονόμηση πόρων.
  • Υποστήριξη για μια ποικιλία συνδέσεων και τύπων συνδέσεων μεταξύ αντικειμένων, συμπεριλαμβανομένων μεντεσέδων, ελατηρίων, κινητήρων, συγκολλήσεων και τροχών, με δυνατότητα ευέλικτης διαμόρφωσης κάθε σύνδεσης. Υπολογισμός δυνάμεων συμπίεσης και εφελκυσμού μεταξύ αντικειμένων.
  • Δυνατότητα δημιουργίας συμβάντων όταν ένα αντικείμενο αρχίζει να κινείται, σταματά ή σταθεροποιείται.
  • Hooks για πολυνηματική επεξεργασία με προαιρετικό εσωτερικό χρονοπρογραμματιστή.
  • Η χρήση συντεταγμένων διπλού τύπου επιτρέπει τη δημιουργία τεράστιων κόσμων.
  • Ο ντετερμινισμός μεταξύ πλατφορμών εξασφαλίζει πανομοιότυπα αποτελέσματα σε διαφορετικές πλατφόρμες υλικού.
  • Υποστήριξη για εγγραφή και αναπαραγωγή προσομοίωσης.
  • C API και κώδικας C που συμμορφώνονται με το πρότυπο C17.

Τα μελλοντικά σχέδια περιλαμβάνουν την επέκταση των δυνατοτήτων μετακίνησης χαρακτήρων, τη βελτίωση των μηχανισμών πρόληψης συγκρούσεων φαντασμάτων, την εφαρμογή βελτιστοποιήσεων και τη βελτίωση του joint solver. Το αποθετήριο σκοπεύει να επιτρέψει στα μέλη της κοινότητας να υποβάλλουν αιτήματα έλξης με αλλαγές μετά την υπογραφή μιας συμφωνίας ιδιοκτησίας κώδικα (CLA).

Αναπαραγωγή βίντεο


Πηγή: opennet.ru
Αγοράστε αξιόπιστη φιλοξενία για ιστότοπους με προστασία DDoS, διακομιστές VPS VDS 🔥 Αγοράστε αξιόπιστη φιλοξενία ιστοσελίδων με προστασία DDoS, διακομιστές VPS VDS | ProHoster