DF3 Viewer Oosawa (ver.0.742)



■Oosawa(オオサワ)は、時系列ボリュームデータをPov-RayによってレイトレーシングするためのGUIフロントエンドツールです。等値面の閾値やスライス面などに対してタイムラインを用いた編集を行なえます。

現在開発はひと段落していますが、2013年4月以降に更新が行われる場合は個人の開発ページで公開されます。


■ Windows 版 必要環境

多分Windows2000以降。必要なDLLとかはまだちゃんと調べてないけど、
あまり特殊なのに依存していないつもり(だけどどうかな?)
一応自分のとこのVistaや7でも動作環境しています。

.NET Framework にある dll が必要なことが分かったので、再配布可能なものを突っ込んどいたんだけど、これで全部かな…? 動かないようだったら、.NET Framework を Windows Update で入れてみてください。それでも駄目なら教えてくださいな。

基本的に適当な場所において実行ファイルを実行するだけですが、実行ファイルがあるフォルダに設定ファイルを書き込むので、Vista以降は書き込み権限関係で c:\Program Files 以下に置くかどうかは考慮する必要があります。レジストリは弄らないので、アンインストールは単に削除すればO.K.です。

■ Linux 版 必要環境

GTK版のwxWidgetを利用しているので、wxWidget-gtkが動く環境が必要です。


■ PovRay 3.7 RC5

2012年3月になってPovRay 3.7 RC5 がリリースされました。
最新版の文法に従った箇所があるので、PovRay 3.7 でのレンダリングは RC5 またはそれ以降を使ってください。


■ ファイル

現時点でLinux版は日本語を含むパス名(デスクトップなど)のファイルは読み込めません。(Windows版も動かなくなる機能があります。極力日本語がらみは避けたほうが無難です)

プロジェクトを開く、プロジェクトの保存

レンダリングのパラメータやカメラパスなどはプロジェクトファイル(.osp)として保存できます。

データを開く、データを追加で開く

ボリュームデータを読み込みます。
PovRay用のボリュームデータ.DF3、または連番pngをボリュームデータとして読み込めます。
データスロットは現時点で4つ用意してあり、アクティブなスロットへの読み込みを行います。
詳細⇒

データを名前で開く、データを名前で追加

「名前で開く」は時間の連番をファイル名でなくてフォルダ名で管理するような場合などの為に、(命名ルールも含めて)読み込むファイルの設定をします。詳細⇒

インポート

プロジェクトファイルから表示に関する情報、カメラパスに関連する情報を別々に読み込む機能です。
(レンダリングパラメーターの違う2つの動画を作る時など用の機能です)


エクスポート

データ処理の適用済みの.DF3ファイルを作成する場合などに使います。
アクティブなデータスロットで、現在保持している処理済のデータを.DF3として出力します。

画像保存、連番画像保存

プレビューの画像を保存します。複数のパネルを使っている時は、左上のパネルの画像を保存します。詳細⇒

データスロットの変更

複数のデータを読み込んで表示することができます。
ボリュームデータは、アクティブなデータスロットに読み込まれ、スロットごとに表示の設定をすることが出来ます。
タブ選択によってアクティブなデータスロットを選びます。


■ 八分木ツリー構造、ネスティッドグリッドデータへの対応

現在、最も単純な八分木のツリー構造と、ネスティッドグリッドのデータに対応しています。

例えば全体が512x512x512のデータを一度にレンダリングするの大変なので、遠くから見るときにはもっと荒いデータを使って、カメラが近寄った時のみデータ全体を利用するようにします。

この場合は256x256x256のデータを2x2x2の8個に分割して用意しておき、その親データとして一段階荒い256x256x256のデータを用意しておきます。

こうすることにより、カメラの位置などに応じて(データ全体ではなく)必要なデータだけをレンダリング時に利用することができます。

ツリー構造詳細⇒

■ ツリー構造の表示

ツリー構造を有効にすると、右の図のようにカメラが近いところは子供のデータを使うようになります。
(Oosawaでの表示は変わりません。PovRayを使ってレンダリングするときに、子供のファイルを使うようにするだけです)

ツリー構造の表示詳細⇒


■ メインパネルとサイドパネル


■ 画面分割

パネル分割メニューから設定して、最大4つのビューが使えます。パネルの境界はマウスで移動することが出来ます。

■ ボタン

各ビューにある[I][W][B][G][D]のボタンは、それぞれ、
[アイテム各種][ワイヤーフレーム][ボックス][グリッド][データそのもの]
の表示非表示のボタンになっています。

■ サイドパネル

画面右側にあるパネルで基本的な設定を行ないます。
また、フィルタの設定もサイドパネルに追加されます。

サイドパネル詳細⇒

■ フィルタなどは、データスロットごとに適用されます。データスロットは4つまで用意されており、タブセレクタで選択します。

□データ処理用のフィルタは上から順に適応する仕組みになっています。
ボリューム表示や等値面といった表示用のフィルタの下にレベル補正やガウス暈しといったデータ処理のフィルタを配置しても、表示は変化しないので注意してください。
処理後のデータを受け取るには、表示用のフィルタを下に配置する必要があります。



