(57)【特許請求の範囲】
【請求項１】
３次元コンピュータ・グラフィクスにおける光源表示方法において、
光を表す光の画像を平面で構成し、
該光の画像は、複数の所定の元絵からｎ個（ｎはｎ≧０である整数）選択し、
前記光の画像を構成する該元絵の配置を、光源の向いている方向と視線の方向との角度により決定し、
光源の方向と視線の方向との角度により、前記光の画像を変化させて描画して、他の画像と合成し、
合成した画像を表示することを特徴とする光源表示方法。
【請求項２】
請求項１に記載の光源表示方法において、
前記他の画像との合成は、平面である光を表す前記光の画像を、常に表示画面に平行となるようにして合成することを特徴とする光源表示方法。
【請求項３】
請求項１又は２に記載の光源表示方法において、
前記画像の合成は、両画像を加算または、光を表す前記光の画像に係数αを掛けてから加算して（α加算して）行うことを特徴とする光源表示方法。
【請求項４】
請求項３に記載の光源表示方法において、
α加算して合成する場合、前記光の画像に対する係数αを、光源の向いている方向と視線の方向との角度により決定することを特徴とする光源表示方法。
【請求項５】
請求項１〜４のいずれかに記載の光源表示方法において、
光の画像の変化は、前記光の画像を構成する前記元絵の少なくとも１つを変化させる  ことにより行うことを特徴とする光源表示方法。
【請求項６】
３次元コンピュータ・グラフィクスにおける光源表示方法において、
光を表す光の画像を平面で構成し、
光源の方向と視線の方向との角度により、前記光の画像を回転させて描画して他の画像と合成し、
合成した画像を表示することを特徴とする光源表示方法。
【請求項７】
請求項６に記載の光源表示方法において、
光源の方向と視線の方向との角度により、さらに、前記光の画像の拡大・縮小及び／又は変形を行うことを特徴とする光源表示方法。
【請求項８】
３次元コンピュータ・グラフィクスにおける光源表示方法において、
光を表す光の画像を多角錐、円錐、多角柱、円柱等の立体で構成し、
光源の方向と視線の方向との角度により、前記光の画像を変化させて描画して、他の画像と合成し、合成した画像を表示し、
前記光の画像を構成する立体は、光源の位置を頂点又は底面の一方とし、放射側の底面を描画しない
ことを特徴とする光源表示方法。
【請求項９】
３次元コンピュータ・グラフィクスにおける光源表示方法において、
光を表す光の画像を多角錐、円錐、多角柱、円柱等の立体で構成し、
光源の方向と視線の方向との角度により、前記光の画像を変化させて描画して、他の画像と合成し、合成した画像を表示し、
前記立体の光の画像を複数の立体で構成し、外側の立体が内側の立体を内包するように配置し、内側に配置した立体を、外側に配置した立体より明るく描画することを特徴とする光源表示方法。
【請求項１０】
請求項８又は９に記載の光源表示方法において、
光の画像を変化させることには、光を構成する画像の拡大縮小、回転、変形の少なくとも１つを含むことを特徴とする光源表示方法。
【請求項１１】
３次元コンピュータ・グラフィクスにおける光源表示装置において、
複数の所定の元絵からｎ個（ｎはｎ≧０である整数）選択して、光を表す光の画像を平面で構成する手段と、
光源の方向と視線の方向との角度により、前記光の画像を変化させて描画して、他の画像と合成した画像を表示する手段とを備え、
前記光の画像を構成する前記元絵の配置を、光源の向いている方向と視線の方向との角度により決定することを特徴とする光源表示装置。
【請求項１２】
３次元コンピュータ・グラフィクスにおける光源表示装置において、
光を表す光の画像を平面で構成する手段と、
光源の方向と視線の方向との角度により、前記光の画像を回転させて描画して他の画像と合成して、合成した画像を表示する手段と
を備えることを特徴とする光源表示装置。
【請求項１３】
３次元コンピュータ・グラフィクスにおける光源表示装置において、
光を表す光の画像を多角錘、円錐、多角柱、円柱等の立体で構成する手段と、
光源の方向と視線の方向との角度により、前記光の画像を変化させて描画し、他の画像と合成する手段と、
合成した画像を表示する手段とを備え、
前記描画し、他の画像と合成する手段は、前記光の画像を構成する立体を、光源の位置を頂点又は底面の一方とし、放射側の底面を描画しない
ことを特徴とする光源表示装置。
【請求項１４】
３次元コンピュータ・グラフィクスにおける光源表示装置において、
光を表す光の画像を多角錘、円錐、多角柱、円柱等の立体で構成する手段と、
光源の方向と視線の方向との角度により、前記光の画像を変化させて描画し、他の画像と合成する手段と、
合成した画像を表示する手段とを備え、
前記描画し、他の画像と合成する手段は、前記立体の光の画像を複数の立体で構成し、外側の立体が内側の立体を内包するように配置し、内側に配置した立体を、外側に配置した立体より明るく描画する
ことを特徴とする光源表示装置。
【請求項１５】
請求項１〜１０のいずれかに記載の光源表示方法をコンピュータで実行させることのできるプログラムを格納した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、３次元のコンピュータ・グラフィクスの技術に関し、特に、光源を表現することに関する。
【０００２】
【技術的背景】
３次元コンピュータ・グラフィクスは、コンピュータにより、３次元の画像を生成して表示する技術であり、コンピュータ・ゲーム等に使用されている。この３次元コンピュータ・グラフィクスにおいて、光を発生する光源を表現するために、シェーディング・アルゴリズムを用いているのが通常である。このシェーディング・アルゴリズムは、ポリゴンで決定された形状に対して、光源から発生した光線がその表面に当たって反射する度合いを計算で求めることで、物体の表面での光の反射を表す手法である。この手法では、光源からの光は、単に拡がり方や色情報（光の強さを含む）として間接的に表されている。しかし、これでは、実際の光源のリアリティがないので、それを補うために、例えば、光源として半透明な物体を置いて、直接的に光源を表現することも行われている。
【０００３】
しかし、指向性のある光源を直視したような、ぎらつく様なまぶしさ等を表現することは、上述のシェーディング・アルゴリズムや光源として半透明な物質を置く手法ではできなかった。これは、視線の方向と光源の方向との角度が変化しても、画像の変化が乏しいためである。
【０００４】
【発明が解決しようとする課題】
本発明の目的は、３次元コンピュータ・グラフィクスの技術において、指向性のあるような光源を表示するとき、まぶしさを簡単な処理で表現できる光源表示を提供することである。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明は、３次元コンピュータ・グラフィクスにおける光源表示方法において、光を表す光の画像を平面で構成し、該光の画像は、複数の所定の元絵からｎ個（ｎはｎ≧０である整数）選択し、前記光の画像を構成する該元絵の配置を、光源の向いている方向と視線の方向との角度により決定し、光源の方向と視線の方向との角度により、前記光の画像を変化させて描画して、他の画像と合成し、合成した画像を表示することを特徴とする。
これにより、指向性のあるような光源を表示するとき、まぶしさを簡単な処理で表現できる。
【０００６】
前記他の画像との合成は、平面である光を表す前記光の画像を、常に表示画面に平行となるようにして、合成することができる。これにより、光を表す光の画像を透視変換する必要がなく、合成先画像と合成することができる。
【０００７】
前記画像の合成は、両画像を加算または、光を表す前記光の画像に係数αを掛けてから加算して（α加算して）行うことができ、α加算して合成する場合、光の画像に対する係数αを、光源の向いている方向と視線の方向との角度により決定することもできる。
α加算を行うと、まぶしさをよりリアルに表現することができる。
【０００８】
光を表す光の画像を平面で構成し、光源の方向と視線の方向との角度により、前記光の画像を変化させて描画して、他の画像と合成し、合成した画像を表示しているが、光の画像を変化させることは、画像の回転を行うことにより実現している。これらの変化を、拡大縮小及び／又は変形を行うことと複合的に行ってもよい。
【０００９】
光の画像の変化は、前記光の画像を構成する前記元絵の少なくとも１つを変化させることにより行い、変化させる元絵の画像の拡大縮小、回転、変形の少なくとも１つを行うことにより、実現することができる。
そして、光の画像を構成する元絵の配置を、光源の向いている方向と視線の方向との角度により決定することにより、光源の表現を多様化することができ、より表現力を増加させることができる。
【００１１】
また、本発明の目的は、３次元コンピュータ・グラフィクスにおける光源表示方法において、光を表す光の画像を多角錐、円錐、多角柱、円柱等の立体で構成し、光源の方向と視線の方向との角度により、前記光の画像を変化させて描画して、他の画像と合成し、合成した画像を表示し、前記光の画像を構成する立体は、光源の位置を頂点又は底面の一方とし、放射側の底面を描画しないことで達成することができる。
さらに、前記立体の光の画像を複数の立体で構成し、外側の立体が内側の立体を内包するように配置し、内側に配置した立体を、外側に配置した立体より明るく描画することで、まぶしさをリアルに表現することが可能となる。
光の画像を変化させることには、光を構成する画像の拡大縮小、回転、変形の少なくとも１つを含む。
【００１２】
上述の方法を実施できる装置および、上述の方法をコンピュータに実行させることができるプログラムを格納した記録媒体も本発明である。
【００１３】
【発明の実施の形態】
本発明の実施形態を、図面を参照して詳細に説明する。
図１は、本発明の３次元コンピュータ・グラフィクスを実行するためのシステム構成の１例を示す図である。
図１において、ＣＰＵ１０２は、このシステムの全体の処理を制御している。入力インタフェース１０４は、入力装置（図示せず）からの入力をシステムへ入力させるためのインタフェースを行っている。サウンド装置１０６は、ＣＰＵ１０２の制御により、音楽や効果音を発生してスピーカ（図示せず）から出力している。ＲＯＭ１０８、ＲＡＭ１１０は、ＣＰＵ１０２やジオメトリ処理装置１１２等で用いられているプログラムやデータを格納している。
ＣＰＵ１０２は、例えば、遊戯者が操作している車の３次元の位置情報に相当するジオメトリ・データ等をジオメトリデータ・メモリ１１４に格納している。ジオメトリ処理装置１１２は、ジオメトリデータ・メモリ１１４に格納されているジオメトリ・データを読み取り、頂点データ・メモリ１２０のデータに対して３次元の座標変換処理を行う。この座標変換処理を行った３次元データから、描画装置１１６が、表示を行うための画像生成処理を必要に応じてテクスチャ・メモリ１２２のデータを参照して行い、その結果をフレーム・メモリ１１８に格納する。そして、フレーム・メモリ１１８から表示する画像データを読み出して表示装置（図示せず）に送り、ゲームの表示を行う。
【００１４】
このような図１に示したシステムを用いて、本発明の光源の表示をどのようにして行っているかを、図２〜図９を用いて詳しく説明する。この図２〜図９における処理は、図１において、光源の方向と視線の方向との角度による拡大、縮小、回転、変形は、ＣＰＵ１０２とジオメトリ処理装置１１２が連携して行い、α加算描画等は主として描画装置が行っている。
【００１５】
図２は、本発明における光源の表示の一例を示している。図２において、光源もしくは光源を含む物体を示す３次元オブジェクト２００に対して、その物体から発せられている光を示す２次元の平面のオブジェクト（光輪オブジェクト）２１０を作成して合成している。光源と視線との角度θが変化すると、光を示す光輪オブジェクト２１０の大きさをその角度θの関数に依存して変化させて、合成先画像（オブジェクト２００）に合成している。この角度の関数は、例えば、視線の向きを示す視線ベクトルと光源オブジェクトのうち、実際に光を発生している面２１５の法線ベクトル（光源ベクトル＝光源の向きを示す）との内積として計算することができる。光輪オブジェクトの大きさは、角度θが小さくなる即ち、光源が視線方向と一致するようになると、大きくなるような関係で変化させる。
【００１６】
描画する場合、光輪オブジェクトは、表示平面（通常ｘ，ｙ平面）に常に平行であるとして、物体オブジェクト２００と合成する。これは、ジオメトリ装置で透視変換することで平行とするか、ジオメトリ装置を通さず、直接描画装置で描画させることで実現することができる。オブジェクトの合成は、たとえば、両オブジェクト２００および２１０の単なるピクセルごとの加算をすることにより行ってもよい。これにより、光輪の大きさにより、光源のまぶしさを表現することができる。
また、各ピクセルごとに次の式を満たすように合成して描画してもよい。これを本件では、α加算描画という。
【数１】
αＡ＋Ｂ
ここで、通常αは０＜α≦１であり、Ａは、光輪オブジェクト２１０の画素値（通常はＲＧＢ）であり、Ｂは、合成先の画素値である。なお、αのとる値として、１以上を取ることを許容してもよい。このようにα加算描画することにより、例えば、光輪の大きさが変化するとともに、光輪がこちらを向くように変化すると、αが大きくなり、光輪オブジェクトの光度を増すように表示することができる。このα加算描画により、光源のまぶしさをより強く表現することができる。
【００１７】
図３には、別の光源の表示を示す。図３は、輝線の模様の入った２次元平面の光輪オブジェクト２２０を、光源ベクトルと視線ベクトルとの角度θが変化すると、光を示す光輪オブジェクト２２０のローカル回転角（図３の場合、光輪オブジェクト２２０の平面内を回転する角度）をその角度θに依存して変化させて、物体オブジェクト２００に合成している。この場合、この光輪オブジェクト２２０は、例えば、図３に示すように、周囲より明るい輝線を星形等の図形で表していることが望ましい。このように、視線ベクトルと光源ベクトルとのなす角度θが変化すると、オブジェクト２２０がくるっと回転することにより、光源のまぶしさを強調して表現することができる。この回転は、単に、視線ベクトルと光源ベクトルとがなす角度θの変化によって、回転する関係であればよい。この光輪オブジェクト２２０と合成先オブジェクトとの合成は、光輪オブジェクト２２０が表示平面と常に平行として、たとえば、両オブジェクト２００および２２０の単なるピクセルごとの加算をすることにより行ってもよい。また、α加算描画により、光輪オブジェクト２２０をオブジェクト２００に合成してもよい。
上述の光輪オブジェクト２１０，２２０は、たとえば、円形や星形等の図形で、中心に行くほど明るさが大きく、周辺部には徐々に明度が落ちるようなオブジェクトが望ましい。
【００１８】
図２および図３に示した、光源の動きを合成して表示することにより、光源のまぶしさをより表現することができる。即ち、光輪オブジェクトの大きさを変化させると共に、光輪オブジェクトを回転させることにより、光源のまぶしさをよりリアルに表現することができる。この光輪オブジェクトの大きさの変化および回転は、図２および図３で説明したように、光輪ベクトルと視覚ベクトルとがなす角度θに依存して行う。この場合も光輪オブジェクトと合成先画像との合成は、前述と同様に、光輪オブジェクトが表示平面と常に平行として、加算またはα加算描画により行われる。
【００１９】
上記の図２および図３の処理においては、２次元の光輪オブジェクトを表示平面と常に平行として、合成先画像と合成しているが、光輪オブジェクトの向きに応じて、透視変換を行って合成先画像と合成してもよい。これを示したのが図４である。図４（ａ）は、光輪オブジェクト２３０を光輪オブジェクトの向き等により、透視変換して合成していることを示している。図４（ｂ）は、それに対して、図２や図３に示した処理と同様に、光源の向きにはよらず、光輪オブジェクト２３０’を表示画面と常に平行として、合成先画像と合成している。
【００２０】
図２〜図４に示した光輪は、平面（２次元）のオブジェクトとして生成し、光源が設置されている物体のオブジェクトと加算またはα加算描画により合成している。
この光輪のオブジェクトは、平面ばかりでなく、立体（３次元）のオブジェクトでもよい。これを示したのが図５である。図５には、立体の光輪オブジェクト２４０として、６角錐のオブジェクトを示している。この光輪オブジェクト２４０では、６角錐の頂点を光源の位置としている。立体の光輪オブジェクトとしては、６角錐のような多角錐や円錐以外にも、多角柱，円柱等を用いることができる。この場合、光源の位置は、底面の一方とし、他の一方は光の放射面とすることができる。
【００２１】
このような立体を光輪オブジェクトとすることにより、この立体を光源が設置されている物体の動きに合わせて動かすことにより、光輪を平面として発生した場合とは異なった雰囲気を表現することができる。この立体の光輪を視線ベクトルと光源ベクトルとの角度により、大きさを変えたり、底面側のみ大きさが変わるように変形したり、また、回転させたり、これらのことを組み合わせて同時に行ったりして、光源のまぶしさをリアルに表現することができる。
【００２２】
また、多角錐や多角柱等の立体で表されている光輪においては、光が照射されるべき放射面とした底面を描画する必要はない。また、光輪オブジェクトを多数重ねて描画し、内側の立体と外側の立体とで明るさの異なるオブジェクトを生成することにより、まぶしさの表現を行うこともできる。
【００２３】
図６および図７は、上述の平面の光源により合成した画像の例を示している。図６は、前述のように、中心部が明るく、周辺に行くに従って明度が落ちるような光輪オブジェクトの大きさを、視線ベクトルと光源ベクトルとが構成する角度により変化させることにより、光を表示している。図６（ａ）、図６（ｂ）、図６（ｃ）に示されているように、光源が設置された物体が動くとともに、光源の向きが、表示画面の方向へと回転している。それに従って、光輪オブジェクトが大きくなることにより、まぶしさが表現されている。
【００２４】
図７には、２つの光源が物体に設置されている場合を示している。これは、例えば、自動車のヘッドライトに相当している。２つの光輪のオブジェクト内部には輝線が描かれている。２つの光輪オブジェクトが、図６と同様に、光源の向きが表示画面の方向へ動くとともに、それぞれの光輪オブジェクトを大きくするとともに、各光輪オブジェクトを回転させることにより、光源のまぶしさを表現している。
【００２５】
図８には、複数のオブジェクトにより、光源を表現する場合を示している。図８（ａ）には、元絵として用意してある光輪を表す図形を示している。図８（ａ）に示すように、元絵として用意している図形としては、円３１０，ドーナッツ形３２０，十字形３３０，ヒトデ形３４０等がある。これらの元絵から適宜選択して合成することにより、光輪オブジェクトを構成する。このとき、選択された各元絵の大きさや明るさ、色等を、上述のように、視線ベクトルと光源ベクトルとの角度により変化させて合成することにより、例えば図８（ｂ）に示すような光輪オブジェクト３００を構成する。合成する際には、加算やα加算描画を用いて行う。
また、選択する際にも、選択する元絵を変えて、合成することもできる。これは、例えば、光源と視線との方向により、明るく表現するときに、明るい元絵の枚数を増加させるように選択すると、より強く明るさを表現することができる。そして、光源と視線との方向によっては、元絵を全く選択しない場合（例えば、光源からの光が全く見えない場合等）もある。このように、元絵の選択に対しても、光源と視線との方向により変化させることにより、光の強さ等の表現の変化の幅を広げることができる。
【００２６】
選択された複数図形を、視線ベクトルと光源ベクトルとの角度により、各元絵の大きさ、明るさ、回転角等を変化させると共に、奥行きのあるように配置して合成することにより、光源のまぶしさ等をリアルに表現することができる。これを詳しく示したのが、図９である。図９（ａ）は、正面の方（視線ベクトルと光源ベクトルとの角度が小さい場合）から見た場合の光輪オブジェクトを示す。図９（ｂ）には、横の方（視線ベクトルと光源ベクトルとの角度が９０度に近い場合）が示されている。これからも分かるように、正面の方から見た場合（図９（ａ））には、中心部の円とヒトデ形とを組み合わせた図形を大きくして、しかも各図形の明るさを強くする（例えば、α加算描画において、αを大きくする）とともに、各図形を近づけて合成している。横から見た場合（図９（ｂ））は、中心部の図形を小さく、明るさを落とし、しかも各図形を離して、合成している。このようにして、図９（ａ）の方の光輪オブジェクトにより、図９（ｂ）の光輪オブジェクトと比較して、相対的に光源のまぶしさを表現することができる。
【００２７】
本発明は、スタンド・アローンのコンピュータ・システムばかりではなく、複数のシステムから構成される例えばクライアント・サーバ・システム等に適用してもよい。本発明に関するプログラムを格納した記憶媒体から、プログラムをシステムで読み出して実行することにより、本発明の構成を実現することができる。この記録媒体には、フロッピー・ディスク、ＣＤ−ＲＯＭ、磁気テープ、ＲＯＭカセット等がある。
【００２８】
【発明の効果】
本発明の光源表示を用いることにより、指向性のある光源のまぶしさを容易に表現することがでいる。
【図面の簡単な説明】
【図１】本発明が実施されるシステム構成の例を示すブロック図である。
【図２】光源の表現形態の例を示す図である。
【図３】光源の表現形態の例を示す図である。
【図４】光源の表現形態の例を示す図である。
【図５】光源の表現形態の例を示す図である。
【図６】光源をあらわした例を示す図である。
【図７】光源をあらわした他の例を示す図である。
【図８】複数の元絵を合成して光源を表すことを示す図である。
【図９】複数の元絵を合成して光源を表した例を示す図である。
【図１】
0004375840.tif 000002
【図２】
0004375840.tif 000003
【図３】
0004375840.tif 000004
【図４】
0004375840.tif 000005
【図５】
0004375840.tif 000006
【図６】
0004375840.tif 000007
【図７】
0004375840.tif 000008
【図８】
0004375840.tif 000009
【図９】
0004375840.tif 000010