Jestem w trakcie opracowywania świata podobnego do Minecrafta, w którym teren jest podzielony na woksele. Chciałbym jednak, aby niestabilne konfiguracje krajobrazów zapadały się w przewidywalny sposób. Na przykład zbyt zwisający zwis pękałby i pękał przy wokselach „o wysokim naprężeniu” , podobnie jak formowanie słupów z niesymetrycznie erodowaną podstawą . Myślałem o dodaniu pola „wektora stresu” do każdego woksela w terenie i wykonałem następujące (pseudokod):
foreach voxel in terrain
foreach neighbor in voxel.neighbor_voxels()
if magnitude(voxel.stress - neighbor.stress) > stressThreshold
detach_voxels(voxel, neighbor)
Problem polega jednak na tym, że nie wiem, jak bym wyliczył te indywidualne obciążenia. Czy istnieje jakiś algorytm oparty na MES specjalizujący się w dyskretyzacji wokseli, którego można użyć do obliczenia naprężeń w przeliczeniu na woksel? Czy też podchodzę do tego źle i istnieje jakiś inny sposób?
źródło