(57)【特許請求の範囲】
【請求項１】
仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画する３次元ゲーム画像処理プログラムであって、
複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを前記基準モデルに重ねて縁付きモデルとし、当該縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理手段と、
前記縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画手段としてビデオゲーム装置を機能させることを特徴とする３次元ゲーム画像処理プログラム。
【請求項２】
仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画する３次元ゲーム画像処理方法であって、
ビデオゲーム装置が、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンの表裏判別用に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを前記基準モデルに重ねて縁付きモデルとし、当該縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理ステップと、
ビデオゲーム装置が、前記縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画ステップとを含むことを特徴とする３次元ゲーム画像処理方法。
【請求項３】
仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画するビデオゲーム装置であって、
複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを前記基準モデルに重ねて縁付きモデルとし、当該縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理手段と、
前記縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画手段とを備えることを特徴とするビデオゲーム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、仮想ゲーム空間内において、複数のポリゴンで構成されるモデルを描画する３次元ゲーム画像処理プログラム、３次元ゲーム画像処理方法及びビデオゲーム装置に関するものである。
【０００２】
【従来の技術】
従来、３次元仮想空間内で行われるゲームでは、複数のポリゴンで構成されるポリゴンモデルに対して輪郭線を付すことによってアニメーションのような表現を行う技法が知られており、ポリゴンモデルに輪郭線を付すことによって背景となる画像との差別化（輪郭誇張）を図り、対象となるポリゴンモデルを際立たせて表現することが行われている。
【０００３】
例えば特開２０００−２５１０９４号公報には、ポリゴンモデルである基準モデルに対して輪郭線を付す処理を行う場合、メモリから輪郭線を付す基準モデルのデータを読み出し、当該基準モデルを所定の比率で拡大させた拡大モデルを作成してメモリに一旦保持し、この拡大モデルを基準モデルに重ね合わせるジオメトリ処理を行い、さらに、拡大モデルを構成する各ポリゴンの法線ベクトルを反転させてから、両モデルを背景となる画像に重ねるレンダリング処理を行っているものが記載されている。かかる画像処理を施すことで輪郭線が付されたモデルをモニタ上に表示することができる。
【０００４】
【発明が解決しようとする課題】
上記のような画像処理方法でポリゴンモデルに輪郭線を付してシェーディング処理を施す場合、ポリゴンモデルの本体部分と輪郭線部分とで影の濃淡が異なって表示されてしまう。これは、ポリゴンモデルの本体部分である基準モデルを構成する各ポリゴンのシェーディング処理用の法線ベクトルと、ポリゴンモデルの輪郭線部分である拡大モデルを構成する各ポリゴンのシェーディング処理用の法線ベクトルとが互いに反対の方向を向いているため起こるものである。そこで、上記従来の画像処理方法では、基準モデル及び拡大モデルを光源の影響を受けないコンスタント状態にすることによって、輪郭線部分の影の濃淡をなくしてしまっている。
【０００５】
しかしながら、ビデオゲームの種類やビデオゲームの進行状況によっては、ポリゴンモデルにシェーディング処理を施したほうがよい場合もあり、従来の画像処理方法では、上記の理由でポリゴンモデルの本体部分及び輪郭線部分に同じ影の濃淡を施すことが困難であった。
【０００６】
したがって本発明は、上記の問題を解決するためになされたもので、複数のポリゴンで構成されるモデルに輪郭線を付すことができ、且つ適切なシェーディング処理を行うことができる３次元ゲーム画像処理プログラム、３次元ゲーム画像処理方法及びビデオゲーム装置を提供することである。
【０００７】
【課題を解決するための手段】
請求項１に記載の本発明は、仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画する３次元ゲーム画像処理プログラムであって、
複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを前記基準モデルに重ねて縁付きモデルとし、当該縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理手段と、
前記縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画手段としてビデオゲーム装置を機能させることを特徴とする。
【０００８】
請求項１に記載の本発明に従えば、仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画する３次元ゲーム画像処理プログラムは、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとし、縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理手段と、縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画手段としてビデオゲーム装置を機能させる。
【０００９】
すなわち、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとし、縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理が行われ、縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみが描画される。
【００１０】
したがって、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとすることで、裏モデルを基準モデルの輪郭線として描画することができる。
【００１１】
また、輪郭線となる裏モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向と同じ方向に設定することで、基準モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、複数のポリゴンで構成される基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【００１２】
また、本発明は、あらかじめ作成した前記縁付きモデルを記憶する記憶手段として前記ビデオゲーム装置をさらに機能させることも可能である。
【００１３】
この構成によれば、ビデオゲーム装置は、あらかじめ作成した縁付きモデルを記憶する記憶手段としてさらに機能する。
【００１４】
すなわち、複数のポリゴンで構成される基準モデルを拡大し、拡大された各ポリゴンの表裏を判別するポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねた縁付きモデルがあらかじめ記憶されているため、基準モデルを拡大した裏モデルと基準モデルとを重ね合わせた後、この裏モデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルの方向を変えるジオメトリ処理を行う必要がなくなり、このジオメトリ処理にかかる時間を短縮することができる。
【００１５】
さらに、本発明は、前記ポリゴン表裏判別用法線ベクトルを前記縁付きモデルを構成する各ポリゴンの面法線ベクトルとし、前記シェーディング処理用法線ベクトルを前記縁付きモデルを構成する各ポリゴンの各頂点における法線ベクトルとすることも可能である。
【００１６】
この構成によれば、縁付きモデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルは縁付きモデルを構成する各ポリゴンの面法線ベクトルであり、縁付きモデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルは縁付きモデルを構成する各ポリゴンの各頂点における法線ベクトルである。
【００１７】
すなわち、縁付きモデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルとして縁付きモデルを構成する各ポリゴンの面法線ベクトルが用いられるため、ポリゴンの表裏判別をポリゴンの面法線ベクトルの向きを求めることによって行うことができる。また、縁付きモデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルとして縁付きモデルを構成する各ポリゴンの各頂点における法線ベクトルが用いられるため、例えば、グーローシェーディング処理等の各ポリゴンの頂点の法線ベクトルを用いてシェーディング処理を行うことができる。
【００１８】
さらにまた、本発明は、前記裏モデルは前記基準モデルよりポリゴン数を少なくすることも可能である。
【００１９】
この構成によれば、裏モデルを構成するポリゴンは基準モデルを構成するポリゴンよりポリゴン数が少ない。
【００２０】
すなわち、例えば、ビデオゲームに登場するキャラクタにリアル感を出す場合、基準モデルは多くの細かいポリゴンで構成する必要がある。しかしながら、例えば、輪郭線を単一色で表現する場合、輪郭線となる裏モデルは多くの細かいポリゴンで構成する必要はない。したがって、裏モデルは輪郭線に影響を与えないポリゴンの数を減らすことによって、基準モデルと裏モデルとを重ね合わせた縁付きモデルが簡略化され、描画処理に要する時間を短縮することができる。さらに、裏モデルを構成するポリゴン数を減らすことによって、裏モデルを構成する各ポリゴンの各頂点に対応付けられるデータを記憶するために使用されるメモリ領域を低減することができる。
【００２１】
さらにまた、本発明は、前記裏モデルを構成するポリゴンは、前記基準モデルが段差部を有する場合、当該基準モデルの段差部における最端部上の頂点と、当該頂点に対応する裏モデルの頂点とで構成されるポリゴンを含むことも可能である。
【００２２】
この構成によれば、裏モデルを構成するポリゴンは、基準モデルが段差部を有する場合、当該基準モデルの段差部における最端部上の頂点と、当該頂点に対応する裏モデルの頂点とで構成されるポリゴンを含む。
【００２３】
すなわち、基準モデルが段差部を有する場合、当該基準モデルの段差部における最端部上の頂点と、当該頂点に対応する裏モデルの段差部における最端部上の頂点とで構成されるポリゴンが輪郭線として描画されるため、縁付きモデルの表示に際して、基準モデルから離れて輪郭線が付いたり、ちらつきが起こるなどの不具合が解消され、きれいな縁付きモデルを表示することができるようになる。また、このような基準モデルが段差部を有する縁付きモデルにシェーディング処理を施した場合にも縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、段差部を有する基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【００２４】
さらにまた、本発明は、前記基準モデルは平面モデルを含み、
前記記憶手段は、前記平面モデルと、前記平面モデルを拡大すると共に厚みを付与して得られる拡大モデルの厚み方向に沿うポリゴンのポリゴン表裏判別用法線ベクトルの方向を拡大モデルの内側とする裏モデルとを重ね合わせた縁付きモデルを記憶することも可能である。
【００２５】
この構成によれば、基準モデルは平面モデルを含み、記憶手段は、平面モデルと、平面モデルを拡大すると共に厚みを付与して得られる拡大モデルの厚み方向に沿うポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を拡大モデルの内側とする裏モデルとを重ね合わせた縁付きモデルを記憶する。
【００２６】
すなわち、例えば厚みのない板状の平面モデルを拡大すると共に厚みを付与して得られる拡大モデルの厚み方向に沿うポリゴンのポリゴン表裏判別用法線ベクトルの方向を拡大モデルの内側とする裏モデルとすることによって、視点位置の変化に影響されることなく、平面モデルの縁付きモデルを描画することができる。また、このような平面モデルに輪郭線を付す場合にも平面モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と平面モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、平面モデルに輪郭線を付す場合に、輪郭線部分と平面モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【００２７】
さらにまた、本発明は、前記描画手段は、前記平面モデルのポリゴン表裏判別用法線ベクトルの方向にかかわらず描画することも可能である。
【００２８】
この構成によれば、縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画手段は、平面モデルのポリゴン表裏判別用法線ベクトルの方向にかかわらず描画する。
【００２９】
すなわち、描画手段によって、平面モデルが、当該平面モデルを構成するポリゴンのポリゴン表裏判別用法線ベクトルの方向にかかわらず描画されるため、例えば、平面ポリゴンの表面を表示する視点位置が、平面ポリゴンの裏面を表示する視点位置に移動した場合にも、視点位置の変化に影響されることなく、平面モデルの裏表に関係なく描画することができる。また、このように両面が描画可能である平面モデルに輪郭線を付す場合にも平面モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と平面モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、平面モデルに輪郭線を付す場合に、輪郭線部分と平面モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【００３０】
請求項２に記載の本発明は、仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画する３次元ゲーム画像処理方法であって、
ビデオゲーム装置が、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを前記基準モデルに重ねて縁付きモデルとし、当該縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理ステップと、
ビデオゲーム装置が、前記縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画ステップとを含むことを特徴とする。
【００３１】
請求項２に記載の本発明に従えば、仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画する３次元ゲーム画像処理方法は、ビデオゲーム装置が、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとし、当該縁付きモデルの各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理ステップと、ビデオゲーム装置が、縁付きモデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画ステップとを含む。
【００３２】
すなわち、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとし、縁付きモデルの各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルに基づいてシェーディング処理が行われ、縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみが描画される。
【００３３】
したがって、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとすることで、裏モデルを基準モデルの輪郭線として描画することができる。
【００３４】
また、輪郭線となる裏モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向と同じ方向に設定することで、基準モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、複数のポリゴンで構成される基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【００３５】
請求項３に記載の本発明は、仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画するビデオゲーム装置であって、
複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を前記基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを前記基準モデルに重ねて縁付きモデルとし、当該縁付きモデルの各ポリゴンのシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理手段と、
前記縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画手段とを備えることを特徴とする。
【００３６】
請求項３に記載の本発明に従えば、仮想ゲーム空間内に複数のポリゴンで構成されるモデルを描画するビデオゲーム装置は、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとし、縁付きモデルの各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルに基づいてシェーディング処理を行うシェーディング処理手段と、縁付きモデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画する描画手段とを備える。
【００３７】
すなわち、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとし、シェーディング処理手段によって、縁付きモデルの各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルに基づいてシェーディング処理が行われ、描画処理手段によって、縁付きモデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルが仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているか否かの判定が行われ、仮想カメラの視点位置の方向を向いているポリゴン表裏判別用法線ベクトルを有すると判定されたポリゴンにテクスチャマッピングが施され、表示メモリに取り込まれ、この表示メモリの内容が所定周期で読み出されることによって縁付きモデルが描画される。
【００３８】
したがって、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとすることで、裏モデルを基準モデルの輪郭線として描画することができる。
【００３９】
また、輪郭線となる裏モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向と同じ方向に設定することで、基準モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、複数のポリゴンで構成される基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【００４０】
【発明の実施の形態】
以下、本発明の一実施の形態によるビデオゲーム装置について図面を参照しながら説明する。
【００４１】
図１は本発明の一実施の形態のビデオゲーム装置の構成を示すブロック図である。なお、以下の説明では、ビデオゲーム装置の一例として家庭用ビデオゲーム機を家庭用テレビジョンに接続することによって構成される家庭用ビデオゲーム装置について説明するが、本発明はこの例に特に限定されず、モニタが一体に構成された業務用ビデオゲーム装置、ビデオゲームプログラムを実行することによってビデオゲーム装置として機能するパーソナルコンピュータ等にも同様に適用することができる。
【００４２】
図１に示すビデオゲーム装置は家庭用ゲーム機１００及び家庭用テレビジョン２００を備える。家庭用ゲーム機１００には、ビデオゲームプログラム及びゲームデータが記録されたコンピュータ読み出し可能な記録媒体３００が装填され、ビデオゲームプログラム及びゲームデータが適宜読み出されてゲームが実行される。
【００４３】
家庭用ゲーム機１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１、バスライン２、グラフィックスデータ生成プロセッサ３、インターフェース回路（Ｉ／Ｆ）４、メインメモリ５、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６、伸張回路７、パラレルポート８、シリアルポート９、描画プロセッサ１０、音声プロセッサ１１、デコーダ１２、インターフェース回路１３、バッファ１４〜１６、記録媒体ドライブ１７、メモリ１８及びコントローラ１９を含む。家庭用テレビジョン２００はテレビジョンモニタ２１、増幅回路２２及びスピーカ２３を含む。
【００４４】
ＣＰＵ１はバスライン２およびグラフィックスデータ生成プロセッサ３に接続されている。バスライン２はアドレスバス、データバス及びコントロールバス等を含み、ＣＰＵ１、インターフェース回路４、メインメモリ５、ＲＯＭ６、伸張回路７、パラレルポート８、シリアルポート９、描画プロセッサ１０、音声プロセッサ１１、デコーダ１２及びインターフェース回路１３を相互に接続している。
【００４５】
描画プロセッサ１０はバッファ１４に接続される。音声プロセッサ１１はバッファ１５及び増幅回路２２に接続される。デコーダ１２はバッファ１６及び記録媒体ドライブ１７に接続される。インターフェース回路１３はメモリ１８及びコントローラ１９に接続される。
【００４６】
家庭用テレビジョン２００のテレビジョンモニタ２１は描画プロセッサ１０に接続される。スピーカ２３は増幅回路２２に接続される。なお、業務用ビデオゲーム装置の場合、テレビジョンモニタ２１、増幅回路２２及びスピーカ２３は、家庭用ゲーム機１００を構成する各ブロックとともに１つの筺体に収納される場合がある。
【００４７】
また、ビデオゲーム装置がパーソナルコンピュータやワークステーション等を核として構成されている場合、テレビジョンモニタ２１等はコンピュータ用のディスプレイに対応する。また、伸張回路７、描画プロセッサ１０及び音声プロセッサ１１等は、それぞれ記録媒体３００に記録されているプログラムデータの一部又はコンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、インターフェース回路４、パラレルポート８、シリアルポート９及びインターフェース回路１３は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、バッファ１４〜１６はそれぞれメインメモリ５又は拡張メモリの各記憶エリアに対応する。
【００４８】
次に、図１に示す各構成要素について説明する。グラフィックスデータ生成プロセッサ３はＣＰＵ１のいわばコプロセッサとしての役割を果たす。すなわち、グラフィックスデータ生成プロセッサ３は座標変換や光源計算、例えば固定小数点形式の行列やベクトルの演算を並列処理によって行う。
【００４９】
グラフィックスデータ生成プロセッサ３が行う主な処理としては、ＣＰＵ１から供給される画像データの２次元又は３次元空間内における各頂点の座標データ、移動量データ、回転量データ等に基づいて、所定の表示エリア上における処理対象画像のアドレスデータを求めてＣＰＵ１に返す処理、仮想的に設定された光源からの距離に応じて画像の輝度を計算する処理等がある。
【００５０】
インターフェース回路４は周辺デバイス、例えばマウスやトラックボール等のポインティングデバイス等のインターフェース用に用いられる。メインメモリ５はＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成される。ＲＯＭ６にはビデオゲーム装置のオペレーティングシステムとなるプログラムデータが記憶されている。このプログラムはパーソナルコンピュータのＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）に相当する。
【００５１】
伸張回路７は動画に対するＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）規格や静止画に対するＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）規格に準拠したイントラ符号化によって圧縮された圧縮画像に対して伸張処理を施す。伸張処理はデコード処理（ＶＬＣ：Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅによってエンコードされたデータのデコード）、逆量子化処理、ＩＤＣＴ（Ｉｎｖｅｒｓｅ  Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）処理、イントラ画像の復元処理等を含む。
【００５２】
描画プロセッサ１０は所定時間Ｔ（例えば、１フレームでＴ＝１／６０秒）ごとにＣＰＵ１が発行する描画命令に基づいてバッファ１４に対する描画処理を行う。
【００５３】
バッファ１４は例えばＲＡＭで構成され、表示エリア（フレームバッファ）と非表示エリアとに分けられる。表示エリアはテレビジョンモニタ２１の表示面上に表示するデータの展開エリアで構成される。非表示エリアはスケルトンを定義するデータ、ポリゴンを定義するモデルデータ、モデルに動きを行わせるアニメーションデータ、各アニメーションの内容を示すパターンデータ、テクスチャデータ及びカラーパレットデータ等の記憶エリアで構成される。
【００５４】
ここで、テクスチャデータは２次元の画像データである。カラーパレットデータはテクスチャデータ等の色を指定するためのデータである。記録媒体３００から一度に又はゲームの進行状況に応じて複数回に分けて、ＣＰＵ１はこれらのデータを予めバッファ１４の非表示エリアに記録する。
【００５５】
また、描画命令としては、ポリゴンを用いて立体的な画像を描画するための描画命令、通常の２次元画像を描画するための描画命令がある。ここで、ポリゴンは多角形の２次元仮想図形であり、例えば、三角形や四角形が用いられる。
【００５６】
ポリゴンを用いて立体的な画像を描画するための描画命令は、ポリゴン頂点座標データのバッファ１４の表示エリア上における記憶位置を示すポリゴン頂点アドレスデータ、ポリゴンに貼り付けるテクスチャのバッファ１４上における記憶位置を示すテクスチャアドレスデータ、テクスチャの色を示すカラーパレットデータのバッファ１４上における記憶位置を示すカラーパレットアドレスデータ及びテクスチャの輝度を示す輝度データのそれぞれに対して行われるものである。
【００５７】
上記のデータのうち表示エリア上のポリゴン頂点アドレスデータは、グラフィックスデータ生成プロセッサ３がＣＰＵ１からの３次元空間上におけるポリゴン頂点座標データを移動量データ及び回転量データに基づいて座標変換することによって２次元上でのポリゴン頂点座標データに置換されたものである。輝度データはＣＰＵ１からの上記座標変換後のポリゴン頂点座標データによって示される位置から仮想的に配置された光源までの距離に基づいてグラフィックスデータ生成プロセッサ３によって決定される。
【００５８】
ポリゴン頂点アドレスデータはバッファ１４の表示エリア上のアドレスを示す。描画プロセッサ１０は３個のポリゴン頂点アドレスデータで示されるバッファ１４の表示エリアの範囲に対応するテクスチャデータを書き込む処理を行う。
【００５９】
ゲーム空間内におけるキャラクタ等の物体は、複数のポリゴンで構成される。ＣＰＵ１は各ポリゴンの３次元空間上の座標データを対応するスケルトンのベクトルデータと関連させてバッファ１４に記憶する。そして、後述するコントローラ１９の操作によって、テレビジョンモニタ２１の表示画面上でキャラクタを移動させる等の場合において、キャラクタの動きを表現したり、キャラクタを見ている視点位置を変えるときに、以下の処理が行われる。
【００６０】
すなわち、ＣＰＵ１はグラフィックスデータ生成プロセッサ３に対してバッファ１４の非表示エリア内に保持している各ポリゴンの頂点の３次元座標データと、スケルトンの座標及びその回転量のデータから求められた各ポリゴンの移動量データ及び回転量データとを与える。
【００６１】
グラフィックスデータ生成プロセッサ３は各ポリゴンの頂点の３次元座標データと各ポリゴンの移動量データ及び回転量データとに基づいて各ポリゴンの移動後及び回転後の３次元座標データを順次求める。
【００６２】
このようにして求められた各ポリゴンの３次元座標データのうち水平及び垂直方向の座標データは、バッファ１４の表示エリア上のアドレスデータ、すなわちポリゴン頂点アドレスデータとして描画プロセッサ１０に供給される。
【００６３】
描画プロセッサ１０は３個のポリゴン頂点アドレスデータによって示されるバッファ１４の表示エリア上に予め割り当てられているテクスチャアドレスデータによって示されるテクスチャデータを書き込む。これによって、テレビジョンモニタ２１の表示画面上には、多数のポリゴンにテクスチャの貼り付けられた物体が表示される。
【００６４】
通常の２次元画像を描画するための描画命令は、頂点アドレスデータ、テクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ１４上における記憶位置を示すカラーパレットアドレスデータ及びテクスチャの輝度を示す輝度データに対して行われる。これらのデータのうち頂点アドレスデータは、ＣＰＵ１からの２次元平面上における頂点座標データをＣＰＵ１からの移動量データ及び回転量データに基づいてグラフィックスデータ生成プロセッサ３が座標変換することによって得られる。
【００６５】
音声プロセッサ１１は記録媒体３００から読み出されたＡＤＰＣＭ（Ａｄａｐｔｉｖｅ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）データをバッファ１５に記憶させ、バッファ１５に記憶されたＡＤＰＣＭデータが音源となる。
【００６６】
また、音声プロセッサ１１は、例えば、周波数４４．１ｋＨｚのクロック信号に基づき、バッファ１５からＡＤＰＣＭデータを読み出す。音声プロセッサ１１は、読み出したＡＤＰＣＭデータに対してピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加等の処理を施す。
【００６７】
記録媒体３００から読み出される音声データがＣＤ−ＤＡ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｄｉｇｉｔａｌ  Ａｕｄｉｏ）等のＰＣＭ（Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）データの場合、音声プロセッサ１１はこの音声データをＡＤＰＣＭデータに変換する。また、ＰＣＭデータに対するプログラムによる処理は、メインメモリ５上において直接行われる。メインメモリ５上において処理されたＰＣＭデータは、音声プロセッサ１１に供給されてＡＤＰＣＭデータに変換される。その後、上述した各種処理が施され、音声がスピーカ２３から出力される。
【００６８】
記録媒体ドライブ１７としては、例えば、ＤＶＤ−ＲＯＭドライブ、ＣＤ−ＲＯＭドライブ、ハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、シリコンディスクドライブ、カセット媒体読み取り機等が用いられる。この場合、記録媒体３００としては、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ハードディスク、光ディスク、フレキシブルディスク、半導体メモリ等が用いられる。
【００６９】
記録媒体ドライブ１７は記録媒体３００から画像データ、音声データ及びプログラムデータを読み出し、読み出したデータをデコーダ１２に供給する。デコーダ１２は記録媒体ドライブ１７からの再生したデータに対してＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）によるエラー訂正処理を施し、エラー訂正処理を施したデータをメインメモリ５又は音声プロセッサ１１に供給する。
【００７０】
メモリ１８としては、例えばカード型のメモリが用いられる。カード型のメモリは、例えばゲームを中断した場合において中断時点での状態を保持する等のように、中断時点での各種ゲームパラメータを保持するため等に用いられる。
【００７１】
コントローラ１９はユーザが種々の操作指令を入力するために使用する操作装置であり、ユーザの操作に応じた操作信号をＣＰＵ１に送出する。コントローラ１９には、第１ボタン１９ａ、第２ボタン１９ｂ、第３ボタン１９ｃ、第４ボタン１９ｄ、上方向キー１９Ｕ、下方向キー１９Ｄ、左方向キー１９Ｌ、右方向キー１９Ｒ、Ｌ１ボタン１９Ｌ１、Ｌ２ボタン１９Ｌ２、Ｒ１ボタン１９Ｒ１、Ｒ２ボタン１９Ｒ２、スタートボタン１９ｅ、セレクトボタン１９ｆ、左スティック１９ＳＬ及び右スティック１９ＳＲが設けられている。
【００７２】
上方向キー１９Ｕ、下方向キー１９Ｄ、左方向キー１９Ｌ及び右方向キー１９Ｒは、例えば、キャラクタやカーソルをテレビジョンモニタ２１の画面上で上下左右に移動させるコマンドをＣＰＵ１に与えるために使用される。
【００７３】
スタートボタン１９ｅは記録媒体３００からゲームプログラムをロードするようにＣＰＵ１に指示するため等に使用される。セレクトボタン１９ｆは記録媒体３００からメインメモリ５にロードされるゲームプログラムに関する各種選択をＣＰＵ１に指示するため等に使用される。
【００７４】
左スティック１９ＳＬ及び右スティック１９ＳＲを除くコントローラ１９の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると上記中立位置に復帰してオフになるオンオフスイッチで構成される。
【００７５】
左スティック１９ＳＬ及び右スティック１９ＳＲは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは直立したスティックを有し、このスティックの所定位置を支点として前後左右を含む３６０°方向に亘って傾倒可能な構成になっている。左スティック１９ＳＬ及び右スティック１９ＳＲは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とする左右方向のｘ座標及び前後方向のｙ座標の値を操作信号としてインターフェース回路１３を介してＣＰＵ１に送出する。
【００７６】
なお、第１ボタン１９ａ、第２ボタン１９ｂ、第３ボタン１９ｃ、第４ボタン１９ｄ、Ｌ１ボタン１９Ｌ１、Ｌ２ボタン１９Ｌ２、Ｒ１ボタン１９Ｒ１及びＲ２ボタン１９Ｒ２は、記録媒体３００からロードされるゲームプログラムに応じて種々の機能に使用される。
【００７７】
次に、上記のビデオゲーム装置の概略動作について説明する。記録媒体３００が記録媒体ドライブ１７に装填されている場合、電源スイッチ（図示省略）がオンされてビデオゲーム装置に電源が投入されると、ＲＯＭ６に記憶されているオペレーティングシステムに基づいて、記録媒体３００からゲームプログラムを読み出すように、ＣＰＵ１は記録媒体ドライブ１７に指示する。これによって、記録媒体ドライブ１７は記録媒体３００から画像データ、音声データ及びプログラムデータを読み出す。読み出された画像データ、音声データ及びプログラムデータはデコーダ１２に供給され、デコーダ１２によってエラー訂正処理が各データに施される。
【００７８】
デコーダ１２によってエラー訂正処理が施された画像データは、バスライン２を介して伸張回路７に供給される。伸張回路７によって上述した伸張処理が行われた画像データは描画プロセッサ１０に供給され、描画プロセッサ１０によってバッファ１４の非表示エリアに書き込まれる。デコーダ１２によってエラー訂正処理が施された音声データは、メインメモリ５又は音声プロセッサ１１を介してバッファ１５に書き込まれる。デコーダ１２によってエラー訂正処理が施されたプログラムデータはメインメモリ５に書き込まれる。
【００７９】
以降、ＣＰＵ１は、メインメモリ５に記憶されているゲームプログラム及びユーザがコントローラ１９を用いて指示する内容に基づいてビデオゲームを進行させる。すなわち、ユーザがコントローラ１９を用いて指示する内容に基づいて、ＣＰＵ１は画像処理の制御、音声処理の制御及び内部処理の制御等を適宜行う。
【００８０】
画像処理の制御として、例えば、キャラクタに指示されるアニメーションに該当するパターンデータから各スケルトンの座標の計算又はポリゴンの頂点座標データの計算、得られた３次元座標データや視点位置データのグラフィックスデータ生成プロセッサ３への供給、グラフィックスデータ生成プロセッサ３が求めたバッファ１４の表示エリア上のアドレスデータや輝度データを含む描画命令の発行等が行われる。
【００８１】
音声処理の制御として、例えば、音声プロセッサ１１に対する音声出力コマンドの発行、レベル、リバーブ等の指定が行われる。内部処理の制御として、例えばコントローラ１９の操作に応じた演算等が行われる。
【００８２】
本実施形態では、基準モデルと裏モデルとを重ね合わせて一体とした縁付きモデルのデータをモデルデータとして予め記録媒体３００に記憶しておき、ＣＰＵ１の描画命令によって縁付きモデルのデータを所定のバッファ１４の非表示エリア上に読み出し、前述の画像処理を行って表示エリアに書き込ませ、この後、表示手段であるテレビジョンモニタ２１に繰り返し読み出して描画するようにしている。基準モデルは、輪郭線のない複数のポリゴンで構成されるポリゴンモデルであり、裏モデルは、基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向に対して同じ方向に設定したポリゴンモデルである。縁付きモデルが描画されると、この裏モデルが基準モデルの輪郭線としてゲーム画面に表示される。
【００８３】
図２は、図１に示すビデオゲーム装置の動作を中心とする主要部の機能構成を示すブロック図である。図２に示すように、ビデオゲーム装置は、機能的には、主にＣＰＵ１と、グラフィックスデータ生成プロセッサ３と、描画プロセッサ１０と、コンピュータ読み取り可能な記録媒体３００と、バッファ１４と、テレビジョンモニタ２１と、コントローラ１９とで構成されている。
【００８４】
記録媒体３００は、３次元ゲーム画像処理プログラムを含むビデオゲームプログラムを記憶するプログラム記憶部３４と、仮想カメラの視点位置及び視線の向きを表すベクトルデータを記憶するカメラ視線データ記憶部３５と、ポリゴンモデルの情報を記憶するモデルデータ記憶部３６として機能する。なお、記録媒体３００から３次元ゲーム画像処理プログラムが読み取られ、当該プログラムがメインメモリ５に記録されている場合、メインメモリ５がプログラム記憶部３４として機能する。
【００８５】
モデルデータ記憶部３６は、基準モデルを拡大して得られる各ポリゴンの表裏判別に用いる面法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いる面法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いる頂点法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いる頂点法線ベクトルの方向に対して同じ方向に設定した裏モデルを基準モデルに重ね合わせて縁付きモデルとして記憶する。モデルデータ記憶部３６は、縁付きモデルを構成する各ポリゴンのテクスチャデータを格納するテクスチャデータ３６１と、縁付きモデルを構成する各ポリゴンの各頂点の頂点法線ベクトルを格納する頂点法線ベクトルデータ３６２と、縁付きモデルを構成する各ポリゴンの各頂点位置の座標を格納する頂点座標データ３６３と、各ポリゴンが表面のみを描画するポリゴンであるか、両面を描画するポリゴン（平面モデルを構成するポリゴン）であるかを記憶する属性データ３６４とをそれぞれ各縁付きモデル毎に各ポリゴンに対応するデータとしてテーブル形式で備える。
【００８６】
なお、本実施の形態において、ポリゴンモデルを構成する各ポリゴンの面法線ベクトルはポリゴン表裏判別用法線ベクトルであり、ポリゴンモデルを構成する各ポリゴンの各頂点の頂点法線ベクトルはシェーディング処理用法線ベクトルである。ポリゴン表裏判別用法線ベクトルとはポリゴンの表面と裏面とを判別するために用いられる法線ベクトルのことであり、シェーディング処理用法線ベクトルとはシェーディング処理を施すために用いられる法線ベクトルのことである。
【００８７】
グラフィックスデータ生成プロセッサ３は、ポリゴン判別部３１及びシェーディング処理部３２として機能する。
【００８８】
ポリゴン判別部３１は、縁付きモデルを構成するポリゴンの面法線ベクトルが仮想カメラの視点位置の方向を向いている場合に表面として判別し、縁付きモデルを構成するポリゴンの面法線ベクトルが仮想カメラの視点位置に対して逆方向を向いている場合に裏面として判別する。具体的にポリゴン判別部３１は、縁付きモデルを構成する各ポリゴンの面法線ベクトルと、当該面法線ベクトルの始点から仮想カメラ視点の方向を表す視線方向ベクトルとの内積を計算し、縁付きモデルを構成する各ポリゴンについて内積が正である場合に表面として判別し、内積が負である場合に裏面として判別する。
【００８９】
シェーディング処理部３２は、縁付きモデルを構成する各ポリゴンの頂点法線ベクトルに基づいてシェーディング処理を行う。
【００９０】
描画プロセッサ１０は、３次元空間内に配置された各モデルに対してテクスチャマッピング及びレンダリング処理等を施し、モデル全体の画像の形成を行うものであり、描画処理部３３として機能する。
【００９１】
描画処理部３３は、縁付きモデルを構成する各ポリゴンの面法線ベクトルが仮想ゲーム空間内における仮想カメラ視点位置の方向を向いているポリゴンのみを描画する。また、描画処理部３３は、基準モデルが平面モデルである場合、ポリゴン表裏判別用の面法線ベクトルの方向にかかわらず描画する。
【００９２】
なお、本実施の形態では、シェーディング処理部３２はシェーディング処理手段に相当し、描画処理部３３は描画手段に相当し、モデルデータ記憶部３５は記憶手段に相当する。
【００９３】
ポリゴンモデルを構成するポリゴンは、三角形、四角形等の多角形の平面からなり、この平面の一方の面が表面となり、他方の面が裏面として設定される。ポリゴンは各頂点座標を順番に結ぶことで形成され、各頂点座標を結ぶ順番がリストされている。この頂点座標を結ぶ順番が画面から見て時計回りの場合、ポリゴンの面法線ベクトルは裏面から表面の方向となり、頂点座標を結ぶ順番が画面から見て反時計回りの場合、ポリゴンの面法線ベクトルは表面から裏面の方向となる。ポリゴンの面法線ベクトルが仮想カメラ視点位置の方向を向いている場合、ポリゴンは表面として判別され、描画される。ポリゴンの面法線ベクトルが仮想カメラ視点位置の方向とは逆の方向を向いている場合、ポリゴンは裏面として判別され、描画されない。そのため、基準モデルに関しては仮想カメラ視点側の外側のポリゴンが表面として描画され、裏モデルに関しては仮想カメラ視点側の内側のポリゴンが表面として描画され、輪郭線を有する縁付きモデルが描画される。
【００９４】
なお、本実施の形態において、ポリゴンの面法線ベクトルが仮想カメラ視点位置の方向を向いている場合とは、仮想カメラ視点と面法線ベクトルの始点とを結ぶ線分と、面法線ベクトルとがなす挟角が９０°未満である場合である。また、ポリゴンの面法線ベクトルが仮想カメラ視点位置の方向とは逆の方向を向いている場合とは、仮想カメラ視点と面法線ベクトルの始点とを結ぶ線分と、面法線ベクトルとがなす挟角が９０°以上である場合である。なお、ポリゴンの面法線ベクトルが仮想カメラ視点位置の方向を向いている場合とは、仮想カメラ視点と面法線ベクトルの始点とを結ぶ線分と、面法線ベクトルとがなす挟角が９０°以下である場合であってもよく、このとき、ポリゴンの面法線ベクトルが仮想カメラ視点位置の方向とは逆の方向を向いている場合とは、仮想カメラ視点と面法線ベクトルの始点とを結ぶ線分と、面法線ベクトルとがなす挟角が９０°より大きい場合となる。
【００９５】
また、本実施の形態において、内側のポリゴンとは、面法線ベクトルが当該ポリゴンで構成されるポリゴンモデル（基準モデル又は裏モデル）の内部の方向を向いているポリゴンであり、外側のポリゴンとは、面法線ベクトルが当該ポリゴンで構成されるポリゴンモデル（基準モデル又は裏モデル）の外部の方向を向いているポリゴンである。
【００９６】
図３は、基準モデル及び縁付きモデルがシェーディング処理を施さずに描画された例を示す図である。図３（ａ）は基準モデルのみがシェーディング処理を施さずに描画された例であり、図３（ｂ）は、図３（ａ）に示す基準モデルと輪郭線となる裏モデルとを重ね合わせた縁付きモデルがシェーディング処理を施さずに描画された例であり、テレビジョンモニタ２１上に実際に表示されるキャラクタの一例である。なお、図３（ｂ）に示す裏モデルＢを構成する各ポリゴンの頂点法線ベクトル及び面法線ベクトルは、共に裏モデルＢの内側を向いている。
【００９７】
図３（ａ）に示すように、輪郭線を付さずに基準モデルＡのみでキャラクタを表した場合、周りの背景との差別化が図れず、アニメーションのような表現にはならない。そこで、基準モデルＡを拡大して得られる各ポリゴンの表裏判別に用いる面法線ベクトルの方向を基準モデルＡを構成する各ポリゴンの表裏判別に用いる面法線ベクトルの方向に対して反対方向に設定した裏モデルＢを基準モデルＡに重ねて縁付きモデルＭとし、当該縁付きモデルＭを描画することによって、図３（ｂ）に示すようにキャラクタに輪郭線が付され、キャラクタがアニメーションのような表現となり、さらに、背景となる画像との差別化が図られ、モデルが際立つこととなる。
【００９８】
しかしながら、図３（ｂ）に示す縁付きモデルＭにシェーディング処理を施した場合、裏モデルＢを構成する各ポリゴンのシェーディング処理に用いる頂点法線ベクトルが、基準モデルＡを構成する各ポリゴンのシェーディング処理に用いる頂点法線ベクトルとは反対の方向を向いているため、光源の位置によっては、輪郭線部分の影の濃淡と基準モデルＡの影の濃淡とが異なって表示されてしまう。
【００９９】
図４は、裏モデルを構成するポリゴンの面法線ベクトル及び頂点法線ベクトルの方向をともに裏モデルの内側とした縁付きモデルにシェーディング処理を施した画像の一例を示す画面図である。図４に示す画面４００には、基準モデルＡ１と、基準モデルＡ１を拡大した裏モデルＢ１とを重ね合わせた縁付きモデルＭ１が表示されている。画面４００では、光源が仮想カメラ視点から見て縁付きモデルＭ１の左方に設けられている。図４に示す基準モデルＡ１は、光源が縁付きモデルＭ１の左方にあるため、基準モデルＡ１の一方の基準モデル部分４０１が明るくなっており、基準モデルＡ１の他方の基準モデル部分４０２にいくにしたがって徐々に暗くなっている。一方、裏モデルＢ１は光源が縁付きモデルＭ１の左方にあるにもかかわらず、裏モデルＢ１の一方の輪郭線部分４０３が暗くなっており、裏モデルＢ１の他方の輪郭線部分４０４にいくにしたがって徐々に明るくなっている。これは、基準モデルＡ１を構成する各ポリゴンのシェーディング処理用の頂点法線ベクトルが基準モデルＡ１の外側を向いており、裏モデルＢ１を構成する各ポリゴンの頂点法線ベクトルが裏モデルＢ１の内側を向いているために起こるものである。図４に示すように基準モデルＡ１と裏モデルＢ１との影のグラデーションが異なると非常に違和感のある表示となってしまう。そこで、裏モデルＢ１を作成する際に、裏モデルＢ１を構成する各ポリゴンのポリゴン表裏判別用の面法線ベクトルを裏モデルＢ１の内側に向け、裏モデルＢ１を構成する各ポリゴンのシェーディング処理用の頂点法線ベクトルを裏モデルＢ１の外側に向けるようにする。
【０１００】
次に、本実施形態である３次元ゲーム画像処理の前段階として行われる処理を以下に説明する。
【０１０１】
図５は、基準モデル、裏モデル及び基準モデルと裏モデルとで構成される縁付きモデルについて説明するための模式図である。図５（ａ）はポリゴンＰＯＡで構成される基準モデルＡを示す図であり、図５（ｂ）はポリゴンＰＯＢで構成される裏モデルＢを示す図であり、図５（ｃ）は基準モデルＡと裏モデルＢとを重ね合わせた縁付きモデルＭを示す図である。
【０１０２】
まず、基準モデルＡの拡大が行われる。この際、基準モデルＡの中心点となる座標を設定し、その中心点から全方向に所定の比率で拡大させる。この中心点は、ローカル座標系における原点となるので、基準モデルＡの各頂点座標に所定の倍率を掛け合わせたものが基準モデルＡを拡大して得られる拡大モデルの頂点座標となる。また、基準モデルＡを拡大して得られる拡大モデルの各ポリゴンの頂点が、基準モデルＡの各頂点の法線ベクトル上に配置するようにする。これによって、基準モデルＡから均等に拡大された拡大モデルを作成することができる。さらに、この基準モデルＡを拡大して得られる拡大モデルを構成する各ポリゴンの表裏判別に用いる面法線ベクトルの方向を基準モデルＡを構成する各ポリゴンの表裏判別に用いる面法線ベクトルの方向に対して反対方向に設定するとともに、拡大された各ポリゴンのシェーディング処理に用いる頂点法線ベクトルの方向を基準モデルＡを構成する各ポリゴンのシェーディング処理に用いる頂点法線ベクトルの方向に対して同じ方向に設定することによって裏モデルＢを作成する。
【０１０３】
続いて、基準モデルＡと裏モデルＢとを重ね合わせることで一体の縁付きモデルＭとし、上記のようにして作成された縁付きモデルＭの修正が行われ、当該縁付きモデルＭをモデルデータとして記録媒体３００などに記憶する。ここでの修正は、基準モデルＡを所定の倍率で拡大した際に生じる裏モデルＢの不具合を修正するものであり、具体的には中心点を新たに設定し、その中心点から所定の倍率で拡大あるいは縮小することによって行われ、さらに、ポリゴンの頂点座標を新たに設定することによって行われる。
【０１０４】
また、図５（ａ）に示すように基準モデルＡはリアル感を出すために多数の細かいポリゴンＰＯＡで構成されており、そのため基準モデルＡを所定の倍率で拡大しただけの裏モデルＢでは、描画するポリゴンＰＯＢの数が多くなり、描画処理に時間がかかってしまう。裏モデルＢは輪郭線となるポリゴンモデルであるため、例えば、輪郭線を黒色等の単色で表す場合、ポリゴンＰＯＢの数を少なくしても表示される裏モデルＢにはほとんど影響を与えることはない。そこで、図５（ｂ）に示すように裏モデルＢは、単に基準モデルＡを所定の倍率で拡大したものではなく、裏モデルＢのテクスチャ用の頂点や輪郭線に影響を与えないポリゴンＰＯＢの頂点等を省略することによってポリゴン数を減らすことが可能で、これにより、描画処理にかかる時間が短縮され、高速化が図られる。また、裏モデルＢを構成するポリゴン数を減らすことによって、裏モデルを構成する各ポリゴンの頂点の数も少なくなり、各頂点に対応付けられるデータを記憶するために使用するメモリ領域を低減することができる。
【０１０５】
次に、裏モデルを構成する各ポリゴンのポリゴン表裏判別用の面法線ベクトルを裏モデルの内側に向け、裏モデルを構成する各ポリゴンの頂点法線ベクトルを裏モデルの外側に向ける裏モデルの作成方法について図６を用いて説明する。
【０１０６】
図６は、図５（ｃ）に示す縁付きモデルＭの右側部分ＭＡを拡大した図であり、縁付きモデルＭを仮想カメラ視点Ｃの視線方向に対して側面から見た模式図である。
【０１０７】
基準モデルＡを構成するポリゴンＰＯＡの面法線ベクトルＶＡは、ポリゴンＰＯＡに垂直であり、基準モデルＡの外側を向いている。この面法線ベクトルＶＡは、ポリゴンＰＯＡの各頂点ＰＡにおける頂点法線ベクトルＶＮＡの外積を求めることによって算出することができる。
【０１０８】
裏モデルＢの作成方法は、まず、裏モデルＢを構成するポリゴンＰＯＢの各頂点ＰＢにおける頂点法線ベクトルＶＮＢを反転させ、頂点法線ベクトル−ＶＮＢとする。そして、この頂点法線ベクトル−ＶＮＢの外積を求めることによって、裏モデルＢを構成するポリゴンＰＯＢの面法線ベクトルＶＢを算出する。この面法線ベクトルＶＢは、ポリゴンＰＯＢに垂直であり、裏モデルＢの内側を向いている。続いて、面法線ベクトルＶＢの方向はそのままで、先程反転させた頂点法線ベクトル−ＶＮＢを再び反転させることによって元の頂点法線ベクトルＶＮＢとする。
【０１０９】
このようにして、複数のポリゴンＰＯＡで構成される基準モデルＡを輪郭線の幅だけ所定の倍率で拡大して得られる各ポリゴンＰＯＢの表裏判別に用いる面法線ベクトルＶＢの方向を基準モデルＡを構成する各ポリゴンＰＯＡの表裏判別に用いる面法線ベクトルＶＡの方向に対して反対方向として設定するとともに、拡大された各ポリゴンＰＯＢのシェーディング処理に用いる頂点法線ベクトルＶＮＢを基準モデルＡを構成する各ポリゴンＰＯＡのシェーディング処理に用いる頂点法線ベクトルＶＮＡの方向に対して同じ方向として設定した裏モデルＢを基準モデルＡに重ね合わせて縁付きモデルＭとして作成することができる。つまり、基準モデルＡの頂点法線ベクトルＶＮＡ及び面法線ベクトルＶＡは基準モデルＡの外側を向いており、裏モデルＢの頂点法線ベクトルＶＮＢは裏モデルＢの外側を向いており、裏モデルＢの面法線ベクトルＶＢは裏モデルＢの内側を向いていることとなる。なお、基準モデルＡと裏モデルＢとを重ね合わせる場合、基準モデルＡの基準点と裏モデルＢの基準点とを一致させる。この基準点としては、例えば、基準モデルＡ及び裏モデルＢの重心を用いる。上記のようにして作成された裏モデルＢと基準モデルＡとを重ね合わせることによって、基準モデルＡが裏モデルＢに包含される縁付きモデルＭが作成され、作成された縁付きモデルＭはあらかじめ記録媒体３００等に格納される。
【０１１０】
次に、ポリゴンの表面及び裏面の判別方法について図６を用いて説明する。モデルを構成するポリゴンが表面であるか、裏面であるかの判別は、面法線ベクトルの始点位置における仮想カメラ視点位置の方向へのベクトルを表す視線方向ベクトルと面法線ベクトルとの内積を算出し、算出された内積が正であれば表面として判別し、内積が負であれば裏面として判別することによって行われる。図６に示す基準モデルＡでは、面法線ベクトルＶＡの始点位置ａにおける仮想カメラ視点位置Ｃの方向へのベクトルを表す視線方向ベクトルＶＣと面法線ベクトルＶＡとの内積ＶＡ・ＶＣは下記の（１）式で表される。
ＶＡ・ＶＣ＝｜ＶＡ｜｜ＶＣ｜ｃｏｓθ１・・・・（１）
なお、上記（１）式におけるＶＡはポリゴンＰＯＡにおける面法線ベクトルを表し、ＶＣは視線方向ベクトルＶＣを表し、θ１は面法線ベクトルＶＡと視線方向ベクトルＶＣとがなす挟角を表す。
【０１１１】
図６に示すようにθ１はθ１＜９０°（π／２）であるため、上記の（１）式によって視線方向ベクトルＶＣと面法線ベクトルＶＡとの内積ＶＡ・ＶＣはＶＡ・ＶＣ＞０となり、基準モデルＡを構成するポリゴンＰＯＡは表面であると判別される。
【０１１２】
図６に示す裏モデルＢでは、面法線ベクトルＶＢの始点位置ｂにおける仮想カメラ視点位置Ｃの方向へのベクトルを表す視線方向ベクトルＶＣと面法線ベクトルＶＢとの内積ＶＢ・ＶＣは下記の（２）式で表される。
ＶＢ・ＶＣ＝｜ＶＢ｜｜ＶＣ｜ｃｏｓθ２・・・・（２）
なお、上記（１）式におけるＶＢはポリゴンＰＯＢにおける面法線ベクトルを表し、ＶＣは視線方向ベクトルＶＣを表し、θ２は面法線ベクトルＶＢと視線方向ベクトルＶＣとがなす挟角を表す。
【０１１３】
図６に示すようにθ２はθ２≧９０°（π／２）であるため、上記の（２）式によって視線方向ベクトルＶＣと面法線ベクトルＶＢとの内積ＶＢ・ＶＣはＶＢ・ＶＣ＜０となり、裏モデルＢを構成するポリゴンＰＯＢは裏面であると判別される。
【０１１４】
このように、ポリゴンの面法線ベクトルと視線方向ベクトルとの内積を算出する簡単な演算を行うことによって、当該ポリゴンの表裏を容易に判別することができる。
【０１１５】
次に、基準モデルＡが板状の平面モデルである場合について説明する。図７は、平面モデルＡ２と裏モデルＢ２とで構成される縁付きモデルＭ２を示す図である。板状の平面モデルＡ２は表裏両方から見える必要があるため、ポリゴンの表裏に関係無く常に両面が描画される。これは、モデル全体が平面の場合だけでなくモデルの一部が平面になっている場合も平面の部分のみは表裏に関係無く常に描画される。そのため、平面モデルＡ２を輪郭線の大きさだけ拡大すると共に厚みを付与して得られる拡大モデルにおける各ポリゴンの面法線ベクトルの方向を拡大モデルの内側とする裏モデルＢ２と平面モデルＡ２とを重ね合わせた縁付きモデルＭ２をあらかじめ記録媒体３００に記憶しておき、どの角度から見ても輪郭線が描画されるようにする。
【０１１６】
このように、例えば厚みのない板状の平面モデルＡ２を拡大すると共に厚みを付与して得られる拡大モデルの厚み方向に沿うポリゴンの面法線ベクトルの方向を拡大モデルの内側とし、頂点法線ベクトルの方向を拡大モデルの外側とする裏モデルＢ２を作成することによって、視点位置の変化に影響されることなく、平面モデルＡ２の縁付きモデルＭ２を描画することができる。また、このような平面モデルＡ２に輪郭線を付す場合にも、平面モデルＡ２を拡大すると共に厚みを付与して得られる拡大モデルの厚み方向に沿うポリゴンの面法線ベクトルの方向を拡大モデルの内側とすることで、平面モデルＡ２と裏モデルＢ２とを重ね合わせた縁付きモデルＭ２の輪郭線部分と平面モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、平面モデルに輪郭線を付す場合に、輪郭線部分と平面モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１１７】
次に、基準モデルＡが段差部を有する場合の縁付きモデルＭの修正方法ついて説明する。２つ以上の基準モデルＡが重なった部分や、小さな段差部のような凸凹が基準モデルＡにある場合、基準モデルＡの拡大だけでは、ある特定の視点から見た場合に、基準モデルＡの端と裏モデルＢのポリゴンとの間に隙間ができてしまい、輪郭線が浮いて見えたり、ちらついて見えたりする現象が起こる。そのため、基準モデルＡが段差部を有する場合等は裏モデルＢのポリゴンを修正する必要がある。
【０１１８】
図８は、基準モデルＡが段差部を有する場合の縁付きモデルＭの修正方法ついて説明するための模式図である。図８の（ａ）、（ｃ）は描画された縁付きモデルＭを仮想カメラ視点からの視線に対して側面から見た模式図であり、図８の（ｂ）、（ｄ）は描画された縁付きモデルＭを仮想カメラ視点から見た模式図である。図８の（ａ）、（ｃ）に示すように基準モデルＡは段差部ＤＡを有する形状であり、裏モデルＢは基準モデルＡを所定の倍率で拡大したものであるため段差部ＤＢを有する形状である。図８（ａ）に示すように、裏モデルＢを構成するポリゴンの面法線ベクトルを内側に反転させた場合、段差部ＤＢの最端部上の頂点Ｐｂと頂点Ｐｂ’との間を結んで構成されるポリゴンＰＯＢが輪郭線として描画される。そして、図８（ａ）の鎖線で示すような視線で見た縁付きモデルＭを描画した場合、図８（ｂ）に示すように輪郭線である裏モデルＢと基準モデルＡとの間に隙間Ｓができてしまう。このように、基準モデルＡと裏モデルＢとの間に隙間Ｓができると、適切な位置に輪郭線が描画されないため、ユーザには輪郭線が浮いているように見えてしまう。そこで、基準モデルＡと裏モデルＢとの間に隙間Ｓができるのを防止するために、様々な視点から見て隙間Ｓができる部分を閉じるように修正する。つまり、図８（ｃ）に示すように、裏モデルＢの頂点Ｐｂ’を基準モデルＡの段差部ＤＡの最端部上の頂点Ｐａに移動させ、頂点Ｐｂと頂点Ｐａとの間を結んでポリゴンＰＯＢ’とすることによって、基準モデルＡと裏モデルＢとの隙間ＳがポリゴンＰＯＢ’によって閉じられ、輪郭線が隙間なく描画される。なお、この場合のポリゴンＰＯＢ’の面法線ベクトルは仮想カメラ視点Ｃの方向を向いており、頂点法線ベクトルも仮想カメラ視点Ｃの方向を向いているように設定する。
【０１１９】
また、単に頂点Ｐｂと頂点Ｐａとの間を結んでポリゴンＰＯＢ’としただけではポリゴンＰＯＢ’で表される輪郭線の幅が他の輪郭線の幅より太くなってしまうため、基準モデルＡの段差部ＤＡにおける最端部上の頂点Ｐａ及び当該頂点Ｐａに対応する裏モデルＢの段差部ＤＢにおける最端部上の頂点Ｐｂの間の幅を他の輪郭線の幅に応じて変更してもよい。
【０１２０】
このように、基準モデルＡが段差部ＤＡを有する場合、当該基準モデルＡの段差部ＤＡにおける最端部上の頂点Ｐａと、当該頂点Ｐａに対応する裏モデルＢの段差部ＤＢにおける最端部上の頂点Ｐｂとで構成されるポリゴンＰＯＢ’が輪郭線として描画されるため、縁付きモデルＭの表示に際して、基準モデルＡから離れて輪郭線が付いたり、ちらつきが起こるなどの不具合が解消され、きれいな縁付きモデルＭを表示することができるようになる。また、このような基準モデルＡが段差部ＤＡを有する縁付きモデルＭにシェーディング処理を施した場合にも縁付きモデルＭの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、段差部ＤＡを有する基準モデルＡに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１２１】
図９は、図１に示すビデオゲーム装置による３次元ゲーム画像処理を説明するためのフローチャートである。なお、ビデオゲーム装置における３次元ゲーム画像処理は、ＣＰＵ１等が３次元ゲーム画像処理プログラムを実行することによって行われる処理である。
【０１２２】
まず、ステップＳ１において、ＣＰＵ１は、基準モデルＡを拡大して得られる各ポリゴンの表裏判別に用いる面法線ベクトルＶＢの方向を基準モデルＡを構成する各ポリゴンの表裏判別に用いる面法線ベクトルＶＡの方向に対して反対方向に設定した裏モデルＢを基準モデルＡに重ね合わせた縁付きモデルＭに関するモデルデータを記録媒体３００から読み出し、グラフィックスデータ生成プロセッサ３に当該データを送る。
【０１２３】
続いて、ステップＳ２において、グラフィックスデータ生成プロセッサ３は、読み出された縁付きモデルＭを構成するポリゴンが表裏に関係無く描画されるポリゴンであるか否かを属性データに基づいて判定する。縁付きモデルＭを構成する各ポリゴンには、ポリゴンモデルの表面ポリゴンのみを描画するポリゴンであるか、両面が描画されるポリゴンであるかのフラグが属性データとして対応付けられている。例えば、フラグが”１”の場合、ポリゴンは裏面が描画されずに表面のみが描画されるポリゴンであり、フラグが”０”の場合、ポリゴンは表裏に関係なく両面が描画されるポリゴンであると判定される。ここで、縁付きモデルＭが表裏に関係無く描画される平面モデルのポリゴンであり、フラグが”０”の場合（ステップＳ２でＹＥＳ）、ステップＳ４に移行し、縁付きモデルＭが表裏のあるポリゴンであり、フラグが”１”の場合（ステップＳ２でＮＯ）、ステップＳ３に移行することとなる。
【０１２４】
ステップＳ３において、グラフィックスデータ生成プロセッサ３は、ポリゴンが仮想カメラ視点から見て表面であるかを判定する。グラフィックスデータ生成プロセッサ３は、表裏のある縁付きモデルＭのポリゴンが表面であるか否かを判定する。グラフィックスデータ生成プロセッサ３はポリゴンの視線方向ベクトルと面法線ベクトルとの内積を計算し、内積が正であれば表面として判別し（ステップＳ３でＹＥＳ）、当該ポリゴンのバッファ１４の表示エリア上における記憶位置を示すポリゴン頂点アドレスデータを描画プロセッサ１０に送り、ステップＳ４に移行する。グラフィックスデータ生成プロセッサ３は、ポリゴンの視線方向ベクトルと面法線ベクトルとの内積が負であれば裏面として判別し（ステップＳ３でＮＯ）、当該ポリゴンは描画されずに終了となる。
【０１２５】
ステップＳ４において、グラフィックスデータ生成プロセッサ３は、ステップＳ３で表面として判定されたポリゴンに対してシェーディング処理を行う。
【０１２６】
ここで、シェーディング処理について説明する。シェーディング処理は、モデルに光源からの光が照射されることによってモデル表面に生じる影の濃淡を施す処理である。本実施の形態においてシェーディング処理は、スムーズシェーディング処理の一つであるグーローシェーディング処理を用いる。なお、シェーディング処理に用いられる光源としては無限遠光源、点光源、スポットライト、線光源及び面光源等を用いてもよい。
【０１２７】
グーローシェーディング処理は、モデルを構成する各ポリゴンの頂点法線ベクトルを用いて行われる処理である。具体的には、ポリゴンを構成する全ての頂点の輝度を計算し、この頂点の輝度に基づいてポリゴンの稜線の輝度及びポリゴン内部の各点の輝度を線形補間して決定する。グラフィックスデータ生成プロセッサ３は、上記のようにして計算したポリゴンの輝度を輝度データとして描画プロセッサ１０に送る。このように、グーローシェーディング処理では、各ポリゴンの頂点法線ベクトルによって頂点の輝度を求め、線形補間によって平面にグラデーションを施すことで隣り合うポリゴンのつながりを滑らかに見せるシェーディング処理が行われる。シェーディング処理をグーローシェーディング処理によって行うことで表示される縁付きモデルＭを構成するポリゴンの角や稜線が目立たなくなり、明るさが連続的に変化し、影の濃淡を滑らかに表現することができる。
【０１２８】
ステップＳ５において、描画プロセッサ１０は、ステップＳ３で表面であるとして判定されたポリゴンを描画する。描画プロセッサ１０は、ステップＳ３で表面であるとして判定されたポリゴンの輝度データ及びポリゴン頂点アドレスデータ等に基づいてバッファ１４の表示エリアに描画し、当該ポリゴンがテレビジョンモニタ２１の表示面上に表示される。
【０１２９】
このように、基準モデルＡを拡大して得られる各ポリゴンの表裏判別に用いる面法線ベクトルＶＢ（ポリゴン表裏判別用法線ベクトル）の方向を基準モデルＡを構成する各ポリゴンの表裏判別に用いる面法線ベクトルＶＡ（ポリゴン表裏判別用法線ベクトル）の方向に対して反対方向に設定した裏モデルＢを基準モデルＡに重ねて縁付きモデルＭとすることで、裏モデルＢが基準モデルＡの輪郭線として描画される。
【０１３０】
また、輪郭線となる裏モデルＢを構成する各ポリゴンのシェーディング処理に用いる頂点法線ベクトル（シェーディング処理用法線ベクトル）の方向を基準モデルＡを構成する各ポリゴンのシェーディング処理に用いる頂点法線ベクトル（シェーディング処理用法線ベクトル）の方向と同じ方向に設定することで、基準モデルＡと裏モデルＢとを重ね合わせた縁付きモデルＭの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、複数のポリゴンで構成される基準モデルＡに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１３１】
また、基準モデルＡを拡大して得られる各ポリゴンの表裏判別に用いる面法線ベクトル（ポリゴン表裏判別用法線ベクトル）の方向を基準モデルＡを構成する各ポリゴンの表裏判別に用いる面法線ベクトル（ポリゴン表裏判別用法線ベクトル）の方向に対して反対方向に設定した裏モデルＢを基準モデルＡに重ねて縁付きモデルＭとしてあらかじめ記録媒体３００に記憶されているため、基準モデルＡを拡大して重ね合わせて法線ベクトルの方向を変えて縁付きモデルＭとするジオメトリ処理を描画の度に行うのに比べて処理にかかる時間を短縮することができる。
【０１３２】
図１０は、シェーディング処理を施した縁付きモデルの一例を示す画面図である。図１０に示す画面４１０には、基準モデルＡと、基準モデルＡを拡大して得られる裏モデルＢとを重ね合わせた縁付きモデルＭが表示されている。画面４１０では、光源が仮想カメラ視点から見て縁付きモデルＭの左方に設けられている。図１０に示す基準モデルＡは、光源が縁付きモデルＭの左方にあるため、基準モデルＡの一方の基準モデル部分４０１が明るくなっており、基準モデルＡの他方の基準モデル部分４０２にいくにしたがって徐々に暗くなっている。さらに、裏モデルＢに関しても、光源が縁付きモデルＭの左方にあるため、裏モデルＢの一方の輪郭線部分４０３から他方の輪郭線部分４０４にいくにしたがって徐々に暗くなっており、図４に示す裏モデルＢ１の輪郭線部分４０３に比べて裏モデルＢの輪郭線部分４０３は明るくなっており、図４に示す裏モデルＢ１の輪郭線部分４０４に比べて裏モデルＢの輪郭線部分４０４は暗くなっている。このように、裏モデルＢの頂点法線ベクトルを裏モデルＢの外側とし、裏モデルＢの面法線ベクトルを裏モデルＢの内側とすることで、基準モデルＡに輪郭線を付すことができるとともに、基準モデルＡ及び裏モデルＢに同じ影の濃淡を施す適切なシェーディング処理を行うことができ、違和感のない輪郭線を実現することができる。
【０１３３】
なお、上記実施の形態では、基準モデルＡと、基準モデルＡを拡大して得られる裏モデルＢとを重ね合わせた縁付きモデルＭを作成し、当該縁付きモデルＭに関するデータをあらかじめ記憶しておくとして説明したが、本発明は特にこれに限定されず、基準モデルＡに関するデータのみを記憶しておき、描画処理毎に縁付きモデルＭを作成してもよい。以下、本発明の他の実施の形態について図１１を用いて説明する。
【０１３４】
図１１は、図１に示すビデオゲーム装置による３次元ゲーム画像処理の他の実施の形態を説明するためのフローチャートである。なお、ビデオゲーム装置における３次元ゲーム画像処理は、ＣＰＵ１等が３次元ゲーム画像処理プログラムを実行することによって行われる処理である。
【０１３５】
ステップＳ１１において、ＣＰＵ１は基準モデルＡに関するデータを記録媒体３００から読み出し、グラフィックスデータ生成プロセッサ３に当該データを送る。
【０１３６】
ステップＳ１２において、グラフィックスデータ生成プロセッサ３は、基準モデルＡを輪郭線の大きさだけ所定の倍率で拡大した拡大モデルを作成する。拡大モデルを構成する各ポリゴンの頂点座標は、基準モデルＡを構成する各ポリゴンの頂点座標に所定の倍率を乗算することによって求めることができる。
【０１３７】
ステップＳ１３において、グラフィックスデータ生成プロセッサ３は、ステップＳ１２で作成された拡大モデルを構成する各ポリゴンのシェーディング処理に用いる頂点法線ベクトルの方向はそのままで、各ポリゴンの表裏を判別するための面法線ベクトルを基準モデルＡを構成する各ポリゴンの表裏を判別するための面法線ベクトルの方向に対して反対方向として裏モデルＢを作成する。
【０１３８】
ステップＳ１４において、グラフィックスデータ生成プロセッサ３は、基準モデルＡと、ステップＳ１３で作成した裏モデルＢとを重ね合わせて縁付きモデルＭを作成する。この際、基準モデルＡの中心位置（例えば重心）と裏モデルＢの中心位置（例えば重心）とを一致させることで縁付きモデルＭを作成する。
【０１３９】
ステップＳ１５からステップＳ１８における処理は、図７のステップＳ２からステップＳ５における処理と同じであるので説明を省略する。
【０１４０】
なお、上記ステップＳ１３の処理とステップＳ１４の処理とは逆でもよく、ステップＳ１３において基準モデルＡと拡大モデルとを重ね合わせて、ステップＳ１４において拡大モデルの面法線ベクトルの方向を変えることで縁付きモデルＭを作成してもよい。
【０１４１】
このように、基準モデルＡと裏モデルＢとを重ね合わせた縁付きモデルＭをあらかじめ作成して記録媒体３００に記憶せずに、基準モデルＡに関するデータのみを記録媒体３００に記憶しておき、ＣＰＵ１の描画指示に応じてビデオゲーム装置のジオメトリ処理によって基準モデルＡに基づいて縁付きモデルＭを作成してもよい。この場合、縁付きモデルＭを作成する処理に多少の時間を要するが、基準モデルＡに関するデータのみを記憶しておけばよいのでメモリの記憶容量を削減することができる。
【０１４２】
なお、本実施の形態では、裏モデルで表される輪郭線の色及び質感を変更することが可能である。つまり、輪郭線となる裏モデルの各ポリゴンのテクスチャデータを様々な色や材質に設定することで、ゲーム状況に応じた種々の表現が可能となる。例えば、ゲームに登場するキャラクタを表す基準モデルを所定の倍率で拡大した裏モデルのポリゴンにグラデーションをつけることによってオーラが出ているような表現となる。
【０１４３】
また、本実施の形態では、シェーディング処理としてグーローシェーディング処理を用いて行ったが、本発明は特にこれに限定されず、例えば、フラットシェーディング処理又はフォンシェーディング処理等の他のスムーズシェーディング処理を用いてもよい。
【０１４４】
【発明の効果】
請求項１に記載の本発明によれば、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとすることで、裏モデルを基準モデルの輪郭線として描画することができる。また、輪郭線となる裏モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向と同じ方向に設定することで、基準モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、複数のポリゴンで構成される基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１４５】
また、本発明によれば、複数のポリゴンで構成される基準モデルを拡大し、拡大された各ポリゴンの表裏を判別するポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねた縁付きモデルがあらかじめ記憶されているため、基準モデルを拡大した裏モデルと基準モデルとを重ね合わせた後、この裏モデルを構成する各ポリゴンのポリゴン表裏判別用法線ベクトルの方向を変えるジオメトリ処理を行う必要がなくなり、このジオメトリ処理にかかる時間を短縮することができる。
【０１４６】
さらに、本発明によれば、縁付きモデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルとして縁付きモデルを構成する各ポリゴンの面法線ベクトルが用いられるため、ポリゴンの表裏判別をポリゴンの面法線ベクトルの向きを求めることによって行うことができる。また、縁付きモデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルとして縁付きモデルを構成する各ポリゴンの各頂点における法線ベクトルが用いられるため、例えば、グーローシェーディング処理等の各ポリゴンの頂点の法線ベクトルを用いてシェーディング処理を行うことができる。
【０１４７】
さらにまた、本発明によれば、裏モデルは輪郭線に影響を与えないポリゴンの数を減らすことによって、基準モデルと裏モデルとを重ね合わせた縁付きモデルが簡略化され、描画処理に要する時間を短縮することができ、さらに、裏モデルを構成するポリゴン数を減らすことによって、裏モデルを構成する各ポリゴンの各頂点に対応付けられるデータを記憶するために使用されるメモリ領域を低減することができる。
【０１４８】
さらにまた、本発明によれば、基準モデルが段差部を有する場合、当該基準モデルの段差部における最端部上の頂点と、当該頂点に対応する裏モデルの段差部における最端部上の頂点とで構成されるポリゴンが輪郭線として描画されるため、縁付きモデルの表示に際して、基準モデルから離れて輪郭線が付いたり、ちらつきが起こるなどの不具合が解消され、きれいな縁付きモデルを表示することができるようになり、さらに、このような基準モデルが段差部を有する縁付きモデルにシェーディング処理を施した場合にも縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、段差部を有する基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１４９】
さらにまた、本発明によれば、例えば厚みのない板状の平面モデルを拡大すると共に厚みを付与して得られる拡大モデルの厚み方向に沿うポリゴンのポリゴン表裏判別用法線ベクトルの方向を拡大モデルの内側とする裏モデルとすることによって、視点位置の変化に影響されることなく、平面モデルの縁付きモデルを描画することができ、さらに、平面モデルに輪郭線を付す場合にも平面モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と平面モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、平面モデルに輪郭線を付す場合に、輪郭線部分と平面モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１５０】
さらにまた、本発明によれば、平面モデルを構成するポリゴンが、両面に対して描画処理が可能な属性情報を有しているため、例えば、平面ポリゴンの表面を表示する視点位置が、平面ポリゴンの裏面を表示する視点位置に移動した場合にも、視点位置の変化に影響されることなく、平面モデルの裏表に関係なく描画することができ、さらに、このように両面が描画可能である平面モデルに輪郭線を付す場合にも平面モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と平面モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、平面モデルに輪郭線を付す場合に、輪郭線部分と平面モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１５１】
請求項２に記載の本発明によれば、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとすることで、裏モデルを基準モデルの輪郭線として描画することができる。また、輪郭線となる裏モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向と同じ方向に設定することで、基準モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、複数のポリゴンで構成される基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【０１５２】
請求項３に記載の本発明によれば、複数のポリゴンで構成される基準モデルを拡大して得られる各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向を基準モデルを構成する各ポリゴンの表裏判別に用いるポリゴン表裏判別用法線ベクトルの方向に対して反対方向に設定した裏モデルを基準モデルに重ねて縁付きモデルとすることで、裏モデルを基準モデルの輪郭線として描画することができる。また、輪郭線となる裏モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向を基準モデルを構成する各ポリゴンのシェーディング処理に用いるシェーディング処理用法線ベクトルの方向と同じ方向に設定することで、基準モデルと裏モデルとを重ね合わせた縁付きモデルの輪郭線部分と基準モデル部分との明るさが連続的に変化し、影の濃淡を均一にすることができ、複数のポリゴンで構成される基準モデルに輪郭線を付す場合に、輪郭線部分と基準モデル部分とに同じ影の濃淡を施す適切なシェーディング処理を行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態のビデオゲーム装置の構成を示すブロック図である。
【図２】図１に示すビデオゲーム装置の動作を中心とする主要部の機能構成を示すブロック図である。
【図３】基準モデル及び縁付きモデルがシェーディング処理を施さずに描画された例を示す図である。
【図４】裏モデルを構成するポリゴンの面法線ベクトル及び頂点法線ベクトルをともに裏モデルの内側とした縁付きモデルにシェーディング処理を施した画像の一例を示す画面図である。
【図５】基準モデル、裏モデル及び基準モデルと裏モデルとで構成される縁付きモデルについて説明するための模式図である。
【図６】図５（ｃ）に示す縁付きモデルＭの右側部分ＭＡを拡大した図である。
【図７】平面モデルＡ２と裏モデルＢ２で構成される縁付きモデルＭ２を示す図である。
【図８】基準モデルＡが段差部を有する形状である場合の縁付きモデルＭの修正方法ついて説明するための模式図である。
【図９】図１に示すビデオゲーム装置による３次元ゲーム画像処理を説明するためのフローチャートである。
【図１０】シェーディング処理を施した縁付きモデルの一例を示す画面図である。
【図１１】図１に示すビデオゲーム装置による３次元ゲーム画像処理の他の実施の形態を説明するためのフローチャートである。
【符号の説明】
１  ＣＰＵ
２  バスライン
３  グラフィックスデータ生成プロセッサ
４，１３  インターフェース回路
５  メインメモリ
６  ＲＯＭ
７  伸張回路
８  パラレルポート
９  シリアルポート
１０  描画プロセッサ
１１  音声プロセッサ
１２  デコーダ
１４〜１６  バッファ
１７  記録媒体ドライバ
１８  メモリ
１９  コントローラ
２１  テレビジョンモニタ
３１  ポリゴン判別部
３２  シェーディング処理部
３３  描画処理部
３４  プログラム記憶部
３５  カメラ視線データ記憶部
３６  モデルデータ記憶部
３００  記録媒体
３６１  テクスチャデータ
３６２  頂点法線ベクトルデータ
３６３  頂点座標データ
３６４  属性データ
Ａ，Ａ１，Ａ２  基準モデル
Ｂ，Ｂ１，Ｂ２  裏モデル
Ｍ，Ｍ１，Ｍ２  縁付きモデル
【図１】
0003586679.tif 000002
【図２】
0003586679.tif 000003
【図３】
0003586679.tif 000004
【図４】
0003586679.tif 000005
【図５】
0003586679.tif 000006
【図６】
0003586679.tif 000007
【図７】
0003586679.tif 000008
【図８】
0003586679.tif 000009
【図９】
0003586679.tif 000010
【図１０】
0003586679.tif 000011
【図１１】
0003586679.tif 000012