■ アイテムのマウス操作

カメラパスや、光源などの編集をマウスで操作が出来るようになりました。(デフォルトではShift+マウス左ボタン)
キーフレームを選択している場合は、そのキーの位置を。そうでない場合にはキーフレームを自動的に配置して動かします。

操作するアイテムの選択は、Shift+右クリック(実装途中で光源やカメラ等のみ可能)か、タイムライン上から行うことになります。

■ 移動可能なアイテムを選択しているときには、矢印のガイドが表示されます。矢印をクリックすることで、X,Y,Z方向に限定して操作ができます。

切り取りフィルタの操作では、中心の移動の他に壁面の移動ができます。

■ ショートカットの[S]で、一部アイテムは拡大縮小モードになります。

■ ショートカットの[R]で、一部アイテムは回転モードになります。が、まだ視線との関係を見ていないので使い勝手は…



■ 画面右下にモード選択ボタンがつきました。


■ プレビュー描画設定

設定ダイヤログ(ダイヤログ->プレビューの設定)で、OpenGLによる画面表示の画質やパフォーマンスの設定をすることができます。

プレビューの設定詳細⇒

そのほかの設定詳細⇒


■ 時系列(タイムライン)




時間進化するパラメータ(変化するカメラ位置や、移動する光源の位置など)の編集ができます。

一番上は、時間に関してのズームを決めるスライダーになっています。
その下は、連番データのメモリへの読み込み状態の表示、その下に各種パラメーターに関するタイムラインが表示されています。


パラメータ編集詳細⇒

画面下のスライダーやボタンで表示する現在の連番データの番号を設定します。

また、再生ボタンによって、メモリに載っている範囲のデータの再生をすることができます。

再生機能詳細⇒


■ カメラパスと操作

■ 表示用の視点は、マウスでぐりぐり操作できます。

マウスボタンと同時押しのキーの割り当てを、カスタム設定できるようにしました。
デフォルトは以下のようになっています。

□ ズームイン、ズームアウト:Alt + 左ボタン 又は 中ボタン

□ 視点の中心を移動: Ctrl+Alt + 左ボタン。(見たい場所が原点じゃないときに)

□ アイテム選択: Shift + 右ボタン。(一部アイテムのみ実装)

□ 選択アイテムの移動 : Shift + 左ボタン


マウスボタンの割り当ては、設定ダイヤログから変更ができるます。

マウス設定詳細⇒

■ カメラワークの操作

カメラワークの設定は、キーフレームごとにカメラ自身の位置(POS)と、カメラの向く方向を決める「アンカー(ANC)」の位置を決めることで設定する仕組みです。

時間を合わせて、「キー配置[POS]」や「キー配置[ANC]」ボタンを押すと、表示している位置にキーが配置され、アニメーション出力の時に、キーを結ぶ曲線に沿ってカメラが移動するようになります。

ビューとカメラ⇒



■ カラーリング

密度に対する配色の設定は、予め用意されたデフォルト配色に加えてカスタム設定の配色を設定できます。

カスタムカラー詳細⇒



■ v.0.655から元のデータからは濃さだけを使い、別スロットのデータに応じて色を決めることができるようになりました。
ボリューム表示フィルタの設定で、「着色の方法」から設定ができます。
(色情報として使われた側のデータスロットではボリューム表示を切っておきます。
現状ではそうしないとPovRay用の設定ファイルで同じタグの設定を2度書きしてしまうのでおかしくなります。)




■ 現状では、特にカラフルな着色で物理量を見るときには、プレビューとレンダリングの見た目のすりあわせが少々厄介です。
プレビューでは色に関係なく背後の光を遮るので陰影が強くでますが、PovRayによるレンダリングでは、成分ごとに光を遮るので、明るめになる傾向があります。
吸収を強めに入れたほうがプレビューに近い見た目になるようです。


■ フィルタ

■ Pov-Rayでレンダリングするためのボリュームや等値面の設定、複製の配置、フォグといったような機能はフィルタとしてまとめています。

■ フィルタはメニューから任意の数追加できます。最低1つのボリュームか等値面が無いとデータが表示されません。

■ 複数のボリュームや等値面もPovRayでレンダリングできますが、(その分どんどん重くなるので)パラメータ調整などは大変になってゆきます。

フィルタ詳細⇒

■ ver0.660モルフォロジ的なフィルタの基本的なものが実装されました。

名前は物々しいですが、基本的には選択範囲の拡大と縮小を使って、ゴミ取りをしたり、線をつなげたりという、フォトショップ使いの日曜絵師にはおなじみの操作の3次元拡張版です。

モルフォロジフィルタ詳細⇒

■ ver0.690で、速度場関係の機能が導入され始めました。

速度場関係フィルタ詳細⇒



■ ステレオグラム


■ 立体映像用に、左右の目用のレンダリングをすることができます。

また、ライン・バイ・ライン方式の立体テレビに対応した出力が出来るようになりました。ハードウェアがあれば、立体で操作をすることが可能です。

ステレオグラム詳細⇒


■ Pov-Ray との連携

■ Oosawa上でセッティングした情報を Pov-Ray 用の出力ファイルとしてエクスポートして、レイトレーシングでレンダリングすることができます。

