Parçacıkları pürüzsüz bir damla olarak çizme


12

Oyun / grafik geliştirmede yeniyim ve parçacıklarla oynuyorum (2D olarak). Parçacık olarak birbirine sıvı / su gibi parçacıklar çizmek istiyorum. Kabarcık pürüzsüz (ve çok büyük) olmayacağından üst üste binen büyük daireler çizmek istemiyorum. Fiziği gerçekten bilmiyorum ama istediğim şeyin yüzey gerilimine benzeyen bir şey olduğunu varsayıyorum.

Stackexchange veya Google'da hiçbir şey bulamadım (belki doğru anahtar kelimeleri bilmiyorum?). Şimdiye kadar iki olası çözüm buldum, ancak algoritmalar hakkında somut bir bilgi bulamıyorum.

Bunlardan biri, bir damla olduğunu düşündüğüm parçacıkların içbükey gövdesini hesaplamaktır. Bir eşdeğerlik sınıfı ("birbirine yakın" ilişkisinde) oluşturarak blob'u hesaplayabilirim. Garip bir şekilde içbükey gövdenin nasıl hesaplanacağını açıklayan herhangi bir algoritma bulamadım . Birçok yazı (ve stackexchange arasında) bunu yapan kütüphanelere veya ticari ürünlere bağlantılar (C # 'da çalışmak için kütüphanelere ihtiyacım var), ama asla herhangi bir algoritma. Ayrıca bu çözüm, ortadaki boş alanı algılamayacak bir parçacık çemberi ile ilgili bir sorun yaşayabilir.

İçbükey gövdeyi araştırırken alfa şekilleri adı verilen bir şeye rastladım. Tam olarak yapmak istediğim gibi görünüyor, ancak içbükey gövdede olduğu gibi, aslında nasıl çalıştıklarını açıklayan herhangi bir kaynak bulamadım. Bazı sunum materyalleri buldum ama devam etmek için yeterli değil. Benim dışımda herkesin bildiği büyük bir sır gibi: - /

İçbükey gövde veya alfa şeklini hesapladıktan sonra, pürüzsüz ve güzel hale getirmek için bir Bézier eğrisi yapmak istiyorum.

Yaklaşımımı biraz fazla karmaşık bulmama rağmen, belki de bunu yanlış şekilde çözmeye çalışıyorum? Ya sorunuma başka bir çözüm önerebilir ya da eksik olduğum parçaları açıklayabilirseniz çok mutlu ve minnettar olurum :-)

Teşekkürler.



@BlueRaja Yorumunuz için teşekkür ederiz. Bu postayı zaten bulmuş olmama rağmen reddetmiştim, çünkü cevaplar ya sorunumu doğrudan çözmeyen makalelere bağlantı veriyor, ancak referansları olabilir ya da açıkça kullanamayacağım bir patent (bence, bürokrasiyle iyi değilim) (Yine de indirme bağlantısını bulamadım).
Nömmik

1
"Yürüyen küpler" patenti 2005'te sona erdi, çoğu 2D örnek çok daha eski ve bu yüzden sizi eski web sayfalarındaki kullanımları konusunda uyardığını görmüş olabilirsiniz.
Patrick Hughes

1
İşte fikirler açıklığa kavuşturmak için bazı örneklerle metaballs ve isosurfaces hem gider bir GameDev makale, var: bağlantı
Patrick Hughes

Beni metaballs hakkında aydınlattığınız için teşekkürler, istediğimi yapıyorlar gibi görünüyor :-)
Nömmik

Yanıtlar:


8

İhtiyacınız olabilecek anahtar kelime "Metaballs" dır ve karmaşık nVidia GPU Mücevherleri örneğinden, yalnızca iyi görünmek ve hızlı çalışmak için tasarlanmış demo sahne odaklı sürümlere kadar uzanır.


Gerçekten, anahtar kelimeyi bilmiyordum :-) Daha yakından bakacağım ve eğer ihtiyacım olan şeyse, cevabınızı kabul edeceğim. Teşekkürler!
Nömmik

1
İkinci kez okumadan önce "köfte" olduğunu düşündüğüm için +1.
James

2
Bu cevaba biraz daha ayrıntı ekleyebilir misiniz? +1 yaparsanız.
AttackingHobo

@James Bence herkes bu hatayı ilk gördüğünde hata yapıyor!
Jeff

1

Bir parçacığı oluşturulabilecek bir ağa dönüştürmek için stili birleştirir, voksel verilerinden çokgen bir kafes oluşturan Yürüyen Küpler algoritmasına göz atabilirsiniz . GPU: numb res'de oluşturulan her şeyle bunun harika bir örneğine sahip bir demossen demosu var .


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.