図面 (/)

技術 情報処理装置、方法及びプログラム

出願人 株式会社東芝
発明者 シャラマアンキット中島暢康ジリエアルマンシモンアリ梁連秀山原裕之
出願日 2014年6月25日 (6年11ヶ月経過) 出願番号 2014-130281
公開日 2016年1月18日 (5年4ヶ月経過) 公開番号 2016-009374
状態 特許登録済
技術分野 イメージ生成
主要キーワード ポリコン 行列転置 ジオメトリデータ 雲画像 ボクセル列 キューブ内 材質情報 フラグメントシェーダ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年1月18日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (13)

課題

3Dボリュームデータレンダリングして得られた3D画像を他の3D画像に重ねて表示し、レンダリングにより得られた3D画像と他の3D画像をともに視認することができる情報処理装置、方法及びプログラムを提供すること。

解決手段

実施形態によれば、3Dボリュームデータおよび3D画像を重畳して2次元表示するための画像を、クライント側のブラウザで作成する情報処理装置は、3D画像のデプステクスチャを求める手段と、視線方向におけるデプステクスチャまでのデプスをデプスリミットとして3Dボリュームデータをレイキャスティングする手段と、レイキャスティングの結果をレンダリングする手段とを具備する。

概要

背景

次元(3Dと略称する)画像表示法には、3D画像を任意断面で表示するMPR(Multiplanar reconstruction)法と、3D画像を2次元(2Dと略称する)平面上に投影表示するレンダリング法の2種類がある。レンダリング法は、表面を表現するサーフェスレンダリングと、奥行き情報活用するボリュームレンダリングの2種類がある。ボリュームレンダリングは、3Dボリュームデータから2D画像を作成するためにレイキャスティング技術を用いる。レイキャスティング技術は、カメラと3Dボリュームデータとの間に仮想スクリーンを配置し、仮想スクリーン上の2D画像の画素数同数光線レイ)をカメラから3Dボリュームデータに対して照射し、各々のレイが通過する3Dボリュームデータの各点(ボクセル)の列であるボクセル列各輝度値を追跡して、2D画像上の対応する画素値(色)とするものである。

概要

3Dボリュームデータをレンダリングして得られた3D画像を他の3D画像に重ねて表示し、レンダリングにより得られた3D画像と他の3D画像をともに視認することができる情報処理装置、方法及びプログラムを提供すること。実施形態によれば、3Dボリュームデータおよび3D画像を重畳して2次元表示するための画像を、クライント側のブラウザで作成する情報処理装置は、3D画像のデプステクスチャを求める手段と、視線方向におけるデプステクスチャまでのデプスをデプスリミットとして3Dボリュームデータをレイキャスティングする手段と、レイキャスティングの結果をレンダリングする手段とを具備する。

目的

本発明の目的は、3Dボリュームデータをレンダリングして得られた3D画像を他の3D画像に重ねて表示し、レンダリングにより得られた3D画像と他の3D画像をともに視認することができる情報処理装置、方法及びプログラムを提供する

効果

実績

技術文献被引用数
0件
牽制数
1件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

3Dボリュームデータおよび3D画像を重畳して2次元表示するための画像を、クライント側のブラウザで作成する情報処理装置であって、前記3D画像のデプステクスチャを求めるデプスバッファ手段と、視線方向におけるデプステクスチャまでのデプスをデプスリミットとして前記3Dボリュームデータをレイキャスティングするレイキャスティング手段と、レイキャスティングの結果をレンダリングするレンダリング手段と、を具備する情報処理装置。

請求項2

前記レイキャスティング手段は、前記3Dボリュームデータを囲むバウンディングキューブの各面を構成するポリゴン頂点オブジェクト座標系で示す頂点データカメラ座標系あるいはクリップ座標系の頂点データに変換する第1の手段と、前記第1の手段から出力されるカメラ座標系あるいはクリップ座標系の頂点データからレイ開始点、レイ方向を決定し、レイ開始点を前記デプスリミットまでインクリメントしながら、レイ開始点の3Dボリュームデータを求める第2の手段と、を具備する請求項1記載の情報処理装置。

請求項3

