(57)【要約】      （修正有）【課題】３次元空間のグラフィックス描画の省略を行うための最適化として、遮蔽関係の判定精度を維持しつつ、使用するデータサイズと事前計算にかかる時間の増加を抑える。【解決手段】第１の空間分割定義に含まれる第１の領域を特定する工程と、第１の領域にカメラが存在すると仮定した場合に、第１の領域から、第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを判定する工程と、判定結果に基づき、第１の空間分割定義に含まれる全ての第１の領域について、第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを示す遮蔽データを生成する工程とを備える。また、遮蔽データに基づき、第１の領域から第２の領域に対して可視性があるか否かを判定する工程と、可視性があると判定された前記モデルについてのみ描画を行う工程とを備える。【選択図】図５
2009301228.tif 000002
【特許請求の範囲】
【請求項１】
第１の空間分割定義に含まれる第１の領域を特定する工程と、
前記第１の領域にカメラが存在すると仮定した場合に、当該第１の領域から、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを判定する工程と、
当該判定結果に基づき、前記第１の空間分割定義に含まれる全ての第１の領域について、前記第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを示す遮蔽データを生成する工程と
を備えたことを特徴とする遮蔽データ生成方法。
【請求項２】
請求項１に記載の遮蔽データ生成方法において、
前記第１の空間分割定義に前記第１の領域として扱わない除外領域を設ける
ことを特徴とする遮蔽データ生成方法。
【請求項３】
請求項１または２のいずれか一項に記載の遮蔽データ生成方法において、
前記可視性があるか否かを判定する工程は、前記第１の領域内のランダムな位置から前記第２の領域内のランダムな位置への線分を複数作成し、当該線分が遮蔽物と交わらなかったか否かにより行う
ことを特徴とする遮蔽データ生成方法。
【請求項４】
カメラが存在する第１の空間分割定義上の第１の領域を特定する工程と、
描画される可能性のあるモデルが含まれ得る、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義上の第２の領域を特定する工程と、
遮蔽データに基づき、前記第１の領域から前記第２の領域に対して可視性があるか否かを判定する工程と、
可視性があると判定された前記モデルについてのみ描画を行う工程と
を備えたことを特徴とするモデル描画方法。
【請求項５】
請求項４に記載のモデル描画方法において、
前記可視性があるか否かを判定する工程は、前記モデルの外接球の少なくとも一部が存在する前記第２の領域に対して判定を行う
ことを特徴とするモデル描画方法。
【請求項６】
第１の空間分割定義に含まれる第１の領域を特定する手段と、
前記第１の領域にカメラが存在すると仮定した場合に、当該第１の領域から、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを判定する手段と、
当該判定結果に基づき、前記第１の空間分割定義に含まれる全ての第１の領域について、前記第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを示す遮蔽データを生成する手段と
を備えたことを特徴とする遮蔽データ生成装置。
【請求項７】
カメラが存在する第１の空間分割定義上の第１の領域を特定する手段と、
描画される可能性のあるモデルが含まれ得る、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義上の第２の領域を特定する手段と、
遮蔽データに基づき、前記第１の領域から前記第２の領域に対して可視性があるか否かを判定する手段と、
可視性があると判定された前記モデルについてのみ描画を行う手段と
を備えたことを特徴とするモデル描画装置。
【請求項８】
遮蔽データ生成装置を構成するコンピュータを、
第１の空間分割定義に含まれる第１の領域を特定する手段、
前記第１の領域にカメラが存在すると仮定した場合に、当該第１の領域から、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを判定する手段、
当該判定結果に基づき、前記第１の空間分割定義に含まれる全ての第１の領域について、前記第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを示す遮蔽データを生成する手段
として機能させる遮蔽データ生成プログラム。
【請求項９】
モデル描画装置を構成するコンピュータを、
カメラが存在する第１の空間分割定義上の第１の領域を特定する手段、
描画される可能性のあるモデルが含まれ得る、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義上の第２の領域を特定する手段、
遮蔽データに基づき、前記第１の領域から前記第２の領域に対して可視性があるか否かを判定する手段、
可視性があると判定された前記モデルについてのみ描画を行う手段
として機能させるモデル描画プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオゲーム等におけるグラフィックス描画の技術に関する。
【背景技術】
【０００２】
ゲームアプリケーション等による３次元空間のグラフィックス描画を高速に行なうための最適化として、建物や地形等の他の描画モデル（表示モデル）によって遮蔽されていてカメラ位置から見えない描画モデルを描画しないという手法がある（非特許文献１等を参照。）。見えない部分の描画処理を省略しても画面に表示されるものには違いがないため、表示精度を低下させることなく表示速度を向上させることができる。
【０００３】
更に、カメラ位置から描画モデルが見えるか見えないかをより高速に判定するために、事前計算を活用する手法がある。計算時間が多く必要な遮蔽事前計算処理を予め行なっておき、その計算結果を利用して実際にゲームアプリケーション等の内部で描画するときの計算を省略することで、高速に処理を行なうことができる。
【０００４】
図１は従来における遮蔽事前計算の概要を示す図であり、理解および説明のしやすさから、３次元空間のうちの高さ方向は考慮せず、２次元平面についてのみ考慮したものである。図１はゲーム内の３次元空間を上方から見た図であり、ここでは、２次元平面の空間を１６個（＝４×４）の均等な領域に分割し、壁等による遮蔽物を太線で示してある。図では左上の領域から他の領域に対して見えるか見えないかの可視性の判定結果を示してあり、開始側の領域内のいずれの点からも壁等の遮蔽物により全ての点が遮蔽される領域は「見えない」となり、一部でも遮蔽されない点がある領域は「見える」となる。空間内の全ての領域につき同様の判定を行うことから、自領域から自領域への判定も含め、図１の分割の例では１６×１６＝２５６パターンの判定を行うことになる。判定の結果は、遮蔽データとして記録され、ゲームアプリケーション等でグラフィックス描画を行う際に参照される。なお、各領域から見える可能性がある領域の集合は可視集合（ＰＶＳ：Potentially Visible Sets）と呼ばれる。
【０００５】
図２は従来におけるグラフィックス描画の概要を示す図であり、図１と同じ領域分割を行った２次元平面上の左上の領域にカメラがある場合を想定している。この場合、カメラの存在する領域について、事前計算で求めておいた遮蔽データを参照し、可視性のある領域に交わる描画モデルだけを描画する。カメラが存在する領域から可視性のない領域（可視集合に含まれない領域）のみに含まれる描画モデルは見えないことが保証されるため、描画しなくても見た目に影響を与えることがなく、その描画を省略した分、高速に処理を終えることができる。
【非特許文献１】「リアルタイムレンダリング  第２版」Ｐ３１７〜Ｐ３３５、株式会社ボーンデジタル、２００６年６月２５日
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の遮蔽事前計算およびグラフィックス描画は上述したように行われるものであり、適切に領域の分割を行う場合には効果が発揮されるものであるが、次のような問題点が指摘されていた。
【０００７】
すなわち、従来の手法は、空間を荒く分割すると、実際はカメラ位置からは見えていない描画モデルであるにもかかわらず、可視性がある領域と交わっている可能性が上がり、描画しないことによる高速化のメリットを受けられる可能性が低下する。
【０００８】
一方、空間を細かく分割すると、判定精度は高まるが、使用するデータサイズと事前計算にかかる時間が爆発的に大きくなる。図１および図２に示した例では、領域を１６分割することで１６×１６＝２５６パターンの判定を行うことは前述したが、領域を２倍の３２分割とした場合には３２×３２＝１０２４パターンの判定を行う必要があり、処理に必要な時間およびデータ量は約４倍となる。
【０００９】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、３次元空間のグラフィックス描画の省略を行うための最適化として、遮蔽関係の判定精度を維持しつつ、使用するデータサイズと事前計算にかかる時間の増加を抑えることのできる遮蔽データ生成方法、モデル描画方法、遮蔽データ生成装置、モデル描画装置、遮蔽データ生成プログラムおよびモデル描画プログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、第１の空間分割定義に含まれる第１の領域を特定する工程と、前記第１の領域にカメラが存在すると仮定した場合に、当該第１の領域から、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを判定する工程と、当該判定結果に基づき、前記第１の空間分割定義に含まれる全ての第１の領域について、前記第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを示す遮蔽データを生成する工程とを備える遮蔽データ生成方法を要旨としている。
【００１１】
また、請求項２に記載されるように、請求項１に記載の遮蔽データ生成方法において、前記第１の空間分割定義に前記第１の領域として扱わない除外領域を設けるようにすることができる。
【００１２】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載の遮蔽データ生成方法において、前記可視性があるか否かを判定する工程は、前記第１の領域内のランダムな位置から前記第２の領域内のランダムな位置への線分を複数作成し、当該線分が遮蔽物と交わらなかったか否かにより行うようにすることができる。
【００１３】
また、請求項４に記載されるように、カメラが存在する第１の空間分割定義上の第１の領域を特定する工程と、描画される可能性のあるモデルが含まれ得る、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義上の第２の領域を特定する工程と、遮蔽データに基づき、前記第１の領域から前記第２の領域に対して可視性があるか否かを判定する工程と、可視性があると判定された前記モデルについてのみ描画を行う工程とを備えるモデル描画方法として構成することができる。
【００１４】
また、請求項５に記載されるように、請求項４に記載のモデル描画方法において、前記可視性があるか否かを判定する工程は、前記モデルの外接球の少なくとも一部が存在する前記第２の領域に対して判定を行うようにすることができる。
【００１５】
また、請求項６に記載されるように、第１の空間分割定義に含まれる第１の領域を特定する手段と、前記第１の領域にカメラが存在すると仮定した場合に、当該第１の領域から、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを判定する手段と、当該判定結果に基づき、前記第１の空間分割定義に含まれる全ての第１の領域について、前記第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを示す遮蔽データを生成する手段とを備える遮蔽データ生成装置として構成することができる。
【００１６】
また、請求項７に記載されるように、カメラが存在する第１の空間分割定義上の第１の領域を特定する手段と、描画される可能性のあるモデルが含まれ得る、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義上の第２の領域を特定する手段と、遮蔽データに基づき、前記第１の領域から前記第２の領域に対して可視性があるか否かを判定する手段と、可視性があると判定された前記モデルについてのみ描画を行う手段とを備えモデル描画装置として構成することができる。
【００１７】
また、請求項８に記載されるように、遮蔽データ生成装置を構成するコンピュータを、第１の空間分割定義に含まれる第１の領域を特定する手段、前記第１の領域にカメラが存在すると仮定した場合に、当該第１の領域から、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを判定する手段、当該判定結果に基づき、前記第１の空間分割定義に含まれる全ての第１の領域について、前記第２の空間分割定義に含まれる各第２の領域へ可視性があるか否かを示す遮蔽データを生成する手段として機能させる遮蔽データ生成プログラムとして構成することができる。
【００１８】
また、請求項９に記載されるように、モデル描画装置を構成するコンピュータを、カメラが存在する第１の空間分割定義上の第１の領域を特定する手段、描画される可能性のあるモデルが含まれ得る、前記第１の空間分割定義と分割領域の大きさが異なる第２の空間分割定義上の第２の領域を特定する手段、遮蔽データに基づき、前記第１の領域から前記第２の領域に対して可視性があるか否かを判定する手段、可視性があると判定された前記モデルについてのみ描画を行う手段として機能させるモデル描画プログラムとして構成することができる。
【発明の効果】
【００１９】
本発明の遮蔽データ生成方法、モデル描画方法、遮蔽データ生成装置、モデル描画装置、遮蔽データ生成プログラムおよびモデル描画プログラムにあっては、３次元空間のグラフィックス描画の省略を行うための最適化として、遮蔽関係の判定精度を維持しつつ、使用するデータサイズと事前計算にかかる時間の増加を抑えることができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の好適な実施形態につき説明する。
【００２１】
＜概要＞
本発明は、空間を複数の領域に分割するときに２通りの空間分割を用いて使い分ける点に特徴を有している。１つの空間分割はカメラ位置の所属を判定するための空間分割定義Ａであり、もう１つは可視性判定される領域を表すための空間分割定義Ｂである。Ａ＝Ｂの場合は従来の手法と一致するが、ＡとＢの領域を適切に別個に設定することにより、従来の手法に比して事前計算時間と使用データサイズを削減することができる。
【００２２】
事前計算では、空間分割定義Ａの各領域に対する空間分割定義Ｂの各領域の可視性を求める。グラフィックス描画時には、カメラの所属する空間分割定義Ａの領域から可視性のある空間分割定義Ｂの領域に交わる描画モデルのみを描画する。
【００２３】
空間分割定義Ａをより細かく分割すると判定の精度を上げられるが、空間分割定義Ｂの分割を細かくしなければ、従来の手法よりも使用するデータサイズと事前計算時間の増加を抑えることができる。
【００２４】
更に、描画される描画モデルが存在する可能性があっても、ゲームのルール上、カメラが移動してきて所属する可能性のない領域がある場合は、空間分割定義Ｂの定義域としては必要であっても空間分割定義Ａの定義域としては必要でない領域となるため、そのような領域を空間分割定義Ａの定義域から排除し、その領域に対する事前計算を省略することによってデータサイズおよび計算時間をさらに削減することができる。
【００２５】
図３は本発明における遮蔽事前計算の概要を示す図である。なお、理解および説明のしやすさから、３次元空間のうちの高さ方向は考慮せず、２次元平面についてのみ考慮する場合について説明するが、高さ方向を考慮した領域の分割を行ってもよい。また、均等に領域を分割する場合を例に説明するが、ＢＳＰや八分木等による階層的な領域の分割を行ってもよい。いずれの分割方法を採用しても２種類の空間分割定義を併用するという点において処理の流れは同様になる。
【００２６】
本発明では、図３に示すように、ビデオゲーム等で使用する空間Ｖにつき、第１の空間分割定義Ａにより領域分割を行った空間ＶＡと第２の空間分割定義Ｂにより領域分割を行った空間ＶＢの２通りの基準を使い分け、カメラ位置の所属の判定は空間ＶＡ上で行い、描画モデルが見える可能性があるか否かの判定は空間ＶＢ上で行う。なお、図３において空間Ｖ、ＶＡ、ＶＢはゲーム内の３次元空間を上方から見た図であり、壁等による遮蔽物を太線で示してある。
【００２７】
図３では、空間ＶＡについては２次元平面の空間を１６個（＝４×４）の均等な領域に分割してあり、空間ＶＢについては２次元平面の空間を４個（＝２×２）の均等な領域に分割してある。分割の数は図示の例に限らず、判定精度とデータ量の関係を考慮して所望の値を用いることができる。また、図３では空間ＶＡと空間ＶＢの定義域を元となる空間Ｖと同じにしているが、同じである必要はない。例えば、空間ＶＡは街の中を定義域とし、空間ＶＢは街から離れた山などの背景にあたる空間を定義域とすることが考えられる。
【００２８】
空間ＶＢをより粗く分割すると、後述する図８のステップＳ１１０や、図１０のステップＳ２０６等の空間ＶＢの分割領域に基づく可視性の判定処理数が軽減される。反対に、空間ＶＢをより細かく分割すると、空間ＶＢのそれぞれの領域がカメラ位置から遮蔽されている領域であるかどうかの判定がより細かく判断されることになり、判定精度が上がる。更に、粗い分割の時に遮蔽されていないと判定されていた領域の一部が、細かい分割では遮蔽されていると判定される領域となる可能性が高まる。なお、その遮蔽されている領域に描画オブジェクトが含まれると、遮蔽されている判定になる可能性も上がり、描画速度が向上する可能性が上がる。
【００２９】
また、空間ＶＡを細かく分割してもカメラ位置によって遮蔽状態が変わらないような地形やカメラ位置に対しては、多くの小さいオブジェクトを描画する必要があり、空間ＶＢを細かく分割した方が、判定精度が総合的に上がる場合がある。
【００３０】
従って、空間ＶＡと空間ＶＢの分割領域が異なる大きさである場合に、よりよい効果を生じる。
【００３１】
図３では、空間ＶＡの左上の領域から空間ＶＢの各領域に対して見えるか見えないかの可視性の判定結果を示してあり、開始側の領域内のいずれの点からも壁等の遮蔽物により全ての点が遮蔽される領域は「見えない」となり、一部でも遮蔽されない点がある領域は「見える」となる。また、空間ＶＡの下一列の領域は「カメラが来ない領域」（除外領域）であるとしており、これらの除外領域からの可視性の判定は不要となる。従って、空間ＶＡの除外領域を除く各領域と空間ＶＢ内の全ての領域につき同様の判定を行うことから、図示の例では１２×４＝４８パターンの判定を行えばよいことになる。判定の結果は、遮蔽データとして記録され、ゲームアプリケーション等でグラフィックス描画を行う際に参照される。
【００３２】
図４は本発明におけるグラフィックス描画の概要を示す図であり、図３の空間ＶＡ上の左上の領域にカメラがある場合を想定している。この場合、カメラの存在する領域について、事前計算で求めておいた遮蔽データを参照し、空間ＶＢ上の可視性のある領域に交わる描画モデルだけを描画する。カメラが存在する領域から可視性のない領域（可視集合に含まれない領域）のみに含まれる描画モデルは見えないことが保証されるため、描画しなくても見た目に影響を与えることがなく、その描画を省略した分、高速に処理を終えることができる。
【００３３】
＜遮蔽事前計算＞
図５は本発明の一実施形態にかかる遮蔽事前計算のための装置構成例を示す図であり、ゲームアプリケーションの開発装置等の一部として設けられるものである。
【００３４】
図５において、遮蔽事前計算部１００は、空間分割定義入力部１０１とカメラ移動可能範囲入力部１０２と遮蔽物座標入力部１０３と最大判定回数入力部１０４と空間分割定義Ａ空間分割条件保持部１０５と空間分割定義Ａ空間定義域保持部１０６と空間分割定義Ｂ空間定義域／空間分割条件保持部１０７と遮蔽物座標保持部１０８と最大判定回数保持部１０９と遮蔽判定部１１０と遮蔽データ保持部１１１と遮蔽データ出力部１１２とを備えている。機能部である空間分割定義入力部１０１、カメラ移動可能範囲入力部１０２、遮蔽物座標入力部１０３、最大判定回数入力部１０４、遮蔽判定部１１０、遮蔽データ出力部１１２は、装置を構成するコンピュータのＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。
【００３５】
空間分割定義入力部１０１は、外部データとしての空間分割定義データＤ１を入力し、空間分割定義Ａ空間分割条件保持部１０５に空間分割定義Ａの空間分割条件のデータを格納し、空間分割定義Ａ空間定義域保持部１０６に空間分割定義Ａの空間定義域のデータを格納し、空間分割定義Ｂ空間定義域／空間分割条件保持部１０７に空間分割定義Ｂの空間定義域および空間分割条件のデータを格納する機能を有している。
【００３６】
カメラ移動可能範囲入力部１０２は、外部データとしてのカメラ移動可能範囲データＤ２を入力し、空間分割定義Ａ空間定義域保持部１０６に空間定義域に対する除外領域のデータを格納する機能を有している。
【００３７】
遮蔽物座標入力部１０３は、外部データとしての遮蔽物座標データＤ３を入力し、遮蔽物座標保持部１０８に遮蔽物座標のデータを格納する機能を有している。
【００３８】
最大判定回数入力部１０４は、外部データとしての最大判定回数データＤ４を入力し、最大判定回数保持部１０９に最大判定回数のデータを格納する機能を有している。最大判定回数は、空間分割定義Ａ内の領域ａから空間分割定義Ｂの領域ｂへの可視性があるか否かをランダムレイキャスティング（領域ａ内のランダムな位置から領域ｂ内のランダムな位置への線分ｖを作成）により判定する場合の最大回数を定める値である。
【００３９】
遮蔽判定部１１０は、空間分割定義Ａ空間分割条件保持部１０５、空間分割定義Ａ空間定義域保持部１０６、空間分割定義Ｂ空間定義域／空間分割条件保持部１０７、遮蔽物座標保持部１０８および最大判定回数保持部１０９の格納データに基づき、空間分割定義Ａに含まれる各領域について、空間分割定義Ｂに含まれる各領域へ可視性があるか否かを判定し、判定結果を遮蔽データ保持部１１１に格納する機能を有している。
【００４０】
遮蔽データ出力部１１２は、遮蔽データ保持部１１１の格納データを遮蔽データＤ５として出力する機能を有している。
【００４１】
図６は各種保持データの構造例を示す図である。（ａ）は空間分割定義Ａ空間分割条件保持部１０５に格納される空間分割定義Ａの空間分割条件のデータの例を示しており、ここでは３次元空間をＸＹ平面で等間隔に分割する場合に対応し、Ｘ軸方向分割数とＹ軸方向分割数とを含んでいる。従って、他の観点で分割を行う場合にはデータ構造が異なってくる。等間隔以外の分割を行う場合、例えば、等間隔に分割された領域毎に、領域の隣同士の併合や領域を更に分割するフラグデータを追加する、あるいは、初めから分割される領域ごとにＸ座標とＹ座標のデータテーブルを持つこと等で実現することができる。
【００４２】
（ｂ）は空間分割定義Ａ空間定義域保持部１０６に格納される空間分割定義Ａの空間定義域のデータの例を示しており、ここでは３次元空間をＸＹ平面で等間隔に分割する場合に対応し、矩形のＸＹ平面を特定するＸ座標最小値、Ｘ座標最大値、Ｙ座標最小値、Ｙ座標最大値と、除外領域（複数可）のＸ位置、Ｙ位置とを含んでいる。
【００４３】
（ｃ）は空間分割定義Ｂ空間定義域／空間分割条件保持部１０７に格納される空間分割定義Ｂの空間定義域および空間分割条件のデータの例を示しており、ここでは３次元空間をＸＹ平面で等間隔に分割する場合に対応し、矩形のＸＹ平面を特定するＸ座標最小値、Ｘ座標最大値、Ｙ座標最小値、Ｙ座標最大値と、Ｘ軸方向分割数とＹ軸方向分割数とを含んでいる。
【００４４】
ここで、Ｘ座標およびＹ座標の最小値、最大値と、分割数との関係は、空間分割定義Ａによって分割された領域ａの大きさと、空間分割定義Ｂによって分割された領域ｂの大きさとが異なるように設定される。
【００４５】
（ｄ）は遮蔽物座標保持部１０８に格納される遮蔽物座標のデータの例を示しており、個々の遮蔽物につきその遮蔽物の外形を定める座標列を含んでいる。（ｅ）は最大判定回数保持部１０９に格納される最大判定回数のデータの例を示している。
【００４６】
図７は遮蔽データ保持部１１１に格納され、遮蔽データＤ５として出力される遮蔽データの構造例を示す図である。遮蔽データは、ここでは３次元空間をＸＹ平面で等間隔に分割する場合に対応し、空間分割定義Ａに含まれる領域Ａ（０，０）〜Ａ（ｎｘ、ｎｙ）のエントリと、各エントリに対応して設けられる、空間分割定義Ｂに含まれる領域Ｂ（０，０）〜Ｂ（ｍｘ、ｍｙ）の個々に対する可視性判定結果（「見える」もしくは「見えない」）を保持する配列データとを含んでいる。なお、空間分割定義Ａに含まれる領域が除外領域に該当する場合（図では領域Ａ（１，０）の場合）は、配列データに代え、「カメラが来ない」旨を示すデータが直接に対応付けられる。
【００４７】
図８は遮蔽事前計算部１００による遮蔽事前計算の処理例を示すフローチャートである。
【００４８】
図８において、遮蔽事前計算の処理を開始すると（ステップＳ１０１）、空間分割定義入力部１０１は空間分割定義データＤ１から空間分割定義Ａの空間定義域および空間分割条件を入力し、空間分割定義Ａ空間分割条件保持部１０５および空間分割定義Ａ空間定義域保持部１０６に格納する（ステップＳ１０２）。また、空間分割定義入力部１０１は、空間分割定義データＤ１から空間分割定義Ｂの空間定義域および空間分割条件を入力し、空間分割定義Ｂ空間定義域／空間分割条件保持部１０７に格納する（ステップＳ１０３）。
【００４９】
次いで、カメラ移動可能範囲入力部１０２はカメラ移動可能範囲データＤ２からカメラ移動範囲を入力し、空間分割定義Ａ空間定義域保持部１０６に格納する（ステップＳ１０４）。カメラ移動範囲は、積極的にカメラが移動可能な範囲を指定してもよいし、カメラが移動しない範囲を除外範囲として指定してもよい。
【００５０】
次いで、遮蔽物座標入力部１０３は遮蔽物座標データＤ３から遮蔽物座標を入力し、遮蔽物座標保持部１０８に格納する（ステップＳ１０５）。
【００５１】
次いで、最大判定回数入力部１０４は最大判定回数データＤ４から最大判定回数ｎｍａｘを入力し、最大判定回数保持部１０９に格納する（ステップＳ１０６）。
【００５２】
その後、空間分割定義Ａ内の全ての領域ａについて以下の処理を繰り返す（ステップＳ１０７）。
【００５３】
先ず、遮蔽判定部１１０は、領域ａはカメラ移動範囲に交わっているか否かにつき、空間分割定義Ａ空間定義域保持部１０６のデータに基づいて判断する（ステップＳ１０８）。そして、領域ａがカメラ移動範囲に交わっていないと判断した場合（ステップＳ１０８のＮＯ）、遮蔽データ保持部１１１の遮蔽データの領域ａについて「カメラは来ない」を設定し（ステップＳ１０９）、全ての領域ａについての繰り返し（ステップＳ１０７）に戻る。
【００５４】
領域ａがカメラ移動範囲に交わっていると判断した場合（ステップＳ１０８のＹＥＳ）、空間分割定義Ｂの全ての領域ｂについて以下の処理を繰り返す（ステップＳ１１０）。
【００５５】
先ず、遮蔽判定部１１０は変数ｎに最大判定回数保持部１０９に格納されている最大判定回数ｎｍａｘを設定する（ステップＳ１１１）。
【００５６】
次いで、遮蔽判定部１１０は領域ａ内のランダムな位置から領域ｂ内のランダムな位置への線分ｖを作成する（ステップＳ１１２）。
【００５７】
次いで、遮蔽判定部１１０は線分ｖと遮蔽物が交わったか否か、遮蔽物座標保持部１０８のデータに基づいて判断する（ステップＳ１１３）。そして、線分ｖと遮蔽物が交わらなかったと判断した場合（ステップＳ１１３のＮＯ）、遮蔽判定部１１０は遮蔽データ保持部１１１の遮蔽データの領域ａから領域ｂについて「見える」と設定する（ステップＳ１１４）。すなわち、多数のランダムレイキャスティングを行なう過程で、１本でも遮蔽物と交差しないレイが存在した場合には、その時点で可視性があると判定する。
【００５８】
また、線分ｖと遮蔽物が交わったと判断した場合（ステップＳ１１３のＹＥＳ）、遮蔽判定部１１０は変数ｎをデクリメント（１減算）し（ステップＳ１１５）、変数ｎが「０」になったか否か判断する（ステップＳ１１６）。そして、変数ｎが「０」にならなかったと判断した場合（ステップＳ１１６のＮＯ）、線分ｖの作成（ステップＳ１１２）に戻る。また、変数ｎが「０」になったと判断した場合（ステップＳ１１６のＹＥＳ）、遮蔽判定部１１０は遮蔽データ保持部１１１の遮蔽データの領域ａから領域ｂについて「見えない」と設定する（ステップＳ１１７）。最大判定回数ｎｍａｘに相当する回数だけランダムレイキャスティングを行った結果、全てが遮蔽物と交わったことで、可視性はないと判断する。
【００５９】
その後、遮蔽判定部１１０は全ての領域ｂについて処理したか否か判断し（ステップＳ１１８）、処理していないと判断した場合（ステップＳ１１８のＮＯ）は全ての領域ｂについての繰り返し（ステップＳ１１０）に戻る。
【００６０】
全ての領域ｂについて処理したと判断した場合（ステップＳ１１８のＹＥＳ）、続いて全ての領域ａについて処理したか否か判断し（ステップＳ１１９）、処理していないと判断した場合（ステップＳ１１９のＮＯ）、全ての領域ａについての繰り返し（ステップＳ１０７）に戻る。
【００６１】
全ての領域ａについて処理したと判断した場合（ステップＳ１１９のＹＥＳ）、遮蔽データ出力部１１２は遮蔽データ保持部１１１から遮蔽データＤ５を出力し（ステップＳ１２０）、遮蔽事前計算の処理を終了する（ステップＳ１２１）。
【００６２】
＜グラフィックス描画＞
図９は本発明の一実施形態にかかるグラフィックス描画のための装置構成例を示す図であり、ゲームアプリケーションを実行するゲーム装置等の一部として設けられるものである。
【００６３】
図９において、グラフィックス描画部２００は、ゲーム状態更新部２０１とカメラ位置計算部２０２と描画モデル決定部２０３とモデルデータ保持部２０４と可視性判定部２０５とモデル描画部２０６とを備えている。機能部であるゲーム状態更新部２０１、カメラ位置計算部２０２、描画モデル決定部２０３、可視性判定部２０５、モデル描画部２０６は、装置を構成するコンピュータのＣＰＵ、ＲＯＭ、ＲＡＭ等のハードウェア資源上で実行されるコンピュータプログラムによって実現されるものである。
【００６４】
ゲーム状態更新部２０１は、プレイヤー操作データＤ６をリアルタイムに入力し、ゲーム状態を更新する機能を有している。プレイヤー操作データＤ６はプレイヤーにより操作されるゲームコントローラから、ボタンの押下やレバーの操作等に応じて出力される信号データである。
【００６５】
カメラ位置計算部２０２は、ゲーム状態更新部２０１により更新されたゲーム状態に応じ、その時点でのカメラ位置を計算する機能を有している。
【００６６】
描画モデル決定部２０３は、ゲーム状態更新部２０１により更新されたゲーム状態およびカメラ位置計算部２０２で計算されたカメラ位置に応じ、描画される可能性のある描画モデルをモデルデータ保持部２０４の中から決定する機能を有している。モデルデータ保持部２０４には、各種の描画モデルにつき、多数の３次元ポリゴン等を記述するデータが格納されている。
【００６７】
可視性判定部２０５は、カメラ位置計算部２０２で計算されたカメラ位置、描画モデル決定部２０３で決定された描画モデルに対し、遮蔽データＤ５を参照することで、空間分割定義Ａ上のカメラ位置の存在する領域から空間分割定義Ｂ上の描画モデルの存在する領域に対して可視性があるか否かを判定する機能を有している。
【００６８】
モデル描画部２０６は、可視性判定部２０５により可視性があると判定された描画モデルについてのみ描画を行い、画像出力データＤ７を出力する機能を有している。画像出力データＤ７は、画像のピクセルデータである。
【００６９】
図１０はグラフィックス描画部２００によるグラフィックス描画の処理例を示すフローチャートである。
【００７０】
図１０において、グラフィックス描画の処理を開始すると（ステップＳ２０１）、カメラ位置計算部２０２は空間分割定義Ａでカメラ位置が含まれる領域ａを求め、可視性判定部２０５に与える（ステップＳ２０２）。
【００７１】
次いで、可視性判定部２０５は領域ａについての遮蔽データを取得する（ステップＳ２０３）。
【００７２】
また、描画モデル決定部２０３はゲーム状態更新部２０１の更新したゲーム状態から描画される可能性がある描画モデルを決定し、その描画モデルを包む外接球の情報とともに可視性判定部２０５に与える（ステップＳ２０４）。
【００７３】
次いで、全ての描画する可能性のある描画モデルｍについて以下の処理を繰り返す（ステップＳ２０５）。また、空間分割定義Ｂ内の全ての領域ｂについて以下の処理を繰り返す（ステップＳ２０６）。
【００７４】
先ず、可視性判定部２０５は領域ｂが描画モデルｍの外接球と交わっているか否か判断する（ステップＳ２０７）。そして、領域ｂが描画モデルｍの外接球と交わっていないと判断した場合（ステップＳ２０７のＮＯ）、全ての領域ｂについての繰り返し（ステップＳ２０６）に戻る。
【００７５】
領域ｂが描画モデルｍの外接球と交わっていると判断した場合（ステップＳ２０７のＹＥＳ）、可視性判定部２０５は領域ｂが遮蔽データの「見える」領域に含まれているか否か判断する（ステップＳ２０８）。そして、「見える」領域に含まれていると判断した場合（ステップＳ２０８のＹＥＳ）、その描画モデルｍは見える可能性があるとして、モデル描画部２０６はその描画モデルｍを描画し、画像出力データＤ７を出力する（ステップＳ２０９）。
【００７６】
領域ｂが遮蔽データの「見える」領域に含まれていないと判断した場合（ステップＳ２０８のＮＯ）、空間分割定義Ｂの全ての領域ｂでチェックしたか否か判断する（ステップＳ２１０）。そして、全ての領域ｂでチェックしていないと判断した場合（ステップＳ２１０のＮＯ）、全ての領域ｂについての繰り返し（ステップＳ２０６）に戻る。
【００７７】
全ての領域ｂでチェックしたと判断した場合（ステップＳ２１０のＹＥＳ）、その描画モデルｍはどこからも見えないとして、モデル描画部２０６はその描画モデルｍを描画しない（ステップＳ２１１）。
【００７８】
その後、描画する可能性のある全ての描画モデルについて処理したか否か判断し（ステップＳ２１２）、処理していないと判断した場合（ステップＳ２１２のＮＯ）、全てのモデルｍについての繰り返し（ステップＳ２０５）に戻る。
【００７９】
全ての描画モデルについて処理したと判断した場合（ステップＳ２１２のＹＥＳ）、グラフィックス描画の処理を終了する（ステップＳ２１３）。
【００８０】
なお、描画モデルが領域ｂに含まれるか否かの判断として、複数のポリゴンを描画モデルとしてまとめて扱い、それらの外接球によって可視性を判定する手法について説明したが、外接球による判定のほかにポリゴン群の可視性判定を行う手法は様々なものがあり、それらを適宜利用することができる。その場合の処理の流れは同様になる。
【００８１】
＜総括＞
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【００８２】
【図１】従来における遮蔽事前計算の概要を示す図である。
【図２】従来におけるグラフィックス描画の概要を示す図である。
【図３】本発明における遮蔽事前計算の概要を示す図である。
【図４】本発明におけるグラフィックス描画の概要を示す図である。
【図５】本発明の一実施形態にかかる遮蔽事前計算のための装置構成例を示す図である。
【図６】各種保持データの構造例を示す図である。
【図７】遮蔽データの構造例を示す図である。
【図８】遮蔽事前計算の処理例を示すフローチャートである。
【図９】本発明の一実施形態にかかるグラフィックス描画のための装置構成例を示す図である。
【図１０】グラフィックス描画の処理例を示すフローチャートである。
【符号の説明】
【００８３】
Ａ、Ｂ      空間分割定義
１００      遮蔽事前計算部
１０１      空間分割定義入力部
１０２      カメラ移動可能範囲入力部
１０３      遮蔽物座標入力部
１０４      最大判定回数入力部
１０５      空間分割定義Ａ空間分割条件保持部
１０６      空間分割定義Ａ空間定義域保持部
１０７      空間分割定義Ｂ空間定義域／空間分割条件保持部
１０８      遮蔽物座標保持部
１０９      最大判定回数保持部
１１０      遮蔽判定部
１１１      遮蔽データ保持部
１１２      遮蔽データ出力部
２００      グラフィックス描画部
２０１      ゲーム状態更新部
２０２      カメラ位置計算部
２０３      描画モデル決定部
２０４      モデルデータ保持部
２０５      可視性判定部
２０６      モデル描画部
Ｄ１        空間分割定義データ
Ｄ２        カメラ移動可能範囲データ
Ｄ３        遮蔽物座標データ
Ｄ４        最大判定回数データ
Ｄ５        遮蔽データ
Ｄ６        プレイヤー操作データ
Ｄ７        画像出力データ
【図１】
2009301228.tif 000003
【図２】
2009301228.tif 000004
【図３】
2009301228.tif 000005
【図４】
2009301228.tif 000006
【図５】
2009301228.tif 000007
【図６】
2009301228.tif 000008
【図７】
2009301228.tif 000009
【図８】
2009301228.tif 000010
【図９】
2009301228.tif 000011
【図１０】
2009301228.tif 000012