Sono nuovo nello sviluppo di giochi / grafica e sto giocando con le particelle (in 2D). Voglio attirare particelle vicine tra loro come una chiazza, proprio come liquido / acqua. Non voglio disegnare grandi cerchi sovrapposti poiché il blob non sarà liscio (e troppo grande). Non conosco davvero la fisica ma presumo che ciò che voglio sia qualcosa di simile alla tensione superficiale.
Non sono riuscito a trovare nulla su stackexchange o su Google (forse non conosco le parole chiave corrette?). Finora ho trovato due possibili soluzioni, ma non sono riuscito a trovare alcuna informazione concreta sugli algoritmi.
Uno di questi è calcolare lo scafo concavo di particelle che considero un blob. Posso calcolare il BLOB creando una classe di equivalenza (sulla relazione "vicini l'uno all'altro"). Stranamente non sono stato in grado di trovare alcun algoritmo che spiegasse come calcolare lo scafo concavo. Molti post (e tra stackexchange) si collegano a librerie o prodotti commerciali che fanno questo (ho bisogno di librerie per funzionare in C #), ma mai nessun algoritmo. Anche questa soluzione potrebbe avere un problema con un cerchio di particelle, che non rileverebbe lo spazio vuoto nel mezzo.
Durante la ricerca dello scafo concavo, mi sono imbattuto in qualcosa chiamato forme alfa. Il che sembra essere esattamente quello che voglio fare, tuttavia, proprio come con lo scafo concavo, non ho trovato alcuna fonte che spieghi come funzionano effettivamente. Ho trovato del materiale di presentazione ma non abbastanza per continuare. È come un grande segreto che tutti conoscono tranne me: - /
Dopo aver calcolato lo scafo concavo o la forma alfa, voglio renderlo una curva di Bézier per renderlo liscio e piacevole.
Anche se trovo il mio approccio un po 'troppo complesso, forse sto cercando di risolverlo nel modo sbagliato? Se puoi suggerire un'altra soluzione al mio problema o spiegare i pezzi che mi mancano, sarei molto felice e grato :-)
Grazie.