Bu konu, Parçacık Akışı’nda mParticles InterCollision testinin kullanımına ilişkin ek bilgiler sunmaktadır.
Öncelikle, mParticles InterCollision’ın yapmadığı şeylerden bahsedelim: Parçacıkların birbirleriyle çarpışıp çarpışmayacağını kontrol etmez. Varsayılan olarak, parçacıklar bir MassFX simülasyonuna katılıyorsa ve çarpışma şekilleri bir mParticles Shape operatörü tarafından tanımlanmışsa , birbirleriyle çarpışırlar. Bu, simülasyonun ayrılmaz bir parçasıdır.
mParticles InterCollision testi, parçacıklar arası çarpışmaları kaydeder ve ardından (çarpışma bilgilerine göre) parçacıkları diğer olaylara yönlendirir.
Bir olaya mParticles InterCollision testi eklemek, mParticles Collision testindeki On Test True If Particle seçeneğini açmaya benzer : Particle Flow çarpışmalar hakkında bilgi toplamaya başlar. mParticles Collision testinde olduğu gibi, bu bilgiyi toplama işlemi CPU kaynaklarını tüketir, bu nedenle parçacıkları birbirleriyle çarpışmalarına bağlı olarak diğer olaylara yönlendirmeniz gerekmiyorsa, testi eklemeyin.

Çarpışma Kaydı Grubu’nu kullanarak, belirli parçacık gruplarının hangi çarpışmalarının kaydedileceğini tanımlayabilirsiniz. Varsayılan olarak, “Geçerli Olaydaki Parçacıklar” olarak ayarlanmıştır. Bu, geçerli olaydaki bir parçacık geçerli olaydaki başka bir parçacıkla çarpışırsa, çarpışmanın kaydedilip işleneceği anlamına gelir. Diğer seçeneklere (Parçacık Doğruysa Test Et) bağlı olarak, çarpışma bir parçacığın Doğru olarak test edilmesine neden olabilir veya olmayabilir. Sonuç ne olursa olsun, seçenek “Geçerli Olaydaki Parçacıklar” olarak ayarlanmışsa, yalnızca geçerli olaydaki parçacıklar arasındaki çarpışmalar işlenir.
Alternatif seçenek ise Olaylardaki Parçacıklar’dır. Burada, çarpışma kaydı açısından ilgilendiğiniz diğer olayları tanımlayabilirsiniz. Varsayılan olarak, liste mevcut parçacık sistemindeki tüm olayları gösterir (aynı PF Kaynağı genel olayı altında, çünkü bir simülasyon yalnızca Parçacık Akışı parçacık sistemi başına çalıştırılabilir). Listenin ayrıca mevcut olay girişini de içerdiğini unutmayın. Bu nedenle, mevcut olay da dahil olmak üzere bir dizi olayla çarpışma kaydetmeniz gerekiyorsa, bunu yapabilirsiniz. Tüm olaylar zaten listelendiğinden, çarpışma için hangi olayların gerekli olduğunu belirlemek için olayları vurgulamanız (koyu mavi yapmanız) gerekir.
Çarpışma kaydı kapsamıyla ilgili noktayı açıklamak için aşağıdaki örneği ele alalım: MassFXInterCollision01.max.

Bu örnekte, önce tüm parçacıklar bir kutu oluşturur ve ardından bir torus saptırıcısına düşer. İlk olay, Olay 01, iki test içerir: torus saptırıcısıyla çarpışmayı tanımlamak için mParticles Collision ve parçacıklar birbirleriyle çarpıştığında bir sonraki olaya atlamayı tanımlamak için mParticles InterCollision. Çarpışma Kaydı kapsamının “Mevcut Olaydaki Parçacıklar” olarak ayarlandığını unutmayın. Bu nedenle, bazı şanssız parçacıkların, tüm komşuları birbirleriyle çarpışıp bir sonraki olaya geçmeden önce başka hiçbir parçacıkla çarpışmaması mümkündür. Gördüğünüz gibi, bu yapılandırmada “geride kalan” ve yeşil renkte kalan parçacıklar vardır (ilk olayda olduğu gibi).
Tüm parçacıkların sonunda bir sonraki olaya geçmesini sağlamak için, Çarpışma Kaydı kapsamını Olaylardaki Parçacıklar olarak değiştirin ve listedeki üç olayı da vurgulayın: Olay 001, Olay 002 ve Olay 003. Şimdi animasyonu oynattığınızda, her parçacık bir çarpışma bildirimi alır ve yeşilden sarıya, ardından maviye dönüşür.