レイキャスティングを行なうためにモデルビュー行列の3x3のサブセット行列転置行列を用いてカメラ座標系のレイ方向をオブジェクト座標系のレイ方向に変換し、オブジェクト座標系のレイ方向を用いてレイキャスティングを1回行なう請求項2記載の情報処理装置。

請求項4

前記第2の手段は、オブジェクト座標系のレイ開始点が前記バウンディングキューブの外部となると、レイ開始点のインクリメントを停止する請求項2記載の情報処理装置。

請求項5

前記ポリゴンは三角形であり、前記バウンディングキューブは12個のポリゴンからなる請求項2記載の情報処理装置。

請求項6

前記デプスバッファ手段は、ポリゴンジオメトリデータをレンダリングし、地形図の視線方向におけるクリップ空間上の奥行きを求める請求項1記載の情報処理装置。

請求項7

前記レンダリング手段により得れらた画像を前記3D画像に重ねて表示する手段をさらに具備する請求項1記載の情報処理装置。

請求項8

前記情報処理装置は、ネットワークを介してサーバに接続され、前記サーバは前記3D画像と前記3Dボリュームデータとを格納し、前記情報処理装置からの要求に応じて前記3D画像と前記3Dボリュームデータとを前記情報処理装置へ送信する請求項1記載の情報処理装置。

請求項9

3D画像のデプステクスチャを求めることと、視線方向におけるデプステクスチャまでのデプスをデプスリミットとして3Dボリュームデータをレイキャスティングすることと、レイキャスティングの結果をレンダリングすることと、を具備する方法。

請求項10

コンピュータにより実行されるプログラムであって、前記プログラムは、3D画像のデプステクスチャを求めることと、視線方向におけるデプステクスチャまでのデプスをデプスリミットとして3Dボリュームデータをレイキャスティングすることと、レイキャスティングの結果をレンダリングすることと、を具備するものであるプログラム。

技術分野

0001

本発明の実施形態は3次元画像表示に関する。

背景技術

0002

次元(3Dと略称する)画像表示法には、3D画像を任意断面で表示するMPR(Multiplanar reconstruction)法と、3D画像を2次元(2Dと略称する)平面上に投影表示するレンダリング法の2種類がある。レンダリング法は、表面を表現するサーフェスレンダリングと、奥行き情報活用するボリュームレンダリングの2種類がある。ボリュームレンダリングは、3Dボリュームデータから2D画像を作成するためにレイキャスティング技術を用いる。レイキャスティング技術は、カメラと3Dボリュームデータとの間に仮想スクリーンを配置し、仮想スクリーン上の2D画像の画素数同数光線レイ)をカメラから3Dボリュームデータに対して照射し、各々のレイが通過する3Dボリュームデータの各点(ボクセル)の列であるボクセル列各輝度値を追跡して、2D画像上の対応する画素値(色)とするものである。

先行技術

0003

ビーンモバニア(Mobeen Movania)等著、「High-Performance Volume Rendering on the Ubitquitous Web GL Platform(ユビキタスWebGLプラットフォーム上の高性能ボリュームレンダリング)」、2014IEEE 14th International Conference on High Performance Compuitng and Communications, pages 381-388

発明が解決しようとする課題

0004

従来の3D表示処理では、3Dボリュームデータをレンダリングして得た3D画像を他の3D画像に重ねて表示すると、レンダリングにより得た3D画像が他の3D画像を隠してしまうという課題があった。

0005

本発明の目的は、3Dボリュームデータをレンダリングして得られた3D画像を他の3D画像に重ねて表示し、レンダリングにより得られた3D画像と他の3D画像をともに視認することができる情報処理装置、方法及びプログラムを提供することである。

課題を解決するための手段

0006

実施形態によれば、3Dボリュームデータおよび3D画像を重畳して2次元表示するための画像を、クライント側のブラウザで作成する情報処理装置は、3D画像のデプステクスチャを求める手段と、視線方向におけるデプステクスチャまでのデプスをデプスリミットとして3Dボリュームデータをレイキャスティングする手段と、レイキャスティングの結果をレンダリングする手段とを具備する。

