例 ボリュームデータのレイキャスティング

構造型ボリュームデータをインポートしてレイキャスティング法でレンダリングしてみましょう.

ここで用いる可視化パイプラインは

を用います.

データをそのまま使うため,FilterとMapperはここでは使用しません.

 

PipeLine_RayCastingRenderer

可視化パイプライン

 

1. 作業ディレクトリの作成

作業ディレクトリに「RayCasting」というディレクトリを作成して,移動して下さい.

$ mkdir  RayCasting

$ cd RayCasting

 

2. main.ccp の作成

「main.cpp」というファイルを作成して下さい.

プログラム実行の際にコマンドライン引数としてファイルを読み込むようにするため,引数のチェックをします.

int main( int argc, char** argv )
{
   if( !(argc == 2 ) ) {
     std::cerr << "USAGE (1): ./RayCasting volume_data" << std::endl;
      exit(1) ;
   }
   return ( 0 );
}

 

3. 構造型ボリュームデータのImport

コマンドライン引数として与えられたファイル名をインポート(kvs::StructuredVolumeImporter)して構造型ボリュームデータ(kvs::StructuredVolumeObject)へ変換します.

また,このとき正しくファイルが読み込めたのかチェックします.

kvs::StructuredVolumeObject* object
      = new kvs::StructuredVolumeImporter( std::string( argv[1] ) );
if ( !object ) {	// ファイルが正しく読み込めたのかチェック
   kvsMessageError( "Cannot create a structured volume object." );
   return( false );
}

4. Renderer の作成

Renderer を作成します.ここでは,Renderer にkvs::RayCastingRendererを選択しています.

また,正しくRendererが作成できたかをチェックします.

kvs::RayCastingRenderer* renderer = new kvs::RayCastingRenderer();
if ( !renderer ) {
   kvsMessageError( "Cannot create a ray casting renderer." );
   delete object;
   return( false );
}

5. 描画

可視化処理を行います.

kvs::Applicationkvs::Screenにより,ウィンドウの初期化や記イベントの登録を行います.

ここでは,Screenクラスのメソッド registerObjectへObjectだけではなく,Renderer も登録していることに注意して下さい.これにより,ユーザが作成・設定したRenderer を用いて描画処理を行うことが可能になります.

kvs::Application app( argc, argv );
kvs::Screen screen( &app );

// ScreenクラスにオブジェクトとRendererを登録
screen.registerObject( object, renderer );

screen.setGeometry( 0, 0, 512, 512 );
screen.setTitle( "RayCastingRenderer" );
screen.show();
 
return( app.run() );

6. ヘッダファイル

使用したKVSクラスをインクルードします.

ここでは,

を使いました.

#include <kvs/StructuredVolumeObject>
#include <kvs/StructuredVolumeImporter>
#include <kvs/RayCastingRenderer>
#include <kvs/Application>
#include <kvs/Screen>

7. まとめ

以上をまとめたプログラムはこちら: RayCasting.tgz

※ このフォルダ内にはテスト用ボリュームデータ

が入っています.

 

8. コンパイルと実行

作成したプログラムをコンパイル,実行してみましょう.

KVSプログラムをコンパイルするためにはkvsmakeコマンドを用いてMakefileを作成すると簡単にコンパイルを行うことができます.

$ kvsmake -G          <-- Makefile の作成

$ kvsmake            <-- コンパイル

エラーなくコンパイルできたら,実行してみましょう.

実行すると,以下のような結果が得られます.

$ ./RayCasting test.fld

$ ./RayCasting hydrogen.kvsml

 

test.fld   hydrogen.kvsml

test.fld                           hydrogen.kvsml

 

 

 

Modefied at June 16, 2013

at April 27, 2017

at May 28, 2021

 

TOP