MassFXInterCollision01.max örneğiyle ilgili bir not daha ; Parçacıklar son olaya ulaştıklarında, simülasyon kapatılarak statik hale gelirler (son olaydaki mParticles Switch operatörüne bakın). Bu parçacıkların statik yapısı, “geride kalan” (yeşil olanlar) bazı parçacıkları imkansız bir duruma sokar: Statik parçacıklar arasında sıkışırlar ve yerleşmeleri için yeterli alan yoktur. Bu nedenle yeşil parçacıklarda titrek bir hareket görebilirsiniz.
Son olaydaki mParticles Switch operatörünü ayarlayarak bu titremeyi önleyebilirsiniz. Simülasyonu kapatmak yerine, Match Position’ı açabilirsiniz. Bu şekilde, son ve ilk olaylardan gelen parçacıkların tümü simülasyona katılır. Bir anlamda, simülasyon amaçları için eşittirler: Hepsi dinamiktir. Bu nedenle, yeşil parçacıklar için bir miktar “yedek alan” mevcuttur ve dengeli bir yerleşim sağlanabilir.
Parçacık Testinde Doğru Olursa Grubundaki Çarpışmalar ve Birden Çok Kez Çarpıştı seçenekleri arasındaki farkı göstermek için başka bir örneğe bakalım: MassFXInterCollision02.max. Bu örnek iki olay içeriyor ve parçacıklar, # Times seçeneğine göre birbirleriyle 15 kez çarpışırlarsa ikinci olaya yönlendiriliyor. Sonraki olayda, parçacıklar statik hale getiriliyor: Hız ve Dönme değerleri 0’a eşit. Hız ve Dönme değerleri normal Parçacık Akışı operatörleri (Hız 01 ve Dönme 01) ile ayarlanıyor, ancak parçacıkları statik hale getirmek için bir mParticles Switch operatörü kullanılıyor.
Animasyonu oynattığınızda, tüm parçacıkların ikinci olaya geçemediğini görebilirsiniz. Bunun nedeni, bazılarının animasyon süresince en az 15 kez çarpışmamış olmasıdır. Bir alıştırma olarak, tüm parçacıkların bir sonraki olaya geçmesini sağlarken bu değerin ne kadar yüksek olabileceğini bulmak için # Times değerini azaltın. Bu değer, bir parçacığın animasyon sırasında diğer parçacıklarla çarpıştığı en küçük sayıdır. Ayrıca, Çarpışma Kaydı kapsamının Olaylardaki Parçacıklar olarak ayarlandığını ve tüm olayların vurgulandığını unutmayın. Bu örnekte, bu, tüm parçacıklar arası çarpışmaları saydığımız anlamına gelir.

Son örnek olan MassFXInterCollision03.max, Veri Operatörüne Raporla ve Toplam Sayım seçeneklerinin kullanımını göstermektedir. Burada, bu seçeneklerin her ikisi de açıktır. Bu, testin, Çarpışma Kaydı kapsamında tanımlandığı gibi tüm çarpışmaları kaydederken, bunları bir Veri Operatörü tarafından kullanılmak üzere bir tamsayı veri kanalı aracılığıyla raporladığı anlamına gelir. mParticles InterCollision testinin herhangi bir olaya bağlı olmadığını, ancak testin altında bir Veri operatörünün bulunduğunu unutmayın. Aşağıdaki illüstrasyonun sol tarafında gösterilen bu operatörün Veri Akışı, üstte Giriş mParticles alt operatörlerini içerir. Bunlardan biri, saptırıcılarla (bu durumda, Torus saptırıcısı) olan tüm çarpışmaları sayarken, diğeri tüm parçacıklar arası çarpışmaları sayar. Bu değerlerin her ikisi de özetlenir ve doku gradyanlı bir eşleme için göreceli bir ofset olarak kullanılır. Bu şekilde, bir parçacık ne kadar çok çarpışırsa, rengi o kadar açık olur.

Rapor Veri Operatörü kullanımına ilişkin bir not: Bu örnekte, test herhangi bir yere bağlanmamış olsa da, Parçacık Çarpışması Birden Çok Kez Gerçekleşirse Test Doğru olarak ayarlanmıştır. Bu seçenek, diğer seçeneklere kıyasla çarpışmaları saymada en doğru sonucu verir. Ancak # Kez parametre değeri doğruluk açısından herhangi bir fark yaratmaz.
Bu örnekle ilgili ek bir not: Görüntü alanındaki oynatma hızı, ilk iki örneğe kıyasla yavaştır; bunun temel nedeni, görüntü alanının parçacıkların değişen renklerini güncellemesinin biraz zaman almasıdır. Görüntüleme operatörünü Ticks olarak değiştirirseniz, oynatma hızında önemli bir iyileşme göreceksiniz, ancak animasyon sırasında parçacıkların renk değiştirdiğini göremeyeceksiniz.
“Çarpışmadan Sonra Yavaş mı?” ve “Çarpışmadan Sonra Hızlı mı?” seçenekleri, mParticles Çarpışması ve normal Çarpışma testlerindeki aynı isimli seçeneklere benzerdir.