図面の簡単な説明

0007

実施形態のシステム構成の一例を示すブロック図である。
座標変換概要を示す流れ図である。
ウェブブラウザの動作を示すフローチャートである。
デプスバッファの動作を示すフローチャートである。
カメラ座標系オブジェクト座標系の関係を示す図である。
バーテックシェーダの動作の一例を示すフローチャートである。
フラグメントシェーダの動作の一例を示すフローチャートである。
ポリゴンジオメトリデータが示す地形図の一例を示す図である。
3Dボリュームデータが示すの一例を示す図である。
本実施形態による3Dボリュームデータのレンダリング結果をポリゴンジオメトリデータが示す地形図に重ねて表示する一例を示す図である。
バーテックシェーダの動作の変形例を示すフローチャートである。
フラグメントシェーダの動作の変形例を示すフローチャートである。

実施例

0008

以下、図面を参照して実施形態を説明する。

0009

図1は、第1の実施形態に係る情報処理装置の構成を示す。実施形態はネットワーク12を介してサーバ14に接続されるクライアント端末16を例にとり説明する。クライアント端末16は、デスクトップ型又はノートブック型パーソナルコンピュータ携帯型のパーソナルコンピュータ、その他の携帯型の情報機器タブレットスマートフォン、その他の情報処理装置など、様々なデバイスによって実現可能である。ここでは、ノートブック型のパーソナルコンピュータとする。図示しないが、ノートブック型のパーソナルコンピュータは、コンピュータ本体と、本体に対してヒンジによって開閉自在に取り付けられているディスプレイユニットとから構成される。コンピュータ本体は、薄い箱形筐体を有しており、その上面には、キーボード電源タンタッチパッド等が配置されている。

0010

クライアント端末16は、キーボード/マウス22、ディスプレイ24と、GPU(Graphic Processing Unit)26と、デプスバッファ28と、ウェブブラウザ30とを含む。キーボード/マウス22はディスプレイ24で表示される3D画像の視線方向及び位置を指定するためのものである。ウェブブラウザ30はHTML5ベース制御アプリケーション32を含み、グラフィック関連のタグとしてのcanvas上で図形や画像を描画することができる。canvasタグを利用して描画処理を行うためのAPIを実装したオブジェクトしてWeb GLが知られており、本実施形態はWeb GLを利用する。

0011

クライアント端末16は、ネットワーク12上のサーバ14に接続される。サーバ14は、3Dボリュームデータ46と、ポリゴンジオメトリデータ48を格納する。本実施形態は、気象情報の表示に関し、雲の3D画像を3D地形図上に重ねて表示する。3Dボリュームデータ46は、雲の状態を示す3D画像データであり、ポリゴンジオメトリデータ48は地形図を表わす3Dデータである。クライアント端末16は、それぞれのデータをレンダリングして、画面上で重畳する。本実施形態は、3Dボリュームデータのレンダリングにおいて、2つの画像の重畳を考慮したレイキャスティングを行なう。

0012

クライアント端末16のウェブブラウザ30は、サーバ14に対して3D画像表示を要求する。サーバ14は要求に応じて必要なデータ44、46をクライアント端末16に送信する。サーバ14は3Dボリュームデータ46をテクスチャアトラスに変更してクライント端末16に送信する。ウェブブラウザ30は、受信したテクスチャアトラスの形式である3Dボリュームデータ46をGPU26に送る。テクスチャアトラスとは、3Dボリュームデータに含まれる複数の画像を1枚の画像に纏めたものであり、GPU26が読み込むファイル数が減り、ロード時間が短縮できるとともに、処理速度も向上する。例えば、3Dボリュームデータを均一な3Dグリッドサンプルして、スライスして、スライスをイメージに並べることで、テクスチャアトラスが作成される。ウェブブラウザ30は、サーバ14から受信したポリゴンジオメトリデータ44をデプスバッファ28に送る。

0013

D形状を2D画面上に描画する際に、例えば三角形等の基本図形を用いる。基本図形をポリゴンと称し、ポリゴンは3次元空間内の頂点データにより定義される。

0014

