- TX - 1D-Textur mit Sprungwerten für X-Koordinaten
- TY - 2D-Textur mit Sprungwerten für Y-Koordinaten zum jeweiligen X-Wert
- TP - 2D-Textur mit Partikel-Indizes
- Px, Py - Koordinaten des aktuellen Partikels, für den Nachbarn bestimmt werden sollen
- Sx, Sy - aktuelle Suchkoordinaten
- X, Y - temporäre Variablen
- NP - Nachbarpartikel
- texture(Textur, Koodinaten) - Funktion für Lookup
- Sx = Px, Sy = Py, X = Sx
- Solange Sx - Px < Suchradius
- Y = Sy
- Solange Sy - Py < Suchradius
- Falls Sx <> Px oder Sy > Y
- NP = texture(TP, (Sx, Sy))
- Sy += texture(TY, (Sx, Sy)).a
- Sy = Y
- Solange Py - Sy < Suchradius
- Falls Sy < Y
- NP = texture(TP, (Sx, Sy))
- Sy -= texture(TY, (Sx, Sy)).r
- Sx += texture(TX, (Sx)).a
- Sx = X
- Solange Px - Sx < Suchradius
- Sx -= texture(TX, (Sx)).r
- ...