top of page

Dynamics - Rigid Body

Güncelleme tarihi: 24 Mar 2022

Konumuz 3d yazılımlarda kullandığımız simülasyon çeşitlerini ve parametrelerini elimizden geldiğince açıklamak olacak. Bir nevi simülasyon sözlüğü olarak da görebilirsiniz.


RIGID BODY

Rigid Body, katı, deforme olmayan cisim anlamına gelir. Katı cisimlerin belli başlı fiziksel özelliklerinin, özelliksiz mesh'e tag, modifier, fx yoluyla eklenmesi sonucu elde edilir. Belli başlı evrensel parametreleri şu şekildedir.


Type


Cismin hareket tipini belirler.


Dynamic/Rigid hareketli cisim olarak tanımlar

Kinematic - Key verilmiş cisim diğer RBD leri etkiler fakat onlardan etkilenmez.

Static/Collider zemin gibi hareketsiz çarpışma cismi olarak tanımlar.



Trigger


Tetikleme. Cismin simülasyonunun hangi şartlar altında başlayacağını belirtir. Genelde Immediately, On Collision, Velocity Peak, Start On Sleep seçenekleri vardır.


Immediately play'e bastığınız an simülasyonu başlatır.

On Collision/Start on Sleep başka bir cisimle çarpışma esnasında başlatır.

Velocity Peak keyframe verilmiş cisim en yüksek hıza ulaştığı anda aktif eder.

By Script Xpresso, MaxScript gibi scriptlerle belirtilen özel koşullarla başlatır.


Custom Initial Velocity / Motion


Cisme başlangıçta XYZ eksenlerinde spesifik bir hareket ve dönme hızı, yönü verir.


Linear Velocity : XYZ ekseninde mutlak bir velocity (hız) verir.

Angular Velocity : XYZ ekseninde mutlak bir dönme velocity'si (hız) verir.


Collision


Başka RBD cisimlerle etkileşime girip girmeyeceğini kontrol eder.


Self Collisions cismin kendi parçalarıyla etkileşime girip girmeyeceğini kontrol eder. Cloth simulasyonlarında daha gerekli ve belirgindir. Simülasyon süresine etki eden önemli bir parametredir.


Density / Mass


Cismin yoğunluğunu, kütlesini belirler. Yazılımlar bunu cismin hacmine göre otomatik hesaplarlar. Ayrıntılı simülasyonlarda değerlerle oynanabilir.


Bounce / Friction


Cismin zıplama (bounce) ve sürtünme (Friction) değerlerini kontrol eder. Bounce değeri arttıkça zıplama sayısı artar sürtünme değeri arttıkça hareket miktarı azalır. Burada dikkat edilmesi gereken nokta, bu değerler iki RBD cismi etkileşime girdiğinde işe yarar. Zemine bir top düşürdüğünüzde zeminin de RBD özelliğine sahip olması gerekir ve total etkileşimi hem zemin hem de toptaki Bounce/Friction değerleri kontrol eder.


Forces


Simülasyona dahil edilecek veya simülasyondan çıkarılacak Gravity, Wind, Vortex, Turbulence vb. güçleri belirler. Güçleri Forces bölümünde anlatacağız.


Birçok yazılımda Damping standart force olarak gelir. Damping, cismin kinetik enerjisinin düşürülmesidir. Örneğin yaptığınız simülasyonda cisimler duramıyorsa (-ki sık karşılaşılan bir durumdur) biraz Linear (doğrusal ) ve Angular (Açısal) Damping eklemek sorunu çözecektir.


Solver Iteration / Steps per Frame


Her karede kaç kere simülasyon hesabı yapılacağını belirler. Değerin arttırılmasıyla daha tutarlı ve sorunsuz simülasyonlar elde edilir fakat hesaplama hızına etki eden başka bir önemli faktördür.


Cache / Bake


Simülasyonu hesaplayıp belleğe saklar, play dediğimizde saklanmış simülasyon oynatılır. Yaptığımız simülasyonu Viewport'ta daha hızlı görebilmemizin yanında istediğimiz kareden düzgünce oynatılmasını sağlar. Cache edilmeyen simülasyonlarda play'e her zaman ilk kareden başlamanız gerekir.


Initial State


Simülasyonu başlattık. 300 kare hesaplama sonunda cisimler güzel uygun bir konuma geldi ve cisimlerin bu değerlerini başlangıç değeri olarak atamak istiyoruz. Animasyonu 300 kare hesaplatıp 300 den itibaren render almak yerine Initial State ayarlayarak cisimlerin örneğin 300. karedeki değerlerini ilk kareye atayabiliriz. Başka bir deyişle 300. kare öncesindeki bütün simülasyon gereksinimlerini kaldırırız ve cisimler simülasyona, ayarladığımız Initial State durumundan başlar. Clear komutu Initial State i temizleyerek cisimleri simülasyon öncesi konumlarına getirir.



Mesh / Shape


Bu önemlidir. Simülasyonlarda çarpışma algılama, cisimlerimizin kompleksliğine göre hesaplamada en çok zaman tüketen işlerden biri belkide birincisidir. Bu, sıvı, gaz bütün simülasyonlar için geçerlidir. RBD simülasyonlarında cismin kompleksliği arttıkça işlem süresi de artar. Bu süreden tasarruf etmek için yazılımlar bize hesaplaması kolay, cismi çevreleyen hayali cisimler verirler. Bu hayali cisimler RBD cismimizin dış noktalarını referans alarak oluşturulurlar. Bu Bounding Shape olarak geçer. Cismin kaba şekline göre bu hayali cisimlerin kullanılması tutarlılığı düşürse de simülasyonu epey hızlandırır.



Box : Kübik şekilleri hesaplamada kullanılır.





Sphere : Küresel şekilleri hesaplamada kullanılır.




Convex : Dışbükey yüzeyleri hesaplar. Küre de convex bir şekildir.




Concave : İçbükey yüzeyleri hesaplamada kullanılır. Tabak tencere vs. Aşağıdaki profili Convex yapsaydık top profilin içine düşemezdi. Yukarıdaki çaydanlıkta topun içbükey araya düşememesine, aşağıdaki simülasyonda da dışbükey tepeciğin doğru hesaplanamadığına dikkat edin.





Mesh/Original : Cisim neyse onu Bounding Shape olarak kullanılır. İçbükey ve Dışbükey hesaplamalar birlikte yapılır. En ideal tiptir. Ayrıca en yavaş hesaplanan şekildir.




Bunların dışında Capsule, Cylinder vb. gibi Bounding Shape türleri de mevcuttur.

Aşırı kompleks bir cismimiz varsa ve Mesh/Original kullandığımız için simülasyon hesaplanamaz hale geliyorsa, cismi uygun iç,dışbükey, kübik, küresel bölgelerinden keserek her bölgeye ayrı bir Bounding Shape uygulayarak simülasyonu hızlandırabiliriz.



Tek parça içi oyuk kübik cisim. Shape Type : Cube.

Top delikten geçemiyor. Shape i Mesh/Original yaparsak bu tarz basit örneklerde hissedilmese de daha kompleks şekillerde simülasyon aşırı derecede yavaşlayacak.




Aynı cisim, 4 parçaya bölünmüş. Shape Type : Cube.

Bounding Shape RBD cismin en dış vertexleri üzerinden hesaplandığından aradaki boşluk cismin parçası olmadığı için top içinden geçip gider.




Başka bir örnek :





Sıradaki yazımız Soft Body ve Cloth üzerine olacak.

76 görüntüleme0 yorum

Son Yazılar

Hepsini Gör

Commenti


bottom of page