GPU26は、ポリゴンの頂点データを扱うバーテックスシェーダ36、頂点データに対して走査変換・補間等を行ない、実際に描画に使用される画素を求めるラスタライザ補間回路38、描画される際の画素データを扱うフラグメントシェーダ(またはピクセルシェーダとも称される)40を含む。バーテックスシェーダ36、フラグメントシェーダ40はプログラマブルである。バーテックスシェーダ36は、頂点に関するデータを受け取り、最終的に頂点をどのように処理するのかを決定する。フラグメントシェーダ40は、画素をどのような色で出力するかを決定する。フラグメントシェーダ40は、レイキャスティング処理を実行する。レイキャスティング処理は、カメラと3Dボリュームデータとの間に仮想スクリーンを配置し、仮想スクリーン上の2D画像の画素数と同数の光線(レイ)をカメラから3Dボリュームデータに対して照射し、各々のレイが通過する3Dボリュームデータの各点(ボクセル)の列であるボクセル列の各輝度値を追跡して、2D画像上の対応する画素値(色)とするものである。

0015

デプスバッファ28は、ポリゴンジオメトリデータ44が示す地形図の奥行き(視線方向において最初に存在する地形までの距離)を示すデプステクスチャを作成する。

0016

Web GLでは、3次元画像を表示するために頂点データから画像を生成する一連の流れはレンダリングパイプラインと称される。レンダリングパイプラインは、頂点データと光源情報とを入力するモデリング変換視野ビュー)変換と、頂点の陰影計算と、プロジェクション変換と、クリッピングと、走査変換・補間と、合成とを含む。陰影計算には材質情報が使われてもよいし、合成にはテクスチャも使われてもよい。

0017

モデリング変換・ビュー変換と陰影計算は、バーテックスシェーダ36で実行され、クリッピングと走査変換・補間はラスタライザ・補間回路38で実行され、走査変換により選ばれた画像の各画素の色を頂点の陰影補間値サンプリングしたテクスチャの値を合成(マージ)して決定することはフラグメントシェーダ40で実行される。バーテックスシェーダ36は頂点毎に処理し、フラグメントスシェーダ40は画素毎に処理する。

0018

図2は本実施形態における座標変換を示す。3Dボリュームデータを2Dの画面上に表示するためには、座標変換が必要である。3Dボリュームデータ(3次元空間)のポリゴンの各頂点は、モデリング変換・ビュー変換や、プロジェクション変換等を経て画面上に描画される。

0019

3Dボリュームデータの座標系はオブジェクト座標系52と呼ばれる。3D表示を行なうには、先ず3Dオブジェクトを作成し、それを回転・平行移動させて、2次元画面上に配置する。オブジェクト座標系52はモデリングの際にオブジェクトの頂点座標法線を指定するための座標系である。オブジェクト座標系52は、描画オブジェクト基準の座標系であり、描画オブジェクト毎に座標系がある。オブジェクト座標系52はモデリング座標系あるいはローカル座標系とも呼ばれる。

0020

オブジェクト座標系52は、モデルビュー行列54を用いてカメラ座標系56に変換される。カメラ座標系56は、視点の位置が原点となるカメラスペースの座標系であり、カメラが原点にあって、カメラの方向は−z軸方向である。オブジェクト座標系52をカメラ座標系56に変換するということは、物体を平行移動することを含む。

0021

なお、実際には、オブジェクト座標系52からカメラ座標系56への変換は、モデリング変換とビューイング変換を含むが、実施形態では両変換を纏めてモデルビュー変換と称する。モデリング変換は、オブジェクト座標系から世界座標系への変換であり、ビューイング変換は、世界座標系からカメラ座標系への変換である。

0022

世界座標系は空間内に配置される複数のオブジェクト座標系間を結び付けるための共通の座標系である。オブジェクトの配置(位置と姿勢)は世界座標系に対するオブジェクト座標系の座標変換(モデリング変換と称する)として表される。世界座標系の原点は取り扱うシーン包含する静的な物体上に置かれることが一般的である。世界座標系はグローバル座標系とも呼称される。モデリング変換行列は、描画したい3Dオブジェクトの位置や、拡大縮小スケーリング)の有無、そして回転しているかどうかを定義する。ビューイング変換行列は、三次元空間を撮影するカメラを定義するために、カメラの位置やカメラの向き等を定義する。

