(57)【要約】【課題】  ポリゴンの法線ベクトルを計算することなく、ポリゴンの表裏判定を行うことができる画像生成装置を提供する。【解決手段】  オブジェクトの頂点の座標情報を含むオブジェクト情報、及び視点と光源の座標情報を含む環境情報を受信する受信手段１０１と、オブジェクトの頂点と光源を視点座標に変換し、頂点の輝度値を計算し、オブジェクトを透視座標に変換する第１の変換手段１０２と、変換されたオブジェクトにクリッピングするクリッピング手段１０３と、クリッピングされたオブジェクトをポリゴンに分割し、スクリーン座標に変換する第２の変換手段１０３と、ポリゴンパラメータを算出する第１の算出手段１０３と、ポリゴンの表裏を判定する判定手段１０３と、表ポリゴンの頂点の座標情報から奥行値を算出し、オブジェクトの頂点の輝度値からポリゴンの輝度値を算出する第２の算出手段１０３と、それらを記憶手段１０４に格納する制御手段１０３とを備える。【選択図】  図１
2005346194.tif 000002
【特許請求の範囲】
【請求項１】
複数のポリゴンから構成されるオブジェクトの頂点の３次元座標における座標情報を少なくとも含むオブジェクト情報、及び前記オブジェクトに対する視点及び光源の前記３次元座標における座標情報を少なくとも含む環境情報を受信する受信手段と、
前記受信手段で受信された前記オブジェクトの頂点の座標情報及び前記光源の座標情報を、前記視点の位置を原点とする視点座標に変換し、前記視点座標における前記オブジェクトの頂点の輝度値を計算し、前記視点座標に変換された前記オブジェクトの頂点の座標情報を透視座標に変換する第１の変換手段と、
前記第１の変換手段で前記透視座標に変換された前記オブジェクトの描画範囲を決めるためのクリッピングを行うクリッピング手段と、
前記クリッピング手段でクリッピングされた前記オブジェクトをポリゴンに分割し、分割した前記ポリゴンを決められた描画範囲の隅を原点とするスクリーン座標に変換する第２の変換手段と、
前記第２の変換手段で前記スクリーン座標に変換された前記ポリゴンが表ポリゴンであるか裏ポリゴンであるかを判定するためのポリゴンパラメータを算出する第１の算出手段と、
前記第１の算出手段で算出された前記ポリゴンパラメータに基づいて、前記ポリゴンが表ポリゴンか裏ポリゴンかを判定する判定手段と、
前記判定手段で表ポリゴンと判定された前記ポリゴンに対して、前記スクリーン座標における前記ポリゴンの頂点の座標情報に基づいて、前記ポリゴンの頂点に囲まれた内部の奥行値を算出し、計算された前記オブジェクトの頂点の輝度値を補間することにより前記ポリゴンの頂点に囲まれた内部の輝度値を算出する第２の算出手段と、
前記第２の算出手段で算出された前記表ポリゴンの奥行値及び輝度値を記憶手段に格納する制御手段とを、
備える画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成効率を向上させる画像生成装置に関する。
【背景技術】
【０００２】
３次元空間におけるオブジェクトを構成するポリゴンの法線ベクトルと視点とのなす角度が９０度未満のポリゴンを表ポリゴン、９０度以上のポリゴンを裏ポリゴンとして、不透明オブジェクトの画像を生成する場合、表ポリゴンの奥行値及び輝度値をバッファに格納し、裏ポリゴンの処理を省略することにより画像生成効率を向上させる方法が知られている。また一方で、半透明オブジェクトの画像を生成する場合、先に裏ポリゴンの奥行値及び輝度値をバッファに格納し、次に表ポリゴンの奥行値及び輝度値をバッファに格納して陰面消去した画像を生成する方法が知られている。ここで、上述した表ポリゴン及び裏ポリゴンの判定にはポリゴンの法線ベクトルが用いられるため、法線ベクトルを計算する必要がある。法線ベクトルを計算して表ポリゴンと裏ポリゴンとの判定を行っている画像表示装置が下記の特許文献１に開示されている。なお、表ポリゴン及び裏ポリゴンについて図７を用いて説明する。図７には、ポリゴンａからｇにより構成されるオブジェクト７００と視点７０１とが示されている。図７に示すように、視点７０１とポリゴンａとを結ぶ視線７０２と、ポリゴンａの法線ベクトル７０３とのなす角度７０４は９０度未満である。すなわち、ポリゴンａは表ポリゴンということになる。また、視点７０１とポリゴンｂとを結ぶ視線７０５と、ポリゴンｂの法線ベクトル７０６とのなす角度７０７は９０度以上である。すなわち、ポリゴンｂは裏ポリゴンということになる。このように、他のポリゴンについても同様に考えると、ポリゴンｆ及びポリゴンｇは表ポリゴンであり、ポリゴンｃ、ポリゴンｄ、ポリゴンｅは裏ポリゴンである。このようにして、表ポリゴンか裏ポリゴンかが判定されている。
【特許文献１】特開平１１−２０３４８６号公報（段落００１０、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に開示されている技術のように、表ポリゴン及び裏ポリゴンの判定に用いられる法線ベクトルを計算することは、演算量を増大させてしまうという問題があった。
【０００４】
本発明は、上記問題を解決するためのものであり、ポリゴンの法線ベクトルを計算することなく、ポリゴンの表裏判定を行うことができる画像生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明によれば、複数のポリゴンから構成されるオブジェクトの頂点の３次元座標における座標情報を少なくとも含むオブジェクト情報、及び前記オブジェクトに対する視点及び光源の前記３次元座標における座標情報を少なくとも含む環境情報を受信する受信手段と、前記受信手段で受信された前記オブジェクトの頂点の座標情報及び前記光源の座標情報を、前記視点の位置を原点とする視点座標に変換し、前記視点座標における前記オブジェクトの頂点の輝度値を計算し、前記視点座標に変換された前記オブジェクトの頂点の座標情報を透視座標に変換する第１の変換手段と、前記第１の変換手段で前記透視座標に変換された前記オブジェクトの描画範囲を決めるためのクリッピングを行うクリッピング手段と、前記クリッピング手段でクリッピングされた前記オブジェクトをポリゴンに分割し、分割した前記ポリゴンを決められた描画範囲の隅を原点とするスクリーン座標に変換する第２の変換手段と、前記第２の変換手段で前記スクリーン座標に変換された前記ポリゴンが表ポリゴンであるか裏ポリゴンであるかを判定するためのポリゴンパラメータを算出する第１の算出手段と、前記第１の算出手段で算出された前記ポリゴンパラメータに基づいて、前記ポリゴンが表ポリゴンか裏ポリゴンかを判定する判定手段と、前記判定手段で表ポリゴンと判定された前記ポリゴンに対して、前記スクリーン座標における前記ポリゴンの頂点の座標情報に基づいて、前記ポリゴンの頂点に囲まれた内部の奥行値を算出し、計算された前記オブジェクトの頂点の輝度値を補間することにより前記ポリゴンの頂点に囲まれた内部の輝度値を算出する第２の算出手段と、前記第２の算出手段で算出された前記表ポリゴンの奥行値及び輝度値を記憶手段に格納する制御手段とを備える画像生成装置が提供される。
【発明の効果】
【０００６】
本発明の画像生成装置は、上記構成を有し、ポリゴンの法線ベクトルを計算することなく、ポリゴンの表裏判定を行うことができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態について図１から図６を用いて説明する。図１は本発明の実施の形態に係る画像生成装置の構成を示す構成図である。図２（ａ）は本発明の実施の形態に係る画像生成装置における視点座標について説明するための図である。図２（ｂ）は本発明の実施の形態に係る画像生成装置における透視座標について説明するための図である。図３は本発明の実施の形態に係る画像生成装置におけるスクリーン座標について説明するための図である。図４は本発明の実施の形態に係る画像生成装置におけるスクリーン座標に変換されたポリゴンを示す図である。図５は本発明の実施の形態に係る画像生成装置におけるポリゴンパラメータの算出について説明するためのフローチャートである。図６は本発明の実施の形態に係る画像生成装置における表ポリゴンと裏ポリゴンの中間の状態を示す図である。
【０００８】
まず、本発明の実施の形態に係る画像生成装置の構成について図１を用いて説明する。画像生成装置１００は、シーンデータ受信部１０１、頂点処理ユニット１０２、画素処理ユニット１０３、記憶部１０４、画像出力部１０５から構成されている。シーンデータ受信部１０１は、複数のポリゴンから構成されるオブジェクトの頂点の３次元座標における座標情報を少なくとも含むオブジェクト情報、及びオブジェクトに対する視点及び光源の３次元座標における座標情報を少なくとも含む環境情報を受信する。図１中のシーンデータとは、上述したオブジェクト情報及び環境情報を言う。ここで、オブジェクト情報には、オブジェクトの頂点の３次元座標における座標情報の他に、オブジェクトの色を表す情報などが含まれていてもよい。また、環境情報には、視点及び光源の３次元座標における座標情報の他に、視点の向き、視野などの情報や光源の向き、色、種類といった情報などが含まれていてもよい。シーンデータ受信部１０１は、受信した情報を頂点処理ユニット１０２へ引き渡す。
【０００９】
頂点処理ユニット１０２は、受信したオブジェクトの頂点の座標情報及び光源の座標情報を、視点の位置を原点とする視点座標に変換し、視点座標におけるオブジェクトの頂点の輝度値を計算し、視点座標に変換されたオブジェクトの頂点の座標情報を透視座標に更に変換する。なお、ここでは頂点処理ユニット１０２が頂点処理ユニット０〜３の４つから構成されているが、４つに限られるものではなく、１つであってもよい。また、オブジェクトの頂点の輝度値は、光源の色や位置に基づいて従来の手法により求める。ここで、上述した視点座標及び透視座標について図２（ａ）及び図２（ｂ）を用いて説明する。図２（ａ）に示すように、視点座標は視点Ｏを原点とし、視線の向きがＺ軸となるような座標系の座標である。また、視点Ｏにおける視野の範囲は、視点Ｏを基点とした直線ＯＡＥ、直線ＯＢＦ、直線ＯＣＧ、直線ＯＤＨに囲まれた範囲である。オブジェクトは視点Ｏを原点とした際の座標情報で表現される。なお、視点Ｏから四角形ＡＢＣＤの間に位置するオブジェクトは描画の対象にはならず、四角形ＡＢＣＤと四角形ＥＦＧＨとの間に位置するオブジェクトのみが描画の対象になる。また、透視座標は、図２（ｂ）に示すように、四角形ＡＢＣＤの中心を原点Ｏ'としたものである。
【００１０】
画素処理ユニット１０３は、透視座標に変換されたオブジェクトの描画範囲を決めるためのクリッピングを行う。なお、ここでは画素処理ユニット１０３が画素処理ユニット０〜３の４つから構成されているが、４つに限られるものではなく、１つであってもよい。クリッピングとは、画像を表示したり、図形を描画したりするときに、描画範囲をマスクすることを言う。画素処理ユニット１０３は、クリッピングされたオブジェクトをポリゴンに分割し、分割したポリゴンを決められた描画範囲の隅を原点とするスクリーン座標に変換する。ここで、スクリーン座標について図３を用いて説明する。図３に示すように、スクリーン座標は、上述した図２（ｂ）の透視座標の原点Ｏ'を四角形ＡＢＣＤ（以下、スクリーンＡＢＣＤとも言う）の隅にした座標系である。この場合のクリッピングされた描画範囲はスクリーンＡＢＣＤの範囲である。また、画素処理ユニット１０３は、スクリーン座標に変換されたポリゴンが表ポリゴンであるか裏ポリゴンであるかを判定するためのポリゴンパラメータを算出する。
【００１１】
ここで、ポリゴンパラメータの算出方法について図４及び図５を用いて説明する。図４は、スクリーン座標に変換されたポリゴンを示す図である。ポリゴンの頂点は、Ｖ［０］、Ｖ［１］、Ｖ［２］であり、それぞれｘ、ｙ、ｚ座標と輝度値ｉとから構成されている。図４に示すようなポリゴンを対象としてポリゴンパラメータを算出する。具体的なポリゴンパラメータの算出のフローについては図５を用いて説明する。図５に示すように、画素処理ユニット１０３は、処理する頂点Ｖ［ｊ］の頂点番号ｊを０に初期化し、スクリーン座標上のポリゴンの頂点におけるｙ座標の最小値ymini及び最大値ymaxをＶ［０］のｙ［０］の値に初期化し、ポリゴンパラメータｌｖ及びｒｖの値を０に初期化する（ステップＳ５０１）。画素処理ユニット１０３は、ｊの値が３より小さいか否かを判断する（ステップＳ５０２）。
【００１２】
ステップＳ５０２において、ｊの値が３以上の場合には処理を終了する。一方、ｊの値が３より小さいと判断された場合、画素処理ユニット１０３は、ｙ[ｊ]とyminiとの値が等しいか否かを判断する（ステップＳ５０３）。等しくないと判断された場合、後述するステップＳ５０８へ進む。一方、等しいと判断された場合、画素処理ユニット１０３は、ｘ[ｌｖ]がｘ[ｊ]よりも大きいか否かを判断する（ステップＳ５０４）。ｘ[ｌｖ]がｘ[ｊ]以下と判断された場合、後述するステップＳ５０６へ進む。一方、ｘ[ｌｖ]がｘ[ｊ]よりも大きいと判断された場合、画素処理ユニット１０３は、ｌｖにｊを代入する（ステップＳ５０５）。
【００１３】
次に、画素処理ユニット１０３は、ｘ[ｊ]がｘ[ｒｖ]以上か否かを判断する（ステップＳ５０６）。ｘ[ｊ]がｘ[ｒｖ]より小さいと判断された場合、後述するステップＳ５０８へ進む。一方、ｘ[ｊ]がｘ[ｒｖ]以上と判断された場合、画素処理ユニット１０３は、ｒｖにｊを代入する（ステップＳ５０７）。次に、画素処理ユニット１０３は、ｙ[ｊ]がyminiより小さいか否かを判断する（ステップＳ５０８）。ｙ[ｊ]がymini以上と判断された場合、後述するステップＳ５１０へ進む。一方、ｙ[ｊ]がyminiより小さいと判断された場合、画素処理ユニット１０３は、yminiにｙ[ｊ]を代入し、ｌｖ及びｒｖにｊを代入する（ステップＳ５０９）。
【００１４】
次に、画素処理ユニット１０３は、ｙ[ｊ]がymaxより大きいか否かを判断する（ステップＳ５１０）。ｙ[ｊ]がymax以下と判断された場合、後述するステップＳ５１２へ進む。一方、ｙ[ｊ]がymaxより大きいと判断された場合、画素処理ユニット１０３は、ymaxにｙ[ｊ]を代入する（ステップＳ５１１）。次に、画素処理ユニット１０３は、ｊに１を加えたものを３で割り、その余りをｎに代入し、頂点ｊに対応するスクリーン座標上のｙの増分ｄｙであるｙ[ｎ]−ｙ[ｊ]を計算する（ステップＳ５１２）。
【００１５】
次に、画素処理ユニット１０３は、ｄｙが０でないか否かを判断する（ステップＳ５１３）。ｄｙが０であると判断された場合、画素処理ユニット１０３は頂点ｊに対応するスクリーン座標上のｘの増分ｄｘ[ｊ]に０を代入する（ステップＳ５１５）。一方、ｄｙが０でないと判断された場合、画素処理ユニット１０３は、ｄｘ[ｊ]に（ｘ[ｎ]−ｘ[ｊ]）／ｄｙの値を代入する（ステップＳ５１４）。次に画素処理ユニット１０３は、ｊに１を加えたものを新たなｊとする（ステップＳ５１６）。そして、ステップＳ５０２以降の処理を繰り返す。これにより、ポリゴンパラメータであるｌｖ、ｒｖが算出される。
【００１６】
このように、ポリゴンパラメータｌｖ及びｒｖが算出された後、以下の式（１）及び式（２）を満たす場合に裏ポリゴンと判定され、式（３）を満たす場合に表ポリゴンと裏ポリゴンの中間の状態と画素処理ユニット１０３に判断される。なお、式（２）における「％」は、余りの記号である。すなわち、式（２）の右辺は、（３＋ｒｖ−１）を３で割った際の余りの値のｄｘということになる。また、表ポリゴンと裏ポリゴンの中間の状態とは、図６に示すように、ポリゴン６００の面とｘｚ平面とが平行になる状態を言う。
【００１７】
ｘ[ｌｖ]＝ｘ[ｒｖ]・・・（１）
【００１８】
ｄｘ[ｌｖ]＞ｄｘ[（３＋ｒｖ−１）％３]・・・（２）
【００１９】
ymini＝ymax・・・（３）
【００２０】
不透明オブジェクトの場合、式（１）及び式（２）を満たすポリゴンや式（３）を満たすポリゴン、すなわち表ポリゴン以外のポリゴンに対しては、後述するスクリーン座標の奥行値及び輝度値の算出をしないため、画像生成の効率が向上する。
【００２１】
ここで、スクリーン座標の奥行値及び輝度値の算出について説明する。画素処理ユニット１０３は、対象のポリゴンの頂点座標に基づいて、ポリゴンのスクリーン座標における傾きｄｚ／ｄｘ及びｄｚ／ｄｙを求め、傾きと頂点座標に基づいてポリゴンの頂点に囲まれた内部の奥行値を算出する。また、画素処理ユニット１０３は、ポリゴンの頂点の輝度値に基づいて、ポリゴンの頂点に囲まれた内部の輝度値を算出する。そして画素処理ユニット１０３は、算出したスクリーン座標に対応する奥行値を記憶部１０４より読み出し、算出した奥行値と比較し、算出した奥行値が小さい場合、算出した奥行値及び輝度値を記憶部１０４に格納する。なお、奥行値及び輝度値の算出は、従来からの方法を用いることができるため詳細な説明は省略する。また、ポリゴンのスクリーン座標における傾きｄｚ／ｄｘ及びｄｚ／ｄｙは、上述したポリゴンパラメータを算出する過程で算出しておいてもよい。
【００２２】
画像出力部１０５は、記憶部１０４から読み出された輝度値に基づいて、画像を生成し、不図示の表示手段に画像を表示させる。なお、画像生成についても従来と同様の方法によって行われる。以上のように、本発明の画像生成装置によればポリゴンの法線ベクトルを計算することなく、ポリゴンの表裏判定を行うことができるため、画像生成の効率を向上させることができる。
【産業上の利用可能性】
【００２３】
本発明に係る画像生成装置は、ポリゴンの法線ベクトルを計算することなく、ポリゴンの表裏判定を行うことができるため、半透明オブジェクト及び不透明オブジェクトの画像生成効率を向上させる画像生成装置などに有用である。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係る画像生成装置の構成を示す構成図である。
【図２】（ａ）本発明の実施の形態に係る画像生成装置における視点座標について説明するための図である。（ｂ）本発明の実施の形態に係る画像生成装置における透視座標について説明するための図である。
【図３】本発明の実施の形態に係る画像生成装置におけるスクリーン座標について説明するための図である。
【図４】本発明の実施の形態に係る画像生成装置におけるスクリーン座標に変換されたポリゴンを示す図である。
【図５】本発明の実施の形態に係る画像生成装置におけるポリゴンパラメータの算出について説明するためのフローチャートである。
【図６】本発明の実施の形態に係る画像生成装置における表ポリゴンと裏ポリゴンの中間の状態を示す図である。
【図７】表ポリゴン及び裏ポリゴンについて説明するための図である。
【符号の説明】
【００２５】
１００  画像生成装置
１０１  シーンデータ受信部（受信手段）
１０２  頂点処理ユニット（第１の変換手段）
１０３  画素処理ユニット（クリッピング手段、第２の変換手段、第１の算出手段、第２の算出手段、判定手段、制御手段）
１０４  記憶部（記憶手段）
１０５  画像出力部
６００、ａ〜ｇ  ポリゴン
７００  オブジェクト
７０１  視点
７０２、７０５  視線
７０３、７０６  法線ベクトル
７０４、７０７  視線と法線ベクトルのなす角度
【図１】
2005346194.tif 000003
【図２】
2005346194.tif 000004
【図３】
2005346194.tif 000005
【図４】
2005346194.tif 000006
【図５】
2005346194.tif 000007
【図６】
2005346194.tif 000008
【図７】
2005346194.tif 000009