Jak wdrożyć mechanikę naprężeń / odkształceń w terenie wokselowym?


13

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?

Odpowiedzi:


1

Możesz rozważyć przeszukanie DFS wszystkich połączonych wokseli i ustalić woksel, który jest najbardziej zależny lub „rozgałęziony”. A następnie uruchom swój mały, pseudo kod. :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.