0023

モデリング変換とビューイング変換はそれぞれ4×4の行列演算が必要であるが、これらはまとめてモデルビュー行列54により演算される。

0024

モデルビュー行列54は次のような4×4の座標変換行列である。

0025

行列の要素m11〜m44は3D画像の視線方向及び位置を決めるカメラの向きや位置に応じてウェブブラウザ30により決定される。もし、拡大縮小が無しであれば、上記のモデルビュー行列54のm11〜m13、m21〜m23、m31〜m33までの3x3のサブセット行列が3次元での回転(rotation)を行なう回転行列である。そして、回転行列の逆行列(inverse)は転置行列(transpose)と同じである。回転行列の場合は、逆行列と転置行列が同じなので、逆回転のためには転置の行列が使われる。

0026

下記のモデルビュー行列はx軸を中心に90度回転させる。

0027

例えば、[010]Tの3Dの点を上記の行列で回転させると、下記のようになる。

0028

そして、行列転置と[001]Tを掛け算すると、[010]Tは戻ってくる。

0029

カメラ座標系56は、プロジェクション行列58を用いてクリップ座標系60に変換される。クリップ座標系60は、レンダリングパイプラインで使われる座標系であり、いわゆる表示画面であるクリップ空間に3Dデータが投影された後の同次の座標系である。プロジェクション行列58はプロジェクション変換とも呼ばれるものであり、4×4の行列演算である。

0030

この座標変換により、3次元空間内のオブジェクトを構成する各ポリゴンの頂点の2Dディスプレイ上の描画位置が決定される。

0031

図3はウェブブラウザ30の動作を示す。ブロック102で、キーボード/マウス22からレイ方向がウェブブラウザ30に入力される。レイ方向はカメラ座標系のカメラの向きと位置から定義される。ブロック104で、ウェブブラウザ30は、レイ方向に基づいて数1のモデルビュー行列の各要素m11〜m44を決定し、モデルビュー行列を生成する。ブロック106で、ウェブブラウザ30は、レイ方向に基づいてプロジェクション行列を生成する。ウェブブラウザ30は、モデルビュー行列、プロジェクション行列をデプスバッファ28に送る。

0032

デプスバッファ28は、ウェブブラウザ30からモデルビュー行列、プロジェクション行列を受け取ると、図4に示すように、先ず、ブロック112で、空のデプステクスチャを初期化する。ブロックB114で、デプスバッファ28は、デプステクスチャをフレームバッファにセットする。ポリゴンジオメトリデータ44は、サーバ44からウェブブラウザ30を介してデプスバッファ28に渡される。ブロックB116で、デプスバッファ28は、GPU26を用いてポリゴンジオメトリデータ44をフレームバッファ上にレンダリングする。これにより、クリップ空間上の地形図のz値(カメラから見た奥行き)が求められる。求められたz値はデプステクスチャ画像として出力される。

0033

図5は、カメラ座標系とオブジェクト座標系の関係を示す。カメラから出たレイはディスプレイスクリーンを通過し、さらに3Dボリュームデータが示すオブジェクト(例えば、気象情報としての雲)を囲むバウンディングキューブを通過する。バウンディングキューブは6面体であり、各面の正方形は2つの三角形(ポリゴンと称される)からなる。そのため、バウンディングキューブは12個のポリゴンからなる。各ポリゴンは3つの頂点からなり、次のような頂点座標で定義される。

0034

