Anisotropic Kernel
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*異方性カーネル [#n8bdf672]
パーティクルから陰関数を生成する場合,以下のような平滑化...
#ref(anisotropic_kernel.eq1.gif,nolink,70%)
ここで,&ref(anisotropic_kernel.eq2.gif,nolink,70%);はス...
&ref(anisotropic_kernel.eq4.gif,nolink,70%);は距離が遠く...
この定義はいわゆるメタボールと同じようなものであり,
生成された表面は凸凹になってしまう(下図左).このような表...
blobbyな表面を改善するために,Yuら
¬e{Yu2010:J. Yu and G. Turk, Reconstructing Surfaces o...
は従来の等方性のカーネルの代わりに異方性カーネル(anisotro...
つまり,&ref(anisotropic_kernel.eq5.gif,nolink,70%);の代...
#ref(anisotropic_kernel.eq7.gif,nolink,70%)
とすることで,ベクトル&ref(anisotropic_kernel.eq8.gif,nol...
法線方向に短軸がくるような楕円体を設定することで,滑らか...
また,表面付近でのパーティクルの不規則な分布を解消するた...
パーティクル位置に関しても平滑化を行い更新位置&ref(anisot...
全パーティクルに対して,&ref(anisotropic_kernel.eq10.gif,...
#ref(anisotropic_kernel.eq12.gif,nolink,70%)
|#ref(anisotropic_kernel.jpg,nolink,100%)|
|CENTER:左は等方性カーネル,右は異方性カーネルを使った表面|
以下で¬e{Yu2010};の&ref(anisotropic_kernel.eq10.gif,no...
**パーティクル位置更新 [#da028bd8]
不規則なパーティクル配置を修正するために,以下のLaplacian...
#ref(anisotropic_kernel.eq13.gif,nolink,70%)
&ref(anisotropic_kernel.eq14.gif,nolink,70%);は定数で,&n...
&ref(anisotropic_kernel.eq15.gif,nolink,70%);は重み関数で,
#ref(anisotropic_kernel.eq16.gif,nolink,70%)
とする.この重み関数は異方性を算出するための共分散行列の...
異方性をより正確に推定するためにはより多くのパーティクル...
有効半径&ref(anisotropic_kernel.eq5.gif,nolink,70%);はシ...
注意として,&ref(anisotropic_kernel.eq9.gif,nolink,70%);...
そのため,更新前の位置&ref(anisotropic_kernel.eq17.gif,no...
***共分散行列の計算 [#u6e862f8]
&ref(anisotropic_kernel.eq6.gif,nolink,70%);を計算するた...
主成分分析(PCA)は画像認識などでよく用いられるデータ解析手...
分散したデータの特徴をよくとらえた新しい軸(主軸)を設定す...
WPCAはPCAに重みをつけることで,外れ値(outlier)やノイズに...
WPCAではまず,データ点での重みを計算し,次に重みを考慮し...
最後に&ref(anisotropic_kernel.eq18.gif,nolink,70%);の固有...
ここでは,WPCAの結果から&ref(anisotropic_kernel.eq6.gif,n...
まず,重み付き平均位置&ref(anisotropic_kernel.eq19.gif,no...
#ref(anisotropic_kernel.eq20.gif,nolink,70%)
&ref(anisotropic_kernel.eq19.gif,nolink,70%);はパーティク...
重み&ref(anisotropic_kernel.eq15.gif,nolink,70%);を使うこ...
&ref(anisotropic_kernel.eq19.gif,nolink,70%);から各近傍パ...
#ref(anisotropic_kernel.eq24.gif,nolink,70%)
重み関数&ref(anisotropic_kernel.eq15.gif,nolink,70%);には...
***共分散行列の特異値分解 [#e0594448]
楕円の伸縮方向を得るために共分散行列&ref(anisotropic_kern...
#ref(anisotropic_kernel.eq25.gif,nolink,70%)
&ref(anisotropic_kernel.eq26.gif,nolink,70%);は固有ベクト...
大きな変形や近傍にパーティクルが少ない孤立したパーティク...
-固有値をチェックして大きな変形を防ぐ.
固有値は大きい順に並んでいるとして,&ref(anisotropic_kern...
-近傍パーティクル数をチェックして,孤立したパーティクルを...
もし近傍パーティクル数が&ref(anisotropic_kernel.eq32.gif,...
-近傍にパーティクルがフルにある場合の体積を一定にするため...
これらを適用して,修正した共分散行列&ref(anisotropic_kern...
#ref(anisotropic_kernel.eq39.gif,nolink,70%)
#ref(anisotropic_kernel.eq40.gif,nolink,70%)
ここで,&ref(anisotropic_kernel.eq41.gif,nolink,70%);であ...
¬e{Yu2010};は,&ref(anisotropic_kernel.eq42.gif,nolink...
***異方性カーネル用行列$G$の算出 [#md43c27c]
&ref(anisotropic_kernel.eq6.gif,nolink,70%);は&ref(anisot...
#ref(anisotropic_kernel.eq44.gif,nolink,70%)
*結果 [#ta3ab463]
[[SPH法の実装の結果:SPH法の実装(GPU実装含む)#k4a9f2ef]]で...
まず,共分散行列を球に適用することで,パーティクルを楕円...
|&ref(dam_break1_ap.jpg,nolink,100%);|&ref(dam_break1_np....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
メッシュを抽出して,GLSLで屈折表面として描画した結果を以...
|&ref(dam_break1_ar.jpg,nolink,100%);|&ref(dam_break1_nr....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
異方性カーネルで表面が滑らかになるとともに,両サイドの壁...
さらにシミュレーションを進めた時の結果を以下に示す.
|&ref(dam_break2_ap.jpg,nolink,100%);|&ref(dam_break2_np....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
拡大したものは以下
|&ref(dam_break3_ap.jpg,nolink,100%);|&ref(dam_break3_np....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
メッシュを抽出して,GLSLで屈折表面として描画した結果を以...
|&ref(dam_break2_ar.jpg,nolink,100%);|&ref(dam_break2_nr....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
計算時間はだいたい,SPH計算に5ms/frame,異方性カーネルのG...
パーティクルを直接描画する際に,等方性カーネルはポイント...
*サンプルコード(GPU実装) [#b03ec21e]
[[SPH法の実装(GPU実装含む)]]で示したSPH法のコードに上記の...
#ref(rx_anisotropic_v1.1.zip);
-ビルドするのに必要なライブラリ
FLTK, freeglut, GLEW, CUDA, boost, FTGL, freetype, GSL
各ライブラリについては[[ライブラリのインストール]]を参照.
さらに,[[3Dモデルファイルの入出力]]のrx_model.libも必要(...
-簡単な説明&注意事項
--Visual Studioから実行する場合は,作業ディレクトリを"../...
--binフォルダに"sph_scene_*.cfg"という名前のファイルがあ...
プログラム起動時にファイルを読み取り,Sceneメニューに列挙...
デフォルトでは6つのシーンを用意している(合計12まで追加可...
--rxSPH, rxSPH_GPUクラスのCalAnisotropicKernel関数が行列G...
--CalAnisotropicKernel関数のCPU版は特異値分解に[[GSL:http...
--文字描画に[[FTGL:http://homepages.paradise.net.nz/henry...
終了行:
*異方性カーネル [#n8bdf672]
パーティクルから陰関数を生成する場合,以下のような平滑化...
#ref(anisotropic_kernel.eq1.gif,nolink,70%)
ここで,&ref(anisotropic_kernel.eq2.gif,nolink,70%);はス...
&ref(anisotropic_kernel.eq4.gif,nolink,70%);は距離が遠く...
この定義はいわゆるメタボールと同じようなものであり,
生成された表面は凸凹になってしまう(下図左).このような表...
blobbyな表面を改善するために,Yuら
¬e{Yu2010:J. Yu and G. Turk, Reconstructing Surfaces o...
は従来の等方性のカーネルの代わりに異方性カーネル(anisotro...
つまり,&ref(anisotropic_kernel.eq5.gif,nolink,70%);の代...
#ref(anisotropic_kernel.eq7.gif,nolink,70%)
とすることで,ベクトル&ref(anisotropic_kernel.eq8.gif,nol...
法線方向に短軸がくるような楕円体を設定することで,滑らか...
また,表面付近でのパーティクルの不規則な分布を解消するた...
パーティクル位置に関しても平滑化を行い更新位置&ref(anisot...
全パーティクルに対して,&ref(anisotropic_kernel.eq10.gif,...
#ref(anisotropic_kernel.eq12.gif,nolink,70%)
|#ref(anisotropic_kernel.jpg,nolink,100%)|
|CENTER:左は等方性カーネル,右は異方性カーネルを使った表面|
以下で¬e{Yu2010};の&ref(anisotropic_kernel.eq10.gif,no...
**パーティクル位置更新 [#da028bd8]
不規則なパーティクル配置を修正するために,以下のLaplacian...
#ref(anisotropic_kernel.eq13.gif,nolink,70%)
&ref(anisotropic_kernel.eq14.gif,nolink,70%);は定数で,&n...
&ref(anisotropic_kernel.eq15.gif,nolink,70%);は重み関数で,
#ref(anisotropic_kernel.eq16.gif,nolink,70%)
とする.この重み関数は異方性を算出するための共分散行列の...
異方性をより正確に推定するためにはより多くのパーティクル...
有効半径&ref(anisotropic_kernel.eq5.gif,nolink,70%);はシ...
注意として,&ref(anisotropic_kernel.eq9.gif,nolink,70%);...
そのため,更新前の位置&ref(anisotropic_kernel.eq17.gif,no...
***共分散行列の計算 [#u6e862f8]
&ref(anisotropic_kernel.eq6.gif,nolink,70%);を計算するた...
主成分分析(PCA)は画像認識などでよく用いられるデータ解析手...
分散したデータの特徴をよくとらえた新しい軸(主軸)を設定す...
WPCAはPCAに重みをつけることで,外れ値(outlier)やノイズに...
WPCAではまず,データ点での重みを計算し,次に重みを考慮し...
最後に&ref(anisotropic_kernel.eq18.gif,nolink,70%);の固有...
ここでは,WPCAの結果から&ref(anisotropic_kernel.eq6.gif,n...
まず,重み付き平均位置&ref(anisotropic_kernel.eq19.gif,no...
#ref(anisotropic_kernel.eq20.gif,nolink,70%)
&ref(anisotropic_kernel.eq19.gif,nolink,70%);はパーティク...
重み&ref(anisotropic_kernel.eq15.gif,nolink,70%);を使うこ...
&ref(anisotropic_kernel.eq19.gif,nolink,70%);から各近傍パ...
#ref(anisotropic_kernel.eq24.gif,nolink,70%)
重み関数&ref(anisotropic_kernel.eq15.gif,nolink,70%);には...
***共分散行列の特異値分解 [#e0594448]
楕円の伸縮方向を得るために共分散行列&ref(anisotropic_kern...
#ref(anisotropic_kernel.eq25.gif,nolink,70%)
&ref(anisotropic_kernel.eq26.gif,nolink,70%);は固有ベクト...
大きな変形や近傍にパーティクルが少ない孤立したパーティク...
-固有値をチェックして大きな変形を防ぐ.
固有値は大きい順に並んでいるとして,&ref(anisotropic_kern...
-近傍パーティクル数をチェックして,孤立したパーティクルを...
もし近傍パーティクル数が&ref(anisotropic_kernel.eq32.gif,...
-近傍にパーティクルがフルにある場合の体積を一定にするため...
これらを適用して,修正した共分散行列&ref(anisotropic_kern...
#ref(anisotropic_kernel.eq39.gif,nolink,70%)
#ref(anisotropic_kernel.eq40.gif,nolink,70%)
ここで,&ref(anisotropic_kernel.eq41.gif,nolink,70%);であ...
¬e{Yu2010};は,&ref(anisotropic_kernel.eq42.gif,nolink...
***異方性カーネル用行列$G$の算出 [#md43c27c]
&ref(anisotropic_kernel.eq6.gif,nolink,70%);は&ref(anisot...
#ref(anisotropic_kernel.eq44.gif,nolink,70%)
*結果 [#ta3ab463]
[[SPH法の実装の結果:SPH法の実装(GPU実装含む)#k4a9f2ef]]で...
まず,共分散行列を球に適用することで,パーティクルを楕円...
|&ref(dam_break1_ap.jpg,nolink,100%);|&ref(dam_break1_np....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
メッシュを抽出して,GLSLで屈折表面として描画した結果を以...
|&ref(dam_break1_ar.jpg,nolink,100%);|&ref(dam_break1_nr....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
異方性カーネルで表面が滑らかになるとともに,両サイドの壁...
さらにシミュレーションを進めた時の結果を以下に示す.
|&ref(dam_break2_ap.jpg,nolink,100%);|&ref(dam_break2_np....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
拡大したものは以下
|&ref(dam_break3_ap.jpg,nolink,100%);|&ref(dam_break3_np....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
メッシュを抽出して,GLSLで屈折表面として描画した結果を以...
|&ref(dam_break2_ar.jpg,nolink,100%);|&ref(dam_break2_nr....
|>|CENTER:左は異方性カーネル,右は従来の等方性カーネルに...
計算時間はだいたい,SPH計算に5ms/frame,異方性カーネルのG...
パーティクルを直接描画する際に,等方性カーネルはポイント...
*サンプルコード(GPU実装) [#b03ec21e]
[[SPH法の実装(GPU実装含む)]]で示したSPH法のコードに上記の...
#ref(rx_anisotropic_v1.1.zip);
-ビルドするのに必要なライブラリ
FLTK, freeglut, GLEW, CUDA, boost, FTGL, freetype, GSL
各ライブラリについては[[ライブラリのインストール]]を参照.
さらに,[[3Dモデルファイルの入出力]]のrx_model.libも必要(...
-簡単な説明&注意事項
--Visual Studioから実行する場合は,作業ディレクトリを"../...
--binフォルダに"sph_scene_*.cfg"という名前のファイルがあ...
プログラム起動時にファイルを読み取り,Sceneメニューに列挙...
デフォルトでは6つのシーンを用意している(合計12まで追加可...
--rxSPH, rxSPH_GPUクラスのCalAnisotropicKernel関数が行列G...
--CalAnisotropicKernel関数のCPU版は特異値分解に[[GSL:http...
--文字描画に[[FTGL:http://homepages.paradise.net.nz/henry...
ページ名: