(57)【要約】【課題】  ポリゴン頂点の座標値計算とポリゴン頂点上の法線ベクトルの計算を高速化する。【解決手段】  等値面を構成するポリゴンについて、そのポリゴン番号とポリゴンローカル頂点番号から全体ポリゴン頂点番号の対応付けを示す配列を生成するポリゴン頂点番号テーブル処理部３と、ポリゴン頂点の座標値をベクトル計算するポリゴン頂点座標値処理部４と、ポリゴン頂点上の法線ベクトルを計算するポリゴン頂点上の法線ベクトル処理部５を有する。ポリゴン頂点番号テーブル処理部３にて生成する配列によって、ポリゴン頂点の座標値を全ポリゴン頂点数のループでベクトル計算し、さらにポリゴン頂点上の法線ベクトルをポリゴン数のループと全ポリゴン頂点数のループでベクトル計算し、ベクトル化によりスムーズシェーディング処理時間を短縮する。【選択図】      図１
2005025700.tif 000002
【特許請求の範囲】
【請求項１】
ボリュームデータを入力して等値面の可視化処理を行い生成した画像データを画像表示部に転送する計算サーバと、
前記計算サーバが転送した画像データから等値面を表示する画像表示部と、
を備えることを特徴とする等値面可視化システム。
【請求項２】
前記計算サーバは、
スムーズシェーディング処理に必要なポリゴン頂点上の法線ベクトル計算のループ処理の最適化手段を有する、
ことを特徴とする請求項１記載の等値面可視化システム。
【請求項３】
前記計算サーバは、
ポリゴン頂点の座標値計算のループ処理の最適化手段を有する、
ことを特徴とする請求項１または２記載の等値面可視化システム。
【請求項４】
計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化方法であって、
前記計算サーバは、
ボリュームデータを入力して等値面の可視化処理を行い、
生成した画像データを画像表示部に転送し、
前記画像表示部は、
前記計算サーバが転送した画像データから等値面を表示する、
ことを特徴とする等値面可視化方法。
【請求項５】
前記計算サーバは、
スムーズシェーディング処理に必要なポリゴン頂点上の法線ベクトル計算のループ処理を最適化する、
ことを特徴とする請求項４記載の等値面可視化方法。
【請求項６】
前記計算サーバは、
ポリゴン頂点の座標値計算のループ処理を最適化する、
ことを特徴とする請求項４または５記載の等値面可視化方法。
【請求項７】
計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化プログラムであって、
コンピュータに、
前記計算サーバが、
ボリュームデータを入力して等値面の可視化処理を行う機能、
生成した画像データを画像表示部に転送する機能、
前記画像表示部が、
前記計算サーバが転送した画像データから等値面を表示する機能、
を実現させるための等値面可視化プログラム。
【請求項８】
前記計算サーバが、
スムーズシェーディング処理に必要なポリゴン頂点上の法線ベクトル計算のループ処理を最適化する機能、
を実現させるための請求項７記載の等値面可視化プログラム。
【請求項９】
前記計算サーバが、
ポリゴン頂点の座標値計算のループ処理を最適化する機能、
を実現させるための請求項７または８記載の等値面可視化プログラム。
【請求項１０】
ボリュームデータ上の非構造格子を四面体格子に分割し前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する非構造格子分割処理部と、
前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する総ポリゴン数・ポリゴンタイプ処理部と、
前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶するポリゴン頂点番号テーブル処理部と、
前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶するポリゴン頂点座標値処理部と、
前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部から、ポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶するポリゴン頂点上の法線ベクトル処理部と、
ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成し生成した画像データを画像表示部に転送する等値面の色処理部と、を有する計算サーバと、
前記等値面の色処理部が転送する画像データから等値面を表示する画像表示部と、
を備えることを特徴とする等値面可視化システム。
【請求項１１】
前記ポリゴン頂点座標値処理部は、
前記全ポリゴン頂点の座標値を計算するループ処理をベクトル演算で行う手段を有する、
ことを特徴とする請求項１０記載の等値面可視化システム。
【請求項１２】
前記ポリゴン頂点上の法線ベクトル処理部は、
前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理をベクトル演算で行う手段を有する、
ことを特徴とする請求項１０または１１記載の等値面可視化システム。
【請求項１３】
計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化方法であって、
前記計算サーバの非構造格子分割処理部は、
ボリュームデータ上の非構造格子を四面体格子に分割し、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶し、
前記計算サーバの総ポリゴン数・ポリゴンタイプ処理部は、
前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶し、
前記計算サーバのポリゴン頂点番号テーブル処理部は、
前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶し、
前記計算サーバのポリゴン頂点座標値処理部は、
前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶し、
前記計算サーバのポリゴン頂点上の法線ベクトル処理部は、
前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶し、
前記計算サーバの等値面の色処理部は、
ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成し、生成した画像データを前記画像表示部に転送し、
前記画像表示部は、
前記計算サーバの等値面の色処理部から転送された画像デーから等値面を表示する、
ことを特徴とする等値面可視化方法。
【請求項１４】
ボリュームデータを入力して等値面の可視化処理を行う計算サーバにおける等値面可視化方法であって、
非構造格子分割処理部は、
前記ボリュームデータ上の非構造格子を四面体格子に分割し、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶し、
総ポリゴン数・ポリゴンタイプ処理部は、
前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶し、
ポリゴン頂点番号テーブル処理部は、
前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合はポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶し、
ポリゴン頂点座標値処理部は、
前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶し、
ポリゴン頂点上の法線ベクトル処理部は、
前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶し、
等値面の色処理部は、
ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する、
ことを特徴とする等値面可視化方法。
【請求項１５】
前記ポリゴン頂点座標値処理部は、
前記全ポリゴン頂点の座標値を計算するループ処理にベクトル演算を行う、
ことを特徴とする請求項１３または１４記載の等値面可視化方法。
【請求項１６】
前記ポリゴン頂点上の法線ベクトル処理部は、
前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理にベクトル演算を行う、
ことを特徴とする請求項１３，１４または１５記載の等値面可視化方法。
【請求項１７】
計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化プログラムであって、
コンピュータに、
前記計算サーバの非構造格子分割処理部が、
ボリュームデータ上の非構造格子を四面体格子に分割する機能、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶する機能、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する機能、
前記計算サーバの総ポリゴン数・ポリゴンタイプ処理部が、
前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求める機能、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶する機能、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する機能、
前記計算サーバのポリゴン頂点番号テーブル処理部が、
前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求める機能、前記四面体格子内のポリゴン数を計算する機能、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算する機能、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納する機能、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶する機能、
前記計算サーバのポリゴン頂点座標値処理部が、
前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の節点番号対と全体ポリゴン頂点番号を取り出す機能、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行う機能、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶する機能、
前記計算サーバのポリゴン頂点上の法線ベクトル処理部が、
前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出す機能、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算する機能、全ポリゴン頂点上の法線ベクトル配列に足しこむ機能、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行う機能、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶する機能、
前記計算サーバの等値面の色処理部が、
ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する機能、生成した画像データを前記画像表示部に転送する機能、
前記画像表示部が、
前記計算サーバの等値面の色処理部から転送された画像デーから等値面を表示する機能、
を実現させるための等値面可視化プログラム。
【請求項１８】
ボリュームデータを入力して等値面の可視化処理を行う計算サーバにおける等値面可視化プログラムであって、
コンピュータに、
非構造格子分割処理部が、
前記ボリュームデータ上の非構造格子を四面体格子に分割する機能、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶する機能、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する機能、
総ポリゴン数・ポリゴンタイプ処理部が、
前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求める機能、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶する機能、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する機能、
ポリゴン頂点番号テーブル処理部が、
前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算する機能、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算する機能、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納する機能、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶する機能、
ポリゴン頂点座標値処理部が、
前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号を取り出す機能、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行う機能、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶する機能、
ポリゴン頂点上の法線ベクトル処理部が、
前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出す機能、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算する機能、全ポリゴン頂点上の法線ベクトル配列に足しこむ機能、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行う機能、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶する機能、
等値面の色処理部が、
ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する機能、
を実現させるための等値面可視化プログラム。
【請求項１９】
前記ポリゴン頂点座標値処理部が、
前記全ポリゴン頂点の座標値を計算するループ処理にベクトル演算を行う機能、
を実現させるための請求項１７または１８記載の等値面可視化プログラム。
【請求項２０】
前記ポリゴン頂点上の法線ベクトル処理部が、
前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理にベクトル演算を行う機能、
を実現させるための請求項１７，１８または１９記載の等値面可視化プログラム。
【請求項２１】
ボリュームデータを入力して等値面の可視化処理を行う計算サーバであって、
前記ボリュームデータ上の非構造格子を四面体格子に分割し前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する非構造格子分割処理部と、
前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する総ポリゴン数・ポリゴンタイプ処理部と、
前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶するポリゴン頂点番号テーブル処理部と、
前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶するポリゴン頂点座標値処理部と、
前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部から、ポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶するポリゴン頂点上の法線ベクトル処理部と、
ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する等値面の色処理部と、
を備えることを特徴とする計算サーバ。
【請求項２２】
前記ポリゴン頂点座標値処理部は、
前記全ポリゴン頂点の座標値を計算するループ処理をベクトル演算で行う手段を有する、
ことを特徴とする請求項２１記載の計算サーバ。
【請求項２３】
前記ポリゴン頂点上の法線ベクトル処理部は、
前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理をベクトル演算で行う手段を有する、
ことを特徴とする請求項２１または２２記載の計算サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模計算結果の可視化画像を生成する等値面可視化システム，方法およびプログラムに関し、特に非構造格子の節点上の物理量（スカラ値）に対してスムーズシェーディング処理を高速に行う等値面可視化システム，方法およびプログラムに関する。
【背景技術】
【０００２】
従来の等値面可視化システムは、高速マッピング処理の開発に重点が置かれ、レンダリング処理部分には専用ハードウェアや汎用グラフィックスライブラリを用いることで、全体の描画時間を短縮している。
【０００３】
具体的には、マッピング処理の高速化は、等値面と交差する非構造格子を抽出する計算量を削減することで、実現されている。
【０００４】
だが、従来の等値面可視化処理の方式の一例として、特許文献１の図１にあるように、計算サーバから、可視化を行うサーバへの転送が計算結果やポリゴン、図形情報であると、格子数が数千万、数億規模以上の大規模な問題の計算結果の等値面を描画する場合、ネットワークの負荷の増大の問題が解決できず、従来の等値面可視化処理の方式は、最適な手法とは言えない。
【０００５】
大規模問題の効率的可視化に当たって、計算サーバ上でマッピング処理からレンダリング処理まで行い、生成した画像をネットワーク転送し、クライアント端末に表示する手法が、ネットワーク負荷一定の点で最適である。
【０００６】
そのためには、大規模数値結果の等値面描画には、計算サーバ上でマッピング処理とレンダリング処理を高速に行う必要がある。
【０００７】
マッピング処理は、等値面の場合、格子のループでベクトル処理されるため、高速化可能である。
【０００８】
一方、レンダリング処理の計算負荷は、等値面の平滑化処理を行わない場合では大きくないが、等値面の平滑化処理（この処理をスムーズシェーディング処理と呼ぶ）を行う場合、膨大になる。その結果、非構造格子の規模が数千万から数億以上になる場合、スムーズシェーディング処理をすると、等値面の描画時間が膨大になり、実用的でないという課題があった。原因として、スムーズシェーディング処理では、処理負荷が大きい、ポリゴン頂点の座標値計算とポリゴン頂点上の法線ベクトルの計算が要素単位の局所的な処理をされ、ベクトル化されていなかったためである。
【０００９】
【特許文献１】特開平７−２００８４３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述した従来の技術では、以下のような問題点がある。
【００１１】
第１の問題点は、格子数が数千万〜数億規模以上の大規模な問題の計算結果の等値面を描画する場合、ネットワークの負荷が増大することである。
【００１２】
その理由は、計算サーバからネットワークを介して可視化を行うサーバへ転送される情報が、計算結果やポリゴン情報や図形情報であるからである。
【００１３】
第２の問題点は、非構造格子上で大規模な計算結果の等値面を描画する場合、スムーズシェーディング処理に膨大な時間がかかるということである。
【００１４】
その理由は、スムーズシェーディング処理内で負荷が大きい、ポリゴン頂点の座標値計算とポリゴン頂点上の法線ベクトルの計算が格子単位の局所的な処理をされ、ベクトル化されないためである。
【００１５】
本発明の第１の目的は、上記の問題点を解決し、ネットワーク負荷を低減する等値面可視化システム，方法およびプログラムを提供することにある。
【００１６】
また、第２の目的は、上記の問題点を解決し、スムーズシェーディング処理を高速に行う等値面可視化システム，方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１７】
本願第１の発明の等値面可視化システムは、ボリュームデータを入力して等値面の可視化処理を行い生成した画像データを画像表示部に転送する計算サーバと、前記計算サーバが転送した画像データから等値面を表示する画像表示部と、を備える。
【００１８】
本願第２の発明の等値面可視化システムは、第１の発明において前記計算サーバは、スムーズシェーディング処理に必要なポリゴン頂点上の法線ベクトル計算のループ処理の最適化手段を有する。
【００１９】
本願第３の発明の等値面可視化システムは、第１または第２の発明において前記計算サーバは、ポリゴン頂点の座標値計算のループ処理の最適化手段を有する。
【００２０】
本願第４の発明の等値面可視化方法は、計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化方法であって、前記計算サーバは、ボリュームデータを入力して等値面の可視化処理を行い、生成した画像データを画像表示部に転送し、前記画像表示部は、前記計算サーバが転送した画像データから等値面を表示する、ことを特徴とする。
【００２１】
本願第５の発明の等値面可視化方法は、第４の発明において前記計算サーバは、スムーズシェーディング処理に必要なポリゴン頂点上の法線ベクトル計算のループ処理を最適化する、ことを特徴とする。
【００２２】
本願第６の発明の等値面可視化方法は、第４または第５の発明において前記計算サーバは、ポリゴン頂点の座標値計算のループ処理を最適化する、ことを特徴とする。
【００２３】
本願第７の発明の等値面可視化プログラムは、計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化プログラムであって、コンピュータに、前記計算サーバが、ボリュームデータを入力して等値面の可視化処理を行う機能、生成した画像データを画像表示部に転送する機能、前記画像表示部が、前記計算サーバが転送した画像データから等値面を表示する機能、を実現させる。
【００２４】
本願第８の発明の等値面可視化プログラムは、第７の発明において前記計算サーバが、スムーズシェーディング処理に必要なポリゴン頂点上の法線ベクトル計算のループ処理を最適化する機能、を実現させる。
【００２５】
本願第９の発明の等値面可視化プログラムは、第７または第８の発明において前記計算サーバが、ポリゴン頂点の座標値計算のループ処理を最適化する機能、を実現させる。
【００２６】
本願第１０の発明の等値面可視化システムは、ボリュームデータ上の非構造格子を四面体格子に分割し前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する非構造格子分割処理部と、前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する総ポリゴン数・ポリゴンタイプ処理部と、前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶するポリゴン頂点番号テーブル処理部と、前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶するポリゴン頂点座標値処理部と、前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部から、ポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶するポリゴン頂点上の法線ベクトル処理部と、ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成し生成した画像データを画像表示部に転送する等値面の色処理部と、を有する計算サーバと、前記等値面の色処理部が転送する画像データから等値面を表示する画像表示部と、を備える。
【００２７】
本願第１１の発明の等値面可視化システムは、第１０の発明において前記ポリゴン頂点座標値処理部は、前記全ポリゴン頂点の座標値を計算するループ処理をベクトル演算で行う手段を有する。
【００２８】
本願第１２の発明の等値面可視化システムは、第１０または第１１の発明において前記ポリゴン頂点上の法線ベクトル処理部は、前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理をベクトル演算で行う手段を有する。
【００２９】
本願第１３の発明の等値面可視化方法は、計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化方法であって、前記計算サーバの非構造格子分割処理部は、ボリュームデータ上の非構造格子を四面体格子に分割し、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶し、前記計算サーバの総ポリゴン数・ポリゴンタイプ処理部は、前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶し、前記計算サーバのポリゴン頂点番号テーブル処理部は、前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶し、前記計算サーバのポリゴン頂点座標値処理部は、前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶し、前記計算サーバのポリゴン頂点上の法線ベクトル処理部は、前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶し、前記計算サーバの等値面の色処理部は、ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成し、生成した画像データを前記画像表示部に転送し、前記画像表示部は、前記計算サーバの等値面の色処理部から転送された画像デーから等値面を表示する、ことを特徴とする。
【００３０】
本願第１４の発明の等値面可視化方法は、ボリュームデータを入力して等値面の可視化処理を行う計算サーバにおける等値面可視化方法であって、非構造格子分割処理部は、前記ボリュームデータ上の非構造格子を四面体格子に分割し、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶し、総ポリゴン数・ポリゴンタイプ処理部は、前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶し、ポリゴン頂点番号テーブル処理部は、前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合はポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶し、ポリゴン頂点座標値処理部は、前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶し、ポリゴン頂点上の法線ベクトル処理部は、前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶し、等値面の色処理部は、ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する、ことを特徴とする。
【００３１】
本願第１５の発明の等値面可視化方法は、第１３または第１４の発明において前記ポリゴン頂点座標値処理部は、前記全ポリゴン頂点の座標値を計算するループ処理にベクトル演算を行う、ことを特徴とする。
【００３２】
本願第１６の発明の等値面可視化方法は、第１３，第１４または第１５の発明において前記ポリゴン頂点上の法線ベクトル処理部は、前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理にベクトル演算を行う、ことを特徴とする。
【００３３】
本願第１７の発明の等値面可視化プログラムは、計算サーバと画像表示部を含む等値面可視化システムにおける等値面可視化プログラムであって、コンピュータに、前記計算サーバの非構造格子分割処理部が、ボリュームデータ上の非構造格子を四面体格子に分割する機能、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶する機能、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する機能、前記計算サーバの総ポリゴン数・ポリゴンタイプ処理部が、前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求める機能、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶する機能、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する機能、前記計算サーバのポリゴン頂点番号テーブル処理部が、前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求める機能、前記四面体格子内のポリゴン数を計算する機能、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算する機能、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納する機能、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶する機能、前記計算サーバのポリゴン頂点座標値処理部が、前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の節点番号対と全体ポリゴン頂点番号を取り出す機能、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行う機能、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶する機能、前記計算サーバのポリゴン頂点上の法線ベクトル処理部が、前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出す機能、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算する機能、全ポリゴン頂点上の法線ベクトル配列に足しこむ機能、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行う機能、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶する機能、前記計算サーバの等値面の色処理部が、ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する機能、生成した画像データを前記画像表示部に転送する機能、前記画像表示部が、前記計算サーバの等値面の色処理部から転送された画像デーから等値面を表示する機能、を実現させる。
【００３４】
本願第１８の発明の等値面可視化プログラムは、ボリュームデータを入力して等値面の可視化処理を行う計算サーバにおける等値面可視化プログラムであって、コンピュータに、非構造格子分割処理部が、前記ボリュームデータ上の非構造格子を四面体格子に分割する機能、前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶する機能、前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する機能、総ポリゴン数・ポリゴンタイプ処理部が、前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求める機能、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶する機能、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する機能、ポリゴン頂点番号テーブル処理部が、前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算する機能、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算する機能、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納する機能、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶する機能、ポリゴン頂点座標値処理部が、前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号を取り出す機能、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行う機能、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶する機能、ポリゴン頂点上の法線ベクトル処理部が、前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出す機能、前記全体ポリゴン頂点番号の座標値記憶部からポリゴンの頂点上の法線ベクトルを計算する機能、全ポリゴン頂点上の法線ベクトル配列に足しこむ機能、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行う機能、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶する機能、等値面の色処理部が、ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する機能、を実現させる。
【００３５】
本願第１９の発明の等値面可視化プログラムは、第１７または第１８の発明において前記ポリゴン頂点座標値処理部が、前記全ポリゴン頂点の座標値を計算するループ処理にベクトル演算を行う機能、を実現させる。
【００３６】
本願第２０の発明の等値面可視化プログラムは、第１７，第１８または第１９の発明において前記ポリゴン頂点上の法線ベクトル処理部が、前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理にベクトル演算を行う機能、を実現させる。
【００３７】
本願第２１の発明の計算サーバは、ボリュームデータを入力して等値面の可視化処理を行う計算サーバであって、前記ボリュームデータ上の非構造格子を四面体格子に分割し前記四面体格子の位置データを格子構成節点番号配列記憶部に記憶し前記四面体格子の節点上のスカラ値を節点上のスカラ値記憶部に記憶する非構造格子分割処理部と、前記四面体格子について節点上のスカラ値記憶部の節点上のスカラ値を前記等値面のスカラ値と比較して前記四面体格子内のポリゴン数と節点上のスカラ値と等値面のスカラ値の大小関係を表すｉｄ番号を求め、等値面を構成する総ポリゴン数を計算して総ポリゴン数記憶部に記憶し、節点スカラ値大小関係を表すｉｄ番号を格子内ポリゴンタイプ記憶部に記憶する総ポリゴン数・ポリゴンタイプ処理部と、前記四面体格子について前記格子内ポリゴンタイプ記憶部からｉｄ番号を求め、前記四面体格子内のポリゴン数を計算し、ポリゴン数が１以上の場合に、ポリゴン頂点が乗る辺の両端の全体節点番号対を計算し、前記全体節点番号対を節点番号対・ポリゴン頂点番号記憶部に格納すると共に前記節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号を計算して前記節点番号対・ポリゴン頂点番号記憶部に格納し、前記全体ポリゴン頂点番号をポリゴン頂点番号テーブル記憶部に記憶するポリゴン頂点番号テーブル処理部と、前記節点番号対・ポリゴン頂点番号記憶部に格納されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号を取り出し、前記節点上のスカラ値記憶部から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と前記等値面スカラ値記憶部から取り出した等値面のスカラ値との大小関係から補間計算を行い、全体ポリゴン頂点番号で示されるポリゴン頂点の座標値を計算して全体ポリゴン頂点番号の座標値記憶部に記憶するポリゴン頂点座標値処理部と、前記節点番号対・ポリゴン頂点番号記憶部から全体ポリゴン頂点番号を取り出し、前記全体ポリゴン頂点番号の座標値記憶部から、ポリゴンの頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列に足しこみ、配列に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行い、規格化されたポリゴン頂点上の法線ベクトルの配列をポリゴン頂点上の法線ベクトル記憶部に記憶するポリゴン頂点上の法線ベクトル処理部と、ポリゴン頂点上の輝度とポリゴンの色を計算して等値面の画像データを生成する等値面の色処理部と、を備える。
【００３８】
本願第２２の発明の計算サーバは、第２１の発明において前記ポリゴン頂点座標値処理部は、前記全ポリゴン頂点の座標値を計算するループ処理をベクトル演算で行う手段を有する。
【００３９】
本願第２３の発明の計算サーバは、第２１または第２２の発明において前記ポリゴン頂点上の法線ベクトル処理部は、前記全ポリゴン頂点上の法線ベクトルを計算するループ処理および全ポリゴン頂点上の法線ベクトルの規格化処理を行うループ処理をベクトル演算で行う手段を有する。
【発明の効果】
【００４０】
第１の効果は、数億以上の規模の格子のシミュレーションでも高速に可視化できることである。
【００４１】
その理由は、計算サーバから画像表示部への転送データが画像データであり、格子規模に依存せずネットワーク負荷が一定であり、ネットワーク負荷を低減するからである。
【００４２】
第２の効果は、計算サーバ上での等値面の可視化処理特にレンダリング処理においてスムーズシェーディングを行う場合でも高速にされることである。
【００４３】
その理由は、計算サーバ上での等値面の可視化処理でスムーズシェーディングを行う場合、負荷の大きい等値面を構成するポリゴン頂点の法線ベクトルの計算をベクトル処理できるためである。
【発明を実施するための最良の形態】
【００４４】
本発明の等値面可視化システムは、大規模問題の効率的可視化のため、計算サーバ上でマッピングおよびレンダリング処理を行うことを特徴とする。更に、計算サーバ上で等値面を平滑化する場合、可視化処理が膨大となるレンダリング部分において、等値面を構成するポリゴン頂点の法線ベクトルの計算をループ処理で最適化（高速化）できるようにポリゴン頂点番号テーブルを作成し、その結果ポリゴン頂点の法線ベクトルの計算を高速化し、計算サーバ上での等値面を高速に可視化処理できるようにしたことを特徴とする。
【００４５】
より詳細には、本発明の等値面可視化システムは、等値面を構成するポリゴンについて、そのポリゴン番号とポリゴン内のローカルな頂点番号からグローバルな全体頂点番号の対応付けを示す配列を生成するポリゴン頂点番号テーブル処理部と、ポリゴン頂点の座標値を計算するポリゴン頂点座標値処理部と、ポリゴン頂点上の法線ベクトルを計算するポリゴン頂点上の法線ベクトル処理部を有する。本発明においては、ポリゴン頂点番号テーブル処理部にて生成する配列によって、ポリゴン頂点の座標値を全ポリゴン頂点数のループで最適化（高速化）処理し、更にポリゴン頂点上の法線ベクトルをポリゴン数のループと全ポリゴン頂点数のループで最適化（高速化）処理するため、最適化処理によりスムーズシェーディング処理時間の短縮を実現することができる。
【００４６】
次に、本発明の実施の形態の構成について、図面を参照して詳細に説明する。
図１は、本発明の等値面可視化システムの構成を示す図である。
図２は、ボリュームデータの構成を示す図である。
図３は、総ポリゴン数・ポリゴンタイプ処理部２を説明する図である。
図４は、節点／辺番号対応付け記憶部１４を説明する図である。
図５は、格子／ポリゴン対応付け記憶部１５を説明する図である。
図６は、総ポリゴン数・ポリゴンタイプ処理部の動作の流れを示す図である。
図７は、ポリゴン頂点番号テーブル処理部を説明する図である。
図８は、節点番号対・ポリゴン頂点番号記憶部３２を説明する図である。
図９は、ポリゴン頂点番号テーブル処理部の動作の流れを示す図である。
図１０は、ポリゴン頂点番号テーブル記憶部を説明する図である。
図１１は、ポリゴン頂点座標値処理部４を説明する図である。
図１２は、全体ポリゴン頂点番号の座標値記憶部を説明する図である。
図１３は、ポリゴン頂点上の法線ベクトル処理部を説明する図である。
図１４は、ポリゴン頂点上の法線ベクトル処理部の動作の流れを示す図である。
図１５は、等値面の色処理部６を説明する図である。
図１６は、等値面と等値面を構成するポリゴンの関係を説明する図である。
図１７は、非構造格子の四面体格子への分割処理部を説明する図である。
【００４７】
図１を参照すると、本発明の実施の形態の等値面可視化システムは、ボリュームデータ１と、計算サーバ４１と、画像表示部７と、を備えている。
【００４８】
計算サーバ４１は、プログラム制御で動作するサーバ等の情報処理装置であり、非構造格子の四面体格子への分割処理部１Ａと、総ポリゴン数・ポリゴンタイプ処理部２と、ポリゴン頂点番号テーブル処理部３と、ポリゴン頂点座標値処理部４と、ポリゴン頂点上の法線ベクトル処理部５と、等値面の色処理部６と、を備えている。また、計算サーバ４１は、ループ処理を高速に実行するループ処理最適化手段、例えばベクトル演算を行うベクトル演算手段、を備えるようにしてもよい。
【００４９】
図１６に示すように、等値面（図１６（ａ））は三角形ポリゴンから構成される（図１６（ｂ））。
【００５０】
先ず、ボリュームデータ１について説明する。
【００５１】
図２を参照すると、ボリュームデータ１は、非構造格子による構造・流体解析等の結果である非構造六面体格子、五面体格子等のデータであり、非構造格子の位置データ８と、格子点上のスカラ値９と、等値面のスカラ値１０と、を有する。
【００５２】
非構造格子の位置データ８は、非構造格子の節点番号順に節点が対応する座標がＸ軸、Ｙ軸、Ｚ軸の順に記憶され、同時に非構造格子の番号順に格子を構成する節点番号が記憶される。
【００５３】
格子点上のスカラ値９は、非構造格子の節点番号順に節点上のスカラ値が記憶されている。
【００５４】
等値面のスカラ値１０は、表示すべき等値面のスカラ値が記憶されている。
【００５５】
次に、図１７を参照して、非構造格子の四面体格子への分割処理部１Ａについて説明する。
【００５６】
非構造格子の四面体格子への分割処理部１Ａは、ボリュームデータ１を入力し、ボリュームデータ１上の全ての非構造格子を非構造四面体格子（以降、単に四面体格子あるいは格子と称することもある）に分割する。非構造四面体格子に分割する方法については公知であるので、ここでの説明は省略する。分割した結果は、節点上のスカラ値記憶部１１と、格子構成節点番号配列記憶部１２と、に記憶される。なお、各節点には全節点を通した全体節点番号が割り振られ、四面体格子には全四面体格子を通した四面体格子番号が割り振られている。
【００５７】
節点上のスカラ値記憶部１１は、ボリュームデータ１の格子点上のスカラ値９と同様の構成を成し、全体節点番号順に節点上のスカラ値を記憶する。
【００５８】
格子構成節点番号配列記憶部１２は、非構造格子の位置データ８と同様の構成を成し、全体節点番号順に節点の座標をＸ軸、Ｙ軸、Ｚ軸の順に記憶し、また、四面体格子番号順に四面体格子を構成する節点の全体節点番号ならびに節点の全体節点番号とローカル節点番号との対応付けを記憶する。ローカル節点番号については、図４で説明する。
【００５９】
等値面スカラ値記憶部１３には、等値面のスカラ値１０の値を格納する。
【００６０】
分割した四面体格子に対して、総ポリゴン数・ポリゴンタイプ処理部２以降の処理を行う。
【００６１】
次に、図３〜図６を参照して、総ポリゴン数・ポリゴンタイプ処理部２について説明する。
【００６２】
節点／辺番号対応付け記憶部１４は、図４（ｂ）に示すように、四面体格子のローカルな辺番号とその辺のローカルな節点番号対との対応を記憶している。四面体格子のローカルな辺番号とローカルな頂点番号（節点番号）を図４（ａ）に示す。１，２，３，４はローカルな頂点番号（節点番号）を、（１），（２），（３），（４），（５），（６）はローカルな辺番号を、示している。例えば、ローカルな辺番号（２）の辺のローカルな節点番号は２と３である。
【００６３】
格子／ポリゴン対応付け記憶部１５は、図５（ａ）に示すように、等値面のスカラ値と四面体格子内の４つの節点上のスカラ値の大小関係を２進数値と解釈し、それを１０進数に変換した値であるｉｄ番号と、四面体格子内のポリゴン数と、ポリゴン頂点が乗る辺番号と、を表すテーブルを含む。図５（ａ）に示すテーブルの節点値大小欄は以下のような意味を持つ。４ビット”ｘｘｘｘ”の各ビットは図４（ａ）に示す各節点（頂点）に対応し（例えば左から節点１、節点２、節点３、節点４に対応）、各ビットは”０”（例えばその節点のスカラ値＜等値面のスカラ値）か”１”（例えばその節点のスカラ値≧等値面のスカラ値）の値を持つ。例えば、ｉｄ番号＝１の場合、等値面のスカラ値は節点１と節点２と節点３のスカラ値より大きく節点４のスカラ値より小さいので、図５（ｂ）に示すように、ポリゴン数は１となり、ポリゴン頂点（ｌ，ｍ，ｎ）が乗る辺番号は（４）、（５）、（６）となる。
【００６４】
総ポリゴン数・ポリゴンタイプ処理部２は、格子番号ＩＥの四面体格子（以降、格子ＩＥと記す）について、格子構成節点番号配列記憶部１２から格子ＩＥの節点の全体節点番号ならびに節点の全体節点番号とローカル節点番号との対応付けを取得し、節点上のスカラ値記憶部１１から全体節点番号の節点上のスカラ値を取得し、等値面スカラ値記憶部１３から等値面のスカラ値を取得する。
【００６５】
等値面のスカラ値と格子ＩＥの節点上のスカラ値を比較し、節点／辺番号対応付け記憶部１４と格子／ポリゴン対応付け記憶部１５から、節点値大小関係を表すｉｄ番号と格子ＩＥ内のポリゴン数を計算する。格子ＩＥ内のポリゴン数を総ポリゴン数（初期値は０）に加算し、格子番号ＩＥと節点値大小関係を表すｉｄ番号とを対応付けて格子内ポリゴンタイプ記憶部１９に記憶する。
【００６６】
上記の処理を全四面体格子について行った後、総ポリゴン数を総ポリゴン数記憶部１８に記憶する。ここで、総ポリゴン数記憶部１８には等値面を構成する総ポリゴン数が記憶されたことになる。なお、節点値大小関係を表すｉｄ番号として、等値面のスカラ値と格子ＩＥの節点上のスカラ値を比較し、図５（ａ）で示す節点値大小と一致したものに対応するｉｄ番号が選択される。
【００６７】
次に、図７〜図１０を参照して、ポリゴン頂点番号テーブル処理部３について説明する。
【００６８】
節点番号対・ポリゴン頂点番号記憶部３２は、図８に示すように、１〜ＨＳＩＺＥ（整数）の値のリストを有し、全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を入力値とする２変数ハッシュ関数の値と上記リストの値を比べて、該当するリストの値のところに全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を登録するようになっている。２変数ハッシュ関数の値が同じ場合には、同じハッシュ値を持つ全体節点番号対が連結リストの形でリンクされている。
【００６９】
ポリゴン頂点番号テーブル処理部３は、格子ＩＥについて、格子内ポリゴンタイプ記憶部１９から格子ＩＥのｉｄ番号を求め、格子／ポリゴン対応付け記憶部１５から格子ＩＥ内のポリゴン数とポリゴン頂点が乗る辺番号（３つの辺）を求める。
【００７０】
ポリゴン番号とポリゴンローカル頂点番号＃１〜＃３とを対応付けて図１０に示すようにポリゴン頂点番号テーブル記憶部２３に格納する。１番目の辺に乗るポリゴン頂点をポリゴンローカル頂点番号＃１と称す。
【００７１】
ポリゴン数が１以上の場合は、先ず、ポリゴンローカル頂点番号＃１について以下の処理を行う。
【００７２】
格子構成節点番号配列記憶部１２から格子ＩＥの節点の全体節点番号とローカル節点番号との対応付けを取得し、節点／辺番号対応付け記憶部１４から上記求めたポリゴン頂点が乗る辺番号（１番目の辺）に対応するローカル節点番号対を求め、このローカル節点番号対ならびに全体節点番号とローカル節点番号との対応付けからポリゴン頂点が乗る辺（１番目の辺）の両端の全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を計算する。
【００７３】
全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を、図８に示す節点番号対・ポリゴン頂点番号記憶部３２に登録する動作を行う。
【００７４】
すなわち、節点番号対・ポリゴン頂点番号記憶部３２をスキャンして全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）が既に登録されていれば、何もしない。もし、全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）が登録されていないならば、未登録と判断し、連結リストの末尾に全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を追加登録する。
【００７５】
全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を節点番号対・ポリゴン頂点番号記憶部３２に登録していく過程で、同時に、この全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号も計算し、連結リストとして、全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）と同じ位置に格納していく。
【００７６】
全体ポリゴン頂点番号は次のようにして求める。すなわち、ポリゴン頂点番号テーブル記憶部２３に登録されている最後の全体ポリゴン頂点番号の次の番号を全体ポリゴン頂点番号とする。
【００７７】
また、この全体ポリゴン頂点番号をポリゴンローカル頂点番号＃１と対応づけてポリゴン頂点番号テーブル記憶部２３に記憶する。
【００７８】
上記の処理を、ポリゴンローカル頂点番号＃２とポリゴンローカル頂点番号＃３について行う。
【００７９】
ポリゴン数が２の場合には、２番目のポリゴンについて同様の処理を行う。
【００８０】
格子番号ＩＥをインクリメントし、上記の処理をＩＥが総格子数になるまで行う。
【００８１】
図１０に、ポリゴン頂点番号テーブル記憶部２３に記憶されるポリゴン頂点番号テーブルの構造を示す。図１０を参照すると、ポリゴン番号とポリゴンローカル頂点番号から全体ポリゴン頂点番号への対応づけが示されている。
【００８２】
次に、図１１〜図１２を参照して、ポリゴン頂点座標値処理部４について説明する。
【００８３】
ポリゴン頂点座標値処理部４は、図８に示す節点番号対・ポリゴン頂点番号記憶部３２に登録されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号とを取り出す。
【００８４】
節点上のスカラ値記憶部１１から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と等値面スカラ値記憶部１３から取り出した等値面のスカラ値との大小関係から補間計算を行う。
【００８５】
格子構成節点番号配列記憶部１２から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対の座標値（ｘ，ｙ，ｚ）と補間計算の結果から全体ポリゴン頂点番号の座標値（ｘ，ｙ，ｚ）を計算する。
【００８６】
全体ポリゴン頂点番号と全体ポリゴン頂点番号の座標値（ｘ，ｙ，ｚ）とを対応づけて全体ポリゴン頂点番号の座標値記憶部２５に記憶する。
【００８７】
上記の処理を、節点番号対・ポリゴン頂点番号記憶部３２に登録されている全ての全体ポリゴン頂点番号について行う（節点番号対・ポリゴン頂点番号記憶部３２に登録されている最初の全体ポリゴン頂点番号から最後の全体ポリゴン頂点番号まで繰り返すループ処理）。
【００８８】
図１２（ａ）に、全体ポリゴン頂点番号の座標値記憶部２５の例を示す。図１２（ｂ）には、全体ポリゴン頂点番号を介して、ポリゴンとポリゴンローカル頂点番号と全体ポリゴン頂点番号の座標値が対応付けられていることを示している。
【００８９】
なお、上記の全ポリゴン頂点数でのループによるポリゴン頂点の座標値の計算を、ベクトル演算機能で処理するようにしてもよい。
【００９０】
次に、図１３〜図１４を参照して、ポリゴン頂点上の法線ベクトル処理部５について説明する。
【００９１】
なお、本説明では、全ポリゴン頂点上の法線ベクトルの配列をｖｎｏｒｍａｌ（３，ｎｖｅｒｔｅｘ）とする。ｎｖｅｒｔｅｘは全ポリゴン頂点数である。配列ｖｎｏｒｍａｌのための格納領域については図示せず。
【００９２】
ポリゴン頂点上の法線ベクトル処理部５は、先ず、ポリゴン番号ＩＰを初期設定し、総ポリゴン数記憶部１８から総ポリゴン数ＮＰＯＬＹＧＯＮを取得する。
【００９３】
ポリゴン番号ＩＰが総ポリゴン数ＮＰＯＬＹＧＯＮ以下ならば、ポリゴン頂点番号テーブル記憶部２３からポリゴンＩＰ（ポリゴン番号がＩＰであるポリゴンを示す）のポリゴンローカル頂点番号＃１、＃２、＃３の全体ポリゴン頂点番号を取り出す。
【００９４】
全体ポリゴン頂点番号の座標値記憶部２５から、取り出した全体ポリゴン頂点番号に対応する全体ポリゴン頂点番号の座標値（ｘ，ｙ，ｚ）を取得し、ポリゴンＩＰのポリゴン頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列ｖｎｏｒｍａｌ（３，ｉ（ｉ＝１，…，ｎｖｅｒｔｅｘ））に足しこむ。
【００９５】
ポリゴンＩＰについて、この足しこみ処理が終了したら、ＩＰを１だけインクリメントし、ＩＰがＮＰＯＬＹＧＯＮより大きくなるまで上記の足しこみ処理を続ける（ポリゴン番号が１から総ポリゴン数まで繰り返すループ処理）。
【００９６】
ＩＰがＮＰＯＬＹＧＯＮより大きくなったら、配列ｖｎｏｒｍａｌ（３，ｉ（ｉ＝１，…，ｎｖｅｒｔｅｘ））に入っている全ポリゴン頂点上の法線ベクトルの規格化（正規化）処理を行う。
【００９７】
最初に、全体ポリゴン頂点番号ＩＶを初期設定し、全体ポリゴン頂点番号がＩＶの法線ベクトル（ｖｎｏｒｍａｌ（１，ＩＶ），ｖｎｏｒｍａｌ（２，ＩＶ），ｖｎｏｒｍａｌ（３，ＩＶ））を規格化し、ＩＶを１だけインクリメントし、ＩＶがｎｖｅｒｔｅｘ（全ポリゴン頂点数）になるまで、この規格化処理を行う（全体ポリゴン頂点番号が１から全ポリゴン頂点数まで繰り返すループ処理）。
【００９８】
ＩＶが全ポリゴン頂点数ＮＶＥＲＴＥＸより大きくなったら、この規格化処理は終了し、規格化されたポリゴン頂点上の法線ベクトルの配列ｖｎｏｒｍａｌ（３，ｉ（ｉ＝１，…，ｎｖｅｒｔｅｘ））をポリゴン頂点上の法線ベクトル記憶部２８に記憶する。
【００９９】
なお、上記の総ポリゴン数でのループと全ポリゴン頂点数でのループによるポリゴン頂点上の法線ベクトルの計算を、ベクトル演算機能で処理するようにしてもよい。
【０１００】
次に、図１５を参照して、等値面の色処理部６について説明する。
【０１０１】
等値面の色処理部６は、各ポリゴンについて、ポリゴン頂点上の法線ベクトル記憶部２８に記憶されたポリゴン頂点上の法線ベクトル値を基に、ポリゴン頂点上の輝度を計算し、その輝度値を元に各ポリゴン内部の輝度値を計算し、最後に等値面が半透明、不透明によってポリゴンを重ね合わせ、ポリゴンの色を計算する。
【０１０２】
計算したポリゴンの色ならびに全体ポリゴン頂点番号の座標値記憶部２５に記憶されているポリゴン頂点の座標値から等値面の画像データを生成して等値面の画像データ記憶部３３に記憶する。
【０１０３】
生成した画像データを画像表示部７に転送する。
【０１０４】
最後に、画像表示部７について説明する。
【０１０５】
画像表示部７は、プログラム制御で動作する情報処理装置であり、計算サーバ４１からネットワークを介して転送された画像データを基に等値面を表示する。
【０１０６】
次に、本発明の実施の形態の動作について、図１〜図１７を参照して詳細に説明する。
【０１０７】
先ず、非構造格子の四面体格子への分割処理部１Ａは、ボリュームデータ１上の全ての非構造格子を非構造四面体格子に分割する。分割した結果は、節点上のスカラ値記憶部１１と、格子構成節点番号配列記憶部１２と、に記憶する。
【０１０８】
続いて、総ポリゴン数・ポリゴンタイプ処理部２は、格子番号ＩＥの四面体格子（以降、格子ＩＥと記す）について、格子構成節点番号配列記憶部１２から格子ＩＥの節点の全体節点番号ならびに節点の全体節点番号とローカル節点番号との対応付けを取得し、節点上のスカラ値記憶部１１から全体節点番号の節点上のスカラ値を取得し、等値面スカラ値記憶部１３から等値面のスカラ値を取得する。等値面のスカラ値と格子ＩＥの節点上のスカラ値を比較し、節点／辺番号対応付け記憶部１４と格子／ポリゴン対応付け記憶部１５から、節点値大小関係を表すｉｄ番号と格子ＩＥ内のポリゴン数を計算する。格子ＩＥ内のポリゴン数を総ポリゴン数に加算し、格子番号ＩＥと節点値大小関係を表すｉｄ番号とを対応付けて格子内ポリゴンタイプ記憶部１９に記憶する。上記の処理を全四面体格子について行った後、総ポリゴン数を総ポリゴン数記憶部１８に記憶する。
【０１０９】
続いて、ポリゴン頂点番号テーブル処理部３は、格子ＩＥについて、格子内ポリゴンタイプ記憶部１９から格子ＩＥのｉｄ番号を求め、格子／ポリゴン対応付け記憶部１５から格子ＩＥ内のポリゴン数とポリゴン頂点が乗る辺番号（３つの辺）を求める。ポリゴン番号とポリゴンローカル頂点番号＃１〜＃３と全体ポリゴン頂点番号を対応付けて図１０に示すようにポリゴン頂点番号テーブル記憶部２３に格納する。１番目の辺に乗るポリゴン頂点をポリゴンローカル頂点番号＃１と称す。ポリゴン数が１以上の場合は、先ず、ポリゴンローカル頂点番号＃１について以下の処理を行う。格子構成節点番号配列記憶部１２から格子ＩＥの節点の全体節点番号とローカル節点番号との対応付けを取得し、節点／辺番号対応付け記憶部１４から上記求めたポリゴン頂点が乗る辺番号（１番目の辺）に対応するローカル節点番号対を求め、このローカル節点番号対ならびに全体節点番号とローカル節点番号との対応付けからポリゴン頂点が乗る辺（１番目の辺）の両端の全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を計算する。全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を、図８に示す節点番号対・ポリゴン頂点番号記憶部３２に登録する動作を行う。すなわち、節点番号対・ポリゴン頂点番号記憶部３２をスキャンして全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）が既に登録されていれば、何もしない。もし、全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）が登録されていないならば、未登録と判断し、連結リストの末尾に全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を追加登録する。全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）を節点番号対・ポリゴン頂点番号記憶部３２に登録していく過程で、同時に、この全体節点番号対の辺上に乗るポリゴン頂点の全体ポリゴン頂点番号も計算し、連結リストとして、全体節点番号対（ｎｏｄｅ１，ｎｏｄｅ２）と同じ位置に格納していく。全体ポリゴン頂点番号は次ようにして求める。すなわち、ポリゴン頂点番号テーブル記憶部２３に登録されている最後の全体ポリゴン頂点番号の次の番号を全体ポリゴン頂点番号とする。また、この全体ポリゴン頂点番号をポリゴンローカル頂点番号＃１と対応づけてポリゴン頂点番号テーブル記憶部２３に記憶する。上記の処理を、ポリゴンローカル頂点番号＃２とポリゴンローカル頂点番号＃３について行う。ポリゴン数が２の場合には、２番目のポリゴンについて同様の処理を行う。格子番号ＩＥをインクリメントし、上記の処理をＩＥが総格子数になるまで行う。ポリゴン頂点番号テーブル記憶部２３は図１０に示すようになる。
【０１１０】
続いて、ポリゴン頂点座標値処理部４は、図８に示す節点番号対・ポリゴン頂点番号記憶部３２に登録されているポリゴン頂点が乗る辺の両端の全体節点番号対と全体ポリゴン頂点番号とを取り出す。節点上のスカラ値記憶部１１から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対上のスカラ値と等値面スカラ値記憶部１３から取り出した等値面のスカラ値との大小関係から補間計算を行う。格子構成節点番号配列記憶部１２から取り出したポリゴン頂点が乗る辺の両端の全体節点番号対の座標値（ｘ，ｙ，ｚ）と補間計算の結果から全体ポリゴン頂点番号の座標値（ｘ，ｙ，ｚ）を計算する。全体ポリゴン頂点番号と全体ポリゴン頂点番号の座標値（ｘ，ｙ，ｚ）とを対応づけて全体ポリゴン頂点番号の座標値記憶部２５に記憶する。上記の処理を、節点番号対・ポリゴン頂点番号記憶部３２に登録されている全ての全体節点番号対について行う。全体ポリゴン頂点番号の座標値記憶部２５は図１２（ａ）に示すようになる。
【０１１１】
続いて、ポリゴン頂点上の法線ベクトル処理部５は、先ず、ポリゴン番号ＩＰを初期設定し、総ポリゴン数記憶部１８から総ポリゴン数ＮＰＯＬＹＧＯＮを取得する。ポリゴン番号ＩＰが総ポリゴン数ＮＰＯＬＹＧＯＮ以下ならば、ポリゴン頂点番号テーブル記憶部２３からポリゴンＩＰ（ポリゴン番号がＩＰであるポリゴンを示す）のポリゴンローカル頂点番号＃１、＃２，＃３の全体ポリゴン頂点番号を取り出す。全体ポリゴン頂点番号の座標値記憶部２５から、取り出した全体ポリゴン頂点番号に対応する全体ポリゴン頂点番号の座標値（ｘ，ｙ，ｚ）を取得し、ポリゴンＩＰのポリゴン頂点上の法線ベクトルを計算し、全ポリゴン頂点上の法線ベクトル配列ｖｎｏｒｍａｌ（３，ｉ（ｉ＝１，…，ｎｖｅｒｔｅｘ））に足しこむ。ポリゴンＩＰについて、この足しこみ処理が終了したら、ＩＰを１だけインクリメントし、ＩＰがＮＰＯＬＹＧＯＮより大きくなるまでこの足しこみ処理を続ける。ＩＰがＮＰＯＬＹＧＯＮより大きくなったら、配列ｖｎｏｒｍａｌ（３，ｉ（ｉ＝１，…，ｎｖｅｒｔｅｘ））に入っている全ポリゴン頂点上の法線ベクトルの規格化処理を行う。最初に、全体ポリゴン頂点番号ＩＶを初期設定し、全体ポリゴン頂点番号がＩＶの法線ベクトル（ｖｎｏｒｍａｌ（１，ＩＶ），ｖｎｏｒｍａｌ（２，ＩＶ），ｖｎｏｒｍａｌ（３，ＩＶ））を規格化し、ＩＶを１だけインクリメントし、ＩＶがｎｖｅｒｔｅｘ（全ポリゴン頂点数）になるまで、この規格化処理を行う。ＩＶが全ポリゴン頂点数ＮＶＥＲＴＥＸより大きくなったら、この規格化処理は終了し、規格化されたポリゴン頂点上の法線ベクトルの配列ｖｎｏｒｍａｌ（３，ｉ（ｉ＝１，…，ｎｖｅｒｔｅｘ））をポリゴン頂点上の法線ベクトル記憶部２８に記憶する。
【０１１２】
続いて、等値面の色処理部６は、各ポリゴンについて、ポリゴン頂点上の法線ベクトル記憶部２８に記憶されたポリゴン頂点上の法線ベクトル値を基に、ポリゴン頂点上の輝度を計算し、その輝度値を元に各ポリゴン内部の輝度値を計算し、最後に等値面が半透明、不透明によってポリゴンを重ね合わせ、ポリゴンの色を計算する。計算したポリゴンの色ならびに全体ポリゴン頂点番号の座標値記憶部２５に記憶されているポリゴン頂点の座標値から等値面の画像データを生成して等値面の画像データ記憶部３３に記憶する。生成した画像データを画像表示部７に転送する。
【０１１３】
最後に、画像表示部７は、等値面の色処理部６からネットワークを介して転送された画像データを基に等値面を表示する。
【０１１４】
このようにして、等値面を高速に可視化することができる。従来の手法では、計算サーバから可視化サーバへの転送が計算結果やポリゴンや図形情報であるため、格子点数をＯ（Ｎ）（オーダーＮ）とすると、データ転送量はＯ（Ｎ）〜Ｏ（Ｎ＾（２／３））であるのに対し、本発明の手法では、Ｎに依存しない。これは、数億以上の格子を使う大規模シミュレーションの可視化を行う際にネットワーク負荷が増大しない点で従来法より本発明が優れていることを示している。また、計算サーバ上での等値面のレンダリング処理について、従来の手法では、格子単位で法線ベクトルの計算を行っていたため、この部分の計算はベクトル処理されなかったが、本発明では、図１４に示すようにポリゴン頂点の法線ベクトルの計算、規格化部分が図１のポリゴン頂点番号テーブル処理部３で生成されたポリゴン頂点番号テーブルを使うため、総ポリゴン数と総ポリゴン頂点数をループ長とするベクトル処理が行え、３億規模の非構造四面体格子上で等値面を可視化した場合、５８倍の高速化が実現された。因みに、従来の手法では、法線ベクトルの計算が等値面可視化処理のうち、４００万以上でも７割以上の負荷になり、全体の等値面可視化処理のボトルネックとなっていた。
【０１１５】
次に、本発明の他の実施の形態について、図面を参照して詳細に説明する。
図１８は、本発明の他の実施の形態である等値面可視化システムの構成を示す図である。
【０１１６】
上述した本発明の実施の形態では非構造格子全てを対象としたが、本発明の他の実施の形態は、非構造格子が全て四面体格子の場合を対象とする。
【０１１７】
非構造格子による構造・流体解析では非構造六面体格子、四面体格子、五面体格子が混在している場合があり、その場合は上述した本発明の実施の形態の等値面可視化システムを用い、図１の非構造格子の四面体格子への分割処理部１Ａにより、六面体格子や五面体格子を四面体格子に分割変換する。一方、非構造格子が全て四面体格子の場合であるシミュレーションも多い。この場合は本実施の形態を適用する。
【０１１８】
本実施の形態では、四面体格子への分割処理は必要ではないので、図１に示す非構造格子の四面体格子への分割処理部１Ａは不要で、図１７のような構成となる。
【０１１９】
ボリュームデータ５１は、非構造格子の四面体格子のデータから構成されている。
【０１２０】
総ポリゴン数・ポリゴンタイプ処理部５２、ポリゴン頂点番号テーブル処理部５３、ポリゴン頂点座標値処理部５４、ポリゴン頂点上の法線ベクトル処理部５５、等値面の色処理部５６、画像表示部５７は、上述した本発明の実施の形態での総ポリゴン数・ポリゴンタイプ処理部２、ポリゴン頂点番号テーブル処理部３、ポリゴン頂点座標値処理部４、ポリゴン頂点上の法線ベクトル処理部５、等値面の色処理部６、画像表示部７と同様の動作を行う。
【０１２１】
本発明による上述した実施の形態において、等値面可視化システムの処理動作を実行するためのプログラム等を、データとしてコンピュータの磁気ディスクや光ディスク等の記録媒体（図示せず）に記録するようにし、記録されたデータを読み出して等値面可視化システムを動作させるために用いる。このように、本発明による等値面可視化システムを動作させるデータを記録媒体に記録させ、この記録媒体をインストールすることにより等値面可視化システムの機能が実現できるようになる。
【図面の簡単な説明】
【０１２２】
【図１】本発明の実施の形態の構成を示す図
【図２】ボリュームデータの構成を示す図
【図３】総ポリゴン数・ポリゴンタイプ処理部を説明する図
【図４】節点／辺番号対応付け記憶部を説明する図
【図５】格子／ポリゴン対応付け記憶部を説明する図
【図６】総ポリゴン数・ポリゴンタイプ処理部の動作の流れを示す図
【図７】ポリゴン頂点番号テーブル処理部を説明する図
【図８】節点番号対・ポリゴン頂点番号記憶部を説明する図
【図９】ポリゴン頂点番号テーブル処理部の動作の流れを示す図
【図１０】ポリゴン頂点番号テーブル記憶部を説明する図
【図１１】ポリゴン頂点座標値処理部を説明する図
【図１２】全体ポリゴン頂点番号の座標値記憶部を説明する図
【図１３】ポリゴン頂点上の法線ベクトル処理部を説明する図
【図１４】ポリゴン頂点上の法線ベクトル処理部の動作の流れを示す図
【図１５】等値面の色処理部を説明する図
【図１６】等値面と等値面を構成するポリゴンの関係を説明する図
【図１７】非構造格子の四面体格子への分割処理部を説明する図
【図１８】本発明の他の実施の形態の構成を示す図
【符号の説明】
【０１２３】
１    ボリュームデータ
１Ａ    非構造格子の四面体格子への分割処理部
２    総ポリゴン数・ポリゴンタイプ処理部
３    ポリゴン頂点番号テーブル処理部
４    ポリゴン頂点座標値処理部
５    ポリゴン頂点上の法線ベクトル処理部
６    等値面の色処理部
７    画像表示部
８    非構造格子の位置データ
９    格子点上のスカラ値
１０    等値面のスカラ値
１１    節点上のスカラ値記憶部
１２    格子構成節点番号配列記憶部
１３    等値面スカラ値記憶部
１４    節点／辺番号対応付け記憶部
１５    格子／ポリゴン対応付け記憶部
１８    総ポリゴン数記憶部
１９    格子内ポリゴンタイプ記憶部
２３    ポリゴン頂点番号テーブル記憶部
２５    全体ポリゴン頂点番号の座標値記憶部
２８    ポリゴン頂点上の法線ベクトル記憶部
３２    節点番号対・ポリゴン頂点番号記憶部
３３    等値面の画像データ記憶部
４１    計算サーバ
５１    ボリュームデータ
５２    総ポリゴン数・ポリゴンタイプ処理部
５３    ポリゴン頂点番号テーブル処理部
５４    ポリゴン頂点座標値処理部
５５    ポリゴン頂点上の法線ベクトル処理部
５６    等値面の色処理部
５７    画像表示部
【図１】
2005025700.tif 000003
【図２】
2005025700.tif 000004
【図３】
2005025700.tif 000005
【図４】
2005025700.tif 000006
【図５】
2005025700.tif 000007
【図６】
2005025700.tif 000008
【図７】
2005025700.tif 000009
【図８】
2005025700.tif 000010
【図９】
2005025700.tif 000011
【図１０】
2005025700.tif 000012
【図１１】
2005025700.tif 000013
【図１２】
2005025700.tif 000014
【図１３】
2005025700.tif 000015
【図１４】
2005025700.tif 000016
【図１５】
2005025700.tif 000017
【図１６】
2005025700.tif 000018
【図１７】
2005025700.tif 000019
【図１８】
2005025700.tif 000020