for Isosurface Generator v1.0, by Keichi Takahashi (keichi.t@me.com)
Isosurface Generatorは、GrADS用フォーマットで格納された3次元空間内の格子点のデータを入力として受け取り、 特定の値に対する等値曲面のメッシュデータ出力するプログラムです。
- Windows
- OS: Windows Vista/7/8
- メモリ: 1GB以上
- 依存ライブラリ・プログラム: .NET Framework 3.5以降
- Mac OSX
- OS: Mac OSX Lion/Mountain Lion
- メモリ: 4GB以上
- 依存ライブラリ・プログラム: Mono 2.10以降
(以下では動作環境がWindowsであるとしてご説明いたします。)
ディレクトリbin以下の、
- isurf.exe
- isurf.exe.config
上記2つのファイルを任意のディレクトリにコピーしてください。インストーラの実行などは必要ありません。
-
コマンドプロンプト(ターミナル)を開いてください。
-
isurf.exeが存在するディレクトリへ移動してください。
cd C:\Users\keichi\Documents\isurf
-
以下のコマンドを実行してください
isurf.exe 入力ファイル/ディレクトリ 出力ディレクトリ 値1 [値2] [値3] […]
ただし、各項目は以下の意味です:
- 入力ファイル/ディレクトリ
- 等値曲面を抽出したいCTLファイルのパス、あるいは複数のCTLファイルを含むディレクトリを 指定してください。ディレクトリ直下のファイルのみが処理されます。相対パスで指定した場合は、 isurf.exeからの相対パスとなります。
- 出力ディレクトリ
- 生成されたメッシュデータが保存されるディレクトリを指定してください。相対パスで指定した場合は、 isurf.exeからの相対パスとなります。
- 値1, 値2, ...
- 等値曲面を生成する値を1つ以上数値(半角)で指定してください。
例:
isurf.exe C:\Users\keichi\Documents\pawr3D_20120722 ouput 25.0 30.0 40.0
この例では、
C:\Users\keichi\Documents\pawr3D_20120722
に存在する全てのctl/datファイルについて、25.0
30.0
40.0
の等値曲面を生成し、isurf.exeが存在するディレクトリにoutputという ディレクトリを作成し、メッシュデータを出力します。 - 入力ファイル/ディレクトリ
-
isurf.exeの終了を待ってください。
例: 3. での例のコマンドを入力すると、コマンドプロンプトに以下のような出力が表示されます。
Isosurface Generator 1.0.4791.42791 Copyright (C) 2013 Keichi Takahashi. All Rights Reserved. ======================================== CTLファイル"C:\Users\keichi\Documents\pawr3D_20120722\pawr3D_20120722-184750.ctl "の処理を開始します。 GrADSファイルを読み込みました。 (598[ms]) 等値曲面生成エンジンを初期化しました。 (467[ms]) 値25について等値曲面を生成しました。 (216[ms]) 359470ポリゴンをファイルに出力した。 (1919[ms]) 値30について等値曲面を生成しました。 (202[ms]) 237772ポリゴンをファイルに出力した。 (1201[ms]) 値40について等値曲面を生成しました。 (164[ms]) 124930ポリゴンをファイルに出力した。 (619[ms]) メッシュデータを"ouput\pawr3D_20120722-184750.obj"に出力しました。 ======================================== . . .
現在実行中の処理ステージとともに、その処理ステージの所要時間がミリ秒単位で表示されています。 また、等値曲面をファイルに出力する際、ポリゴン数が表示されます。
- コマンドライン引数が足りません。
-
コマンドライン引数の指定の仕方が間違っている可能性があります。
isurf.exe 入力ファイル/ディレクトリ 出力ディレクトリ 値1 [値2] [値3] […]
と入力しているかご確認ください。
-
- 等値曲面を生成する値の指定が間違っています。
- 等値曲面の値が正しい形式で入力されていない可能性があります。半角数字のみにて入力されているか ご確認ください。
- ファイルXXXの処理中にエラーが発生しました。
- 表示されているファイルの処理中に何らかのエラーが発生しました。表示されているエラーをご連絡ください。
- 回復不能なエラーが発生しました。
- 処理を続行できないエラーが発生しました。表示されているエラーをご連絡ください。
入力データは、GrADS(Grid Analysis And Display System)にて読み込めるGrADS Grid Dataフォーマットを 想定しています。このフォーマットの詳細については、このページを参考にしてプログラムを作成しています。
生成されたメッシュデータは、Wavefront OBJフォーマットでファイルとして出力されます。各値の等値曲面のメッシュは、 個別のオブジェクトグループとして出力されます。それぞれのグループの名前は、等値曲面の値となっています。 当方の環境では、Blender 2.65aとMeshLab 1.3.2_64bitにて表示確認を行っています。
このプログラムは、Mac OSX 10.8.2上のMono 2.10とMono Develop 3.1を用いて開発しました。 Windowsでのビルド・テストの際は、Windows 7 64bit (JPN)上のVisual Studio 2012 Professional Edition、 および.NET Framework 3.5を用いました。開発言語はC#で、依存する外部のライブラリなどは.NET Framework ・Monoを除いてありません。C# 3.0の機能までを使用しているため、Visual Studio 2008以降でビルドが 可能です。
等値曲面を求めるアルゴリズムとしては、Lorensen ClineがSIGGRAPH '87で発表したMarching Cubes法を 用いています。
Copyright © 2013 Keichi Takahashi. All Rights Reserved.