ポリゴン1 (0.0, 0.0, 0.0),(0.0, 1.0, 0.0),(1.0, 1.0, 0.0)
ポリゴン2 (1.0, 1.0, 0.0),(1.0, 0.0, 0.0),(0.0, 0.0, 0.0)
ポリゴン3 (0.0, 0.0, 1.0),(1.0, 0.0, 1.0),(1.0, 1.0, 1.0)
ポリゴン4 (1.0, 1.0, 1.0),(0.0, 1.0, 1.0),(0.0, 0.0, 1.0)
ポリゴン5 (0.0, 1.0, 0.0),(0.0, 1.0, 1.0),(1.0, 1.0, 1.0)
ポリゴン6 (1.0, 1.0, 1.0),(1.0, 1.0, 0.0),(0.0, 1.0, 0.0)
ポリゴン7 (0.0, 0.0, 0.0),(1.0, 0.0, 0.0),(1.0, 0.0, 1.0)
ポリゴン8 (1.0, 0.0, 1.0),(0.0, 0.0, 1.0),(0.0, 0.0, 0.0)
ポリゴン9 (0.0, 0.0, 0.0),(0.0, 0.0, 1.0),(0.0, 1.0, 1.0)
ポリゴン10 (0.0, 1.0, 1.0),(0.0, 1.0, 0.0),(0.0, 0.0, 0.0)
ポリゴン11 (1.0, 0.0, 0.0),(1.0, 1.0, 0.0),(1.0, 1.0, 1.0)
ポリゴン12 (1.0, 1.0, 1.0),(1.0, 0.0, 1.0),(1.0, 0.0, 0.0)
レイがバウンディングキューブのフロントフェイスと交差する点がレイ開始点(xs,ys,zs)であり、レイがバウンディングキューブのバックフェイスと交差する点がレイ終端(xe,ye,ze)である。レイ開始点(xs,ys,zs)はカメラ座標系である。カメラ座標系のレイ開始点(xs,ys,zs)は、(5)式に示すように、プロジェクション行列との演算によりクリップ座標系のレイ開始点に変換される。

0035

レイ開始点(クリップ座標系)
=プロジェクション行列×(xs,ys,zs) (5)式
カメラはカメラ座標系の原点に位置するので、カメラ座標系のレイ開始点(xs,ys,zs)の情報があれば、レイ方向はレイ開始点の情報のみから求めることができる。オブジェクト座標系でレイ方向を求めるためには、レイ開始点(xs,ys,zs)とレイ終端(xe,ye,ze)が必要である(両者の差分がレイ方向となる)のに対して、本実施形態では、レイ方向を簡単に求めることができる。すなわち、カメラ座標系のレイ方向は、(6)式に示すように、レイ開始点(xs,ys,zs)の正規化により求められる。

0036

レイ方向(カメラ座標系)=normalize(xs,ys,zs) (6)式
オブジェクト座標系のレイ方向は、(7)式に示すように、カメラ座標系のレイ方向normalize(xs,ys,zs)にモデルビュー行列の3x3のサブセット行列の転置行列を演算することにより求められる。

0037

レイ方向(オブジェクト座標系)
=モデルビュー行列の3x3のサブセット行列の転置行列
xnormalize(xs,ys,zs) (7)式
カメラ座標系のレイの深さ(レイデプス)は、(8)式に示すように、カメラ座標系のレイ開始点(xs,ys,zs)の位置から演算することができる。

0038

レイデプス(カメラ座標系)
=(tmp.z/tmp.w+1.0)/2.0 (8)式
ここで、tmp=プロジェクション行列×レイの位置(カメラ座標系)である。そのため、tmpは(x,y,z,w)の4x1の行列であり、tmp.zとtmp.wはtmpのz、wのコンポーネントである。
図6はバーテックスシェーダ36の動作を示す。バーテックスシェーダ36は、ブロックB122で、制御アプリケーション32からバウンディングキューブを構成する12個のポリゴンの計36個の頂点データVp(オブジェクト座標系)を受け取り、ブロック124で、モデルビュー行列とプロジェクション行列とを受け取る。モデルビュー行列とプロジェクション行列は全ての頂点に対して一律に適用される。

0039

ブロック126で、バーテックスシェーダ36は、(9)式に示すように、オブジェクト座標系の頂点データVpをクリップ座標系の頂点データに変換する。

0040

頂点データ(クリップ座標系)
=プロジェクション行列xモデルビュー行列x頂点データVp(オブジェクト座標系)
(9)式
ブロック128で、バーテックスシェーダ36は、(10)式に示すように、オブジェクト座標系の頂点データVpをカメラ座標系の頂点データに変換する。

