Voksel arazide gerilim / gerinim mekaniği nasıl uygulanır?


13

Arazinin voksellere ayrıldığı Minecraft benzeri bir dünya geliştirme sürecindeyim. Ancak, manzaraların dengesiz konfigürasyonlarının tahmin edilebilir şekilde çökmesini de istiyorum. Örneğin , çok ağır bir çıkıntı, asimetrik olarak aşınmış bir tabana sahip bir sütun oluşumu gibi 'yüksek stresli' voksellerde kırılır ve kırılır . Arazideki her voksel için bir 'stres vektörü' alanı eklemeyi ve aşağıdakileri yapmayı düşünüyordum (sözde kod):

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

Ama sorun şu ki, bu bireysel stresleri nasıl hesaplayacağımı bilmiyorum. Stresleri voksel bazında hesaplamak için kullanabileceğim voksel ayrıklaştırmaları için uzmanlaşmış bir çeşit FEA tabanlı algoritma var mı? Yoksa tüm bunlara yanlış mı yaklaşıyorum ve bunu yapmanın başka bir yolu var mı?

Yanıtlar:


1

Bağlı tüm voksellerin bir DFS aramasını düşünebilir ve en bağlı veya "dallanmış" tek voksel belirleyebilirsiniz. Ve sonra güzel küçük sahte kodunuzu çalıştırın. :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.