Як реалізувати механіку напруги / деформації у воксельній місцевості?


13

Я зараз розробляю світ, схожий на Minecraft, де місцевість поділяється на вокселі. Однак я хотів би також, щоб нестабільна конфігурація ландшафтів передбачувано руйнувалася. Наприклад, занадто важкий надвіс би розламується і розривається на вокселі з високим стресом , як і утворення стовпа з асиметрично еродованою основою . Я думав над тим, щоб додати поле «вектор стресу» до кожного вокселю на місцевості та робити наступне (псевдокод):

foreach voxel in terrain
    foreach neighbor in voxel.neighbor_voxels()
        if magnitude(voxel.stress - neighbor.stress) > stressThreshold
            detach_voxels(voxel, neighbor)

Але проблема полягає в тому, що я не знаю, як би я пішов обчислювати ці індивідуальні напруги. Чи існує якийсь алгоритм на основі FEA, який спеціалізується на дискреції вокселів, які я можу використовувати для обчислення напружень на основі вокселя? Або я підходжу до цього все неправильно і є якийсь інший спосіб зробити це?

Відповіді:


1

Ви можете розглянути пошук DFS усіх підключених вокселів і визначити воксель, який є єдиним, від якого найбільше залежать або "розгалужені". А потім запустіть свій гарний маленький псевдо-код. :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.