0041

頂点データ(カメラ座標系)
=モデルビュー行列x頂点データVp(オブジェクト座標系) (10)式
ブロック130で、バーテックスシェーダ36は、オブジェクト座標系の頂点データVpと、カメラ座標系の頂点データを出力する。これにより、バウンディングキューブを構成する12個のポリゴンの計36個の頂点データ(カメラ座標系とオブジェクト座標系)が得られる。これらの頂点データは、バーテックスシェーダ36からフラグメントシェーダ40に渡される。

0042

図7は、フラグメントシェーダ40の動作を示す。

0043

ブロック142で、フラグメントシェーダ40は、バーテックスシェーダ36の出力の12個のポリゴンの計36個の頂点データ(カメラ座標系とオブジェクト座標系)をラスタライザ・補間回路38で処理した結果のフラグメントの頂点データを受け取る。

0044

ブロック144で、フラグメントシェーダ40は、デプステクスチャ画像dtexをデプスバッファ28から受け取る。

0045

ブロック146で、フラグメントシェーダ40は、モデルビュー行列の3x3のサブセット行列の転置行列、3Dボリュームデータ、レイのステップサイズ、プロジェクション行列の逆行列を制御アプリケーション32から受け取る。モデルビュー行列の3x3のサブセット行列の転置行列、レイのステップサイズは全ての頂点に対して一律に適用される。

0046

ブロック148で、フラグメントシェーダ40は、カメラ座標系の頂点データをカメラ座標系のレイ開始点(xs,ys,zs)として設定する。

0047

ブロック150で、フラグメントシェーダ40は、オブジェクト座標系の頂点データをオブジェクト座標系のレイ開始点として設定する。

0048

ブロック152で、フラグメントシェーダ40は、(11)式に示すように、カメラ座標系のレイ開始点を正規化し、カメラ座標系のレイ方向として設定する。

0049

レイ方向(カメラ座標系)=normalize(xs,ys,zs) (11)式
ブロック154で、フラグメントシェーダ40は、(12)式に示すように、オブジェクト座標系のレイ方向を求める。

0050

レイ方向(オブジェクト座標系)
=モデルビュー行列の3x3のサブセットの転置行列xレイ方向(カメラ座標系)
(12)式
フラグメントシェーダ40は、ブロック156で、レイデプス、ボリュームデータを初期化し、ブロック158で、デプステクスチャ画像からレイの方向にあるデプスを読み、読み取ったデプスをデプスリミットとして設定する。

0051

ブロック160で、フラグメントシェーダ40は、オブジェクト座標系のレイ開始点の3Dボリュームデータの強度を求める。

0052

ブロック162で、フラグメントシェーダ40は、上記した(8)式に示すように、カメラ座標系のレイデプスを求める。

0053

フラグメントシェーダ40は、ブロック164で、(13)式に示すように、オブジェクト座標系のレイ開始点を、ブロック146で読み込んだステップサイズだけインクリメントし、ブロック166で、(14)式に示すように、カメラ座標系のレイ開始点をステップサイズだけインクリメントする。

0054

レイ開始点(オブジェクト座標系)
=レイ開始点(オブジェクト座標系)
+レイ方向(オブジェクト座標系)xステップサイズ (13)式
レイ開始点(カメラ座標系)
=レイ開始点(カメラ座標系)+レイ方向(カメラ座標系)xステップサイズ
(14)式
以上により、オブジェクト座標系とカメラ座標系とのレイ開始点と、クリップ座標系のレイデプスを求めることができる。ブロック168で、フラグメントシェーダ40は、レイ開始点(オブジェクト座標系)<(1,1,1)であるか否か、及びレイデプス<デプスリミットであるか否かを判定する。これらの判定は、3Dボリュームデータをレンダリングするためのレイキャスティングの上限を判定するものである。オブジェクト座標系でのレイの位置(x、y、z)が全て1.0以下であることは、レイの位置がバウンディングキューブ内にあることを示す。カメラ座標系でのレイデプスがデプスリミット以下であることは、レイデプスがデプステクスチャ画像の手前であることを示す。そのため、ブロック168の2つの条件のいずれかが成立しない場合は、レイキャスティングを続けると、3Dボリュームデータのレンダリング画像である雲の画像がポリゴンジオメトリデータ44のデプステクスチャ画像である地形図を隠してしまうので、ブロック170に進む。ブロック168の2つの条件がともに成立する場合は、レイキャスティングを続けても、3Dボリュームデータの雲画像がポリゴンジオメトリデータ44の地形図を隠してしまうことがないので、ブロック160に戻り、レイキャスティングを続ける。

