(57)【要約】【課題】ポリゴンの座標変換計算値に誤差が生じても正しく影付け処理を行う。【解決手段】演算部５は、視点座標変換処理装置１からの視点座標および奥行き値に基づいて、通常ポリゴンに対する隠面消去処理を行い、ピクセルメモリ６とＺバッファメモリ７とを更新する。さらに、求めた各ポリゴンの奥行き値とＺバッファメモリ７に格納されたＺ値との比較結果に基づいて、視点から見て裏向き影ポリゴンよりも手前にあり且つ表向き影ポリゴンよりも後ろにある座標領域に対してのみ影付けを行い、ピクセルメモリ６を更新する。その結果、ポリゴンの図形データの座標変換値に誤差が生じても、影を付けたくない影ポリゴンの端部に影が付くことはない。【選択図】  図１
2004272635.tif 000002
【特許請求の範囲】
【請求項１】
表示対象物における視点からの奥行きを表すＺ値が各画素毎に格納されたＺバッファメモリおよび各画素の色情報が記憶されたピクセルメモリを有して、光源からの光線を３次元物体が遮ることによって生じる影が付けられた影付き物体の画像を生成する図形処理装置であって、
上記３次元物体を含む各物体を構成する通常ポリゴンと上記３次元物体が光源からの光線を遮ることによって生じる影空間を規定するシャドーボリュームを構成する影ポリゴンとの図形データが入力されて、この図形データを視点座標と奥行き値とに変換し、得られた視点座標および奥行き値を、視点から見て表向きとなる表向き影ポリゴンと裏向きとなる裏向き影ポリゴンと上記通常ポリゴンとの別に出力する視点座標変換処理部と、
上記視点座標および奥行き値と上記Ｚバッファメモリとに基づいて、上記通常ポリゴンに対するＺバッファ法による隠面消去処理を行った後に、上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域を求め、この求めた座標領域に対応する上記ピクセルメモリにおける画素の色情報を影の色情報で更新する隠面消去・影付け処理部
を備えたことを特徴とする図形処理装置。
【請求項２】
請求項１に記載の図形処理装置において、
上記Ｚバッファメモリおよびピクセルメモリは、１画面における１ライン分の容量を有しており、
上記視点座標変換処理部および隠面消去・影付け処理部は、１ライン毎に処理を行うようになっている
ことを特徴とする図形処理装置。
【請求項３】
請求項１に記載の図形処理装置において、
上記隠面消去・影付け処理部は、上記シャドーボリュームが複数存在する場合には、夫々のシャドーボリューム毎に上記影ポリゴンに関する処理を行うようになっていることを特徴とする図形処理装置。
【請求項４】
表示対象物における視点からの奥行きを表すＺ値が各画素毎に格納されたＺバッファメモリおよび各画素の色情報が記憶されたピクセルメモリを有して、光源からの光線を３次元物体が遮ることによって生じる影が付けられた影付き物体の画像を生成する図形処理装置であって、
上記３次元物体を含む各物体を構成する通常ポリゴンの図形データが入力されて、この図形データを視点座標と奥行き値とに変換する通常ポリゴン変換部と、
上記３次元物体が光源からの光線を遮ることによって生じる影空間を規定するシャドーボリュームを構成する影ポリゴンの図形データが入力されて、この図形データを視点座標と奥行き値とに変換すると共に、視点から見て表向きとなる表向き影ポリゴンの視点座標および奥行き値と上記視点から見て裏向きとなる裏向き影ポリゴンの視点座標および奥行き値とに仕分けして出力する影ポリゴン変換部と、
上記通常ポリゴンの視点座標および奥行き値に基づいて上記通常ポリゴンに対してＺバッファ法による隠面消去処理を行い、この処理結果に基づいて、上記ピクセルメモリおよびＺバッファメモリにおける各画素の色情報およびＺ値を更新する通常ポリゴン処理部と、
上記裏向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値とに基づいて、上記視点から見て上記裏向き影ポリゴンよりも手前に位置する座標領域を求める裏向き影ポリゴン処理部と、
上記裏向き影ポリゴンよりも手前に位置する視点座標を表すフラグ値が格納された影フラグメモリと、
上記表向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値と上記フラグ値とに基づいて、上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域を求め、上記ピクセルメモリにおける上記求められた座標領域に対応する画素の色情報を影の色情報で更新する表向き影ポリゴン処理部
を備えたことを特徴とする図形処理装置。
【請求項５】
請求項４に記載の図形処理装置において、
上記Ｚバッファメモリ，ピクセルメモリおよび影フラグメモリは、１画面における１ライン分の容量を有しており、
上記通常ポリゴン変換部，影ポリゴン変換部，通常ポリゴン処理部，裏向き影ポリゴン処理部および表向き影ポリゴン処理部は、１ライン毎に処理を行うようになっている
ことを特徴とする図形処理装置。
【請求項６】
請求項４に記載の図形処理装置において、
上記裏向き影ポリゴン処理部および表向き影ポリゴン処理部は、上記シャドーボリュームが複数存在する場合には、夫々のシャドーボリューム毎に上記影ポリゴンに関する処理を行うようになっていることを特徴とする図形処理装置。
【請求項７】
請求項４に記載の図形処理装置において、
上記通常ポリゴン変換部，影ポリゴン変換部，通常ポリゴン処理部，裏向き影ポリゴン処理部および表向き影ポリゴン処理部は、携帯機器に搭載されていることを特徴とする図形処理装置。
【請求項８】
請求項７に記載の図形処理装置において、
上記携帯機器は、通信ネットワークに接続可能になっており、上記通信ネットワークを介した通信によって、上記図形データを取得するようになっていることを特徴とする図形処理装置。
【請求項９】
表示対象物における視点からの奥行きを表すＺ値が各画素毎に格納されたＺバッファメモリおよび各画素の色情報が記憶されたピクセルメモリを用いて、光源からの光線を３次元物体が遮ることによって生じる影が付けられた影付き物体の画像を生成する図形処理方法であって、
上記３次元物体を含む各物体を構成する通常ポリゴンの図形データを視点座標と奥行き値とに変換し、
上記３次元物体が光源からの光線を遮ることによって生じる影空間を規定するシャドーボリュームを構成する影ポリゴンの図形データを視点座標と奥行き値とに変換すると共に、視点から見て表向きとなる表向き影ポリゴンの視点座標および奥行き値と上記視点から見て裏向きとなる裏向き影ポリゴンの視点座標および奥行き値とに仕分けし、
上記通常ポリゴンの視点座標および奥行き値に基づいて上記通常ポリゴンに対してＺバッファ法による隠面消去処理を行い、この処理結果に基づいて、上記ピクセルメモリおよびＺバッファメモリにおける各画素の色情報およびＺ値を更新し、
上記裏向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値とに基づいて、上記視点から見て上記裏向き影ポリゴンよりも手前に位置する座標領域を求め、
上記表向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値とに基づいて、上記視点から見て上記表向き影ポリゴンよりも後に位置する座標領域を求め、
上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域に対応する上記ピクセルメモリの画素の色情報を影の色情報で更新する
ことを特徴とする図形処理方法。
【請求項１０】
コンピュータを、
請求項４における通常ポリゴン変換部，影ポリゴン変換部，通常ポリゴン処理部，裏向き影ポリゴン処理部および表向き影ポリゴン処理部
として機能させることを特徴とする図形処理プログラム。
【請求項１１】
請求項１０に記載の図形処理プログラムが記録されたことを特徴とするコンピュータ読出し可能なプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、簡易な構成で３次元物体に対して高速に影付け処理を行うことができる図形処理装置，図形処理方法，図形処理プログラムおよびプログラム記録媒体に関する。
【０００２】
【従来の技術】
従来、３次元物体の影付け処理を行う図形処理装置として、Ｚバッファ法やスキャンライン・Ｚバッファ法を用いた隠面消去装置に、影ポリゴンを用いた影付け処理を適用した装置がある（特許文献１参照）。
【０００３】
この図形処理装置においては、画素毎に輝度および色情報を格納するフレームバッファメモリ、画素毎に奥行きＺを格納するＺバッファメモリ、影度数をカウントするカウンタメモリを有している。そして、３次元物体の影付け処理を、次のようにして行う。
【０００４】
先ず、Ｚバッファ法を用いた隠面消去処理によって、３次元図形表示における視点から見て手前の物体で隠れる面を表示しないようにする。すなわち、上記フレームバッファメモリを背景色で満たし、上記Ｚバッファメモリを奥行き最大値で満たしておく。そして、図１２における多面体Ｑの面ポリゴンＡＢＣ，ＡＤＢ，ＢＤＣ，ＡＤＣを視点座標系に変換し、各面ポリゴンに関して、画素毎に、その画素の座標（ｉ，ｊ）に対応する奥行きＺ（ｉ，ｊ）とＺバッファメモリに格納された奥行きＺＭ（ｉ，ｊ）とを比較する。そして、ＺＭ（ｉ，ｊ）＞Ｚ（ｉ，ｊ）であれば上記フレームバッファメモリの値Ｉ（ｉ，ｊ）を上記多面体Ｑにおける画素（ｉ，ｊ）の色情報（輝度も含む）Ｃ（ｉ，ｊ）に置き換え、Ｚバッファメモリの値ＺＭ（ｉ，ｊ）を上記画素（ｉ，ｊ）の奥行きＺ（ｉ，ｊ）に置き換える。これに対して、ＺＭ（ｉ，ｊ）≦Ｚ（ｉ，ｊ）の場合には、上記フレームバッファメモリおよびＺバッファメモリの値Ｉ（ｉ，ｊ），ＺＭ（ｉ，ｊ）の更新は行わない。
【０００５】
こうして、手前の物体（面ポリゴン）で隠れる面（面ポリゴンや背景）は、表示されないように消去される。その結果、図１２に示すように、視点から見て多面体Ｑよりも後側である背景が多面体Ｑに置き換えられるのである。
【０００６】
次に、光源Ｐからの光が多面体Ｑによって遮られることによって生ずる影空間を定義するシャドーポリゴンＡＥＦＢ，ＣＢＦＧ，ＡＥＧＣを求めて視点座標系に変換する。そして、この変換したシャドーポリゴンＡＥＦＢ，ＣＢＦＧ，ＡＥＧＣと、先に求めた多面体Ｑの面ポリゴンのうち光源Ｐに対して裏となる面ポリゴンＡＤＢ，ＢＤＣとを、視点に対して表と裏とに分類する。この場合、視点に対して裏の面ポリゴンＡＤＣは、上記隠面消去処理によって消去されているため実際には存在しない。そうした後、上記影付け処理を行う。
【０００７】
すなわち、上記カウンタメモリの値Ｃｕ（ｉ，ｊ）（影度数）を、予め零に設定しておく。その場合、上記Ｚバッファメモリには上述の隠面消去処理による最終結果の奥行きＺＭ（ｉ，ｊ）が格納されている。そして、上記シャドーポリゴンＡＥＦＢ，ＣＢＦＧ，ＡＥＧＣと光源Ｐに対して裏となる面ポリゴンＡＤＢ，ＢＤＣとの各画素に関して、その画素（ｉ，ｊ）の奥行きＺＳ（ｉ，ｊ）とＺバッファメモリの値ＺＭ（ｉ，ｊ）とを比較する。そして、この比較結果に基づいて上記カウンタメモリの影度数を決定するのである。この処理は、上記シャドーポリゴンと光源Ｐに対して裏となる面ポリゴンとの重なり毎に実行される。
【０００８】
詳しく言えば、
（ａ）  表のシャドーポリゴン（ＡＥＦＢ，ＣＢＦＧ）と面ポリゴン（ＡＤＢ，ＢＤＣ）  との組み合せについて
2004272635.tif 000003
（ｂ）  裏のシャドーポリゴン（ＡＥＧＣ）と面ポリゴン（ＡＤＢ，ＢＤＣ）との組み合せについて
2004272635.tif 000004
となる。
【０００９】
総ての表・裏のシャドーポリゴンと面ポリゴンに関して上記（ａ），（ｂ）の処理を終了した後、上記カウンタメモリの値Ｃｕ（ｉ，ｊ）を読み出し、
2004272635.tif 000005
の処理を行う。
【００１０】
以上の処理によって影付け処理が終了する。その結果、多面体Ｑの面ポリゴンにおける光源Ｐに対して裏となる面ポリゴンＡＤＢ，ＢＤＣ上に、表となる面ポリゴンＡＢＣによって生ずる影が付与されるのである。
【００１１】
さらに、上記影ポリゴンを用いた影付け処理方法として、「ＯｐｅｎＧＬ」（非特許文献１参照）や「Ｍｉｃｒｏｓｏｆｔ  ＤｉｒｅｃｔＸ」の機能を用いる方法がある。これらの影付け処理方法においては、光源からの光線を物体が遮ることによって生じる影空間を規定するシャドーボリュームを定義すると共に、ステンシルバッファを設けて、以下のようにして影付け処理を行う。以下、ＯｐｅｎＧＬによる影付け処理方法について簡単に説明する。
【００１２】
図１３は、上述した特許文献１におけるフレームバッファに相当するカラーバッファとステンシルバッファとに対する操作結果を示す。尚、図１３（ａ）は上記カラーバッファの内容であり、図１３（ｃ）は上記ステンシルバッファの内容である。特許文献１の場合と同様にして、Ｚバッファ法による隠面消去処理を行って上記カラーバッファおよびＺバッファの内容を更新しておく。その結果、図１３（ａ−１）に示すように、正方形の面ポリゴン１０１と影を落すべき曲面の面ポリゴン１０２がカラーバッファ内に格納される。
【００１３】
そうすると、先ず、上記シャドーボリュームを構成する影ポリゴンの図形データを作成することによって、図１３（ｂ）に示すように、面ポリゴン１０１と仮想底面（例えばＹ座標が０の面）との間に在って光が差し込まない６面体で囲まれた空間で成るシャドーボリューム１０３を形成する。次に、シャドーボリューム１０３の表面情報をステンシルバッファに書き込む。つまり、視点から見て表向きとなる表向き影ポリゴンに対して、ポリゴンの奥行き値がＺバッファのＺ値よりも小さいか否かを判定する「デプステスト」を行い、図１３（ｃ−１）に示すように、ステンシルバッファにおける上記デプステスト結果が「真」である表向き影ポリゴンの領域に「１」を書き込む。その結果、図１３（ｂ）に示す表向き影ポリゴンにおける面ポリゴン１０２よりも図中下側がカットされる。
【００１４】
次に、上記シャドーボリューム１０３の裏面情報をステンシルバッファに書き込む。つまり、視点から見て裏向きとなる裏向き影ポリゴンに対して上記デプステストを行い、ステンシルバッファ内におけるデプステスト結果が「真」である裏向き影ポリゴンの領域に「−１」を加算する。その結果、図１３（ｃ−２）に示すように、ステンシルバッファにおける影が落ちる面ポリゴン１０２とシャドーボリューム１０３とが交わる領域１０４のみの値が「１」となる。
【００１５】
最後に、図１３（ａ−４）に示すように、上記ステンシルバッファの値が「１」である領域１０４に相当する上記カラーバッファの領域１０５に影の色情報を格納する。以上のようにして、曲面の面ポリゴン１０２上に面ポリゴン１０１の影がレンダリングされるのである。
【００１６】
【特許文献１】
特公平０１‐４６９１５号公報
【非特許文献１】
「月刊  Ｃ  ＭＡＧＡＺＩＮＥ  ２００１  ８」ソフトバンクパブリッシング株式会社発行、２００１年８月、ｐ．３０‐３２
【００１７】
【発明が解決しようとする課題】
しかしながら、上記従来の影ポリゴンを用いた影付け処理方法においては以下のような問題がある。すなわち、特許文献１に開示された図形処理装置においては、図１２において、多面体Ｑの影が落ちる地面等の物体（面ポリゴンＨＩＪＫＬＤＭ）が存在する場合を考える。その場合、この面ポリゴンＨＩＪＫＬＤＭは光源Ｐに対して表となるため、地面（ＨＩＪＫＬＤＭ）上の領域ＥＦＧには影付け処理が行われないことになる。したがって、地面の面ポリゴンＨＩＪＫＬＤＭ上に多面体Ｑの影を付与することができないのである。
【００１８】
また、上記非特許文献１に開示されたＯｐｅｎＧＬの機能を用いた影付け処理方法においては、物体の影を落すべき曲面に対して上記物体の影を付与することは可能である。ところが、ポリゴンの座標変換計算値に誤差が生じた場合には、本来は影付けを行うべきではないシャドーポリゴンの端の部分にも影が付いてしまうという問題がある。
【００１９】
例えば、上記ポリゴンの座標変換計算値に誤差が生じた結果、図１４に示すごとく、表向き影ポリゴンＲＳ（Ｔ）Ｕ，Ｕ（Ｔ）ＸＹと裏向き影ポリゴンＲＳＶＷ，ＷＶＸＹ，ＲＷＹＵとにずれが生じ、表向き影ポリゴンＲＳ（Ｔ）Ｕの辺ＲＳが裏向き影ポリゴンＲＳＶＷの辺ＲＳよりも視点から見て左裏側にずれたとする。その場合、表向き影ポリゴンＲ’Ｓ’Ｔ’Ｕ’の側部Ｒ’Ｓ’ＳＲが裏向き影ポリゴンＲＳＶＷよりも外側に位置することになる。そのために、上記ステンシルバッファにおける領域Ｒ’Ｓ’ＳＲに書き込まれた表面情報「１」が裏面情報「−１」によって消されること無く残り、表向き影ポリゴンＲ’Ｓ’Ｔ’Ｕ’の側部における影を付けたくない領域Ｒ’Ｓ’ＳＲに、影が付いてしまうのである。
【００２０】
そこで、この発明の目的は、ポリゴンの座標変換計算値に誤差が生じても正しく影付け処理を行うことができる図形処理装置，図形処理方法，図形処理プログラムおよびプログラム記録媒体を提供することにある。
【００２１】
【課題を解決するための手段】
上記目的を達成するため、この発明の図形処理装置は、表示対象物における視点からの奥行きを表すＺ値が各画素毎に格納されたＺバッファメモリおよび各画素の色情報が記憶されたピクセルメモリを有して、光源からの光線を３次元物体が遮ることによって生じる影が付けられた影付き物体の画像を生成する際に、上記３次元物体を含む各物体を構成する通常ポリゴンと，上記３次元物体が光源からの光線を遮ることによって生じる影空間を規定するシャドーボリュームを構成する影ポリゴンとの図形データが入力されて、この図形データを視点座標と奥行き値とに変換し、得られた視点座標および奥行き値を、視点から見て表向きとなる表向き影ポリゴンと裏向きとなる裏向き影ポリゴンと上記通常ポリゴンとの別に出力する視点座標変換処理部と、上記視点座標および奥行き値と上記Ｚバッファメモリとに基づいて、上記通常ポリゴンに対するＺバッファ法による隠面消去処理を行った後に、上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域を求め、この求めた座標領域に対応する上記ピクセルメモリにおける画素の色情報を影の色情報で更新する隠面消去・影付け処理部を備えている。
【００２２】
上記構成によれば、表示対象となる総ての物体を構成する通常ポリゴンを対象として影付け処理が行われる。したがって、光源に対して表となる地面等の平面ポリゴンに対しても他の３次元物体の影を付けることが可能になる。その際に、上記シャドーボリュームを構成する影ポリゴンを視点から見て表向きとなる表向き影ポリゴンと裏向きとなる裏向き影ポリゴンとに分け、上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域に影が付けられる。そのために、上記視点座標変換処理部による変換計算値に誤差が生じた場合でも、影を付けるべきではない影ポリゴンの端の部分に影が付くことはない。
【００２３】
その結果、上記視点座標変換処理部の構成を簡略化することが可能になり、小型化，低消費電力化，低価格化を図ることが可能になる。
【００２４】
また、１実施例の図形処理装置では、上記Ｚバッファメモリおよびピクセルメモリを１画面における１ライン分の容量に成し、上記視点座標変換処理部および隠面消去・影付け処理部を１ライン毎に処理を行うようにしている。
【００２５】
この実施例によれば、上記視点座標変換処理部および隠面消去・影付け処理部の処理が終了する毎に消去される上記Ｚバッファメモリおよびピクセルメモリには、１ライン分のみのＺ値および色情報が格納される。したがって、上記Ｚバッファメモリおよびピクセルメモリの容量が小さくなり、更なる小型化，低消費電力化，低価格化を図ることが可能になる。
【００２６】
また、１実施例の図形処理装置では、上記隠面消去・影付け処理部を、上記シャドーボリュームが複数存在する場合には、夫々のシャドーボリューム毎に上記影ポリゴンに関する処理を行うようにしている。
【００２７】
この実施例によれば、影を落とす対象となる３次元物体が複数あってシャドーボリュームも複数設定されるような場合でも、表示対象となる物体に対して、正しく影が付けられる。
【００２８】
また、この発明の図形処理装置は、表示対象物における視点からの奥行きを表すＺ値が各画素毎に格納されたＺバッファメモリおよび各画素の色情報が記憶されたピクセルメモリを有して、光源からの光線を３次元物体が遮ることによって生じる影が付けられた影付き物体の画像を生成するに際して、上記３次元物体を含む各物体を構成する通常ポリゴンの図形データが入力されて，この図形データを視点座標と奥行き値とに変換する通常ポリゴン変換部と、上記３次元物体が光源からの光線を遮ることによって生じる影空間を規定するシャドーボリュームを構成する影ポリゴンの図形データが入力されて，この図形データを視点座標と奥行き値とに変換すると共に，視点から見て表向きとなる表向き影ポリゴンの視点座標および奥行き値と上記視点から見て裏向きとなる裏向き影ポリゴンの視点座標および奥行き値とに仕分けして出力する影ポリゴン変換部と、上記通常ポリゴンの視点座標および奥行き値に基づいて上記通常ポリゴンに対してＺバッファ法による隠面消去処理を行い，この処理結果に基づいて，上記ピクセルメモリおよびＺバッファメモリにおける各画素の色情報およびＺ値を更新する通常ポリゴン処理部と、上記裏向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値とに基づいて，上記視点から見て上記裏向き影ポリゴンよりも手前に位置する座標領域を求める裏向き影ポリゴン処理部と、上記裏向き影ポリゴンよりも手前に位置する視点座標を表すフラグ値が格納された影フラグメモリと、上記表向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値と上記フラグ値とに基づいて，上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域を求め，上記ピクセルメモリにおける上記求められた座標領域に対応する画素の色情報を影の色情報で更新する表向き影ポリゴン処理部を備えている。
【００２９】
上記構成によれば、表示対象となる総ての物体を構成する通常ポリゴンを対象として影付け処理が行われる。したがって、光源に対して表となる地面等の平面ポリゴンに対しても他の３次元物体の影を付けることが可能になる。その際に、上記シャドーボリュームを構成する影ポリゴンを視点から見て表向きとなる表向き影ポリゴンと裏向きとなる裏向き影ポリゴンとに分け、上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域に影が付けられる。そのために、上記通常ポリゴン変換部および影ポリゴン変換部による変換計算値に誤差が生じた場合でも、影を付けるべきではない影ポリゴンの端の部分に影が付くことはない。
【００３０】
その結果、上記通常ポリゴン変換部および影ポリゴン変換部の構成を簡略化することが可能になり、小型化，低消費電力化，低価格化を図ることが可能になる。
【００３１】
また、１実施例の図形処理装置では、上記Ｚバッファメモリ，ピクセルメモリおよび影フラグメモリを１画面における１ライン分の容量に成し、上記通常ポリゴン変換部，影ポリゴン変換部，通常ポリゴン処理部，裏向き影ポリゴン処理部および表向き影ポリゴン処理部を１ライン毎に処理を行うようにしている。
【００３２】
この実施例によれば、上記通常ポリゴン変換部，影ポリゴン変換部，通常ポリゴン処理部，裏向き影ポリゴン処理部および表向き影ポリゴン処理部の処理が終了する毎に消去される上記Ｚバッファメモリ，ピクセルメモリおよび影フラグメモリには、１ライン分のみのＺ値，色情報およびフラグ値が格納される。したがって、上記シャドーボリュームが存在しないラインについては影フラグメモリを消去する必要がなく、その分だけ影付け処理全体の時間を短縮することができる。さらに、上記Ｚバッファメモリ，ピクセルメモリおよび影フラグメモリの容量が小さくなり、更なる小型化，低消費電力化，低価格化を図ることが可能になる。
【００３３】
また、１実施例の図形処理装置では、上記裏向き影ポリゴン処理部および表向き影ポリゴン処理部を、上記シャドーボリュームが複数存在する場合には、夫々のシャドーボリューム毎に上記影ポリゴンに関する処理を行うようにしている。
【００３４】
この実施例によれば、影を落とす対象となる３次元物体が複数あってシャドーボリュームも複数設定されるような場合でも、表示対象となる物体に対して、正しく影が付けられる。
【００３５】
また、１実施例の図形処理装置では、上記通常ポリゴン変換部，影ポリゴン変換部，通常ポリゴン処理部，裏向き影ポリゴン処理部および表向き影ポリゴン処理部を、携帯機器に搭載している。
【００３６】
この実施例によれば、ゲーム機等の携帯機器において、簡略化された構成によって、視覚的に問題の無いグラフィックス処理を行うことが可能になる。
【００３７】
また、１実施例の図形処理装置では、上記携帯機器を、通信ネットワークに接続可能にし、上記通信ネットワークを介した通信によって上記図形データを取得するようにしている。
【００３８】
この実施例によれば、影付け処理対象となる図形データを、上記通信ネットワークを介して取得することが可能になる。したがって、本図形処理装置の利便性が向上する。
【００３９】
また、この発明の図形処理方法は、表示対象物における視点からの奥行きを表すＺ値が各画素毎に格納されたＺバッファメモリおよび各画素の色情報が記憶されたピクセルメモリを用いて、光源からの光線を３次元物体が遮ることによって生じる影が付けられた影付き物体の画像を生成するに際して、上記３次元物体を含む各物体を構成する通常ポリゴンの図形データを視点座標と奥行き値とに変換し、上記３次元物体が光源からの光線を遮ることによって生じる影空間を規定するシャドーボリュームを構成する影ポリゴンの図形データを視点座標と奥行き値とに変換すると共に，視点から見て表向きとなる表向き影ポリゴンの視点座標および奥行き値と上記視点から見て裏向きとなる裏向き影ポリゴンの視点座標および奥行き値とに仕分けし、上記通常ポリゴンの視点座標および奥行き値に基づいて上記通常ポリゴンに対してＺバッファ法による隠面消去処理を行い，この処理結果に基づいて，上記ピクセルメモリおよびＺバッファメモリにおける各画素の色情報およびＺ値を更新し、上記裏向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値とに基づいて，上記視点から見て上記裏向き影ポリゴンよりも手前に位置する座標領域を求め、上記表向き影ポリゴンの視点座標および奥行き値と上記隠面消去処理後のＺ値とに基づいて，上記視点から見て上記表向き影ポリゴンよりも後に位置する座標領域を求め、上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域に対応する上記ピクセルメモリの画素の色情報を影の色情報で更新するようにしている。
【００４０】
上記構成によれば、表示対象となる総ての物体を構成する通常ポリゴンを対象として影付け処理が行われる。したがって、光源に対して表となる地面等の平面ポリゴンに対しても他の３次元物体の影を付けることが可能になる。その際に、視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域に影が付けられる。そのために、上記通常ポリゴンおよび影ポリゴンの図形データに対する変換計算値に誤差が生じた場合でも、影を付けるべきではない影ポリゴンの端の部分に影が付くことはない。
【００４１】
その結果、上記通常ポリゴンおよび影ポリゴンの図形データを視点座標および奥行き値に変換する手段の構成を簡略化することが可能になり、小型化，低消費電力化，低価格化を図ることが可能になる。
【００４２】
また、この発明の図形処理プログラムは、コンピュータを、この発明の図形処理装置における通常ポリゴン変換部，影ポリゴン変換部，通常ポリゴン処理部，裏向き影ポリゴン処理部および表向き影ポリゴン処理部として機能させる。
【００４３】
上記構成によれば、表示対象となる総ての物体を構成する通常ポリゴンを対象として影付け処理が行われて、光源に対して表となる地面等の平面ポリゴンに対しても他の３次元物体の影が付けられる。その際に、視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域に影が付けられるため、上記通常ポリゴンおよび影ポリゴンの図形データに対する変換計算値に誤差が生じた場合でも、影を付けるべきではない影ポリゴンの端の部分に影が付くことはない。
【００４４】
また、この発明のプログラム記録媒体は、この発明の図形処理プログラムが記録されている。
【００４５】
上記構成によれば、コンピュータによって読み出して実行することによって、表示対象となる総ての物体を構成する通常ポリゴンを対象として影付け処理が行われて、光源に対して表となる地面等の平面ポリゴンに対しても他の３次元物体の影が付けられる。その際に、視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域に影が付けられるため、上記通常ポリゴンおよび影ポリゴンの図形データに対する変換計算値に誤差が生じた場合でも、影を付けるべきではない影ポリゴンの端の部分に影が付くことはない。
【００４６】
【発明の実施の形態】
以下、この発明を図示の実施の形態により詳細に説明する。図１は、本実施の形態の図形処理装置におけるブロック図である。
【００４７】
図１において、本図形処理装置は、視点座標変換処理装置１および隠面消去・影付け処理装置４で概略構成されている。そして、視点座標変換処理装置１は、通常ポリゴン変換部２および影ポリゴン変換部３を含んで構成されて、入力された通常ポリゴンおよび影ポリゴンの図形データを、画面上の座標（視点座標）および奥行き値に変換して隠面消去・影付け処理装置４の演算部５に出力する。ここで、上記通常ポリゴンは物体を構成するポリゴンであり、上記影ポリゴンはシャドーボリュームを構成するポリゴンである。
【００４８】
その際に、上記通常ポリゴン変換部２は、上記通常ポリゴンの図形データを視点座標および奥行き値に変換する。一方、影ポリゴン変換部３は、上記影ポリゴンの図形データに基づいて、各影ポリゴンを視点から見て裏向きとなる裏向き影ポリゴンと視点から見て表向きとなる表向き影ポリゴンに分離する。さらに、各影ポリゴンの図形データを視点座標および奥行き値に変換する。そして、こうして得られた各視点座標および奥行き値を、上記通常ポリゴンと裏向き影ポリゴンと表向き影ポリゴンとに仕分けして隠面消去・影付け処理装置４に出力するのである。
【００４９】
上記隠面消去・影付け処理装置４は、上記演算部５に加えて、演算部５とバス９を介して接続されたピクセルメモリ６，Ｚバッファメモリ７および影フラグメモリ８を含んで構成されている。そして、視点座標変換処理装置１から入力された視点座標および奥行き値に基づいて、後に詳述するようにして各種の処理を行う。その際に、ピクセルメモリ６には各画素の色情報が記憶される。また、Ｚバッファメモリ７には各画素の奥行き値（Ｚ値）が記憶される。また、影フラグメモリ８には各画素の影内外判定に用いる影フラグが記憶される。
【００５０】
図２は、上記隠面消去・影付け処理装置４の機能的な構成を示す機能ブロック図である。図２において、上記演算部５は、通常ポリゴン処理部１１，裏向き影ポリゴン処理部１２，表向き影ポリゴン処理部１３および比較器１４を含んで構成されている。そして、通常ポリゴン処理部１１は、入力された上記通常ポリゴンの視点座標および奥行き値に基づいて、比較器１４を制御して通常ポリゴンに対してＺバッファ法による隠面消去処理を行う。そして、ピクセルメモリ６とＺバッファメモリ７とを更新する。また、裏向き影ポリゴン処理部１２は、入力された上記裏向き影ポリゴンの視点座標および奥行き値に基づいて、比較器１４を制御して裏向き影ポリゴンに対する処理を行う。そして、影フラグメモリ８を更新する。また、表向き影ポリゴン処理部１３は、入力された上記表向き影ポリゴンの視点座標および奥行き値に基づいて、比較器１４を制御して表向き影ポリゴンに対する処理を行う。そして、影フラグメモリ８とピクセルメモリ６とを更新する。また、比較器１４は、入力された各ポリゴンの奥行き値とＺバッファメモリ７に格納された奥行き値とを比較し、比較結果を入力先に返送する。
【００５１】
こうして、影付け処理時には、入力された影ポリゴンの奥行き値とＺバッファメモリ７に格納された奥行き値とを比較し、影フラグメモリ８を更新および参照しながら、上記比較結果および影フラグメモリ８の値に基づいて、ピクセルメモリ６に格納された画素の色情報を修正するのである。
【００５２】
ここで、上記機能的構成を有する図形処理装置の具体的ハードウェア構成は、後述する各種の処理を実行するプログラムを含む各種プログラムを記憶するプログラムメモリ、各種情報を記憶するデータメモリ、外部記録媒体がセットされてこの外部記録媒体をアクセスする外部補助記憶装置、上記プログラムメモリ，データメモリおよび外部補助記憶装置等を制御して、隠面消去処理や影付け処理等を実行するＣＰＵ（中央演算処理装置）等で成る。
【００５３】
すなわち、上記通常ポリゴン変換部２，影ポリゴン変換部３，通常ポリゴン処理部１１，裏向き影ポリゴン処理部１２，表向き影ポリゴン処理部１３および比較器１４は上記ＣＰＵで構成され、ピクセルメモリ６，Ｚバッファメモリ７および影フラグメモリ８は上記データメモリや外部補助記憶装置で構成されるのである。また、上記ＣＰＵは、上述した各部２，３，１１〜１４による本実施の形態に係る処理動作の他に、演算・判断処理およびデータの入出力処理等の各種の処理動作をも行うようになっている。
【００５４】
尚、上記通常ポリゴン変換部２および影ポリゴン変換部３をホストコンピュータやグラフィック専用プロセッサ等によって構成することによって、本実施の形態のごとく、視点座標変換処理装置１を隠面消去・影付け処理装置４とは別体に構成することができるのである。その際に、隠面消去・影付け処理装置４をポータブル機器に搭載して携帯可能に構成することもできる。さらに、視点座標変換処理装置１をインターネット等の通信ネットワーク上のサーバーに搭載し、隠面消去・影付け処理装置４は通信によって上記視点座標および奥行き値を取得するようにしても差し支えない。
【００５５】
また、図１における上記通常ポリゴン変換部２，影ポリゴン変換部３および演算部５等を、ステートマシンとその状態を制御するコントローラとを有するハードウェアロジック等で構成することによって、本図形処理装置全体をハードウェアで構成しても一向に構わない。
【００５６】
図３は、上記隠面消去・影付け処理装置４によって実行される隠面消去・影付け処理動作の概要を示すフローチャートである。また、図７は、光源２１と、３次元物体２２と、光源２１からの光線を３次元物体２２が遮ることによって生じる影空間を規定するシャドーボリューム２４との関係を表す。図７に示すように、影を落とす対象となる３次元物体（球）２２を構成する総ての点と光源２１とを結ぶ線分の延長線の集合でシャドーボリューム２４が形成される。そして、本実施の形態においては、影付け処理を行う領域を柱状のシャドーボリューム（図７ではポリゴンで表される円柱）とし、影が生ずる物体（図７ではポリゴンで表される平面）とシャドーボリュームとが交わる領域を「影」として求めるのである。
【００５７】
すなわち、上述したように、上記シャドーボリューム２４を構成する影ポリゴンを、視点座標系において視点から見て裏向きになる裏向き影ポリゴンａｄｃｇｈｅと表向きになる表向き影ポリゴンａｂｃｇｆｅとに分けて処理を行うのである。以下、順次説明する。
【００５８】
図３において、ステップＳ１で、上記通常ポリゴン処理部１１によって、通常ポリゴン２２，２３に対する隠面消去処理が行われる。すなわち、上記視点座標変換処理装置１からの上記通常ポリゴンの視点座標および奥行き値に基づいて、特許文献１の場合と同様にして、Ｚバッファ法によって隠面消去処理を行い、Ｚバッファメモリ７とピクセルメモリ６とを更新する。その結果、図７に示すように、視点から見て物体２２，２３よりも後側である背景が、３次元物体２２，２３に置き換えられる。尚、３次元物体２３は、光源２１によって３次元物体２２の影が落ちる地面等である。
【００５９】
ステップＳ２で、総てのシャドーボリュームに関する影付け処理が終了したか否かが判別される。そして、終了していなければステップＳ３に進み、終了していれば隠面消去・影付け処理動作を終了する。ステップＳ３で、裏向き影ポリゴン処理部１２，表向き影ポリゴン処理部１３および比較器１４によって、視点座標変換処理装置１からの影ポリゴンの視点座標および奥行き値に基づいて、１つのシャドーボリュームに関する影付け処理が行われる。尚、この影付け処理については後に詳述する。そうした後、上記ステップＳ２に戻り、総てのシャドーボリュームに関する影付け処理が終了したと判別されると隠面消去・影付け処理動作を終了するのである。
【００６０】
図４は、図３に示す隠面消去・影付け処理動作の上記ステップＳ３で実行される影付け処理動作を示すフローチャートである。以下、図４に従って、１つのシャドーボリューム２４に関する影付け処理動作の概略について説明する。
【００６１】
ステップＳ１１で、上記影フラグメモリ８が初期化される。尚、この影フラグメモリ８の初期化は、影フラグメモリ８における各影ポリゴンに対応する総ての領域に「０」が書き込まれることによって行われる。ステップＳ１２で、総ての裏向き影ポリゴンに対する処理が終了したか否かが判別される。その結果、終了していればステップＳ１４に進み、終了していなければステップＳ１３に進む。ステップＳ１３で、裏向き影ポリゴン処理部１２によって、未終了の裏向き影ポリゴンに対する処理が行われる。尚、この裏向き影ポリゴンに対する処理については後に詳述する。そうした後、上記ステップＳ１２に戻る。そして、上記ステップＳ１２において総ての裏向き影ポリゴンに対する処理が終了したと判別されるとステップＳ１４に進む。
【００６２】
ステップＳ１４で、総ての表向き影ポリゴンに対する処理が終了したか否かが判別される。その結果、終了していれば影付け処理動作を終了して、図３に示す隠面消去・影付け処理動作の上記ステップＳ２にリターンする。一方、終了していなければステップＳ１５に進む。ステップＳ１５で、表向き影ポリゴン処理部１３によって、未終了の表向き影ポリゴンに対する処理が行われた後、上記ステップＳ１４に戻る。尚、上記表向き影ポリゴンに対する処理については後に詳述する。そして、上記ステップＳ１４において総ての表向き影ポリゴンに対する処理が終了したと判別されると影付け処理動作を終了して、上記隠面消去・影付け処理動作にリターンするのである。
【００６３】
図５は、図４に示す影付け処理動作の上記ステップＳ１３において、上記裏向き影ポリゴン処理部１２および比較器１４によって実行される裏向き影ポリゴンに対する処理動作を示すフローチャートである。以下、図５に従って、裏向き影ポリゴンに対する処理動作について説明する。図４に示す影付け処理動作の上記ステップＳ１２において総ての裏向き影ポリゴンに対する処理が終了していないと判断されると、裏向き影ポリゴン処理動作がスタートする。
【００６４】
ステップＳ２１で、未処理裏向き影ポリゴンの中から選択された１つの裏向き影ポリゴンの領域に関して、その画素の座標（ｘ，ｙ）の奥行き値ＢＳＰ＿ｚ（ｘ，ｙ）が求められる。一般に、ポリゴンの奥行き値は、視点座標変換処理装置１から入力された各頂点の視点座標に基づいて各頂点間の座標や内部の座標を補間することによって得ることができる。ステップＳ２２で、Ｚバッファメモリ７における同一座標（ｘ，ｙ）のＺ値ｚ（ｘ，ｙ）が読み出される。
【００６５】
ステップＳ２３で、上記比較器１４によって、上記ステップＳ２１において得られた奥行き値ＢＳＰ＿ｚ（ｘ，ｙ）とステップＳ２２において読み出されたＺ値ｚ（ｘ，ｙ）とが比較される（デプステスト）。そして、奥行き値ＢＳＰ＿ｚ（ｘ，ｙ）がＺ値ｚ（ｘ，ｙ）よりも小さいか否かが判別される。その結果、上記Ｚ値よりも小さければ、何も行わないで裏向き影ポリゴン処理動作を終了し、図４に示す影付け処理動作の上記ステップＳ１２にリターンする。一方、上記Ｚ値以上であればステップＳ２４に進む。
【００６６】
ステップＳ２４で、上記影フラグメモリ８における座標（ｘ，ｙ）にフラグ値ｆ（ｘ，ｙ）として「１」が書き込まれる。そうした後、裏向き影ポリゴン処理動作を終了して、上記影付け処理動作にリターンするのである。
【００６７】
尚、図５に示すフローチャートでは詳述されていないが、上記ステップＳ２１〜ステップＳ２４の処理は、処理対象の裏向き影ポリゴンにおける総ての画素（総てのｘ，ｙ）に対して繰り返して行われるのである。
【００６８】
通常、上記Ｚバッファ法においては、デプステスト結果が「真」である（ポリゴンの奥行き値の方がＺバッファメモリ７のＺ値よりも小さい）場合に処理を行うのであるが、本処理における裏向き影ポリゴンに関しては、逆に、デプステスト結果が「偽」である（裏向き影ポリゴンの奥行き値の方がＺバッファメモリ７のＺ値以上である）場合に、影フラグメモリ８における対応するフラグ値ｆ（ｘ，ｙ）として「１」を書き込む処理が行われるのである。一例として、図８に、球の通常ポリゴン２２と平面の通常ポリゴン２３と円柱形のシャドーボリューム２４との視点座標および奥行き値が、図７に示されるような位置関係を有して入力された際に、本裏向き影ポリゴン処理動作におけるステップＳ２４において影フラグメモリ８に「１」がセットされる領域を斜線で示す。
【００６９】
図８において、裏向き影ポリゴンａｄｃｇｈｅの座標領域のうち、視点から見て球２２の通常ポリゴンよりも後側にある領域ａｄｃｉと、視点から見て平面２３の通常ポリゴンよりも後側にある領域ｇｈｅｌｋｊとに、「１」がセットされるのである。
【００７０】
図６は、図４に示す影付け処理動作の上記ステップＳ１５において、上記表向き影ポリゴン処理部１３および比較器１４によって実行される表向き影ポリゴンに対する処理動作を示すフローチャートである。以下、図６に従って、表向き影ポリゴンに対する処理動作について説明する。図４に示す影付け処理動作の上記ステップＳ１４において総ての表向き影ポリゴンに対する処理が終了していないと判断されると、表向き影ポリゴン処理動作がスタートする。
【００７１】
ステップＳ３１で、未処理表向き影ポリゴンの中から選択された１つの表向き影ポリゴンの領域に関して、その画素の座標（ｘ，ｙ）の奥行き値ＦＳＰ＿ｚ（ｘ，ｙ）が、上述した裏向き影ポリゴンの場合と同様に、各頂点間の座標や内部の座標を補間することによって求められる。ステップＳ３２で、Ｚバッファメモリ７における同一座標（ｘ，ｙ）のＺ値ｚ（ｘ，ｙ）が読み出される。ステップＳ３３で、比較器１４によって、上記ステップＳ３１において求められた奥行き値ＦＳＰ＿ｚ（ｘ，ｙ）が上記ステップＳ３２において読み出されたＺ値ｚ（ｘ，ｙ）よりも小さいか否かが判別される。その結果、上記Ｚ値よりも小さければステップＳ３４に進み、上記Ｚ値以上であれば何も行わないで表向き影ポリゴン処理動作を終了し、図４に示す影付け処理動作の上記ステップＳ１４にリターンする。
【００７２】
ステップＳ３４で、上記影フラグメモリ８における上記座標（ｘ，ｙ）に対応するフラグ値ｆ（ｘ，ｙ）が読み出される。ステップＳ３５で、上記読み出されたフラグ値ｆ（ｘ，ｙ）が「１」であるか否かが判別される。その結果、「１」であればステップＳ３６に進み、「１」でなければ何も行わないで表向き影ポリゴン処理動作を終了し、上記影付け処理動作のステップＳ１４にリターンする。このように、上述した裏向き影ポリゴンの場合の処理とは異なって、上記デプステスト結果が「真」である（表向き影ポリゴンの奥行き値の方がＺバッファメモリ７のＺ値より小さい）場合に次の処理を行う一方、デプステスト結果が「偽」である場合はそのまま表向き影ポリゴン処理動作を終了するのである。
【００７３】
一例として、図９に、表向き影ポリゴンのデプステスト結果が「真」になる領域を斜線で示す。図９において、表向き影ポリゴンａｂｃｇｆｅの座標領域のうちの、視点から見て球２２の通常ポリゴンよりも前側にある領域ａｂｃｉと、視点から見て平面２３の通常ポリゴンよりも前側にある領域ｊｎｏｐｌｍと、視点から見て背景よりも前側にある領域ｎｃｉａｐｏとが、上記デプステストによって「真」であると判定されて次の処理が行われるのである。
【００７４】
ステップＳ３６で、上記影フラグメモリ８における同一座標（ｘ，ｙ）のフラグ値ｆ（ｘ，ｙ）が「０」にクリアされる。ステップＳ３７で、ピクセルメモリ６における同一座標（ｘ，ｙ）の値ｐ（ｘ，ｙ）として影の色情報が書き込まれる。そうした後、表向き影ポリゴン処理動作を終了して上記影付け処理動作にリターンするのである。
【００７５】
尚、図６に示すフローチャートでは詳述されていないが、上記ステップＳ３１〜ステップＳ３７の処理は、処理対象の表向き影ポリゴンにおける総ての画素（総てのｘ，ｙ）に対して繰り返して行われるのである。
【００７６】
ここで、上記ステップＳ３４において読み出された上記影フラグメモリ８のフラグ値が「１」であるのは、これまで説明してきた通り、各シャドーボリュームにおいて裏向き影ポリゴンに対するデプステストの結果が「偽」になった座標のみである。さらに、上記ステップＳ３７においてピクセルメモリ６に影の色情報が書き込まれるのは、上記ステップＳ３３におけるデプステストの結果が「真」になった座標である。つまり、影付けが行われるのは、視点座標において、上記裏向き影ポリゴン（図７における影ポリゴンａｄｃｇｈｅ）よりも手前にあり、且つ、表向き影ポリゴン（図７における影ポリゴンａｂｃｇｆｅ）よりも後ろにある領域内の画素であるということになる。
【００７７】
一例として、図１０に、上記視点座標において影付け処理が行われる領域を斜線で示す。図１０において、視点から見て裏向き影ポリゴンａｄｃｇｈｅよりも手前にあり、且つ、表向き影ポリゴンａｂｃｇｆｅよりも後ろにある領域、つまり、図８における斜線領域と図９における斜線領域とが重なった領域ａｉｃｂおよび領域ｌｍｊｋに、影付けが行われるのである。尚、その場合における影付けは、上述したように、ピクセルメモリ６の値ｐ（ｘ，ｙ）を影ポリゴンの色情報を用いて変調するだけでよい。
【００７８】
以上のように、本実施の形態においては、上記光源２１から見ての表裏に関係なく総ての通常ポリゴンを処理の対象としている。したがって、３次元物体２２の影が落ちる平面２３のごとく、光源２１から見ての表の通常ポリゴン上に対しても球２２の影を付けることができるのである。
【００７９】
さらに、本実施の形態においては、視点から見て裏向き影ポリゴンよりも手前にあり且つ表向き影ポリゴンよりも後ろにある領域に対してのみ影付けを行うようにしている。したがって、視点座標変換処理装置１によるポリゴンの図形データの変換の際に誤差が生じた場合でも、本来は影付けを行うべきではない影ポリゴンの端の部分に影が付くことはないのである。
【００８０】
すなわち、上記視点座標変換処理装置１による変換の際に、図１１に示すように、球２２の光源２１から見て裏側のポリゴンａｂｃｉおよび視点から見て表向き影ポリゴンａｂｃｇｆｅが、球２２の光源２１から見て表側のポリゴンａｂｃｕおよび視点から見て裏向き影ポリゴンａｄｃｇｈｅに対して、視点から見て図中左側にずれたとする。その場合、隠面消去・影付け処理装置４によって影が付けられるのは、視点から見て裏向き影ポリゴンよりも手前にあり、且つ、表向き影ポリゴン後ろにある領域ａ’ｉ’ｒｑｂ’および領域ｓｌ’ｔｊである。したがって、影ポリゴンの端の部分ｑｃ’ｊ’ｔｊｒに影は付かないのである。
【００８１】
尚、図７に示すような上記球の通常ポリゴン２２と平面の通常ポリゴン２３と円柱形のシャドーボリューム２４との位置関係において、非特許文献１に開示されたＯｐｅｎＧＬの機能を用いた影付け処理を行うに際して、図１１に示すようなポリゴンのずれが生じた場合には、表向き影ポリゴンａ’ｂ’ｃ’ｊ’ｌ’の側部ｑｃ’ｊ’ｔｊｒに対しても影が付くことになる。
【００８２】
高価な高性能な計算機を使用すれば、データの分解能（ビット数）も大きく、したがって座標変換計算値の誤差も少なくなる。したがって、非特許文献１による従来の影付け処理を行っても問題はない。ところが、ゲーム機等の分野においてはシステムの小型化，低消費電力化，簡略化（低価格化）を図る必要があり、特にポータブル機器への適用を考える場合には構成を簡略化することが前提となる。その場合には、図形データの変換の際に誤差が生ずることは避けられず、そのような状況下であっても視覚的に問題の無いレベルでグラフィックス処理が行えることが必要となる。本実施例によれば、図形データの変換の際に誤差が生じても視覚的なノイズが発生することはなく、簡略化された構成での視覚的に問題の無いグラフィックス処理を行うことが可能になるのである。
【００８３】
したがって、本実施例における図形処理装置をポータブル機器に搭載して携帯可能に構成することができる。さらに、本図形処理装置を携帯端末に搭載して、通常ポリゴンや影ポリゴンの図形データを上記通信ネットワークを介して通信によって取得するように構成することも可能になる。勿論、上述したように、隠面消去・影付け処理装置４を携帯端末に搭載して、上記通信ネットワークを介して視点座標変換処理装置１から上記視点座標および奥行き値を取得するようにすることも可能である。
【００８４】
また、本実施の形態においては、上記裏向き影ポリゴン処理部１２および表向き影ポリゴン処理部１３によって、各シャドーボリューム毎に上記影ポリゴンに関する処理を行うようにしている。したがって、影を落とす対象となる３次元物体が複数あってシャドーボリュームも複数設定されるような場合であっても、表示対象となる物体に対して、正しく影を付けることができるのである。
【００８５】
尚、上述の説明においては、上記ピクセルメモリ６，Ｚバッファメモリ７および影フラグメモリ８については、その容量等を特に明記していない。これらのメモリ６，７，８の容量は、フレームバッファ方式の場合には一画面分の容量、ラインスキャン方式の場合には一ライン分の容量であれば十分である。特に、ラインバッファ方式の場合には、必要となる記憶容量も少なく、シャドーボリューム毎に影フラグメモリ８を初期化する処理も殆ど負担になることはない。
【００８６】
また、本実施の形態においては、上記影ポリゴンのデプステストの際に用いる比較器を、通常ポリゴンのデプステストで用いる比較器を改良することによって通常ポリゴン用の比較器と共有することが可能である。
【００８７】
また、上述の説明においては、影を落とす対象となる３次元物体（球）２２自身の光源２１から見て裏側にも影を付けるために、シャドーボリューム２４の開始端を球２２としている。しかしながら、影を落とす対象となる球２２自身に対するシェーディングを、拡散反射光や鏡面反射光によるシェーディング，コンスタント・シェーディング，グロー・シェーディング，フォーン・シェーディング等の本実施の形態とは別の処理によって行う場合も考えられる。その場合には、シャドーボリュームの開始端を球２２に重ならないように設定すれば、地面２３にのみ本実施の形態の影付け方法によって影を付けることが可能になる。
【００８８】
ところで、上記実施の形態における上記通常ポリゴン変換部２，影ポリゴン変換部３，通常ポリゴン処理部１１，裏向き影ポリゴン処理部１２，表向き影ポリゴン処理部１３および比較器１４を上記ＣＰＵで構成した場合における夫々の機能は、プログラム記録媒体に記録された図形処理プログラムによって実現される。上記実施の形態における上記プログラム記録媒体は、ＲＯＭ（リード・オンリ・メモリ）でなるプログラムメディアである。または、上記外部補助記憶装置に装着されて読み出されるプログラムメディアであってもよい。尚、何れの場合においても、プログラムメディアから図形処理プログラムを読み出すプログラム読み出し手段は、上記プログラムメディアに直接アクセスして読み出す構成を有していてもよいし、ＲＡＭ（ランダム・アクセス・メモリ）に設けられたプログラム記憶エリア（図示せず）にダウンロードし、上記プログラム記憶エリアにアクセスして読み出す構成を有していてもよい。尚、上記プログラムメディアから上記ＲＡＭのプログラム記憶エリアにダウンロードするためのダウンロードプログラムは、予め本体装置に格納されているものとする。
【００８９】
ここで、上記プログラムメディアとは、本体側と分離可能に構成され、磁気テープやカセットテープ等のテープ系、フロッピーディスク，ハードディスク等の磁気ディスクやＣＤ（コンパクトディスク）‐ＲＯＭ，ＭＯ（光磁気）ディスク，ＭＤ（ミニディスク），ＤＶＤ（ディジタル多用途ディスク）等の光ディスクのディスク系、ＩＣ（集積回路）カードや光カード等のカード系、マスクＲＯＭ，ＥＰＲＯＭ（紫外線消去型ＲＯＭ），ＥＥＰＲＯＭ（電気的消去型ＲＯＭ），フラッシュＲＯＭ等の半導体メモリ系を含めた、固定的にプログラムを坦持する媒体である。
【００９０】
また、上記実施の形態における図形処理装置は、上記通信ネットワークと通信Ｉ／Ｆを介して接続可能な構成を有している場合には、上記プログラムメディアは、通信ネットワークからのダウンロード等によって流動的にプログラムを坦持する媒体であっても差し支えない。尚、その場合における上記通信ネットワークからダウンロードするためのダウンロードプログラムは、予め本体装置に格納されているものとする。あるいは、別の記録媒体からインストールされるものとする。
【００９１】
尚、上記記録媒体に記録されるものはプログラムのみに限定されるものではなく、データも記録することが可能である。
【００９２】
【発明の効果】
以上より明らかなように、この発明によれば、各物体を構成する通常ポリゴンとシャドーボリュームを構成する影ポリゴンとの図形データを視点座標と奥行き値とに変換し、視点から見て表向きとなる表向き影ポリゴンと裏向きとなる裏向き影ポリゴンと上記通常ポリゴンとに分け、上記通常ポリゴンに対するＺバッファ法による隠面消去処理を行った後に、上記視点から見て上記表向き影ポリゴンよりも後に位置し且つ上記裏向き影ポリゴンよりも手前に位置する座標領域を求め、この求めた座標領域に対応するピクセルメモリにおける画素の色情報を影の色情報で更新するので、表示対象となる総ての物体を構成する通常ポリゴンを対象として影付け処理を行うことができる。したがって、光源に対して表となる地面等の平面ポリゴンに対しても他の３次元物体の影を付けることができる。
【００９３】
さらに、上記視点から見て上記表向き影ポリゴンよりも後に位置し、且つ、上記裏向き影ポリゴンよりも手前に位置する座標領域に対して、影を付けるようにしている。したがって、上記図形データに対する変換処理による変換計算値に誤差が生じたとしても、影を付けるべきではない影ポリゴンの端の部分に影が付くことはない。その結果、上記図形データに対する変換処理手段の構成を簡略化することができ、小型化，低消費電力化，低価格化を図ることができる。
【図面の簡単な説明】
【図１】この発明の図形処理装置におけるブロック図である。
【図２】図１における隠面消去・影付け処理装置における機能ブロック図である。
【図３】図１における隠面消去・影付け処理装置によって実行される影付け処理動作のフローチャートである。
【図４】図３に示す影付け処理動作におけるシャドーボリューム処理動作のフローチャートである。
【図５】図４に示すシャドーボリューム処理動作における裏向き影ポリゴン処理動作のフローチャートである。
【図６】図４に示すシャドーボリューム処理動作における表向き影ポリゴン処理動作のフローチャートである。
【図７】光源と３次元物体とシャドーボリュームとの関係を説明する図である。
【図８】図７において影フラグメモリに「１」がセットされる領域を示す図である。
【図９】図７において表向き影ポリゴンのデプステスト結果が「真」になる領域を示す図である。
【図１０】図７において影付け処理される領域を示す図である。
【図１１】図１における視点座標変換処理装置による座標変換値に誤差が生じた場合の影付け処理結果の説明図である。
【図１２】従来の３次元物体への影付け処理の説明図である。
【図１３】図１２とは異なる従来の３次元物体への影付け処理の説明図である。
【図１４】図１３に示す従来の影付け処理を行うに際してポリゴンの座標変換計算値に誤差が生じた場合の影付け結果の説明図である。
【符号の説明】
１…視点座標変換処理装置、
２…通常ポリゴン変換部、
３…影ポリゴン変換部、
４…隠面消去・影付け処理装置、
５…演算部、
６…ピクセルメモリ、
７…Ｚバッファメモリ、
８…影フラグメモリ、
９…バス、
１１…通常ポリゴン処理部、
１２…裏向き影ポリゴン処理部、
１３…表向き影ポリゴン処理部、
１４…比較器、
２１…光源、
２２，２３…３次元物体、
２４…シャドーボリューム。
【図１】
2004272635.tif 000006
【図２】
2004272635.tif 000007
【図３】
2004272635.tif 000008
【図４】
2004272635.tif 000009
【図５】
2004272635.tif 000010
【図６】
2004272635.tif 000011
【図７】
2004272635.tif 000012
【図８】
2004272635.tif 000013
【図９】
2004272635.tif 000014
【図１０】
2004272635.tif 000015
【図１１】
2004272635.tif 000016
【図１２】
2004272635.tif 000017
【図１３】
2004272635.tif 000018
【図１４】
2004272635.tif 000019