Superfici deformanti


10

Sto cercando di realizzare un comportamento fisico deformante per le superfici piane, ma non ho idea di come iniziare con l'implementazione finora.

Indipendentemente dalla forma della superficie (piani, cubi, sfere ...), voglio avere piccole rientranze nelle posizioni delle entità di gioco (giocatori, nemici, oggetti ...).

È un po 'complicato da spiegare, quindi ho illustrato di cosa sto parlando, ecco un esempio con una sfera:

gioco di superficie deformante illustrazione

Quindi, le superfici dovrebbero essere in grado di deformarsi un po '(per apparire come un letto o un divano davvero morbido). Le mie superfici hanno probabilmente bisogno di un conteggio di vertici elevati per ottenere una deformazione uniforme, ma il mio grande problema è la matematica per calcolare questa deformazione.

Sto programmando in C / C ++ con OpenGL, ma qualsiasi consiglio nella giusta direzione andrà bene.

Risposte:


5

Per una semplice deformazione, è possibile selezionare un punto sulla superficie / oggetto da manipolare, quindi applicare una trasformazione (ad es. Traduzione) ad esso. Quindi, trasforma tutti i punti entro una certa distanza da quel punto allo stesso modo, ma fai in modo che la trasformazione dimostri forza più lontano dal punto scelto.

Quindi, per fare rientrare le cose sotto un personaggio, scegli il punto in cui si trova e spostalo verso il basso.

A seconda dell'effetto che si desidera archiviare, è possibile applicare la trasformazione a livello globale, locale o verso / lontano dal centro oggetti e / o utilizzare funzioni diverse per simulare materiali diversi.

Un semplice esempio di rientro di un piano utilizzando le funzioni di decadimento sin / cos è disponibile su www.lighthouse3d.com/opengl/terrain/


1
Viene visualizzato un errore 403 proibito sul collegamento.
George Duckett,

1
Bene ... 'lil hack è in ordine allora (anche, direttamente alla sezione in questione): web.archive.org/web/20100927141645/http://lighthouse3d.com/…
Exilyth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.