0055

レイキャスティングが終了すると、フラグメントシェーダ40は、ブロック170で、3Dボリュームデータをレンダリング(視覚化)する。レンダリングの手法は、例えば最大投影(MIP)法、平均値投影法等があるが、これらに限定されず、何でも良い。

0056

この実施形態によれば、図4に示すように、デプスバッファ28は、3Dボリュームデータのレイキャスティング前にポリコンジオメトリデータのデプスバッファを計算しておく。デプスバッファはフラグメントシェーダ40にテクスチャ引数として渡される。フラグメントシェーダ40は、このテクスチャ引数に基づいて、レイの方向にある物体(例えば、山、等)の位置に対応する距離をレイデプスが越えることを判定すると、レンダリングは行なわない。そのため、山の手前の雲はレンダリングされるが、山の後の雲はレンダリングされない。従って、山の後に位置する雲がレンダリングされて、山を隠してしまうことが防止され、地形図の3D画像に雲の3D画像を重畳して表示しても、後に位置する雲の3D画像が手前に位置する地形図の3D画像を隠すことが無い。

0057

バーテックスシェーダ36、フラグメントシェーダ40の変形例を説明する。図11はバーテックスシェーダ36の動作の変形例を示し、図12はフラグメントシェーダ40の動作の変形例を示す。図11図12において、図6図7と同一部分は同一参照数字を付してその詳細な説明は省略する。図6のバーテックスシェーダ36は、カメラ座標系の頂点データを求めているが、変形例では、バーテックスシェーダ36ではなくフラグメントシェーダ40がカメラ座標系の頂点データを求める。

0058

図11に示すように、バーテックスシェーダ36はカメラ座標系の頂点データを求めるブロック128を省略する。そのため、ブロック130Bで、バーテックスシェーダ36は、オブジェクト座標系の頂点データVpと、クリップ座標系の頂点データを出力する。これにより、バウンディングキューブを構成する12個のポリゴンの計36個の頂点データ(クリップ座標系とオブジェクト座標系)が得られる。

0059

図12に示すように、フラグメントシェーダ40は、ブロック142Bで、バーテックスシェーダ36の出力の12個のポリゴンの計36個の頂点データ(クリップ座標系とオブジェクト座標系)をラスタライザ・補間回路38で処理した結果のフラグメントの頂点データを受け取る。

0060

レイ開始点はカメラ座標系で設定することが好ましいので、ブロック148Bで、フラグメントシェーダ40は、(15)式に示すように、クリップ座標系の頂点データをカメラ座標系の頂点データに変換して、カメラ座標系の頂点データをカメラ座標系のレイ開始点(xs,ys,zs)として設定する。

0061

頂点データ(カメラ座標系)
=プロジェクション行列の逆行列x頂点データ(クリップ座標系) (15)式
変形例によれば、バーテックスシェーダ36はカメラ座標系の頂点データを求めることを省略することができる。その代わり、フラグメントシェーダ40がクリップ座標系の頂点データをカメラ座標系の頂点データに変換する。他は、図6図7の動作と同じであるので、上述した実施形態と同じ作用効果を得ることができる。

0062

なお、本実施形態の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。

0063

なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。例えば、3Dボリュームデータと一緒に表示する3D画像は地形図に限らず、他の3Dボリュームデータをレンダリングした画像でもよい。

0064

14…サーバ、16…クライアント端末、22…キーボード/マウス、24…ディスプレイ、26…GPU、28…デプスバッファ、30…ウェブブラウザ、36…バーテックスシェーダ、40…フラグメントシェーダ、44…ポリゴンジオメトリデータ、46…3Dボリュームデータ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