(57)【要約】【課題】コンピュータグラフィックスのグレア表示方法に関し、これを実時間で描画するためのハードウエア回路と、グレア発光源が遮光物体と交差した場合でのグレア生成法。【解決手段】内挿補間回路１０での多角形描画時において、ピクセル毎に光反射計算回路１１にてコントラスト値を求め、これが所定の値を超えたとき、フラグを立て、ピクセルキャッシュ１２を通してコントラスト値と共にメモリ８に記憶する。このフラグやコントラスト値は、画像メモリ１４およびデプスバッファ１５による隠面消去処理の対象となり、すべての描画が完了した時点でエンジン９によって読み出され、フラグおよびコントラスト値の量によってグレアをグレア回路１６で生成する回路【選択図】    図２
2004272856.tif 000002
【特許請求の範囲】
【請求項１】
グレア現象を、コンピュータグラフィックス技術で描画する回路に関し、映像を記憶する画像メモリと、前記画像メモリの大きさに対応した少なくとも１画素１ビットからなるフラグメモリを用意し、前記フラグメモリには、物体を描画する際に、物体自身の明るさ、および物体を取り巻く環境の明るさとのコントラスト比を計算して、このコントラスト比が所定の大きさを超えた場合、前記描画点に対応する位置にフラグをセットする第一の手段と、前記画像メモリに物体の画素を記憶する際、視点から前記描画点までの距離と、すでに前記画像メモリに記憶されている距離とを比較し、描画物体の方が前記画像メモリに記憶された物体より視点に近い場合には、描画物体の画素と視点からの距離を前記画像メモリに更新して記憶する一方、遠い場合には、すでに記憶されている画像とその距離を、再書き込みする隠面消去処理を行と共に、前記フラグメモリに対しても、隠面消去処理を加える第二の手段を有し、さらに、全ての物体の描画が終了した時点で、前記フラグメモリを走査して、フラグがセットされた位置を読み取ると共に、所定の領域内に含まれる前記フラグを計数して、計数量を、グレア映像を表現するブルームとフレア画像の生成のための表現効果に使用する第三の手段をもつグレア生成回路。
【請求項２】
請求項１の回路において、フラグメモリは画像メモリの大きさに対して、ｎを１以上とした場合、１／ｎ以下とするグレア生成回路。
【請求項３】
請求項１の回路において、物体の輝度および周辺光とのコントラスト比が、所定の値を超えた場合、前記フラグメモリにはフラグをセットすると共に、コントラスト値も同時に記憶する手段を設け、全ての描画が終了した時点で前記フラグメモリ上のフラグ位置を検出すると共に、前記フラグメモリの所定の領域内に含まれるフラグ数と、前記コントラスト値のそれぞれを用いてグレア効果を表現する回路
【請求項４】
請求項１の回路において、グレア発光源が光反射物体の場合は、光反射計算に使用される環境光および拡散反射光それぞれと、鏡面反射光との差分値の内の大きい方を、またグレア発光源が光源の場合は前記環境光との差分値を、それぞれコントラスト値とするグレア生成回路。
【請求項５】
請求項１の回路において、グレア発光源を面光源として定義すると共に、複数の領域に分割し、これら分割された領域のそれぞれに識別子を付加して、これら識別子も画像メモリに記憶すると共に、全ての物体の描画が終了した時点で、前記記憶された識別子も読出し、これら識別子から前記面光源の形状を判断し、この形状に対応するグレア形状を表現するグレア生成回路。
【請求項６】
請求項１の回路において、グレア発光源が隠面消去処理により一部の領域が消去、また一部が表示される場合、フラグメモリの一定領域に記憶されたフラグから、その分布パターンを検出し、このパターン形状からグレア発光源の形状を決定し、グレアを表現するグレア生成回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】この発明はコンピュータグラフィックス技術におけるグレア効果を表現する映像の描画回路に関する。この発明の回路は、ＬＳＩ化により、リアリティーの高い仮想現実システムの実時間可視化に適用される。
【０００２】
【従来の技術】グレア効果は夜景や、車のヘッドライトあるいは木漏れ日などを表現する必須の表現手段である。従来、コンピュータグラフィックスでは実時間でこれらを表現する方法として、テキスチャーマッピング法が用いられてきた。これはあらかじめブルームやフレア映像をパターン化しておき、これを光源に貼るものである。またフォン（Ｐｈｏｎｇ）シェーディングや従来のラフ面光反射モデルにおいても、鏡面反射光が一定の強度を超えた場合において、現実には観測されるフレア現象発生に結びつけたモデルは今日まで提案されていない。このため特に実時間性を基本とするウオークスルー仮想現実システムでは自然現象と異なる映像となるか、映像制作デザイナーが手作りで、その効果を生成しなければならない問題がある。
【０００３】
【発明が解決しようとする課題】本発明はグレア発生光源が動的に移動し、遮光物体と交差したり、あるいは遮光物体が動的に移動して光源に交差する際に変化するグレア効果を、コンピュータグラフィックス技術で表現するグレア生成回路を提供することを目的とする。
【０００４】
【課題を解決するための手段】
上記課題は、以下の発明により解決される。
【０００５】
【発明の実施の形態】
以下、本発明の実施態様を説明する。
【０００６】
本発明では、光源の強度や、光反射面と環境や周辺物体とのコントラスト比が一定の大きさを超えた場合、ブルームやフレア効果を生成するものである。本来、ブルームやフレアは、人の眼球内の、入射光の屈折変化による散乱光や、水晶体細胞繊維での回折により発生するが、これらは周辺光、年齢、めがねの有無、大気等のそれぞれの状況に応じて変化する。今日ではこれらのコンピュータグラフィックスの描画はテキスチャーマッピングが主流であるが、推論法に基づく実時間描画法が提案されており、グレアの生成ではこれら条件をパラメータとして、ブルームの強度、ハロー現象の有無、フレアの生成を行うことができる。ここで生じる問題にグレアをどの時点で描くかがある。一般に、グレア現象を描画する場合、２つの方法が考えられる。一つは物体を描画する時点で、前記の光源の輝度やコントラスト比を求め、その結果を基に物体と同時に描く方法。他は全ての物体の描画が終了した時点でグレアを描画する方法である。前者は光源輝度や、コントラスト比が、物体描画時点で得られる点で容易にグレア発生の有無を判断することができるが、もしグレア描画後に、より視点に近い物体があり、それが後方にあるグレア発光物体を覆った場合、ブルームやフレアは消滅するが、発光物体の周辺に放射上に描画されたブルームやフレアを消去する手立てがなく、それらが遮蔽物体の後ろに一部表示されることになり、明らかに眼球内で発生するグレアとしては消滅するはずの映像が残ることになり、自然とは異なる表現となってしまう。一方、実時間を可能とするパイプラインシステムで処理されるポリゴンレンダリング法では、全ての物体の描画後にグレアを描画する場合、アプリケーション側では、どの物体のどの部分がグレア発生の対象点で、またその強度がどれだけのものかを判断することは困難である。これはグレアが描画される空間が、視野変換後のものでありアプリケーションで設定された初期（ワールド座標）空間とは異っているため、物体の前後関係が認識できないためである。またフレア現象のように、光源強度だけでなく、視点位置と光源入射および物体面の傾きによる鏡面反射光によっても発生し、昼間の金属物体の太陽光反射から出るフレアの多くはこれらが原因である。これは前記同様に物体のどの位置でグレア発生点となるのかをアプリケーションで知ることは困難である。以上から、例えば、グレア現象を出す物体があるなかで、別の物体がその前を通過する場合、一時的にグレアは消滅するが、そのような効果を容易に出すことができないこととなる。
【０００７】
上記の問題の解決法として、画像メモリの大きさに対して１／ｎｘｍ（ｎ：横軸、ｍ：縦軸としそれぞれが１以上）の大きさをもち、画像メモリが画素毎に、物体の色成分（赤、緑、青）を、それぞれ例えば８ビットで記憶するのに対して、最小１ビットからなるフラグメモリを用意し、それぞれの物体の描画時点で、その物体表面が持つ環境光あるいは拡散反射光の強さに対する、鏡面反射光とのコントラスト比を求め、この比率が一定値（例えば４０）を超えた場合（以下この一定値をグレア境界輝度という）に、その描画点に対応するフラグメモリに１ビットのフラグを立てる。フラグメモリと画像メモリとはサイズが異なるため、描画点を中心とした画像メモリのｎｘｍの範囲はフラグメモリの１点となる。一方、物体の描画では隠面消去が行われており、視点に近い物体だけが画像メモリに記憶されている。この隠面消去時点で、描画物体がより視点に近く位置し、またグレア境界点以下である場合には、フラグメモリにすでにフラグがセットされていても、これをリセットする。この結果、全ての物体が描画された後のフラグメモリには、視点方向から見て、グレア境界輝度を持つ可視点のみが記憶されていることになる。
【０００８】
次に、グレア境界輝度を越える点にフラグとして立て、所定の領域に含まれるフラグ数のみで強さを決定するだけでは、グレア強度を連続的に変化させるには困難である。このためにはコントラスト比もフラグと同時に記憶し、一定の面積に含まれるコントラスト比の総和を、グレア現象の強弱に用いることで、連続的な変化を表現することができる。
【０００９】
一方、グレア発光物体が隠面消去によって、一部が表示、一部が遮光される場合がある。この場合、バッファに残った前記フラグやコントラスト比によって、遮光量に対応したグレア強度を制御することができるが、表示されるグレア発光物体の形状に依存する効果（グレア分布形状）を表現することは困難である。発光物体が光源である場合、隠面消去される前の形状は既知であるが、アプリケーションプロセッサ側では、通常のプロセスにおいては一部が遮光された後の形状を知ることはできない。これを高速に知るためには、フラグビットのビット分布から、２次元のパターンとして検出し、その形状に依存したグレアの発生を行う。ビットの分布形状を検出する手法としては、予め種類を円、楕円、長方形などに限定し、これらとのパターンマッチングを行う方法がある。グレアの性格上、厳密な外形形状の認識は重要ではない。
【００１０】またグレア発光源が反射ではなく、光源である場合、光源を面光源としてこれを複数の領域に分割し、分割された領域毎に識別子を付け、これをフラグと共にフラグバッファに記憶する。この結果、この方式ではフラグバッファは１ビット以上となるが、隠面消去処理後に残されたビットパターンではなく、識別子を読み出すことによってアプリケーションプロセッサでは、識別子の分布状態から表示部の形状を凡そ予測することができる。グレアの分布はグレア発生源の形状によって変化するため隠面消去後の形状を知ることが必要である。
【００１１】
以上のように本発明はグレア映像の表示において、動的に移動する物体が、発光源の前面を横切る、あるいは遮蔽する場合も考慮したグレア効果表示の実装回路に関するもので、本発明によって、より現実的な映像を実時間で表現することができる。
【００１２】
【実施例】
図１に本発明のグレア・フラグ生成回路を示す。図１はグレア発光源が光反射物体である場合を示す。物体から反射する輝度は通常フォンシェーディングによれば、物体面の傾きＮ、視線ベクトルＥおよび光源入射ベクトルＬから、求められる。この反射光は、拡散反射成分（Ｎ・Ｌ）を内積回路１と、鏡面反射成分となる｛２Ｎ（Ｎ・Ｌ）−Ｌ｝・Ｖのｎ乗（ここでｎは鏡面反射指数）を反射ベクトル計算回路２と、鏡面反射指数回路３で求め、さらに拡散反射光Ｉｄｆは、前記拡散反射成分、拡散反射係数Ｉｄ、光源の輝度Ｌｓおよびテキスチャーパターン輝度Ｔの積で与えられるが、これを乗算器４ａで決定し、一方、鏡面反射成分は，鏡面反射係数Ｉｓ、光源輝度Ｌｓおよび鏡面反射光Ｓｃのそれぞれを乗算器４ｂで乗算して鏡面反射光Ｉｓｐを得る。拡散反射光と鏡面反射光はそれぞれ加算器５ａで加算（合成）し、さらに、それに環境光Ｉｅを加算器５ｂで加算することで最終的な面の反射輝度Ｉｐとなる。光反射モデルはこれらの数式モデル以外にもＣｏｏｋ−ＴｏｒｒａｎｃｅやＢＲＤＦ（双方向反射分布関数）モデル等があるが、いずれも拡散反射と鏡面反射成分をそれぞれ求めた後、それらを合成することで得ている。この意味で、いずれのモデルであっても反射光を、拡散と鏡面反射成分として取り扱う限り本発明の範囲を逸脱するものではない。次に本発明となるフラグビットのセットの有無、およびコントラスト値を求めるため、拡散反射光Ｉｄｆと鏡面反射光Ｉｓｐを減算器６ａでその差分を求める。また環境光Ｉｅと鏡面反射光Ｉｓｐとの差分値を６ｂで求める。これら２つの差分値を減算器６ｃで比較し、その内の大きい方の値をマルチプレクサ７で得た後、これを所定の定数値Ｉｃｔと減算器６ｄで比較し、選択された差分値がこの定数値を超えた場合に減算器の符号をフラグＦとして、また差分値Ｃｔをコントラスト値として、フラグとコントラスト値それぞれをフラグメモリ８に記憶する（請求項１の第一の手段および請求項３および請求項４）。
【００１３】グレア効果は、眼球内の細胞の不均一性による回折や屈折誤差によるものであり、その映像には、画素単位での厳密な幾何学的形状や位置情報の必要がないため、おおよその位置関係で良く、フラグメモリは画像メモリに対して数分の１の大きさでよい（請求項２）。
【００１４】
図２は本発明のフラグメモリとその周辺図を示す。図において物体は多角形の面モデルとして定義され、エンジン９において視野変換された後、多角形の頂点に定義された前記ベクトルが多角形内挿補間回路１０にて、多角形内部の各点でのベクトルが求められ、これらが図１に示した光反射計算回路１１に与えられる。この回路で得られた多角形面上の、拡散反射および鏡面反射輝度の和Ｉｐ（Ｉｐは赤、緑、青の３原色からなる）や、内挿補間回路１０からのｚｓ値が、それぞれピクセルキャッシュ１２に一時的に記憶された後、画像メモリ１４およびデプスバッファ１５に記憶される。キャッシュ１２から画像メモリ１４に画素を書き込むとき、デプスバッファ１５のｚ値（ｚｄ）を読出し、キャッシュに記憶されたｚ値（ｚｓ）と比較回路１３で比較し、もしレンダリング中のｚ値が視点に近い場合には、その結果信号Ｈｓを受けて、画像メモリ１４およびデプスバッファ１５の値を更新する。これはＨｓがそれぞれのメモリのライトストローブ端子（ｗ）を制御して行う。視点より遠方にある場合には更新しない。図１の光反射計算回路から出力されるフラグＦおよびコントラスト値Ｃｔは、Ｉｐ同様にピクセルキャッシュ１２にバッファされた後、フラグメモリ８に書き込まれる。この場合、ｚ値比較回路１３の結果Ｈｓにより、フラグとコントラスト値はＩｐとｚ値と同様に隠面消去処理される（請求項１の第二の手段）。すなわち、フラグ点が現在描画中の物体より遠方にあった場合には、そのフラグをリセット（ゼロを書き込む）する。その結果、フラグメモリ８には全ての物体が表示された後の可視可能なフラグのみが残って記憶されている。すべての描画が終わると、エンジン９はフラグメモリ８を走査して、フラグとコントラスト値を読出し、特定の領域に含まれるフラグ数とコントラスト値を計数する。この値をもとに、フラグ点あるいは面を中心としたグレアの表示領域をエンジン９で定め、その領域を２次元の多角形として物体のレンダリングと同様に内挿補間回路１０に与え、多角形内挿点の座標値を求める。この座標値から、フラグ点あるいはフラグ面中心からの距離をグレア回路１６で計算し、その距離を変数とする指数減衰関数に順じて輝度Ｉｇを求めながら塗りつぶす（請求項１の第三の手段）。
【００１５】
一方、Ｉｇはピクセルキャッシュ１２を経て画像メモリ１４に書き込まれる。前記のようにエンジン９では、フラグを読み出し、これらの分布状態から、例えばパターンマッチング法を用いて、その形状を検出する（請求項６）。一方、内挿する多角形毎に識別子を設けることによって、描画後のグレア発光体形状を推測することも可能である。内挿補間回路１０から多角形毎に定義された識別子をフラグメモリに、フラグとコントラストと共に記憶することができる。識別子に対しても前記の隠面消去が行われ、遮光物体の背面となる識別子は消去される。エンジン９がフラグを読み出す際に、この識別子も同時に読出し、この識別子の分布から形状を推測する（請求項５）。フラグビット列の分布と、識別子の分布と比較すると、識別子からのほうが精度は低いが遥かにその形状を高速に検出できる。フラグのビットパターン列か、識別子を用いるかは、エンジンに搭載されるソフトウエアによって決定されるが、識別子の、フラグメモリへの記憶を隠面消去はハードウエアによって行う。
グレア発光源からのグレア輝度分布の回路（回路１６の具体例）については、すでに多くの研究（例：Ｔ．ｌｋｅｄｏ，”Ｔｅｃｈｎｏｌｏｇｉｅｓ  ｆｏｒ  Ｃｒｅａｔｉｎｇ  Ｒｅａｌｉｓｔｉｃ  Ｓｉｇｈｔｓ  ｉｎ  Ｆｕｔｕｒｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｓｙｓｔｅｍｓ”，Ｊｏｕｒｎａｌ  ｏｆ  ＩＥＥＥ  Ｍｕｌｔｉｍｅｄｉａ，Ｖｏｌ．９，Ｎｏ．４，ｐｐ５６−７２，Ｏｃｔ．２００２）があり、本発明の範囲を逸脱するためここでは説明しない。グレア輝度Ｉｇは、前記Ｉｐ同様にピクセルキャッシュ１２にバッファされた後、画像メモリに記憶される。この場合は、すでに記憶された物体との隠面消去は行われない。画像メモリの内容はその後、ビデオ走査にしたがって読み出され，モニターに表示される。
【００１６】
【発明の効果】グレア効果の描画をハードウエアによって実装することで、実時間の表現と、本発明の手段により、グレア発光物体の移動や、遮光物体との交差状況においても、現実と同じような表現が可能となることで、実時間性と現実感が要求される仮想現実システムの描画効果に有効となる。
【図面の簡単な説明】
【図１】図１は、本発明の光反射計算回路である。
【図２】図２は、本発明のグレア回路システム図である。
【符号の説明】
１  内積回路
２  反射ベクトル回路
３  鏡面反射指数回路
４ａ，４ｂ  乗算器
５ａ，５ｂ  加算器
６ａ，６ｂ，６ｃ，６ｄ  減算器
７  マルチプレクサ
８  フラグメモリ
９  エンジン
１０  多角形内挿回路
１１  光反射計算回路
１２  ピクセルキャッシュ
８  フラグメモリ
１３ｚ値比較回路
１４  画像メモリ
１５  デプスバッファ
１６  グレア回路
【図１】
2004272856.tif 000003
【図２】
2004272856.tif 000004