Je suis en train de développer un monde semblable à Minecraft où le terrain est divisé en voxels. Cependant, j'aimerais également que les configurations instables de paysages s'effondrent de manière prévisible. Par exemple, un porte-à-faux trop lourd se briserait et se briserait aux voxels à «contrainte élevée» , tout comme une formation de piliers avec une base érodée asymétriquement . Je pensais à ajouter un champ «vecteur de contrainte» à chaque voxel du terrain et à faire ce qui suit (pseudocode):
foreach voxel in terrain
foreach neighbor in voxel.neighbor_voxels()
if magnitude(voxel.stress - neighbor.stress) > stressThreshold
detach_voxels(voxel, neighbor)
Mais le problème est que je ne sais pas comment procéder pour calculer ces contraintes individuelles. Existe-t-il une sorte d'algorithme basé sur FEA spécialisé pour les discrétisations de voxels que je peux utiliser pour calculer les contraintes sur une base par voxels? Ou est-ce que j'aborde tout cela de travers et il y a une autre façon de faire?
la source