OpenFOAMの結果からBlenderで動画作成

3次元CGソフトウェアBlenderを使用して、OpenFOAMの結果から写実的な動画を作成することができます。

動画を作成する手順は

  1. ParaViewで可視化
  2. ParaViewからx3dファイルを時系列分出力
  3. Blenderの各時間ステップ毎に画像を作成
  4. ImageMagicなどで画像から動画に変換

となります。

Blender® Cou­plingにあるスクリプト

  • blenderRender.py
  • paraview.py

を参考に作成します。

ここでは、OpenFOAMのinterPhaseChangeDyMFoamのチュートリアル

multiphase/interPhaseChangeDyMFoam/propeller

をデフォルト設定で計算した結果を使用します。

(一番下にx3dファイルからのサンプルがあります)

ParaViewで可視化とx3d出力

可視化ソフトウェアParaViewを使用して、OpenFOAMの結果を可視化し、動画にしたい形状をx3dファイルで出力します。

結果の読み込み

まず、OpenFOAMの結果を読み込みます。読み込み方が分からない場合は、 OpenFOAM結果の読み込みをご参照ください。

ここで、読み込む領域として

Mesh Regions: internalMesh

だけを選択し、変数は

Cell Arrays: alpha.water

のみを選択します。0ステップ目で、エラー(リーダーに未対応の境界条件があるため)が出ますが無視して構いません。

OpenFOAMReader Options

気体部分の抽出

Iso Volumeフィルターを使用して、alpha.water(水相率)の値から気体部分を取り出します。

まず

 Filters > alphabetical > Iso Volume

と進み、

  • Minimum: 0
  • Maximum: 0.99

とし、"Apply"します。

(ここで、0.5が水と気体の境界ですが、30ステップ当たりのバブルリングが上手く取れなかったのでこの値としました。。)

IsoVolume

プロペラ形状の抽出

次に、プロペラ形状を抽出するために、更に、OpenFOAMの結果を読み込みます。

File > Open..から、x.foamを選択し、

  • Mesh Regions: propellerTip, propellerStem1, propellerStem2, propellerStem3
  • Cell Arrays: 選択なし

で"Apply"します。

 propeller

x3dファイルの出力

ParaViewから、Pythonスクリプトparaview.pyを使用し、プロペラ形状と気体部分の形状を時系列分のx3dファイルで出力します。

ここでは、サンプルとして、23ステップ目から27ステップ目までの5ステップを使用します。

paraview.pyのうち

  • 時間ステップ数(for文のrange)
  • 出力するファイル名(name)

を変更します。

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
# # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Paraview python script for exporting x3d scenes
# Tobias Holzmann
# February 2016
# Tobias.Holzmann@Holzmann-cfd.de
# # # # # # # # # # # # # # # # # # # # # # # # # # # #
 
from paraview.simple import *
 
# Change 500 to the amount of timesteps
for num in range(0,5):
    print 'Export scene ' + str(num)
 
    renderView1 = GetActiveViewOrCreate('RenderView')
    renderView1.ViewSize = [1371, 775]
 
    # Build file name
    # Change to your folder
    name = 'G:/propeller/BlenderPropeller/x3d/blenderX3D_' + str(num) + '.x3d'
    print 'Save as ' + str(name) 
    ExportView(name, view=renderView1)
 
    animationScene1 = GetAnimationScene()
 
    animationScene1.GoToNext()

ファイル修正後、timeステップを23に指定し、メニューバーのTools > Python Shell から"Run Script"を開き、paraview.pyを実行しますと、23ステップから5ステップ分のx3dファイルが作成されます。

 exportx 3d

Blenderによる画像作成

blenderRender.pyを適宜修正します。

  • 9行目と292行目のファイルパスを変更

(Blenderの心得がある場合は、修正して、もっと綺麗な画像を作成できると思います)

コマンドプロンプトから

 blender -P blenderRender.py

を実行することで、各時刻の画像が保存されます。(水中に見えるように要改善)

 blender image

画像から動画に変換

最後に、ImageMagicなどを使用して、Blenderで作成した各時刻の画像から動画を作成します。

ダウンロード

BlenderPropeller.zip


添付ファイル: filebubble_ring.png 230件 [詳細] fileblended_06.png 405件 [詳細] fileexport_x3d.png 367件 [詳細] filepropeller.png 370件 [詳細] fileIsoVolume.png 385件 [詳細] fileOpenFOAMReaderOptions.png 378件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-07-13 (水) 18:08:12 (592d)