Benötige Verständnis Hilfe

Hey leute.
Ich muss hier ne kleine Seminararbeit zum Thema
“Chain shape matching for simulating complex hairstyles” schreiben und verstehe zum verrecken den folgenden abschnitt, 3.4, nicht.

Hat jemand eine Idee was genau die meinen mit “particle particle collisions are detected using a uniform grid of voxels that store […] added to them.”

Wie genau kommen die an die kollisionen?

Das klingt erstmal grob nach sowas wie https://conkerjo.wordpress.com/2009/06/13/spatial-hashing-implementation-for-fast-2d-collisions/ : Jedes Partikel wird in das Gitter einsortiert, d.h. jedes Partikel bekommt Koordinaten (x,y,z), bzw. in jeder Voxelzelle wird eine Liste der Indizes der Partikel gespeichert, die in dieser Zelle liegen. Wenn man dann schauen, will, mit welchen Partikeln ein Partikel kollidiert, schaut man, in welcher Zelle der liegt, und geht dann alle direkt angrenzenden Zellen durch, um rauszufinden, welche Partikel für eine Kollision in Frage kommen. Grob sowas wie

void checkCollisions(Particle p) {
    List<Particle> candidates;
    voxelCoordinates = getOrComputeFor(p);
    voxelCell = voxelGrid.get(voxelCoordinates);
    for (all 3x3x3 neighborsOfVoxelCell) 
        candidates.addAll(particlesIn(neighborsOfVoxelCell));
    // Check if the distance between p and any of the
    // candidates is below the collision threshold
    ...
}

Das ist aber so weit erstmal nur ein “educated guess”…

Vielen dank. Hab mir das jetzt noch ein paar mal durchgelesen… im prinzip ja alles ganz einfach, aber diese arbeit ist in ihrer gesamtheit so seltsam dass ich da irgendwie nen brett vorm kopf bekommen habe. Naja.

Danke!

Siehe auch “Example 29-2. Pseudocode of Collision Detection and Reaction” von https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch29.html