PovRay用の設定はメニューから「レンダリング設定」で呼び出せます。

レンダリング設定詳細⇒


■ 光源

光源あり(左)と無し(右)

■ PovRayでのレイトレース用に任意個の光源が置けます。
(プレビュー上では、最初の光源に対してのみエンボス的な擬似陰影を付けることができます。)

ボリュームデータは、Scatteringと光源を入れると、自分への影が計算されますが…
置いたとたんに劇遅!(笑)になるので、レンダリングパラメータとの兼ね合いが大変です。

等値面の表示などには光源の配置が必要です。(無いと陰影のない表示になります)

光源設定詳細⇒

■ 等値面

等値面の表示と、PovRayでレンダリングするための設定ファイルの出力できます。



等値面詳細⇒


■ テクスチャ設定

等値面やオブジェクトにはテクスチャを張って質感などを調整することができます。幾つかのパターンはプレビューでも反映しますが、多くの設定はPovRayによるレンダリングでのみ反映されます。

テクスチャ設定詳細⇒



■ 言語ファイル

locale/ja/Oosawa.po

にある言語ファイルを読んで日本語表示をするようにしました。
poedit等を使ってその他の言語ファイルを作って、jaだけではなくてfrとかなんとかフォルダを作って突っ込めば、多言語対応するはずです。


■ インクルードファイル

PovRayにはさまざまな人が作ったサードパーティのインクルードファイルがあります。
そのうちの幾つかに対応するようになりました。
PovRay用のインクルードパスの下、または作業ファイルの下に配置すると、レンダリング時に利用できます。
(PovRay3.7だと、Windows版はマイドキュメント/Pov-Ray/v3.7/include/ Linux版は /usr/local/share/povray-3.7/include がデフォルトです)。
ただし、本来は直下に置くのですが、整理のためにインクルードパス直下ではなくて、それぞれにフォルダを作りそこを読みに行くようにしてあります。

□ grasstex.inc
Rune Skovbo Johansen によって開発された、草のテクスチャを生成するインクルードファイルです。
http://runevision.com/3d/include/

YOUR_INCLUDE_PATH/grasstex/
以下に必要なファイルをコピーすることで利用できます。
基本的に地面に使うものなので、上(z方向)を向いた面にしか対応していません

□ glalaxy.inc
Chris Colefax によって開発された、宇宙用の背景を生成するインクルードファイルです
http://povrayinclude.wytraven.com/
YOUR_INCLUDE_PATH/galaxy/
以下に必要なファイルをコピーすることで利用できます。

□ TOMTREE.inc
Tom Aust によって開発された木を生成するためのインクルードファイルです。
http://www.aust-manufaktur.de/austtx.html

YOUR_INCLUDE_PATH/TomTree/
以下に必要なファイルをコピーすることで利用できます。

但し、フォルダを作ってコピーするため、TOMTREE.inc, TOMLEAF.inc 内から画像ファイルなどを呼び出す箇所を書き換えてファイル名にTomTree/を付け加える必要があります。(数箇所存在します)

少しでも速いレンダリングのために、オリジナルのサンプルファイルからややクオリティを落としたサンプルファイルを用意しました。使用するにはTomTreeと同じフォルダにコピーしてください。
LowQualityTemplateTree.zip


■ダウンロード

□Windows用再配布可能.dllファイル

!!注意!!
Windowsの環境で、msvcp100.dllがありません、といったようなエラーメッセージがでて実行できない場合には、これらの.dllファイルを実行ファイルと同一のフォルダに入れることで、実行できるようになります。(32bit用と64bit用と環境に合わせて選んでください。)

  RedistributableDLL.zip

□Windows用実行ファイル(32bit用と64bit用を2つパック)

  Oosawa7p40.zipVer0.740
  Oosawa7p42.zipVer0.742 最新

□LINUX用実行ファイル

  OosawaGTK2_7p40.tar.gz Ver0.740 GTK2版(tar.gz)
  OosawaGTK2_7p40.zip Ver0.740 GTK2版
  OosawaGTK2_7p42.tar.gz Ver0.742 GTK2版(tar.gz) 最新
  OosawaGTK2_7p42.zip Ver0.742 GTK2版 最新

  □ GUI部分に wxWidget の 2.8.12(GTK版)を使っているので、
  apt-get install libwxgtk2.8-0
  (もしくは相当する他の手法でのパッケージのインストール)が必要なようです。
  apt-get でインストールすると、もう一つ必要なlibwxbase2.8-0は自動で入ってきます。
  後は当然OpenGLを動かす環境(freeglut3などを入れておく)が必要です。

  □ Ubuntu12.04 (32bit) と Ubuntu12.04 (64bit) 上でコンパイルした実行ファイル2つが入っています。

□ソース

  DF3ViewerSRC7p15.zip Ver0.715 ソース
  DF3ViewerSRC7p30.zip Ver0.730 ソース

現在、環境に合わせてインクルードやリンクのパスを自動で判断することができないため、wxWidgets関係のインクルードやリンクのパスは自分の環境に合わせて変更しないといけません。

...