2016-09-01 10 views
1

UNITY 3Dで液体を入れるにはボトルが必要です。 Unityには液体がないので、私はそれらをシミュレートする必要があります。私は、液体シミュレーションでこれらの次の機能を達成することができますどのように私を提案することができます任意の形状(ボトル、三角フラスコ、ビーカーなど)を備えたUnityを使ってボトル内の液体をどのようにシミュレートしますか?

  1. 3Dオブジェクトは、液体で満たされなければなりません。充填される液体の容積は変数であり、これはユーザによって決定される。

  2. オブジェクトを傾けたり回転させたりすると、図のようにオブジェクト内の液体に物理学が作用する必要があります。ボトルの内部に液体があり、ボトルが3Dにどのように配置されているかによって移動する必要があります。 image_1、私はステンシルバッファ、パーティクルシステム、布部品などをしようとした。しかし、それらのいずれかで達成することができませんでしimage_2

パーティクルシステムの問題は、粒子システムでCollisionが有効になっていても、パフォーマンスが重く、GameObjectのメッシュの鋭いエッジからパーティクルが漏れていることです。ステンシルバッファーでは、オブジェクトの位置に応じてオブジェクト内部の液体がどのように動くかを理解していませんでした。

どのような提案や解決策もありがとうございます。

+0

_computing shaders_と_screen space collisions_を使用して_gpuパーティクルシステムを実装することをお勧めします。あなたはnvidia gpu gemsシリーズを見ることができます。そのようなものがたくさんあります。そして、あなたはdirectcomputeへのcudaコードを移植することができます(例えばhttp://http.developer.nvidia.com/GPUGems3/gpugems3_ch30.htmlまたはhttp://http.developer.nvidia.com/GPUGems/gpugems_ch38.html) – TheDjentleman

答えて

関連する問題