Aquest article presenta de manera clara com QuarkPhysics gestiona les col·lisions de cossos tous en 2D fent servir una aproximació pràctica basada en raigs bisectors.
Sobre QuarkPhysics: QuarkPhysics és un motor de física 2D de codi obert orientat a dinàmiques múltiples que suporta tant cossos rígids com dinàmiques avançades de cossos tous. Està dissenyat per oferir estabilitat i rendiment en jocs 2D i ja compta amb una extensió nativa per al motor Godot.
Repte inicial: en 2D les restriccions geomètriques són més estrictes que en 3D, per la qual cosa tècniques habituals de motors 3D no s'adapten bé. Estendre SAT, el teorema de l'eix separador, semblava lògic per coherència amb la detecció de cossos rígids, però en cossos tous va provocar problemes de rendiment i casos que SAT no resol bé, com polígons no convexos i vèrtexs que canvien cada frame.
Alternatives com GJK i la diferència de Minkowski van resultar massa costoses computacionalment per a ús en 2D en temps real, per la qual cosa va ser necessari experimentar amb una solució híbrida que equilibri cost i robustesa.
Polígons complexos: QuarkPhysics apunta a suportar polígons amb molts punts deformables en cada frame, incloent formes còncaves i niades. Això exigeix un mètode que detecti col·lisions reals i que sigui estable en resoldre penetracions profundes.
Proves punt en polígon: la prova punt en polígon és ràpida i útil com a fase inicial de detecció, però per si sola falla en molts escenaris reals. Dues caixes amb vèrtexs contraposats o polígons còncaus poden penetrar-se sense que existeixi cap vèrtex dins de l'altre, per la qual cosa també s'han de detectar interseccions entre arestes.
Casos reals de detecció: en la pràctica hi ha bàsicament dos escenaris a cobrir. Un on un vèrtex del polígon A queda dins del polígon B i un altre on les arestes de A intersecten les arestes de B. L'estratègia de QuarkPhysics utilitza punt en polígon per al primer cas i proves d'intersecció d'arestes per al segon.
Resolució de col·lisions: detectar la col·lisió és només la meitat del problema. Resoldre-la correctament en formes molt còncaves o quan un cos tou queda completament dins d'un altre requereix evitar solucions que facin que un objecte quedi absorbit o provoqui inestabilitat en la simulació.
Raigs bisectors per a resolució: la proposta clau és generar des de cada vèrtex d'un polígon un raig bisector que és la bisectriu de l'angle format per les arestes adjacents. Aquest raig es projecta fins a xocar amb els límits del propi polígon i es calcula una vegada per frame. En la pràctica s'utilitzen longituds reduïdes del raig per a més estabilitat.
Mètode estable de fugida: quan un vèrtex col·lisiona o hi ha arestes intersectades, s'identifica el vèrtex afectat i es busca l'aresta més propera del polígon objectiu. El raig bisector del vèrtex en col·lisió es prova contra aquestes arestes i la primera aresta que intersecta i el vector normal de la qual apunta en la mateixa direcció que el bisector es pren com a camí de fugida. Aquesta comprovació de la direcció del normal evita empènyer vèrtexs cap a dins en formes còncaves i redueix escenaris d'objectes empassats.
Combinació de fases: el pipeline combina punt en polígon, intersecció d'arestes i raigs bisectors per cobrir casos límit i mantenir rendiment. Cada fase resol un conjunt de problemes concret reduint la necessitat de descomposició poligonal costosa i evitant col·lisions fantasma.
Col·lisions cos tou contra cos rígid: per a interaccions mixtes s'aplica un enfocament híbrid. Primer s'expulsen els vèrtexs del tou fora del polígon rígid fent servir proves punt en polígon i després s'utilitzen raigs bisectors des dels vèrtexs del cos rígid per detectar i resoldre col·lisions amb les arestes del cos tou. Aquesta tècnica resulta econòmica i consistent quan un rígid és convex i el tou és complex.
Rendiment i qualitat: la combinació d'aquestes tècniques en QuarkPhysics ofereix més estabilitat i menys casos d'error que mètodes tradicionals aplicats directament, a més d'un rendiment adequat per a simulacions en temps real amb geometries complexes.
Conclusió: l'aproximació per raigs bisectors complementada amb proves punt en polígon i intersecció d'arestes és una solució pràctica i eficient per a col·lisions de cossos tous en 2D que equilibra cost computacional i robustesa, i que facilita la integració amb simulacions multi dinàmiques.
Sobre Q2BSTUDIO: Q2BSTUDIO és una empresa de desenvolupament de programari dedicada a crear aplicacions a mida i programari a mida per a clients que necessiten solucions personalitzades. Som especialistes en intel·ligència artificial i IA per a empreses, agents IA, ciberseguretat i serveis cloud AWS i Azure. Oferim serveis d'intel·ligència de negoci i alternatives com Power BI per a visualització i anàlisi avançat. Les nostres competències abasten desenvolupament d'aplicacions a mida, integració de models d'intel·ligència artificial, disseny d'arquitectures segures i desplegament en serveis cloud AWS i Azure per garantir escalabilitat i compliment.
Per què triar-nos: Q2BSTUDIO combina experiència tècnica amb enfocament en negoci per oferir programari a mida que millora processos, incrementa automatització i aporta valor mitjançant intel·ligència artificial aplicada, agents IA intel·ligents i solucions d'intel·ligència de negoci. A més proporcionem auditories de ciberseguretat, hardening i plans de recuperació i oferim suport per a migracions i desplegaments en serveis cloud AWS i Azure.
Serveis destacats: aplicacions a mida, programari a mida, solucions d'intel·ligència artificial per a empreses, agents IA, implementacions de Power BI, serveis d'intel·ligència de negoci, ciberseguretat integral i serveis cloud AWS i Azure. Si busca un partner tècnic que cobreixi des del prototip fins a la producció i monitoratge, Q2BSTUDIO ofereix consultoria, desenvolupament i operació contínua.
Contacti amb nosaltres per avaluar com podem convertir una idea en una solució productiva i segura aprofitant les millors pràctiques en intel·ligència artificial, ciberseguretat, aplicacions a mida i serveis cloud AWS i Azure.


