Ich bin dabei, eine Minecraft-ähnliche Welt zu entwickeln, in der das Gelände in Voxel unterteilt ist. Ich möchte jedoch auch, dass instabile Konfigurationen von Landschaften vorhersehbar zusammenbrechen. Zum Beispiel würde ein zu schwerer Überhang bei "hoch belasteten" Voxeln brechen und abbrechen , ebenso wie eine Säulenformation mit einer asymmetrisch erodierten Basis . Ich dachte darüber nach, jedem Voxel im Gelände ein Spannungsvektorfeld hinzuzufügen und folgendes zu tun (Pseudocode):
foreach voxel in terrain
foreach neighbor in voxel.neighbor_voxels()
if magnitude(voxel.stress - neighbor.stress) > stressThreshold
detach_voxels(voxel, neighbor)
Das Problem ist jedoch, dass ich nicht weiß, wie ich diese individuellen Belastungen berechnen soll. Gibt es eine Art FEA-basierten Algorithmus, der auf Voxeldiskretisierungen spezialisiert ist und mit dem ich die Spannungen pro Voxel berechnen kann? Oder gehe ich das falsch an und gibt es einen anderen Weg, dies zu tun?
quelle