JP4435377B2 - レンダリングパイプラインにおいてボリュームデータの勾配絶対値を用いてライティングの調整を行う調整装置及び調整方法 - Google Patents
レンダリングパイプラインにおいてボリュームデータの勾配絶対値を用いてライティングの調整を行う調整装置及び調整方法 Download PDFInfo
- Publication number
- JP4435377B2 JP4435377B2 JP2000148876A JP2000148876A JP4435377B2 JP 4435377 B2 JP4435377 B2 JP 4435377B2 JP 2000148876 A JP2000148876 A JP 2000148876A JP 2000148876 A JP2000148876 A JP 2000148876A JP 4435377 B2 JP4435377 B2 JP 4435377B2
- Authority
- JP
- Japan
- Prior art keywords
- absolute value
- gradient
- adjustment
- vector
- square
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Description
【発明の属する技術分野】
本発明は、広義には、ボリュームレンダリングに関するものであり、より詳細には、サンプルの勾配絶対値を用いてライティングの調整を行う調整装置及び調整方法に関するものである。
【0002】
【従来の技術】
ボリュームレンダリング概説
ボリュームレンダリングは、3次元データを視覚化する必要があるコンピュータグラフィックス応用分野でしばしば使用されている。ボリュームデータは、物理的または医用オブジェクト、もしくは、大気、地球物理、または他の科学的モデルを走査することによって得られる情報でありうるが、データで表現されている一見してよく分からない現実の構造は、データを視覚化することによって理解しやすくなる。
【0003】
ボリュームレンダリングでは、物理的オブジェクトおよびモデルの外側表面形状だけでなく内部構造も視覚化される。ボリュームレンダリングで使用される基本データ項目は、通常、ボクセルである。ボクセルとは、オブジェクトまたはモデルの特定三次元位置を表すデータ項目である。各ボクセルの座標(x,y,z)により、ボクセルは表現オブジェクトまたはモデル内の各位置に配置される。
【0004】
ボクセルは、オブジェクトまたはモデルの何らかの特定強度値を表す。任意のボリュームについて、強度値は、密度、組織タイプ、弾性、速度等々の指定するが少数の物理的パラメータでありうる。レンダリング時、ボクセル値は、2次元画像平面に投影して見ることのできる色および不透明度(RGBα)値に変換される。
【0005】
レンダリングで最も頻繁に使用される手法の1つは、レイキャスティング法である。レイキャスティング法では、仮想光線のセットをボクセルのアレイに投射する。光線は、観察者の目すなわち画面平面を始点とする。その光線に沿った各ポイントに対して、ボクセル値のサンプリングが何度も実施される。サンプリングされた値を画素値に変換する種々の手法は公知である。あるいは、ボクセル値がRGBαボクセルに直接に変換され、その後、光線に沿って再サンプリングされて画素値に累積される場合もある。いずれの場合においても、処理を後方から前方に進めてもよいし、前方から後方に進めてもよい。
【0006】
レンダリングパイプライン
ボリュームレンダリングは、ソフトウェアで行うこともハードウェアで行うことも可能である。ハードウェア処理系によっては、ハードウェアが多段パイプラインとして構成されている。1998年11月12日付けで出願されたカプラ(Kapler)他による米国特許出願第09/190,643「実時間ボリュームレンダリングシステムの中間値の高速保存と検索(Fast Storageand Retrieval of Intermediate Values in a Real−Time Volume Rendering System)」を参照されたい。
【0007】
照射
ハイライト、反射、陰影を加えることにより、三次元物体を認識する人間の目の自然能力の1つに訴えて画像の現実感を増すための照射は、美術およびコンピュータグラフィクスの両分野において公知である。コンピュータグラフィクスでは、従来技術の照射手法が数多く知られているが、一般に、それぞれの光源に対する方向、面の法線ベクトル、観察者の位置など、複雑な計算が付随する。三次元オブジェクトのサーフェス(surface)を多数の小三角形に分けることにより三次元オブジェクトを描写するポリゴングラフィクスシステムでは、サーフェス上のある点を含む三角形の詳細から、その点における法線が容易に得られる。
【0008】
すべてのグラフィックシステムにとっての課題は、当然のことながら、実時間走査を行えるくらい十分迅速にこれらの計算を処理することである。これらを効率的に実施する手法の1つは、ビューリーズ(Voorhies)等著「反射ベクトル陰影処理用ハードウェア(Reflection Vector Shading Hardware)」Computer Graphics Proceedings, Annual Conference Series,pp.163−166,1994に記載されている。当該文献には、視線ベクトルと光源に関する計算を所定の方向集合について予め部分的に算出してルックアップテーブルに記憶するポリゴングラフィクスシステムが説明されている。レンダリング時、画像中の描写オブジェクトのサーフェス上の点に割り当てられる赤色、緑色、および青色の強度を調整する値を得るために、反射ベクトルを利用してルックアップテーブルに対して照合を行う。実時間で必要な計算は、反射ベクトル自体を求める計算と調整の適用に関する計算だけである。
【0009】
ボリュームデータセットに定義済サーフェスが存在することは滅多にないので、ボリュームグラフィックに照射を適用することはかなり難しい。それよりむしろ、リーボイ(Levoy)著「ボリュームデータに基づくサーフェス表示(Display of Surfaces From Volume Data)」IEEE Computer Graphics and Applications,May 1988,pp.29−37で論じられているように、データ自体から可視サーフェスを推測しなくてはならない。一般的な手法は、ボリュームデータセット全体の勾配、すなわち位置に対するボクセル値の変化率とその方向を求めることである。勾配が強いポイントでは、面の法線方向を指す勾配から、異なる素材タイプ間のサーフェスすなわち境界を推測できる。また勾配の絶対値は、表面の鮮明度を示すその後、例えばドレビン(Drebin)等著「ボリュームレンダリング(Volume Rendering)」Computer Graphics, August 1988, pp. 65−74に記載されているように、伝統的な照射手法を適用して、ボリュームの各ポイントにおける勾配の絶対値と方向との両方に基づいて色の強さとα値とを調節する。この方法によれば、高い勾配絶対値を呈する特徴部は表面として強調され、低い勾配絶対値を呈する特徴部は抑制される。
【0010】
ターウィスシャヴァン・ヴァン・シェルティンガ等著「オンチップ反射率マップの設計(Design of On−Chip Reflectance Map)」 Eurographics 95 Workshop on graphics Hardware,pp.51−55,1995には、前述のビューリーズ等のボリュームレンダリング法の応用が記載されている。この手法によれば、光源への方向と観察者の目に基づいて鏡面反射および拡散反射強度を事前に計算する。その後、これらの強度を、反射率マップと呼ばれるルックアップテーブルに記憶する。そして、前述のテーブルに勾配ベクトルを照合してサンプル位置のRGBα値を調整するための強さを読み取って、鏡面反射および拡散反射のハイライトを生成する。
【0011】
しかしながら、前述の照射法は、オブジェクトの表面と雑音とを区別できないという欠点がある。有意味な照射が可能なのは、サンプルが表面サンプルまたは非表面サンプルとして明確に分類できる場合だけである。雑音の存在によって均質な物質内のボクセルに強い照射が割り当てられるため、先行照射は不適切である。ビューリーズもヴァン・シェルティンガも、パイプライン式の照射についてはいっさいの提案、教示、呈示を行っていない。また、前述の手法は、オブジェクトに対する視点が変化した場合に必ず反射率マップを再ローディングしなくてはならないという点で性能が犠牲になっている。また、ビューリーズもヴァン・シェルティンガも、視線方向変更時に鏡面反射マップを再ローディングする必要を無くす、勾配および視線ベクトルに基づいた進行中の鏡面反射ベクトルの計算を提案していない。
【0012】
勾配絶対値の近似
過去において、勾配絶対値を求める力ずくの方法として、勾配ベクトルGuvwの各勾配ベクトル成分(u,v,w)の平方の合計値を求め、この合計値の平方根を得るというものがあった。この計算では、ハードウェアを極端に多用することがあり、そのため、しばしばソフトウェアが利用される。これは、従来の平方根計算を実行するのに必要な反復回数が数十ステップのオーダーになりうるからである。
【0013】
そのような計算に必要なハードウェアおよびそれに割り当てられる時間は、1秒当たり5億以上のサンプリング速度でレンダリングを実行する必要がある実時間ボリュームレンダリングの必要条件に照らしてみると、あまりにも複雑で長い。勾配絶対値を導き出すための別の従来技術として、ルックアップテーブルを利用するものがあるが、妥当な精度レベルを達成するためには多数のゲートを要するという問題がある。
【0014】
勾配絶対値を導き出した後、ユーザが、勾配絶対値を利用して照射効果やサンプルの不透明度を対話式に変更できるようにすることが望まれる。これにより、ユーザは特定の特徴を強調させたり、特定の特徴を削除したり、レンダリング後のオブジェクトに対して広範囲な変更を加えることができるようになる。
【0015】
【発明が解決しようとする課題】
従来技術においては、以上のような問題点があるため、従来技術の欠陥を改善したボリュームデータの照射が望まれる。すなわち、従来のボリュームレンダリングにおいては、ライティングの調整を効率的且つ柔軟に実施することができないという問題点があった。
【0016】
この発明は、かかる問題点を解決するためになされたものであり、ライティングの調整を効率的かつ柔軟に行うために、ボリュームレンダリングパイプラインにおけるサンプル用のライティング調整係数を得るライティングの調整装置及び調整方法を提供することを目的とする。
【0017】
【課題を解決するための手段】
この係数を生成する装置は、以下の構成要素を含んでいる。第1の論理演算装置は、サンプルの勾配絶対値ベクトルを二乗して、二乗勾配絶対値を生成する。第2の論理演算装置は、この二乗勾配絶対値から勾配絶対値を生成する。第1の論理演算装置に結合されているシフトレジスタは、二乗勾配絶対値の所定数の上位ビットを切り捨てる。勾配絶対値調整レジスタは、調整パラメータを記憶する。第2の論理演算装置とシフトレジスタとに結合されている第1のマルチプレクサは、インデックスソース信号が真の場合に切り捨て二乗勾配絶対値を選択し、インデックスソース信号が偽の場合に勾配絶対値を選択し、メモリテーブルはインデックスによって照合され、不透明度、放射、拡散反射、および鏡面反射調整係数を与える。
【0018】
本発明は、ボリュームレンダリングパイプラインのサンプルのためのライティング調整係数を提供する。この係数を生成する装置は、以下の構成要素を含んでいる。第1の論理演算装置は、サンプルの勾配絶対値ベクトルを二乗して、二乗勾配絶対値を生成する。
【0019】
第2の論理演算装置は、この二乗勾配絶対値から勾配絶対値を生成する。第1の論理演算装置に結合されているシフトレジスタは、二乗勾配絶対値の所定数の上位ビットを切り捨てる。
【0020】
勾配絶対値調整レジスタは、調整パラメータを記憶する。第2の論理演算装置とシフトレジスタとに結合されている第1のマルチプレクサは、インデックスソース信号が真の場合に切り捨て二乗勾配絶対値を選択し、インデックスソース信号が偽の場合に勾配絶対値を選択し、メモリテーブルはインデックスによって照合され、不透明度、放射、拡散反射、および鏡面反射調整係数を与える。
【0021】
【発明の実施の形態】
図1に、本発明による照射光(トレース)ステージ200を利用するパイプライン100を示す。パイプラインへ入力されるのは、ボクセルメモリ101から読み出されたボクセル102であり、パイプラインから出力されるのは、ピクセルメモリ109に書き込まれるピクセル(画素)108である。
【0022】
パイプライン100の各段(各ステージ)は、特定の視点のボクセル102に補間110を施してサンプル103を生成する。補間中、ボクセル近傍を調べ、光線沿いのサンプルポイントに数値を割り当てる。再サンプリング関数は、一般に、線形補間、確率的補間、または最近傍補間などである。
【0023】
サンプル103の勾配104の推算120が実行される。勾配は、面の法線の方向と絶対値を示す。次に、サンプル103が分類される。分類されたサンプルは、照射光(トレース)ステージ200において、推算勾配104を利用して本発明により照射される。最後に、照射されたサンプル106がピクセル108に合成140される。別の実施形態において、補間ステージ、勾配推算ステージ、分類ステージの順序が異なっていてもよい。
【0024】
図1のパイプラインのデータの流れにより、半導体すなわちハードウェア処理系においてかなりの並列処理を実現できる。ボクセルメモリ101から1つのデータグループが読み出される間に、以前に読み出されたデータグループが補間ステージ110で補間され、以前に読み出された勾配を持っているデータグループの推算と分類がステージ120で行われる、などである。パイプラインは、それぞれのサイクルで、決まった数のボクセルを読み出す。これらのボクセルは、1段ずつおよび1サイクルずつパイプラインを進む。したがって、個々のボクセルまたはサンプルのレンダリングに必要なステージ数および時間が大きくても、一度に多数のボクセルが処理される。
【0025】
照射光(トレース)ステージ
図2に、本発明によるハードウェアレンダリングパイプラインの照射光(トレース)ステージ200を示す。照射光(トレース)ステージ200は、3つの主要装置、すなわち、勾配絶対値調整装置300と、反射率マッピング装置800と、ライティング装置1100とを含んでいる。照射光(トレース)ステージ200は、4つの論理演算装置(ALU)すなわち乗算器((×))201〜204と、マルチプレクサ(MUX)も含んでいる。(なお、乗算器201〜204の表現方法として、図2においては、○の中に×が記載されている記号が記載されているが、本明細書においては、それを(×)として記載している。)
【0026】
照射光(トレース)ステージ200へのそれぞれの入力は、前段からの分類サンプル205、それに対応する対応勾配ベクトル(Guvw)104、およびサンプリング点からの観測者の視線方向を表す視線ベクトル(Euvw)801から構成されている。サンプルおよびその関連勾配ベクトルは、パイプラインの1クロックサイクルあたり1組の割合で受け入れられる。ボリュームレンダリングによって平行投影を行うシステムでは、視線ベクトルは常にボリュームを横切る。しかしながら、透視投影では、視線ベクトルをそれぞれの光線に合わせて調整しなくてはならない。
【0027】
照射光(トレース)ステージ200は、関連勾配ベクトル(Guvw)104および以下に詳述する別の制御を利用して、分類サンプル205に、鏡面反射(s)、拡散反射(d)および放射(e)照射を与える。本発明による照射光(トレース)ステージ200は、パイプライン式に、パイプラインの1クロックサイクル当たり1組の割合でサンプルとベクトルとを処理する。すなわち、照射光(トレース)ステージ200は一定数の処理ステップを含み、データは最初から最後まで一方向に段を流れる。ループも、フィードバックも、処理ステップ数の変動も存在しない。照射光(トレース)ステージ200のサブユニットのそれぞれは、同様に、1個/1サイクルの速度で入力を受け入れて同じ速度で出力を供給するようにパイプライン式に構成されている。
【0028】
勾配ベクトル104は、以下に説明されるように、調整装置300および反射率マッピング装置800に、入力として供給される。調整装置は、4つの勾配絶対値調整係数GMOM、GMIMe、GMIMd、およびGMIMsを生成する。GMOMは、不透明度調整用の係数であり、その他の3つの係数は、それぞれ放射(e)、拡散反射(d)および鏡面反射(s)照射の場合の色(RGB)の強度である。調整は、ユーザの制御下で多数のいろいろな方法で実施できる。
【0029】
GMOMは、mux210を介して供給された分類サンプル205のα(不透明度)成分206の調整すなわち減衰(201)を実施する。照射光(トレース)ステージを完全にバイパスする場合には、mux210はGUVWも受け取る。202においてGMIMeにkeが乗じられる。ここでkeは、ボリューム全体に対する定数である放射光の強度である。調整後のkeをMkeで示す。203においてGMIMdにIdが乗じられ、調整拡散反射強度MIdが与えられる。204においてGMIMsにIsが乗じられ、調整鏡面反射光強度MIsが与えられる。IdおよびIsの値は、反射率マッピング装置800経由で供給される。Mke、MId、およびMIsは、図12記載のように、ライティング装置1100に供給される。
【0030】
照射光(トレース)ステージ200の主な出力は、Red(赤)、Green(緑)、Blue(青)の色成分およびα(Alpha)成分を備えた照射サンプル106である。それ以外の2つの出力は、Gm有効範囲107と、勾配ベクトルと視線ベクトルとの内積(GUVW・EUVW)の信号108である。Gm有効範囲の値は、範囲レジスタで定義された範囲に対する算出二乗勾配絶対値の比較結果である。この信号は、パイプライン100の合成ステージ140の下流に用いて、勾配絶対値に基づいて合成されたデータにサンプルを選択的に組み込むまたは同からサンプルを選択的に除外することによって、結果画像をさらに調整することができる。
【0031】
内積の信号により、勾配が前向きであるか、後向きであるかが示される。この信号を合成ステージの下流に用いることにより、サンプルが前向きの表面か、後向きの表面か識別することもできる。この情報により、ボリュームデータを簡単に分割することが可能になる。入力と同様に出力も1照射サンプルパイプラインサイクルの速度で刻時される。
【0032】
勾配の絶対値の調整
図3に、勾配絶対値調整装置300を更に詳細に示す。この装置の目的は、勾配の絶対値を利用して、勾配をフィルタリング処理することである。フィルタリング処理により、表面が強調され、雑音が除去される。
【0033】
装置300は、勾配104自体の内積(GUVW・GUVW)を行って、勾配の絶対値の二乗|G2|を得る論理演算装置310と、図13および13を参照しながら更に詳細に説明される|G2|の平方根を求めるための装置600とを含んでいる。スクエアリング回路310の出力は、図4記載の勾配絶対値範囲レジスタ400からの範囲値とともに、比較器320に供給される。この範囲値には、最小および最大有効絶対値が含まれている。出力は、回路330(例えば、シフトレジスタ)によって切り捨てられ、その後、|G|とともにマルチプレクサ340に供給される。
【0034】
勾配絶対値ルックアップテーブル(GMLUT)380に照合するために、mux340の出力が利用される。ルックアップテーブルの入力項目は、0〜1間(0と1を含む)の小数値である。絶対値|G|は、ハイパスフィルタ(Hi−Pass)フィルタ関数350にも供給される。特定の調整モードを選択する信号が、回線360を介してマルチプレクサ370に供給される。この信号は、図5記載の勾配絶対値調整レジスタ(GMM)500から送り出されたものである。レジスタ500にビットとして記憶されるパラメータ値は、ユーザが提供できる。可能モードとして、鏡面反射、拡散反射、放射、不透明度、ハイパス拡散反射、およびハイパス鏡面反射などがある。
【0035】
勾配絶対値調整レジスタ
図5に記載されているように、GMM500は、32ビットとして格納されるフィールド501〜507を含む。ユーザが希望する調整は、種々のビット数によって正確に管理される。GMLUT380と組み合わせて、グレーン(grain)、ベース(base)、上下限範囲、およびインデックスソースフィールド501〜504が使用される。ハイパスフィルタ350は、2つのハイパスフィールド505、506を使用する。フィールド505は、ハイパスフィルタ関数のステップ値を指定する。フィールド506は、鏡面反射光または拡散反射光の一方または両方を削除する。フィールド507の数値は、絶対値ルックアップテーブル380を利用するmux370の複合調整モードを選択する。
【0036】
言い換えると、GMMレジスタ500の中には、2種類の調整関数(Hi−PassまたはGMLUT)の適用を制御して4通りの変更出力390を得る、全部で32の制御ビットが存在している。GMOMおよびGMIMeは、不透明度調整(modulateOpacity)および放射調整(modulateEmissive)制御ビットの設定(0または1)に基づいて与えられるGMLUTの出力または数値1.0を有する。これをCプログラム言語で表現すると以下のようになる。
【0037】
GMOM = modulateOpacity ? GMLUT[|G|] : 1.0
GMIMe = modulateEmissive ? GMLUT[|G|] : 1.0
【0038】
ここで、演算子”?”は、指定された制御ビットがGMM500に設定(0または1)されているかどうかを”尋ね”、それに応じて、”?”の後の2つの演算子のうちの、最初のものまたは2番目のものを選択する。GMIMdおよびGMIMsは、次の4つの値のうちのいずれかを有する。
【0039】
1.0, Hi-Pass(|G|), GMLUT[|G|], または、Hi-Pass(|G|)*GMLUT[|G|].
【0040】
上に述べたように、2つの関数値を合成することができる。GMM500の制御ビットの設定に応じてGMIMdおよびGMIMsについてこれらの4つの可能値のいずれかを別個に選択することができる。
【0041】
GMIMd =(modulateDiffuse ? GMLUT[|G|]:1.0)
*(hiPassDiffuse ? Hi-Pass(|G|):1.0)
GMIMs=(modulateSpecular ? GMLUT[|G|]:1.0)
*(hiPassSpecular ? Hi-Pass(|G|):1.0)
【0042】
勾配絶対値調整演算
装置300は、回線360上の選択信号と、分類サンプル205の勾配絶対値とにより、調整(減衰)係数GMOM、GMIMe、GMIMd、およびGMIMs390を決定する。この調整係数は、ライティングパラメータ(Id、Is、およびKe)およびサンプルの不透明度に適用できる。
【0043】
装置310において、次のように、勾配ベクトルの各成分の二乗の合計値を求めて勾配絶対値の二乗(|G2|)が計算される。
【0044】
|G2|=(GU*GU)+(GV*GV)+(GW*GW)
【0045】
勾配ベクトルの成分は、[−4095,…,+4095]24の範囲内にある。この範囲だと、算出される勾配絶対値の二乗の範囲は、[0,…,50,307,075]になる。Gm有効範囲信号107は次のように設定される。
【0046】
GmRangeValid =(|G2| >= GradientMagnitudeRange.Min)
&&(|G2| <= GradientMagnitudeRange.Max).
【0047】
ここで、図4に勾配絶対値範囲レジスタ400を示す。”&&”は、Cプログラミング言語における論理積演算子の記号である。
【0048】
調整装置300によって出力される4つの調整係数は、GMOM、GMIMe、GMIMd、およびGMIMs390である。これらの出力は、[0.0,…,1.0]の範囲内にある。乗算論理を利用している図2から分かるように、GMOMはサンプルの不透明度(α)成分を調整し、GMIMeはke成分を調整し、GMIMdはId成分、GMIMsはIs成分を調整し、したがって鏡面反射光が調整される。
【0049】
この調整は、非表面のライティングに対する寄与を最小化または除去する、サンプリング時の誤りおよび/またはボリュームデータセットに固有の補間または雑音誤りによって存在することがある低勾配のサンプルのライティングに対する寄与を最小化または除去する、特定範囲の勾配を持ったサンプルのみに光を与える、およびサンプルが合成されないようにする(GMOM)といった、種々の理由から使用できる。例えば、調整係数GMOMにより、すべてのサーフェス(surface)を削除することによって均質な領域だけの合成を可能にする、逆に言うと、サーフェス(surface)だけの合成を可能にすることができる。
【0050】
利点としては、2つの調整関数、すなわち、勾配絶対値ルックアップテーブル(GMLUT)380を利用する複合関数と、ハイパスフィルタ関数350、を装置300によって与えられることである。
【0051】
ハイパスフィルタ関数
ハイパスフィルタ関数は、近似勾配絶対値に対して機能する。この階段関数により、図5に記載のGMMレジスタ500のハイパススタート(hiPassStart)フィールド505によって定義されている勾配絶対値範囲のステップ値の両側に適用するハイパス調整係数0.0または1.0が生成される。次式に階段関数を表す。
【0052】
hiPassOutput = (|G| >= hiPassStart) ? 1.0:0.0
【0053】
図6にこの階段関数の出力例600を示す。x軸は、入力勾配の絶対値の範囲[0,…,255]の下端を示し、y軸は、ハイパス出力の絶対値を示す。この例では、ステップ値hiPassStartは96に設定されている。従って、勾配絶対値96未満のすべてのサンプルの場合は出力が0.0、それ以外のサンプルの場合は出力が1.0である。
【0054】
勾配絶対値ルックアップテーブル
図3に記載されているように、GMLUT380は入力として、|G|または|G2|の上位13桁を採用する。マルチプレクサ340を介した選択は、GMMレジスタのインデックスソース(indexSource)フィールド504によって制御される。インデックスソース(indexSource)信号が真であれば、切捨て二乗絶対値が使用され、そうでない場合は、絶対値|G|が使用される。
【0055】
|G|を使用することにより、選択された勾配絶対値範囲にわたって等値で分散されたGMLUTテーブル入力項目を利用する線形関数がユーザに与えられる。
【0056】
しかしながら、平方根近似は誤りを生じがちなので、|G2|を直接に使用した方が好都合であろう。|G2|の上位ビットを使用することにより、勾配絶対値範囲の下端で一緒に密接パックされているGMLUT入力項目を利用する非線形関数がもたらされる。ライティングの減衰のほとんどが勾配絶対値範囲の下端で行われるので、これは実際に望ましく目当てとされることである。
【0057】
GMLUTは、入力項目128個(entry0,…,entryl27)のものとして編成されている。各入力項目は、長さ8ビットで、[0.0,…,1.0]の範囲の値を記憶する。ルックアップは、GMMレジスタ500の、グレーン、ベース、上限範囲デフォルト(upperRangeDefault)および下限範囲デフォルト(lowerRangeDefault)フィールド501〜504によって制御される。これらのフィールドにより、ユーザは、ルックアップテーブルのインデックス範囲13ビットにどのように128個のテーブル入力項目を分散させるか指定できる。
【0058】
ベースフィールド502は、インデックス範囲のどこでテーブルの最初の入力項目(entry0)をインデックスするか指定する。グレーンフィールド501は、ベース入力項目から開始して、どのくらいまでテーブル入力項目を広げるかを指定する。言い換えると、グレーンは、入力項目間の増分値の大きさである。インデックス範囲13ビット未満に対応するようにテーブルをプログラミングする場合、上限範囲デフォルト(upperRangeDefault)および下限範囲デフォルト(lowerRangeDefault)フィールド503、504で、上下範囲外領域(0または1であってもよい)のGMLUT出力値を指定する。
【0059】
図7に、x軸が範囲[0,…,4k−l]の勾配インデックスを示し、y軸が範囲[0.0,…,1.0]のGMLUT出力値を示す、複合減衰関数700の例を示す。この例では、ベースは1536、グレーンは2である。最近隣の2つのテーブル入力項目間が補間され、再び[0.0,…,1.0]の範囲に対応する8ビットを繰り返す小数が生成される。
【0060】
反射マッピング
図8に記載されているように、反射率マッピング装置800は、拡散反射率マップ810、鏡面反射マップ820を含んでいる。この装置は、視線ベクトル(EUVW)801と勾配ベクトル104とから反射ベクトル802を導き出すための反射ベクトル率回路850も含んでいる(図9および11も参照)。mux840は、勾配ベクトルまたは算出反射ベクトル802の一方を鏡面反射率マップに直接に照合するように選択的に選択する。この装置への入力は、勾配と視線ベクトル104、801であり、出力は、拡散反射および鏡面反射強度(IdとIs)803、804である。
【0061】
反射率マッピング装置800は、関連勾配ベクトル104およびユーザ指定の視線ベクトル(EUVW)801に基づいて、各サンプル205の鏡面および拡散反射強度(IsとId)を決定する。記載されているように、拡散反射マップ810に対してはサンプルの勾配ベクトル104が照合されるが、鏡面反射マップ820に対しては、一般に、図10記載のバイパス(bypassRefVec)信号901に基づいて、勾配ベクトルまたは算出反射ベクトル802が照合される。
【0062】
マップおよびインデックスベクトルは、いずれも置換されていない(unpermuted)オブジェクト空間(U,V,W)空間において指定されたものであって、「物理的」すなわち「照射」空間に対するものではない。これの利点は、異なる視線方向のために反射率マップを計算しなおさなくて良いことである。しかしながら、異方性すなわち非直交のボリュームデータセットから推定される勾配は、正しい作業を行うために照射の計算に合った「物理的」空間に合わせて修正しなくてはならない。鏡面反射マップ820は、図10に記載されているように、視線ベクトル(EyeVector)レジスタ900のバイパス(bypassRefVec)フィールド901のビットを真に設定することによって、鏡面反射マップ820が反射ベクトル802ではなく、勾配ベクトル104で直接に照合してもよい。レジスタ900のその他のフィールド902〜904は、それぞれ、視線ベクトルの(U,V,W)成分を記憶する。
【0063】
反射ベクトル
図11に、目と反射ベクトルと勾配ベクトルとの間の関係を示す。視線ベクトル801は、ボリューム1000の「サーフェス」上の点から目1001までのベクトルと定義される。その座標は、フィールド902〜904によって、(U,V,W)オブジェクト空間に指定される。このベクトルは、長さ1に正規化されることに注意されたい。光源1002から目1001への反射は、勾配ベクトル104に依存している。
【0064】
図9に記載されているように、反射率ベクトル回路850は、視線ベクトルレジスタ900と勾配ベクトル104とによって指定される視線ベクトル801に基づいて反射ベクトル802を導き出す。勾配ベクトルは単位長のベクトルではない、すなわち、正規化されていない。回路850は、論理演算装置(スケーリング装置851、2つの内積発生器852、2つの乗算器853,および加算器854)を使用して、非正規化反射ベクトルRuを次式のように求める。
【0065】
Ru=2*Gu*(Gu・E) - E(Gu・Gu)
【0066】
ここで、Guは、非正規化勾配ベクトルであり、Eは反射ベクトルと視線ベクトルであり、符号・は、2つのベクトルの「内積」演算子である。反射率マップに照合される反射ベクトルにとって重要なのは絶対値ではなく、方向だけであることに注意されたい。
【0067】
反射率マップ
上に述べたように、鏡面および拡散反射率マップは同じ構成を利用する。それぞれの反射率マップは、例えば1536個の入力項目を備えたテーブルとして構成される。これらの入力項目は3D仮想立方体の6面全体に分散される。すなわち、各面に256個の入力項目が存在する。各面は、64個の入力項目から成る4つの象限を含んでいる。このマップに対して照合されるのは、mux840で選択される、正規化されていない勾配ベクトル、または、反射ベクトルである。繰り返すが、重要なのは絶対値ではなく方向である。
【0068】
出力は、入ってくるベクトルの方向に基づいてマップの4つの入力項目から補間された値である。アクセスする立方体の面の選択は、最大ベクトル成分とその符合に基づいてなされる。例えば、(u,v,w)空間におけるベクトルが(75,0,0)の場合、立方体の右側の面(+U)が選択される。それに対し、ベクトルが(−75,0,0)の場合、立方体の左側の面が選択される。他の2つのベクトル成分の符合に基づいて、面の4半分が選択される。
【0069】
最後に、結果強度値に対する補間のために、、4つの近傍テーブル入力項目のクラスタが選択される。この近傍は、立方体の面の中心からその面の外側縁部までのベクトルのたわみ角を示す2つの重みを計算することによって選択される。面の象限のそれぞれの方向に2の累乗個の入力項目が存在し、ベクトルの成分が2の累乗の値で表されているとすれば、これらの重みは、ベクトル成分のビットを単純に抽出することによって容易に導き出すことができる。
【0070】
ライティング
図12に、ライティング装置1100を更に詳細に示す。この装置は、調整装置およびマッピング装置によって求めた信号を加算((+))または乗算((×))する、複数の論理演算装置(ALU)から構成されている。ライティング装置1100は、拡散反射および鏡面反射係数(kd、ks)、調整放射、調整拡散反射、および調整鏡面反射強度(MKe、MId、MIs)、および鏡面反射色(Rs、Gs、Bs)1101を、分類RGBαサンプル205に適用する。
【0071】
ALUによって実施される、3つのカラーチャネルそれぞれの照明方程式は、次のように示される。
【0072】
Red = [((MId*kd)+Mke)*Rasample] + [(MIs*ks* (Rspecular*asample)]
Green =[((MId*kd)+Mke)*Gasample] + [(MIs*ks* (Gspecular*asample)]
Blue = [((MId*kd)+Mke)*Basample] + [(MIs*ks* (Bspecular*asample)]
【0073】
勾配絶対値の平方根の近似
前述のように、勾配絶対値|G|は、|G2|の平方根を近似することによって導き出される。この近似法は、ニュートン−ラフソン(Newton−Raphson)近似法に基礎とするものである。一般に、ニュートン法では、入力数の平方根を求めるために多数の反復が行われる。前述より、入力は次の通りである。
【0074】
|G2| = (GU*GU) + (GV*GV) + (GW*GW)
【0075】
勾配絶対値を求める上で、平方根の精度はパイプライン式ハードウェア処理系のゲート数ほど重要ではない。したがって、この実施形態では、前述の方法の1ステップバージョンを使用する。
【0076】
次に、従来技術で一般に反復非パイプライン式に使用される、平方根を近似するためのニュートン−ラフソン法について説明し、その後に、パイプラインの好適実現法と、従来の近似法を超えるその利点について詳しく述べる。
【0077】
ニュートン−ラフソン法
ニュートン−ラフソン法は、特定の曲線(この場合は、平方根曲線)に沿った接線とその中点に基づいた反復アルゴリズムである。この方法は、次のように行われる。
【0078】
最初に、入力数(n)に基づいて、答のインテリジェント推定値(g)を導き出す。
【0079】
2.次に、この推定値で入力値を割った結果(div)を求める。
div = n/g
【0080】
3.次に、誤差を計算して、この推定値がどのくらい遠いか判断する。
error = |div-g|
gが正確な答えであれば、誤差がゼロになることを確認するのは簡単である。
【0081】
4.算出誤差が大きすぎる場合、現時点の推定値(g)とdivの間に引いた直線によって定められる接線に沿って中間点を計算することによって、次のように新しい推定値を推量する。
g=l/2*(g+div)
【0082】
5.errorが許容範囲内になるまでステップ2〜4を繰り返す(反復する)。
【0083】
図13に、入力数163の例についてニュートン−ラフソン法をグラフで示す。図13で、x軸は入力数を示し、y軸は平方根を示す。曲線1200は、平方根関数を示す。入力数(163)は、2つの2の累乗数128(27)と256(28)の間に位置する。したがって、下限値(128)の算定平方根を第1の推定値として選択する。これは、11.3137である。推定答11.3137で入力数(163)を割ると、14.4073が得られる。これにより、誤差は3.093(14.4073−11.3137)である。次の推定値を以下のように計算する。
【0084】
NewGuess = 1/2*(11.3137 + 14.4073) = 12.8605
【0085】
このプロセスは、何らかの正確な結果が得られるまで続けられる。正確な答は、12.767145である。
【0086】
この方法は、除算と反復の両方を利用していることに注意されたい。除算機構は、回路機構において著しく高価であり、反復機構はパイプライン式アーキテクチャと調和しない。1/2を乗じる乗算は、2値数を単純に右に桁移動することによって実施できる。また、減算および可能補数演算(例えば、別の加算器)、およびそれぞれの反復に要する加算も存在する。
【0087】
従来のハードウェア処理系
平方根を近似するためのニュートン−ラフソン法の従来技術ハードウェア処理系のほとんどは、非パイプライン式の反復処理系を使用している。これは、設計上、必要ゲート数を減少させるためである。一般的な設計をパイプライン式処理系に転向する場合、1回の反復について1度、除算器、加算器、および減算器を連続的なパイプライン段に再現しなくてはならない。また、パイプライン式処理系は多数のステップをサポートすることができず、最大推定回数と同じ回数だけ回路機構を再現しなくてはならない。このため、多数のゲートが必要になる。処理系の多くは、結果を得るために20または30回程度の反復を実行するが、これにより、莫大な数の遅延と回路をパイプライン式アーキテクチャに導入される。
【0088】
処理系の一例として、シノプシス社(Synopsys company)が、ニュートン−ラフソン法に基づいた同社のDesignWareライブラリに平方根回路(DW02_sqrt: Combinatorial Square Root)を提供している(”www.synopsys.com.”参照)。これらは、約10ナノ秒のサイクル時間に基づいた300nsの9000のゲートまたは600nsの1100のゲートという一般的な特性を備えた2つの可変部を有する、非パイプライン式装置である。これらは、言うまでもなく、パイプライン演算を排除して、30〜60回の反復のたびに同じ除算器、加算器、および減算回路を繰り返して使用している。
【0089】
パイプライン式平方根演算
発明による好適な処理系は、ニュートン−ラフソン法に基づいたものであるが、パイプライン式である点で従来品と著しく異なっている。本発明の処理系では、反復を1回だけ利用して、両端を連結した事前定義「勾配」を利用して、曲線1200と接線に沿った事前定義ポイントの平方根の事前定義予測値を推定する。別の要求事項として、ゲート数を最小限にするために、除算と乗算を利用せず、計算はすべて桁移動と加算だけで行う。
【0090】
本発明は、2の累乗(2n)で表される数字の平方根が、2n/2であるという事実を利用したものである。そして、最初の近似は、単純な範囲判定によって行う。任意の入力について、最も近い2の累乗数を見つけ、その平方根を最初の推定値として使用する。ここで、範囲チェックを2の奇数累乗数(すなわち、2nのnが奇数)に対して実施する場合、最初の推定値は、最大可能誤差を半分にした範囲の中間値となる。
【0091】
図14は、パイプライン式平方根近似装置1300の好適処理系のブロック図である。当該装置1300は、”範囲の選択及び推定(Select Range & Guess)”と表示されている組み合わせ論理ブロック1310、”入力を推定値で除算(Divide Input by Guess)”と表示されている別の組み合わせ論理ブロック1320、加算器1330、およびシフタ1340を含んでいる。装置1300は、入力1301として数字を取り入れ(例えば、|G2|)、出力1309として近似平方根を供給する。
【0092】
基本的に、ブロック1310は、推定(guess)1311およびシフト(shift)1312を決定する。guessの値は、入力以下の最も大きい2の奇数累乗数の、2の累乗数として表現される、最近似平方根である。この範囲試験は、単純なビット試験演算として実施できる。範囲試験は、再近似平方根が256(28)である32,768(hex 0x8000、すなわち215)で開始される。言い換えると、nが奇数であるので、平方根は、2(n+1)/2と「推定」される。対応する初期推定(guess)は256、シフト(shift)は8である。
【0093】
ブロック1320は、入力(input)を推定(guess)で除算する。推定(guess)が2の累乗数なので、除算は単純なシフト演算で実行できる。加算器1330が、推定(guess)を入力/推定(input/guess)の結果に加算する。シフタ1340が、次式の2による最終除算を実施する。
【0094】
output = (guess + (input / guess)) /2、または、
output = (2(n+1)/2 + (input/2(n+1)/2) /2.
【0095】
適切な推定値を選択することによって、すなわち、nを奇数にすることによって、非常に正確な近似値が得られる。
【0096】
推定(guess)は、常に2の累乗数であるので、除算は、入力(input)の桁移動(shift)に単純化される。次に、ニュートン−ラフソン法により、加算器1330を使って、入力(input)を推定(guess)で除算した結果に、推定(guess)を加算する。次に、この合計値を、シフタ1340において2で除算して入力の平方根の近傍近似を得る。
【0097】
前述で使用したものと同じ例を使うと、入力(input)が163の場合、input>=0x0080すなわち128(27)で、推定(guess)が16(shift 4)であり、output=(16+(163/16))/2=13、すなわち、163の平方根を最も近い整数に丸めたもの、となる。
【0098】
図15は、正確な勾配絶対値1401と近似勾配1402の比較および当該近似法における誤差1403のグラフ1400である。
【0099】
この回路の実施に必要なゲート数はごく少数である。また、当該回路は、ループや反復を伴わないので、いずれかの論理を繰り返す必要なく、希望に応じたパイプ段数に論理を広げることができるので、パイプライン式設計に最適である。回路1300の実際の処理系では850個のゲートを使用し、伝搬遅延は5ナノ秒であり、これは、前述のゲート数9000の300Nsと比べて遜色が無い。
【0100】
汎用関数近似法
精度向上のために、上に説明したニュートン−ラフソンの単一反復を、パイプライン式に一定数の追加反復に容易に拡張できることは、一見して明らかであろう。しかしながら、前述の方法は、2の累乗に関わるあらゆる計算に依存している。第2の後続の反復の場合にはその通りではない。第2の反復の場合、除算演算において、第1の反復の結果を使用する必要がある。第1の反復の結果が2の累乗数でないため、複合除算器回路を使用しなくてならず、これは、ゲートおよび遅延(delay)機構においてきわめて費用がかかる。
【0101】
しかしながら、当該方法は、2の累乗数でない固定数字集合による除算を伴う平方根関数の区分的線形近似によって、反復回数を増やさずによりよい近似値を提供するように改善できる。数字の集合は、決まったステップ数の少ない回数の桁送りと加算によって除算が実施できるように選択される。
【0102】
例えば、図14の推定値範囲1310について考えてみる。可能推定値128と256の間の差が、所望の精度レベルに対して大きすぎると仮定する。実際、これら2つの間の推定値を選択し、かつ、入力/推定(input/guess)の商を効率的に得られることが望ましい。1つの方法は、追加の加算器およびシフトで計算しやすい数字、入力/128(input/128)と入力/256(input/256)の平均値を取ることである。nを前述の入力数とする。このとき、平均値(n/128)+(n/256))/2は、次式で与えられる。
【0103】
((n/128) + (n/256)) / 2 = (n/256 + 2n/256)/2 = 3n/512 = n/(512/3)
【0104】
すなわち、nを7ビットシフトした数字と、nを8ビットシフトした数字を加算して、その結果を1ビットシフトする。これは、nを512/3で除算したのと同じで、近似値で170.667、約171である。この除算は加算器と2回のシフトにより実施され、完全除算器回路よりもはるかに効率的である。
【0105】
その効果は、最初の”推定(guess)”を得た、入力の平方根のポイント数を2倍することによって、最初の推定(guess)の範囲の大きさを縮小することである。これにより、この修正型平方根シングルステップ近似法における、図15記載の最大誤差が減少する。
【0106】
近似法の精度は、シングルステップで実施される加算器およびシフト演算の数を増加することによって、更に向上できることに注意されたい。例えば、次の3次近似法では、2つの加算器と3回のシフトが必要である。
【0107】
n/256= n >> 8
n/204 (n/256 + n/171) >> 1 = (n/256+((n/256 + n/128) >> 1)) >> 1
n/171 (n/256 + n/128) >> 1
n/146 (n/171 + n/128) >> 1 = (((n/256 + n/128) >> 1) + n/128) >> 1
n/128= n >> 7
【0108】
これを考える別の方法は、異なる桁送り値を別の方法で組み合わせることによって、平方根関数を表す曲線に沿って、勾配の異なる多数の接線が生成される点に注目することである。好適方法において、入力数を含む範囲から、始点と、この始点から次の範囲に適用される勾配接線とが選択される。
【0109】
一般に、平方根関数の範囲は次の所定の推定値を有するものとする。
【0110】
g0, g1, g2, …, gi, gi+1, …
【0111】
ここで、giは、除算が、固定時間内で固定回路セットによって実施されるように選択される。その後、推定値と実際の平方根との間の誤差量を最小限にするように推定値の選択幅を予め設定しておいてもよい。具体的には、入力値nがgi 2とgi+1 2との間にあるとき、これら2つの推定値に基づく近似における誤差は、それぞれ、1/2(n/gi−gi)と1/2(n/gi+1−n/gi+1)になる。自分より小さい最適な推定値がgiであり、自分より大きい最適な推定値がgi+1である数値nは、2つの誤差が等しい値、すなわち次式で表される値である。
【0112】
1/2(n/gi-gi)=1/2(gi+1-n/gi+1)
【0113】
nについて解くと、n<gi*gi+1の場合に、giがより適切な推定値であり、そうでない場合には、gi+1がより適切な推定値であることが分かる。
【0114】
したがって、一連の推定値g0,g1,g2,…,gi,gi+1について、図14のブロック1310でnの試験を行うための、一連の対応選択範囲g0*g1,g1*g2,g2*g3,…,gi*gi+1,…が存在する。従って、ブロック1311のように4の累乗数(2,8,32,128,512,2K,8K,32K)ずつ間隔を置いた大きな範囲に、2の奇数累乗数ずつ間隔をあけて推定値を置くのではなく、別の間隔、同一関数の別の距離をあけて配することができる。
【0115】
以上、平方根関数について具体的な説明を行ったが、前述の方法および装置を汎用化することにより、任意の線形または非線形関数を近似することができる。説明された関数は、関数を近似するに足る満足な連結接線に代表される。接線の範囲を画定する始点は、初期推定値および勾配とともに、テーブルとして格納できる。その後、図14を参照しながら説明した論理と同様の単純な論理を使用して、最小数のゲートでパイプライン式にいずれかの精度まで任意の関数を近似することができる。
【0116】
以上のように、本発明は、図3に示すように、ボリュームレンダリングパイプラインにおいてサンプルのライティング調整係数を生成する装置であって、サンプルの勾配絶対値ベクトルを二乗して、二乗勾配絶対値を生成する第1の論理演算装置310と、二乗勾配絶対値から勾配絶対値を生成する第2の論理演算装置600と、第1の論理演算装置に接続され、二乗勾配絶対値の所定数の上位ビットを切り捨てるシフトレジスタ330と、調整パラメータを記憶する勾配絶対値調整レジスタ500と、第2の論理演算装置とシフトレジスタとに接続されており、インデックスソース信号が真の場合に切り捨て二乗勾配絶対値を選択し、インデックスソース信号が偽の場合に勾配絶対値を選択する第1のマルチプレクサ340と、インデックスによって照合を行って、不透明度、放射、拡散反射、および鏡面反射調整係数を生成するメモリテーブル380とを備えた装置であるため、効率的かつ柔軟にライティングの調整を行うことができる。
【0117】
本発明の精神および範囲内で、他のいろいろな適合態様や修正態様を作成できることを理解されたい。したがって、本発明の真の精神および範囲に属するそのような変更態様および修正態様のすべてを包含することが、添付請求項の目的である。
【0118】
【発明の効果】
本発明は、ボリュームレンダリングパイプラインにおいてサンプルのライティング調整係数を生成する装置であって、サンプルの勾配絶対値ベクトルを二乗して、二乗勾配絶対値を生成する第1の論理演算装置と、二乗勾配絶対値から勾配絶対値を生成する第2の論理演算装置と、第1の論理演算装置に接続され、二乗勾配絶対値の所定数の上位ビットを切り捨てるシフトレジスタと、調整パラメータを記憶する勾配絶対値調整レジスタと、第2の論理演算装置とシフトレジスタとに接続されており、インデックスソース信号が真の場合に切り捨て二乗勾配絶対値を選択し、インデックスソース信号が偽の場合に勾配絶対値を選択する第1のマルチプレクサと、インデックスによって照合を行って、不透明度、放射、拡散反射、および鏡面反射調整係数を生成するメモリテーブルとを備えた装置であるため、効率的かつ柔軟にライティングの調整を行うことができる。
【図面の簡単な説明】
【図1】 本発明におけるレンダリングパイプラインのブロック図である。
【図2】 本発明によるパイプラインの照射光(トレース)ステージのブロック図である。
【図3】 勾配絶対値調整装置のブロック図である。
【図4】 勾配絶対値範囲レジスタのブロック図である。
【図5】 勾配絶対値調整レジスタのブロック図である。
【図6】 ハイパスフィルタ関数のグラフを示す図である。
【図7】 減衰関数のブロック図である。
【図8】 反射率マッピング装置のブロック図である。
【図9】 反射ベクトルを計算するための回路のブロック図である。
【図10】 視線ベクトルレジスタのブロック図である。
【図11】 面の法線に関する視線ベクトルと反射ベクトルとの反射を示す図である。
【図12】 照射光(トレース)ステージの照射装置のブロック図である。
【図13】 ニュートン−ラフソン平方根近似のグラフを示す図である。
【図14】 パイプライン式平方根近似装置のブロック図である。
【図15】 近似結果を比較するグラフを示す図である。
【符合の説明】
101 ボクセルメモリ、102 ボクセル、103 サンプル、104 勾配、108 ピクセル、110 補間ステージ、200 照射光(トレース)ステージ、300 勾配絶対値調整装置、320 比較器、340 マルチプレクサ、350 フィルタ関数、360 回線、370 マルチプレクサ、500 GMMレジスタ。
Claims (6)
- ボリュームレンダリングパイプラインにおいてサンプルのライティング調整係数を生成する装置であって、
サンプルの勾配絶対値ベクトルを二乗して、二乗勾配絶対値を生成する第1の論理演算装置と、
前記二乗勾配絶対値から勾配絶対値を生成する第2の論理演算装置と、
前記第1の論理演算装置に接続され、二乗勾配絶対値の所定数の上位ビットを切り捨てるシフトレジスタと、
調整パラメータを記憶する勾配絶対値調整レジスタと、
前記第2の論理演算装置と前記シフトレジスタとに接続されており、インデックスソース信号が真の場合に切り捨て二乗勾配絶対値を選択し、インデックスソース信号が偽の場合に勾配絶対値を選択する第1のマルチプレクサと、
インデックスによって照合を行って、不透明度、放射、拡散反射、および鏡面反射調整係数を生成するメモリテーブルと
を備えたことを特徴とする装置。 - 所定の点を下回る拡散反射および鏡面反射調整係数をフィルタリング処理するハイパスフィルタ回路を更に備えることを特徴とする請求項1に記載の装置。
- 前記テーブルと前記ハイパスフィルタとに接続され、ユーザが供給する制御パラメータに基づいて、前記不透明度、放射、拡散反射、および鏡面反射調整係数を選択的に調整する第2のマルチプレクサを更に備えることを特徴とする請求項2に記載の装置。
- 有効勾配範囲の最小勾配および最大勾配を記憶する勾配絶対値範囲レジスタと、
前記二乗勾配絶対値と前記最大および最小勾配とを比較して、範囲有効信号を生成する比較器と
を更に備えることを特徴とする請求項1に記載の装置。 - 前記勾配絶対値ベクトルは、GU、GV、およびGW成分を有しており、
前記二乗勾配絶対値を決定するための前記成分の二乗を総和する手段を更に備えることを特徴とする請求項1に記載の装置。 - ボリュームレンダリングパイプラインにおいてサンプルのライティング調整係数を生成する方法であって、
ボリュームサンプルの勾配絶対値ベクトルを二乗して、二乗勾配絶対値を生成するステップと、
前記二乗勾配絶対値から勾配絶対値を生成するステップと、
前記二乗勾配絶対値の所定数の上位ビットを切り捨てるステップと、
調整パラメータを勾配絶対値調整レジスタに記憶するステップと、
インデックスソース信号が真の場合に前記切り捨て二乗勾配絶対値を選択し、インデックスソース信号が偽の場合に前記勾配絶対値を選択するステップと、
インデックスによって照合を行って、不透明度、放射、拡散反射、および鏡面反射調整係数を生成するステップと
を備えたことを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/316122 | 1999-05-20 | ||
US09/316,122 US6356265B1 (en) | 1998-11-12 | 1999-05-20 | Method and apparatus for modulating lighting with gradient magnitudes of volume data in a rendering pipeline |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000348203A JP2000348203A (ja) | 2000-12-15 |
JP4435377B2 true JP4435377B2 (ja) | 2010-03-17 |
Family
ID=23227565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000148876A Expired - Fee Related JP4435377B2 (ja) | 1999-05-20 | 2000-05-19 | レンダリングパイプラインにおいてボリュームデータの勾配絶対値を用いてライティングの調整を行う調整装置及び調整方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6356265B1 (ja) |
EP (1) | EP1054359A3 (ja) |
JP (1) | JP4435377B2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19835215C2 (de) * | 1998-08-05 | 2000-07-27 | Mannesmann Vdo Ag | Kombinationsinstrument |
US6369816B1 (en) * | 1998-11-12 | 2002-04-09 | Terarecon, Inc. | Method for modulating volume samples using gradient magnitudes and complex functions over a range of values |
US6621918B1 (en) | 1999-11-05 | 2003-09-16 | H Innovation, Inc. | Teleradiology systems for rendering and visualizing remotely-located volume data sets |
JP4397131B2 (ja) * | 2000-04-03 | 2010-01-13 | 株式会社日立メディコ | 三次元画像表示装置 |
CA2315302A1 (en) * | 2000-07-13 | 2002-01-13 | Paul A. Halmshaw | Three dimensional imaging system |
EP1209618A1 (en) * | 2000-11-28 | 2002-05-29 | TeraRecon, Inc., A Delaware Corporation | Volume rendering pipeline |
WO2002078545A1 (fr) * | 2001-03-28 | 2002-10-10 | Hitachi Medical Corporation | Dispositif d'affichage d'images a trois dimensions |
US6753875B2 (en) * | 2001-08-03 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | System and method for rendering a texture map utilizing an illumination modulation value |
US7039723B2 (en) * | 2001-08-31 | 2006-05-02 | Hinnovation, Inc. | On-line image processing and communication system |
US20030086595A1 (en) * | 2001-11-07 | 2003-05-08 | Hui Hu | Display parameter-dependent pre-transmission processing of image data |
JP3836097B2 (ja) * | 2003-09-19 | 2006-10-18 | ザイオソフト株式会社 | 医用画像生成装置および方法、ならびに、プログラム |
WO2005055148A1 (en) * | 2003-11-29 | 2005-06-16 | Vital Images, Inc. | Segmented volume rendering using a programmable graphics pipeline |
US7920152B2 (en) | 2004-11-04 | 2011-04-05 | Dr Systems, Inc. | Systems and methods for viewing medical 3D imaging volumes |
US7660488B2 (en) | 2004-11-04 | 2010-02-09 | Dr Systems, Inc. | Systems and methods for viewing medical images |
US7787672B2 (en) | 2004-11-04 | 2010-08-31 | Dr Systems, Inc. | Systems and methods for matching, naming, and displaying medical images |
US7885440B2 (en) | 2004-11-04 | 2011-02-08 | Dr Systems, Inc. | Systems and methods for interleaving series of medical images |
US7970625B2 (en) | 2004-11-04 | 2011-06-28 | Dr Systems, Inc. | Systems and methods for retrieval of medical data |
JP4747820B2 (ja) * | 2005-12-13 | 2011-08-17 | 株式会社安川電機 | プログラミング装置 |
US7953614B1 (en) | 2006-11-22 | 2011-05-31 | Dr Systems, Inc. | Smart placement rules |
US20080232694A1 (en) * | 2007-03-21 | 2008-09-25 | Peter Sulatycke | Fast imaging data classification method and apparatus |
US8380533B2 (en) | 2008-11-19 | 2013-02-19 | DR Systems Inc. | System and method of providing dynamic and customizable medical examination forms |
US8712120B1 (en) | 2009-09-28 | 2014-04-29 | Dr Systems, Inc. | Rules-based approach to transferring and/or viewing medical images |
US20110125016A1 (en) * | 2009-11-25 | 2011-05-26 | Siemens Medical Solutions Usa, Inc. | Fetal rendering in medical diagnostic ultrasound |
US9075899B1 (en) | 2011-08-11 | 2015-07-07 | D.R. Systems, Inc. | Automated display settings for categories of items |
US9495604B1 (en) | 2013-01-09 | 2016-11-15 | D.R. Systems, Inc. | Intelligent management of computerized advanced processing |
US20170046483A1 (en) | 2015-04-30 | 2017-02-16 | D.R. Systems, Inc. | Database systems and interactive user interfaces for dynamic interaction with, and comparison of, digital medical image data |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3631230A (en) * | 1970-09-24 | 1971-12-28 | Ibm | Binary arithmetic unit implementing a multiplicative steration for the exponential, logarithm, quotient and square root functions |
JPS6120134A (ja) * | 1984-06-29 | 1986-01-28 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 平方根計算装置 |
US4835712A (en) * | 1986-04-14 | 1989-05-30 | Pixar | Methods and apparatus for imaging volume data with shading |
CA1258923A (en) | 1986-04-14 | 1989-08-29 | Robert A. Drebin | Methods and apparatus for imaging volume data |
US5201035A (en) | 1990-07-09 | 1993-04-06 | The United States Of America As Represented By The Secretary Of The Air Force | Dynamic algorithm selection for volume rendering, isocontour and body extraction within a multiple-instruction, multiple-data multiprocessor |
JPH06509893A (ja) | 1991-08-13 | 1994-11-02 | ボード オブ リージェンツ オブ ザ ユニバーシティ オブ ワシントン | 画像処理及びグラフィック処理システム |
US5644689A (en) | 1992-01-13 | 1997-07-01 | Hitachi, Ltd. | Arbitrary viewpoint three-dimensional imaging method using compressed voxel data constructed by a directed search of voxel data representing an image of an object and an arbitrary viewpoint |
US5377313A (en) * | 1992-01-29 | 1994-12-27 | International Business Machines Corporation | Computer graphics display method and system with shadow generation |
IL109462A0 (en) * | 1993-04-30 | 1994-07-31 | Scitex Corp Ltd | Method for generating artificial shadow |
US5422986A (en) * | 1993-05-12 | 1995-06-06 | Pacific Data Images, Inc. | Method for generating soft-edge mattes for visual elements of images |
US5594842A (en) | 1994-09-06 | 1997-01-14 | The Research Foundation Of State University Of New York | Apparatus and method for real-time volume visualization |
US5561752A (en) * | 1994-12-22 | 1996-10-01 | Apple Computer, Inc. | Multipass graphics rendering method and apparatus with re-traverse flag |
US5760786A (en) * | 1995-12-27 | 1998-06-02 | Mitsubishi Electric Information Technology Center America, Inc. | Simultaneous constructive solid geometry (CSG) modeling for multiple objects |
US5739819A (en) * | 1996-02-05 | 1998-04-14 | Scitex Corporation Ltd. | Method and apparatus for generating an artificial shadow in a two dimensional color image |
-
1999
- 1999-05-20 US US09/316,122 patent/US6356265B1/en not_active Expired - Lifetime
-
2000
- 2000-05-11 EP EP00109966A patent/EP1054359A3/en active Pending
- 2000-05-19 JP JP2000148876A patent/JP4435377B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1054359A2 (en) | 2000-11-22 |
EP1054359A3 (en) | 2003-07-30 |
JP2000348203A (ja) | 2000-12-15 |
US6356265B1 (en) | 2002-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4420531B2 (ja) | レンダリングパイプラインにおいてボリュームデータを照射する照射装置及び照射方法 | |
JP4435377B2 (ja) | レンダリングパイプラインにおいてボリュームデータの勾配絶対値を用いてライティングの調整を行う調整装置及び調整方法 | |
US6426749B1 (en) | Method and apparatus for mapping reflectance while illuminating volume data in a rendering pipeline | |
US6369816B1 (en) | Method for modulating volume samples using gradient magnitudes and complex functions over a range of values | |
US6404429B1 (en) | Method for modulating volume samples with gradient magnitude vectors and step functions | |
US6483507B2 (en) | Super-sampling and gradient estimation in a ray-casting volume rendering system | |
US6411296B1 (en) | Method and apparatus for applying modulated lighting to volume data in a rendering pipeline | |
EP1001379A2 (en) | Incrementally calculated cut-plane region for viewing a portion of a volume data set in real-time | |
Díaz et al. | Real-time ambient occlusion and halos with summed area tables | |
US6999078B1 (en) | Method of forming a perspective rendering from a voxel space | |
Ben-Artzi et al. | A precomputed polynomial representation for interactive BRDF editing with global illumination | |
Mao | Splatting of non rectilinear volumes through stochastic resampling | |
Falk et al. | Output-sensitive 3D line integral convolution | |
Csébfalvi | Beyond trilinear interpolation: higher quality for free | |
Boksansky et al. | Ray traced shadows: maintaining real-time frame rates | |
US6191788B1 (en) | Method and apparatus for approximating nonlinear functions in a graphics system | |
US6570575B1 (en) | Associated color texture processor for high fidelity 3-D graphics rendering | |
Rossl et al. | Visualization of volume data with quadratic super splines | |
EP1054358A2 (en) | Method and apparatus for approximating a function | |
US9514566B2 (en) | Image-generated system using beta distribution to provide accurate shadow mapping | |
JP2001043395A (ja) | ボリュームレンダリング装置および方法 | |
Seo et al. | Solid texture synthesis for heterogeneous translucent materials | |
Feda et al. | A median cut algorithm for efficient sampling of radiosity functions | |
Zhang et al. | Graphics hardware based volumetric medical dataset visualization and classification | |
Crawfis et al. | Volume Rendering Using Splatting. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070511 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20091208 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091224 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130108 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130108 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140108 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |