Mantis_Volume_Simulator1.0
情報共有もろもろ含め
β版として...1.0verをリリースしました。
Uiも雑だし
Cache_CTRL&Render_Pipelineも考慮してないですけど...
とりあえずパフォーマンスから...
Mantis_Sim_Performance Shape
https://youtu.be/k4kXgieko8A
:右がSmoke_Solver 左がMantis
Mantis_Sim_ Turbulence_Flow
https://youtu.be/sIuOo28nzk8
Performance Surface_Based_Turburance
https://youtu.be/t-EFE49FMzA
Common Setting
Grid_Size
{5,15,5}
Grid Res
{0.1}
Voxels
{[50,150,50]}
Voxel_TotalCounts
{375,000}
Sim_time
200f
Simple_SmokeSolver
Sim_Time 31.424s
Total_Time 51.408s
Simple_SmokeSolver OpenCL
Sim_Time 14.669s
Total_Time 29.561s
Mantis_Volume_Simulator
Total_Time 27.196s
Sim_Time 11.649s
Total_Time 21.417s
How to Use
1:Download HDA_file for DropBox
https://www.dropbox.com/s/0vicodoaxh77pba/Mantis_Volume_Simulator1.0_blackbox.hdanc?dl=0
2:Seting HDA File (Non-Commercial Edition(BlackBOX)で作成しています)
HDAはHelpを参照することをおすすめします。
3:Build確認
OpenCLがうまく動作していれば普通に使えます。
4:Setting Parms&edit Volume_Shapes
5:ひたすら遊ぶ...
学習出来るジャンル
Parameter_CTRLでの
Grid Control
Volume Velosity
Viscosity Sim
Turbulence_Flow
マイクロソルバーのウンタラカンタラやる前に
まずは触ってみるのが一番です。
複雑なSimulationを構築する前にまずは全体像をガッチリと掴みましょう。
Tec Tips
OpenCL Based Simulator
Divergenceを見直しています。
Dissipationを見直しています。
使用FieldはDensity,Vel
その他はtemporary_Fieldとして扱っています。
DissipateはH_OpenCL&VEXで記述してみました
以下Source_Code
GAS_OPENCL
#include "interpolate.h"
float lerpConstant( constant float * in, int size, float pos);
kernel void dissipate(
int stride_x,
int stride_y,
int stride_z,
int stride_offset,
float timeinc,
float time,
float eva_parm ,
global float * density
)
{
int idx = stride_offset +
get_global_id(0) * stride_x +
get_global_id(1) * stride_y +
get_global_id(2) * stride_z;
//Create Evapolate
float Invert_eva = -eva_parm;
Invert_eva +=1;
float clp_min = 0;
float clp_max =1;
float evaporate = pow(clamp(Invert_eva,clp_min,clp_max),timeinc);
density[idx] *=evaporate;
}
GAS Field Wrangle
float parm_eva = chf("parm_eva");
float Invert_eva =-parm_eva;
Invert_eva +=1;
float evaporate = pow(clamp(Invert_eva,0,1),@TimeInc);
@density *=evaporate;
Setting_Sample
気づいている人はお分かりだと思うんですけど...
名前はManta_Flowのパクリです笑
自分は
もっとアーティスティックに表現したいんですけど
難しい....
DOPアセットの作成練習も兼ねたり
Openclコーディングに計算の一部分を落としこんでみたり
色々してみました。
F○MEとかP○○enixのような操作性をHoudiniにも落とし込めたら...
アルゴリズムの簡単なTec Reportは勉強会とかセミナーとかで共有できたらいいですね。
学習のリソースにお役立てくださいませ。
学習用ですよ...笑
Let`s Thinking(^ _ ^)
追伸
HDKむずかしい...