Motorul fizic

Am început să-mi dezvolt motorul fizic pentru alternativa3d. Am decis să scriu în acest mini-articol implementarea motorului. Pentru a vă scrie motorul, în primul rând este posibil să aveți nevoie de un manual al clasei a IX-a. Cautam cea mai apropiată școală, și să cumpere un manual de fizica clasa a 9-a 9 smazhenok))) Apoi, am scuturat toate cpp, Python Sorsa, cărți pentru punerea în aplicare a nat 3D. motorului. M-am uitat la tot. Și am ajuns la concluzia că totul este ușor))) De fapt, nu este nimic complicat deloc nr. Desigur, eu recunosc, înainte de a mă așez să o fac, am fost un pic incomod. Cumva totul se uita mare ... Dar ... „ochii se tem, mâinile fac“!) Eu cred că materialul descris mai jos este foarte util și oferă o idee despre cum să pună în aplicare motorul de fizica. Pentru a implementa motorul, trebuie să stabiliți treptat metodele de implementare:







Masina cu corpuri rigide (RBE) sau agregat de masă (MAE, masă agregată)?

RBE tratează obiectele ca un întreg. Calculează mișcarea și rotirea obiectului în ansamblu.
MAE consideră un obiect ca o colecție de mase. De exemplu, un cub poate fi considerat ca un set de 8 mase în fiecare colț al acestuia, conectate împreună.
Este logic să presupunem că MAE este mai ușor de calculat, deoarece Nu are nevoie să știe care este rândul său, pentru că 8 muncitori, calcularea greșită a mișcării obiectului este redusă la calcularea greșită a mișcării liniare a fiecărei mase, ca urmare a faptului că apare o întoarcere.






De asemenea, trebuie remarcat faptul că pentru a transforma MAE în RBE, puteți adăuga pur și simplu rotații.

Cum vor interacționa obiectele?

Există trei moduri:
1) Verificați pe toată lumea cu fiecare (cea mai ușoară cale de ieșire). Dar pot exista întrebări în ceea ce privește implementarea. De exemplu, o interacțiune poate fi afectată de o altă interacțiune, iar acest lucru poate avea un impact semnificativ asupra rezultatului.
2) Completați prima opțiune verificând toate interacțiunile între ele și atribuind în același timp rezultatul final al calculelor tuturor obiectelor. O modalitate destul de complexă de a rezolva această problemă este o matematică foarte complexă, uneori chiar imposibilă). Dar, totuși, este posibil să o considerăm o opțiune.
3) Nu folosiți Newton, creați propriile legi de comportament sau doar pseudo-fizică

Forța sau impulsul?

Desigur, ați văzut o implementare în motoarele 3D, când obiectele jitter, deși ar trebui doar să mintă și să nu se miște. Acest lucru se întâmplă adesea în motorul care utilizează impulsuri. Desigur, această opțiune este implementată mai ușor și funcționează mai repede, însă o opțiune mai fiabilă este folosirea forțelor (mecanică, un manual din clasa a 9-a). De ce pot aceleași obiecte să se mișcă? Să luăm un exemplu simplu. Există o carte pe masă ...
a) În versiunea pulsului. Rămâne întinsă pe masă, mulțumită multor mici ciocniri. Și cu fiecare cadru, cartea va primi aceste valori de coliziune, motiv pentru care cartea poate ușor "vibra".
b) În versiunea de putere. Este pur și simplu menținut de o forță constantă. În acest caz, forța de reacție a suportului.

Deci, implementarea poate fi împărțită în următorul. etape (sper că este logic):
1) Implementați un sistem simplu de particule. Vector matematica. Legile mișcării.
2) MAE, conectarea masei mici la orice tip de obiecte și conectarea lor
3) Fizica rigidă a corpului, înșurubați întoarcerea
4) Detectarea coliziunilor
5) Alegem fizica interacțiunii
6) În viitor, vom suplimenta cu tot felul de jetoane.

Aș dori să observ că cel mai greu lucru (cu toate acestea, ca întotdeauna și peste tot) era să vină cu o structură competentă, pentru a putea conecta cu ușurință motorul, configura, etc.

Vă rugăm să partajați:







Articole similare

Trimiteți-le prietenilor: