(57)【要約】  情報処理装置は、３次元シーンの描画を行う視点を示す視点情報を取得し、該取得した視点情報に基づく描画範囲に含まれるオブジェクトについての視点非依存マップを所定の演算により生成する。そして、該装置は、生成した視点非依存マップの各画素を、該画素に対応するオブジェクトと取得した視点情報により示される視点との距離に関連付けて格納する。該装置は、取得した視点情報により示される視点との距離に対応した、描画範囲に含まれるオブジェクトについての視点非依存マップの画素が既に格納されている場合に、所定の演算を行わない。【選択図】図５
2015515030.tif 000002
【特許請求の範囲】
【請求項１】
３次元シーンの描画を行う視点を示す視点情報を取得する取得手段と、
前記取得された視点情報に基づく描画範囲に含まれるオブジェクトについての視点非依存マップを所定の演算により生成する生成手段と、
前記生成された視点非依存マップの各画素を、該画素に対応するオブジェクトと前記取得された視点情報により示される視点との距離に関連付けて格納する格納手段と、を有し、
前記生成手段は、前記取得された視点情報により示される視点との距離に対応した、前記描画範囲に含まれるオブジェクトについての視点非依存マップの画素が既に格納されている場合に、前記所定の演算を行わない
ことを特徴とする情報処理装置。
【請求項２】
前記格納手段は、前記取得された視点情報により示される視点との距離に対応した、前記描画範囲に含まれるオブジェクトについての視点非依存マップの画素が格納されていない場合に、前記生成された視点非依存マップの対応する画素を格納することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記視点非依存マップは、各々異なる距離が関連付けられた複数のマップで構成され、
前記格納手段は、前記複数のマップのうちの該画素に対応するオブジェクトと前記取得された視点情報により示される視点との距離に対応するマップに、前記生成された視点非依存マップの各画素を格納する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記複数のマップは、各々異なる解像度を有するマップであることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記複数のマップは、関連付けられている距離が短いほど同一のオブジェクトに対して高い解像度を有するマップであることを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記複数のマップのうち、第１の距離が関連付けられた第１のマップの画素の画素値は、前記第１の距離よりも短い第２の距離が関連付けられた第２のマップの対応する位置の画素の画素値の平均値に対応することを特徴とする請求項３乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記複数のマップのうちの第１の距離が関連付けられた第１のマップの対象画素を、
前記第１の距離よりも短い第２の距離が関連付けられた第２のマップの前記対象画素に対応する位置の画素、及び
前記第１のマップの前記対象画素の周辺画素と前記第１の距離よりも長い第３の距離が関連付けられた第３のマップの前記対象画素に対応する位置の画素
の少なくともいずれかに基づいて新たに生成する追加手段をさらに有し、
前記格納手段は、前記追加手段により生成された前記対象画素を、前記第１の距離に関連付けて格納する
ことを特徴とする請求項３乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記追加手段は、前記第２のマップの前記対象画素に対応する位置の全ての画素が前記格納手段により格納された場合に、これらの画素の平均値を画素値として前記対象画素を生成することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記追加手段は、前記第３のマップの前記対象画素に対応する位置の画素と、前記第１のマップの該画素に対応する前記対象画素以外の周辺画素とが前記格納手段により格納されている場合に、前記第３のマップの対応する位置の画素の画素値から該周辺画素の画素値の平均値を減じて得られた値を画素値として前記対象画素を生成することを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
外部装置との通信を行う通信手段と、
通信が行われている外部装置について前記３次元シーンの描画を行う視点を決定する決定手段と、
前記決定された視点について生成された視点非依存マップを使用して、前記決定された視点に対応する画面の描画を行う描画手段と、をさらに有し、
前記取得手段は、前記決定された視点を示す視点情報を取得し、
前記通信手段は、前記描画された画面を外部装置に対して送信する
ことを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記通信手段は、複数の外部装置と通信を行い、
前記格納手段は、異なる外部装置について決定された視点情報に基づいて生成された視点非依存マップの画素を１つのデータとして格納し、
前記生成手段は、前記複数の外部装置のいずれかについて生成され、同一の距離に関連付けて既に格納されている視点非依存マップの画素については、前記所定の演算を行わない
ことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
視点非依存マップは、前記３次元シーンに配置された静的な光源及びオブジェクトに基づくライトマップあるいはシャドウマップを含むことを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記格納手段は、視点非依存マップの画素のうちの描画に使用されない画素が所定の条件を満たす場合に、該画素を削除することを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
３次元シーンの描画を行う視点を示す視点情報を取得する取得工程と、
前記取得された視点情報に基づく描画範囲に含まれるオブジェクトについての視点非依存マップを所定の演算により生成する生成工程と、
前記生成された視点非依存マップの各画素を、該画素に対応するオブジェクトと前記取得された視点情報により示される視点との距離に関連付けて格納する格納工程と、を有し、
前記生成工程において、前記取得された視点情報により示される視点との距離に対応した、前記描画範囲に含まれるオブジェクトについての視点非依存マップの画素が既に格納されている場合に、前記所定の演算は行われない
ことを特徴とする情報処理装置の制御方法。
【請求項１５】
前記格納工程において、前記取得された視点情報により示される視点との距離に対応した、前記描画範囲に含まれるオブジェクトについての視点非依存マップの画素が格納されていない場合に、前記生成された視点非依存マップの対応する画素が格納されることを特徴とする請求項１４に記載の情報処理装置の制御方法。
【請求項１６】
前記視点非依存マップは、各々異なる距離が関連付けられた複数のマップで構成され、
前記格納工程において、前記複数のマップのうちの該画素に対応するオブジェクトと前記取得された視点情報により示される視点との距離に対応するマップに、前記生成された視点非依存マップの各画素が格納される
ことを特徴とする請求項１４または１５に記載の情報処理装置の制御方法。
【請求項１７】
前記複数のマップは、各々異なる解像度を有するマップであることを特徴とする請求項１６に記載の情報処理装置の制御方法。
【請求項１８】
前記複数のマップは、関連付けられている距離が短いほど同一のオブジェクトに対して高い解像度を有するマップであることを特徴とする請求項１６または１７に記載の情報処理装置の制御方法。
【請求項１９】
前記複数のマップのうち、第１の距離が関連付けられた第１のマップの画素の画素値は、前記第１の距離よりも短い第２の距離が関連付けられた第２のマップの対応する位置の画素の画素値の平均値に対応することを特徴とする請求項１６乃至１８のいずれか１項に記載の情報処理装置の制御方法。
【請求項２０】
前記複数のマップのうちの第１の距離が関連付けられた第１のマップの対象画素を、
前記第１の距離よりも短い第２の距離が関連付けられた第２のマップの前記対象画素に対応する位置の画素、及び
前記第１のマップの前記対象画素の周辺画素と前記第１の距離よりも長い第３の距離が関連付けられた第３のマップの前記対象画素に対応する位置の画素
の少なくともいずれかに基づいて新たに生成する追加工程をさらに有し、
前記追加工程において生成された前記対象画素が、前記格納工程において前記第１の距離に関連付けて格納される
ことを特徴とする請求項１６乃至１９のいずれか１項に記載の情報処理装置の制御方法。
【請求項２１】
前記第２のマップの前記対象画素に対応する位置の全ての画素が前記格納工程において格納された場合に、前記追加工程においてこれらの画素の平均値を画素値として前記対象画素が生成されることを特徴とする請求項２０に記載の情報処理装置の制御方法。
【請求項２２】
前記第３のマップの前記対象画素に対応する位置の画素と、前記第１のマップの該画素に対応する前記対象画素以外の周辺画素とが前記格納工程において格納されている場合に、前記追加工程において前記第３のマップの対応する位置の画素の画素値から該周辺画素の画素値の平均値を減じて得られた値を画素値として前記対象画素が生成されることを特徴とする請求項２０または２１に記載の情報処理装置の制御方法。
【請求項２３】
外部装置との通信を行う通信工程と、
通信が行われている外部装置について前記３次元シーンの描画を行う視点を決定する決定工程と、
前記決定された視点について生成された視点非依存マップを使用して、前記決定された視点に対応する画面の描画を行う描画工程と、をさらに有し、
前記取得工程において、前記決定された視点を示す視点情報が取得され、
前記通信工程において、前記描画された画面が外部装置に対して送信される
ことを特徴とする請求項１４乃至２２のいずれか１項に記載の情報処理装置の制御方法。
【請求項２４】
前記通信工程において、複数の外部装置と通信が行われ、
前記格納工程において、異なる外部装置について決定された視点情報に基づいて生成された視点非依存マップの画素が１つのデータとして格納され、
前記生成工程において、前記複数の外部装置のいずれかについて生成され、同一の距離に関連付けて既に格納されている視点非依存マップの画素については、前記所定の演算が行われない
ことを特徴とする請求項２３に記載の情報処理装置の制御方法。
【請求項２５】
視点非依存マップは、前記３次元シーンに配置された静的な光源及びオブジェクトに基づくライトマップあるいはシャドウマップを含むことを特徴とする請求項１４乃至２４のいずれか１項に記載の情報処理装置の制御方法。
【請求項２６】
前記格納工程において、視点非依存マップの画素のうちの描画に使用されない画素が所定の条件を満たす場合に、該画素が削除されることを特徴とする請求項１４乃至２５のいずれか１項に記載の情報処理装置の制御方法。
【請求項２７】
コンピュータに、請求項１４乃至２６のいずれか１項に記載の情報処理装置の制御方法の各工程を実行させるためのプログラム。
【請求項２８】
コンピュータに、請求項１４乃至２６のいずれか１項に記載の情報処理装置の制御方法の各工程を実行させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、プログラム、及び記録媒体に関し、特に視点位置に依存せずに使用可能な、演算により生成されるマップの共有技術に関する。
【背景技術】
【０００２】
近年、インターネット等のネットワークを利用する情報通信技術の発達に伴い、ネットワークを介した顧客へのサービス提供が様々な分野でなされている。こうしたサービスの１つに、所謂クラウド型ゲーミングのような、サーバにおいて描画された画面をネットワークを介してクライアント機器に提供するものがある。該サービスでは、サーバは例えばクライアント機器においてなされた操作の情報を取得し、操作に対応して変更された画面を描画してクライアント機器に提供することで、クライアント機器における画面表示を更新することができる。つまりクラウド型ゲーミングでは、ユーザは十分な描画性能を有するクライアント機器を所持していなくとも、十分な描画性能を有する機器と同等のゲームをプレイすることができる。
【０００３】
ところで、ネットワークを介して提供されるゲームの中には、ＭＭＯＲＰＧ（Massively Multiplayer Online Role-Playing Game）のような多人数同時参加型のネットワークゲームや、ゲーム内の同一のフィールドを複数のユーザが交互に使用するネットワークゲームが存在する。このようなネットワークゲームでは、ユーザが操作する操作キャラクタを移動可能なフィールドは同一であるが、ユーザの操作に起因する進行の変化や移動経路によって異なったゲーム画面がクライアント機器に提供される。即ち、ユーザの操作に応じて変化する視点パラメータ（位置及び方向）に基づいて描画されるゲーム画面は、クライアント機器ごとに生成され、必ずしも一致するものではない。
【０００４】
３次元シーンの描画においては種々のマップ（あるいはテクスチャ）が使用されるが、これらのマップの中には視点パラメータによらず一定の結果となるもの（視点非依存マップ）が含まれる。例えば、光源による影響を提示するために使用されるライトマップやシャドウマップ等のマップは、視点パラメータによらず同一の結果を示す。具体的には、フィールドに配置される描画オブジェクトの１つの点に対して光源により生じる一部の反射や陰影は、該オブジェクトや光源が静的なものである限り、いずれの方向からみた場合も常に一定の結果となる。つまり、３次元シーンを描画するにあたって、事前にライトマップやシャドウマップ等を生成して記憶しておけば、動的な要素による影響がない限り、描画時に使用可能であることが考えられる。
【０００５】
一方で、このような視点非依存マップを用いる場合、視点との距離が近い描画オブジェクトへの適用において次のような問題が生じうる。例えば３次元シーンの描画オブジェクトに適用される１つの光源に係る陰影をシャドウマップを用いて描画する場合、生成する画面の各画素に陰影が現れるか否かは、該画素に描画される描画オブジェクトと光源との間に他のオブジェクトが存在するか否かによる（参照：深度バッファシャドウマッピング手法）。シャドウマップの各画素は、光源からの投影において該画素を進行した光束が描画オブジェクトに最初に当たるまでの距離を示している。従って、画面の各画素を光源の投影に変換した場合に得られる該画素と光源との距離が、対応するシャドウマップの画素により示される距離より大きいのであれば陰影が現れ、同じまたは小さいのであれば陰影が現れないことになる。シーンにおいて画面描画に係る視点の近くに存在する床面や描画オブジェクトは画面内で相対的に大きい領域を占有することになるが、シャドウマップの解像度によってはマップの１つの画素が該領域の複数の画素の陰影判断に繰り返し使われることになる。即ち、シャドウマップの解像度と視点に係り描画される描画オブジェクトの画素数とが対応しない場合、シャドウマップが引き延ばされて陰影判断に使用されることになるため、現れる陰影にエイリアスが生じ、不自然な印象を与える可能性があった。
【０００６】
このような陰影にエイリアスが生じる問題を改善する方法として、画面における描画オブジェクトの分解能によらずに好適な鮮鋭度で陰影を描画できるよう、シャドウマップを初めから高解像度で生成しておく方法が考えられる。しかしながら、高解像度のシャドウマップはデータ容量が多く、さらにシーンに配置される光源は大抵複数存在するため、シャドウマップを保持しておくだけでメモリ領域を圧迫しうる。また、上述したようにサーバ側で生成された画面を提供するシステムでは複数のクライアント機器に並行して同一の３次元シーンに係る画面提供を行うことが考えられるため、各クライアント機器について視点非依存マップを生成することは現実的でない。あるいは、シーンにおいて視点が近づき得ないような位置に配置された描画オブジェクトは、描画した場合に画面内でも占有する画素数が常に少ないため、解像度の高い視点非依存マップは不要となりえる。また、視点非依存マップの生成には所定の演算が必要となるため、マップの画素が多いほど演算量の観点でも問題を生じうる。
【発明の概要】
【０００７】
本発明はこのような従来技術の課題に鑑みてなされたものである。本発明は、視点非依存マップを効率的に生成及び共有する情報処理装置、制御方法、プログラム、及び記録媒体を提供する。
【０００８】
本発明の第１の態様は、３次元シーンの描画を行う視点を示す視点情報を取得する取得手段と、取得された視点情報に基づく描画範囲に含まれるオブジェクトについての視点非依存マップを所定の演算により生成する生成手段と、生成された視点非依存マップの各画素を、該画素に対応するオブジェクトと取得された視点情報により示される視点との距離に関連付けて格納する格納手段と、を有し、生成手段は、取得された視点情報により示される視点との距離に対応した、描画範囲に含まれるオブジェクトについての視点非依存マップの画素が既に格納されている場合に、所定の演算を行わない情報処理装置を提供する。
【０００９】
本発明の第２の態様は、３次元シーンの描画を行う視点を示す視点情報を取得する取得工程と、取得された視点情報に基づく描画範囲に含まれるオブジェクトについての視点非依存マップを所定の演算により生成する生成工程と、生成された視点非依存マップの各画素を、該画素に対応するオブジェクトと取得された視点情報により示される視点との距離に関連付けて格納する格納工程と、を有し、生成工程において、取得された視点情報により示される視点との距離に対応した、描画範囲に含まれるオブジェクトについての視点非依存マップの画素が既に格納されている場合に、所定の演算は行われない情報処理装置の制御方法を提供する。
【００１０】
さらに、本発明の特徴は、（添付の図面を参照して）以下の例示的な実施形態の記載により明らかになるだろう。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る画面提供システムのシステム構成を示した図
【図２】本発明の実施形態に係るサーバ１００の機能構成を示したブロック図
【図３】本発明の実施形態に係る生成すべき視点非依存マップの解像度を簡易的に示した図
【図４】本発明の実施形態に係る視点非依存マップのデータ構成を示した図
【図５】本発明の実施形態に係るサーバ１００において実行される視点非依存マップの生成処理を例示したフローチャート
【発明を実施するための形態】
【００１２】
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、情報処理装置の一例としての、複数のクライアント機器に提供する画面を並行して描画可能なサーバに、本発明を適用した例を説明する。しかし、本発明は、機器に提供する画面を並行して描画することが可能な任意の機器に適用可能である。
【００１３】
《画面提供システムの構成》
図１は、本発明の実施形態に係る上記サーバ及びクライアント機器で構成される画面提供システムのシステム構成を示した図である。本システムは、クラウド型ゲーミングを実現する。
【００１４】
サーバ１００は、クラウド型ゲーミングとしてサービス提供がなされるゲームに係る画面（ゲーム画面）を描画し、これを符号化動画データとしてストリーミング形式でクライアント機器２００に出力する。なお、本実施形態ではサーバ１００が描画機能を有するものとして説明するが、本発明の実施はこれに限られない。例えばサーバ１００から出力された命令に従って、描画処理に特化した外部の描画サーバが画面描画を行い、生成したゲーム画面を出力する態様であってもよい。また、本実施形態では簡単のため、サーバ１００に接続するクライアント機器２００は、共通して１つのゲームコンテンツを利用することができるものとして説明するが、本発明の実施はこれに限られるものではない。
【００１５】
各クライアント機器２００は、サービス提供を受けるためにネットワーク３００を介してサーバ１００に接続する。クライアント機器２００は、ＰＣや据置型ゲーム機に限らず、携帯電話やスマートフォン、携帯型ゲーム機等の移動端末であってもよい。またネットワーク３００は、インターネット等の公用の通信網に限らず、ＬＡＮであってもよいし、サーバ１００とクライアント機器２００とを直接有線／無線で接続する通信態様であってもよい。クライアント機器２００は、操作入力インタフェースを備えており、ユーザによりなされた操作入力を示す情報をサーバ１００に送信する、あるいは操作入力を示す情報に所定の処理を適用した上でサーバ１００に送信する。
【００１６】
サーバ１００は、ネットワーク３００を介してクライアント機器２００から操作入力に係る情報を取得し、描画するフレームについての所定の演算及び描画処理を行ってゲーム画面を生成する。そしてサーバ１００は、例えば該画面を動画データに符号化し、対応するクライアント機器２００に送信する。クライアント機器２００は、該動画データを受信すると復号等の所定の処理を行い、クライアント機器２００が有する表示装置あるいはクライアント機器２００に接続された表示装置に映像信号を出力して表示させる。このようにすることで、クライアント機器２００のユーザに対して、画面提供システムにおけるゲーム画面の提供が実現される。
【００１７】
なお、本実施形態では複数のクライアント機器２００が並行してサーバ１００に接続し、各々ゲーム画面の提供を受けるものとして説明するが、本発明の実施はこれに限られるものではなく、サーバ１００はクライアント機器２００と１対１で接続するものであってもよい。
【００１８】
〈サーバ１００の機能構成〉
図２は、本発明の実施形態に係るサーバ１００の機能構成を示すブロック図である。
【００１９】
ＣＰＵ１０１は、サーバ１００が有する各ブロックの動作を制御する。具体的にはＣＰＵ１０１は、記録媒体１０２に記録されているゲームプログラムを読み出し、ＲＡＭ１０３に展開して実行することにより各ブロックの動作を制御することができる。
【００２０】
記録媒体１０２は、ＨＤＤや書き換え可能なＲＯＭ等の不揮発性メモリであってよい。記録媒体１０２にはクライアント機器２００に提供するゲームコンテンツに係るゲームプログラムだけでなく、ゲームプログラムにおいて必要となる各種パラメータが記録される。また記録媒体１０２には、ゲーム画面の生成において必要となる描画オブジェクトのデータ等が記録される。描画オブジェクトのデータには、例えばモデルデータやテクスチャデータだけでなく、使用するshader等の描画用プログラム、及び該描画用プログラムで用いられる演算用データ（光源強度等の定数、光源ベクトル、光源属性等の変数など）が含まれていてよい。
【００２１】
ＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、ゲームプログラムの展開領域としてだけでなく、各ブロックの動作において出力された中間データ等を一時記憶する記憶領域としても用いられる。
【００２２】
ＧＰＵ１０４は、ＣＰＵ１０１からの指示を受けてゲーム画面の描画処理を行う。具体的にはＧＰＵ１０４は、例えばゲームプログラムの実行時において予め用意されたＡＰＩを利用する描画指示がなされた場合に、ドライバを介してその指示に対応する描画命令を受ける。本実施形態ではＧＰＵ１０４は、描画命令を受けて、描画に必要なデータを一時的に展開して保持する展開領域であるキャッシュメモリ１０５に展開する。そしてＧＰＵ１０４は、描画命令に従い、キャッシュメモリ１０５に展開されているデータを使用してＧＰＵメモリ１０６にゲーム画面の描画を行う。
【００２３】
また、本実施形態では簡単のため、複数のクライアント機器２００の各々について行われるゲームプログラムにおいて、１つのキャッシュメモリ１０５を共有するものとして説明するが、キャッシュメモリ１０５は複数の領域に分離して構成されていてもよい。
【００２４】
通信部１０７は、サーバ１００が有する通信インタフェースである。通信部１０７は、ネットワーク３００を介して各クライアント機器２００との間でデータの送受信を行うことができる。具体的には通信部１０７は、各クライアント機器２００においてなされた操作入力の情報の受信、あるいはＧＰＵメモリ１０６に描画されたゲーム画面の（本実施形態ではゲーム画面は符号化された映像データとして）対応するクライアント機器２００への送信を行う。データの送受信は、所定の通信方式に係るデータ形式への変換や該形式からサーバ１００において処理可能な形式への変換等を含む。
【００２５】
《視点非依存マップ生成の概要》
まず、このような構成を有する本実施形態のサーバ１００におけるゲーム画面の描画に用いる視点非依存マップの生成について図を参照して概要を説明する。
【００２６】
〈視点非依存マップのデータ構造〉
上述したように、３Ｄシーンに係るゲーム画面の生成においては、配置される視点に依らず、３Ｄシーン内に配置される静的なオブジェクト（光源を含む）の関係によってのみ定義される視点非依存マップが存在する。視点非依存マップには、例えばシャドウマップやライトマップ等が含まれる。
【００２７】
視点非依存マップは、動的な描画オブジェクトが存在しない状態の３Ｄシーンについて事前に生成しておくことも可能であるが、想定する３Ｄシーンのフィールドの広さによってデータ量が増大し、格納する記憶領域を圧迫しうる。同時に複数のクライアント機器に対して提供するゲーム画面を生成しうるクラウドゲーミングシステムでは、通常各クライアント機器に対して異なる視点に基づく画面を提供するため、それぞれの画面の生成において厳密に必要となる視点非依存マップは異なる。即ち、想定する３Ｄシーンの全てのフィールドについての視点非依存マップを用意しておく必要はなく、各クライアント機器に係るゲーム画面の提供において必要最小限の視点非依存マップさえあれば、各画面の生成は行うことができる。また、視点非依存であるため、各クライアント機器について生成した視点非依存マップは、他のクライアント機器に対するゲーム画面の生成において参照することが可能である。例えばシャドウマップの例では、１つの光源について生成したシャドウマップは、該光源による影響を判断（陰影判断）する必要がある描画オブジェクトを描画範囲に含む視点についてゲーム画面を生成する際には参照可能である。従って、例えば図３に示されるように同一のフィールド３０４に設定される複数の視点３０１〜３０３についてゲーム画面を描画する際には、いずれかのゲーム画面の描画において生成した視点非依存マップを使用することができる。
【００２８】
一方で、上述したようにゲーム画面の画質を考慮して、生成すべき視点非依存マップの解像度は決定されることが好ましい。同一の描画オブジェクトであっても、ゲーム画面を生成する視点との距離や方向によっては、画面内において占有する画素数が変化する。例えばシャドウマップ等を参照して陰影描画を行った際にエイリアスが目立つ等の問題を解消した高画質のゲーム画面を生成するためには、ゲーム画面に描画される描画オブジェクトの画素毎に陰影判断が行われることが好ましい。あるいは、該オブジェクトの占有する領域の画素数と同等数あるいはそれ以上の数の陰影判断が領域に対して行われることが好ましい。
【００２９】
従って、本実施形態のサーバ１００では、視点非依存マップを使用して行った演算結果が反映されたゲーム画面の画質が好適となるように、演算結果が反映される描画オブジェクトの、画面における画素数に適合させて視点非依存マップの生成を行う。即ち、本実施形態のサーバ１００では、基本的には、生成される画面において描画されるオブジェクトの画素数に応じて、適応的に視点非依存マップを生成し、例えばキャッシュメモリ１０５等に格納する。このように、生成した視点非依存マップをキャッシュメモリ１０５に格納しておくことで、他の視点についてゲーム画面を生成する際の陰影判断に参照することができる。
【００３０】
また、視点非依存マップは陰影判断が行われる描画オブジェクトと視点との距離に応じて分解能を異ならせるため、本実施形態のサーバ１００は視点非依存マップをミップマップ形式で生成する。具体的にはサーバ１００は、図４のように視点非依存マップを階層構造で生成し、１つの階層（上層）と該階層の直下の階層（下層）とは、上層の１画素が下層の４画素と対応するように構成する。つまり、下層のマップは上層のマップに比べ、水平方向及び垂直方向に２倍の解像度を有するように構成される。このように視点非依存マップを構成することで、例えば同一の描画オブジェクトについて使用する、解像度の異なるシャドウマップを複数保持しておくことができる。従って、ゲーム画面の生成においては、視点非依存マップのうちの対応する解像度のマップを参照して陰影判断を行うことができる。本実施形態ではミップマップ形式を取ることで、特定の解像度ごとに階層を分離した構造で視点非依存マップを保持し、生成するゲーム画面において対応する解像度のマップを参照するものとして説明する。しかしながら、階層的な構造や生成する解像度の刻み幅等はこれに限られないことは容易に理解されよう。
【００３１】
例えば図３の例において生成すべき視点非依存マップの解像度をハッチングの濃淡により示すと、各視点３０１〜３０３に近い領域では解像度が高く（ハッチングが濃く）、視点から離れるにつれて解像度が低く（ハッチングが薄く）なる。なお、図３は視点非依存マップについて要求される解像度を簡易的に示すために、フィールド３０４を格子状に区切って解像度を分類している例について説明したが、本発明の実施がこれに限られるものではない。即ち、視点にはピッチ方向の角度の情報も含まれるため、厳密には図３のように格子状の領域でフィールド３０４を分類するのではなく、視点と視線方向（視点情報）とに基づいて規定される描画オブジェクトとの距離に基づいて適応的に解像度を決定すればよい。
【００３２】
また、本実施形態では視点からの距離に基づいて生成する視点非依存マップの解像度を異ならせるものとして説明するが、描画オブジェクトと視点とは必ずしも正対するものではないため、視線方向と描画オブジェクトの面法線とのなす角度に応じて解像度を変更してもよい。即ち、視線方向と描画オブジェクトの面法線とがなす角度の絶対値が大きいほど、生成されるゲーム画面において該面が占有する画素数も減少するため、視点非依存マップの解像度が低くとも、該面についての描画する陰影を好適な画質とすることが可能である。従って、視点との距離だけでなく、描画オブジェクトと視点の配置関係によって生成すべき視点非依存マップの解像度を決定してもよい。
【００３３】
〈視点非依存マップの生成処理〉
次に、このようなデータ構造を有する視点非依存マップであるシャドウマップを生成してキャッシュメモリ１０５に格納する、本実施形態のサーバ１００における視点非依存マップの生成処理について図５のフローチャートを用いて説明する。該フローチャートに対応する処理は、ＣＰＵ１０１が、例えば記録媒体１０２に記憶されている対応する処理プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより実現することができる。本生成処理は、例えばクライアント機器２００に提供する、１フレームに係るゲーム画面の描画処理において、該ゲーム画面に係る視点の情報（視点情報）が決定された後に実行されるものとして説明する。
【００３４】
以下の説明では、簡単のためＣＰＵ１０１が上述のデータ構造のシャドウマップの生成処理を行うものとして説明するが、ミップマップの生成に係る処理や演算は例えば並列処理を得意とするＧＰＵ１０４により行われてもよいことは言うまでもない。また本実施形態ではサーバ１００は複数のクライアントに対して提供する画面の生成を行いうるため、本生成処理は並列して実行される各画面の描画処理において実行されてよい。
【００３５】
Ｓ５０１で、ＣＰＵ１０１は、決定された視点情報に基づいて、描画処理において生成するゲーム画面に描画される範囲（描画範囲）を特定する。描画範囲は、例えば視点位置及び視線方向により規定される四角錐のうち、最近距離及び最遠距離を示すクリッピング平面により定まる範囲を指す。
【００３６】
Ｓ５０２で、ＣＰＵ１０１は、該描画範囲に含まれる描画オブジェクトのうち、描画するゲーム画面の各画素において最前面に描画されるオブジェクト（画素オブジェクト）を特定し、視点から該画素オブジェクトまでの距離の情報を取得する。具体的にはＣＰＵ１０１は、例えば並行して実行される描画処理がDeferred Renderingを行う場合、先に生成されたG-bufferのうちの深度マップを参照し、描画するゲーム画面の各画素の深度値を、視点から各画素オブジェクトまでの距離の情報として取得する。そしてＣＰＵ１０１は、得られた視点から各画素オブジェクトまでの距離の情報に基づき、各画素について生成されるべきシャドウマップの解像度を決定し、例えばＲＡＭ１０３に格納する。生成されるべきシャドウマップの解像度は、例えば視点と画素オブジェクトとの距離を分類する距離範囲ごとに対応付けられる解像度、即ちミップマップの階層が予めテーブルに定められており、ＣＰＵ１０１は該テーブルを参照して、画素オブジェクトの距離に対応する解像度を特定してもよい。
【００３７】
Ｓ５０３で、ＣＰＵ１０１は、特定した描画範囲について影響を考慮する必要がある光源のうち、現在のフレームについてシャドウマップを生成していない１つの光源（対象光源）を選択する。
【００３８】
Ｓ５０４で、ＣＰＵ１０１は、生成するゲーム画面の各画素に対応する画素オブジェクトの座標を、対象光源の座標系に変換する。具体的にはまずＣＰＵ１０１は、各画素オブジェクトの深度値と視点情報とに基づいて各画素オブジェクトのワールド座標を特定する。そしてＣＰＵ１０１は、対象光源の座標及び光線方向に基づいて変換マトリクスを生成し、得られたマトリクスを該ワールド座標に適用することで光源座標系の座標に変換する。光源座標系の座標は生成するシャドウマップを考慮して、対象光源の光線方向を法線方向とする所定の平面に係る２次元座標系であってよい。即ち、シャドウマップの生成において、各画素オブジェクトの光源からの深度の情報は不要であるため、除外してよい。
【００３９】
Ｓ５０５で、ＣＰＵ１０１は、対象光源について既に生成されているシャドウマップのデータをキャッシュメモリ１０５から読み出す。あるいは、対象光源について生成されているシャドウマップのデータがキャッシュメモリ１０５に存在しない場合は、データ格納用に空のシャドウマップのデータを生成する。生成する空のシャドウマップのデータは、各階層のデータが０あるいはnull等の初期化値であるデータであり、全ての階層の情報が埋められた場合よりもデータ量の小さいデータであるものとする。
【００４０】
Ｓ５０６で、ＣＰＵ１０１は、現在のフレームについて、シャドウマップに対応する値既に格納されているかの判断を行っていない１つの画素オブジェクト（対象画素オブジェクト）を選択する。
【００４１】
Ｓ５０７で、ＣＰＵ１０１は、対象光源に係るシャドウマップのデータに、対象画素オブジェクトについて生成すべきシャドウマップの値、即ち光源からの深度値の情報が格納されているか否かを判断する。具体的にはＣＰＵ１０１は、シャドウマップのデータの、対象画素オブジェクトについて決定した解像度に対応する階層のマップにおいて、該オブジェクトの光源座標系における２次元座標の位置に初期化値以外の深度値の情報が格納されているか否かを判断する。本実施形態では説明を簡単にするため、光源の属性は平行光であるものとして説明するが、光源の属性によってはシャドウマップの生成方法が異なることは容易に理解されよう。ＣＰＵ１０１は、各画素オブジェクトについて生成すべきシャドウマップの値が格納されていると判断した場合は処理をＳ５０９に移し、格納されていないと判断した場合は処理をＳ５０８に移す。
【００４２】
Ｓ５０８で、ＣＰＵ１０１は、対象画素オブジェクトについて生成すべきシャドウマップの画素に対応する光路を定義し、該光路において最初に現れるフラグメントまでの深度値を取得する。即ち、ＣＰＵ１０１は、光源から該光路を進行した光束が最初に当たる描画オブジェクトまでの距離を算出する。そしてＣＰＵ１０１は、得られた深度値を生成すべきシャドウマップの画素に格納する。
【００４３】
本実施形態では、シャドウマップのデータに生成すべき値が格納されていない場合に深度値のサンプリングを行うものとして説明するが、ミップマップというデータ構成を取る場合、生成すべき値はサンプリングを行わずに他の画素の値から算出することもできる。即ち、ミップマップでは上層の１画素は、対応付けられた下層（上層の直下の階層）の４画素の平均値となっているため、例えば上層の１画素と対応する下層の３画素に値が格納されているのであれば、下層の残り１層はサンプリングを行わずに算出可能である。同様に、例えば下層の２×２画素に値が格納されているのであれば、該４画素に対応する上層の１画素は平均値として算出可能である。あるいは、連続する３層（上層、中層、下層）において、上層の１画素、該画素に対応する中層の４画素のうちの２画素、及び該中層の４画素のうちの値がない１画素に対応する下層の４画素に値が格納されているのであれば、下層の４画素の平均値により中層の値がない１画素の値を生成すれば、同様に中層の残る１つの画素の値も算出可能である。
【００４４】
Ｓ５０９で、ＣＰＵ１０１は、全ての画素オブジェクトについて、対象光源に係るシャドウマップのデータに対応する値が格納されているか否かを判断する。ＣＰＵ１０１は、全ての画素オブジェクトについてシャドウマップのデータに対応する値を格納したと判断した場合は処理をＳ５１０に移し、格納していないと判断した場合は処理をＳ５０６に戻す。
【００４５】
Ｓ５１０で、ＣＰＵ１０１は、現在のフレームの描画処理において使用する対象光源のシャドウマップの画素に対して、重要度を示すカウンタの値を所定の値増加させる。また一方でＣＰＵ１０１は、対象光源のシャドウマップの画素のうち、現在のフレームの描画処理において使用しない画素のカウンタの値を所定の値減少させる。そしてＣＰＵ１０１はＳ５１１で、変更後のカウンタの値が所定値を下回った画素の値を解放する。
【００４６】
Ｓ５１２で、ＣＰＵ１０１は、現在のフレームの描画処理で使用する値を格納した対象光源に係るシャドウマップのデータをキャッシュメモリ１０５に格納する。このとき既に対象光源に係るシャドウマップのデータが既にキャッシュメモリ１０５に格納されている場合は、ＣＰＵ１０１はＳ５０６乃至Ｓ５１１の処理において生成したデータで更新するものとする。
【００４７】
本実施形態のサーバ１００では、シャドウマップのデータのデータ量を削減するために、描画処理において使用される画素については重要度を上昇させることで保持するようにする。また使用されなかった画素については徐々に重要度を減少させ、重要度が所定の基準を下回った場合に不要と判断、即ち使用頻度が低いと判断してデータを解放することで、使用されうるデータのみで構成されるシャドウマップのデータを保持するようにできる。このようにすることで、１つのクライアント機器に対して連続するフレームに係り提供するゲーム画面の描画処理において参照されうるシャドウマップの値、あるいは複数のクライアント機器に対して同時期に提供するゲーム画面の描画処理において参照されうるシャドウマップの値を保持しておくことができる。つまり、サーバ１００全体において並行実行される描画処理のいずれかにおける使用頻度が高い画素は保持し、使用頻度が低くなった画素は解放することで、キャッシュメモリ１０５におけるシャドウマップのデータが占有する記憶領域を削減することができる。
【００４８】
Ｓ５１３で、ＣＰＵ１０１は、特定した描画範囲について影響を考慮する必要がある全ての光源について、現在のフレームについてシャドウマップを生成したか否かを判断する。ＣＰＵ１０１は、全ての光源についてシャドウマップを生成したと判断した場合は本生成処理を完了し、まだ生成していない光源があると判断した場合は処理をＳ５０３に戻す。
【００４９】
このようにすることで、本実施形態のサーバ１００では、生成するゲーム画面における視点非依存マップによる表現が好適な画質となるよう、視点と描画オブジェクトとの配置に併せて適切な解像度の分布を有する視点非依存マップを生成することができる。また視点非依存マップの画素のうち使用頻度が低い画素についてはデータを削除するように構成することで、記憶領域に格納される視点非依存マップのデータ量を削減することができる。
【００５０】
なお、本生成処理により生成されたシャドウマップを描画処理において使用する際は、Ｓ５０７と同様に、生成するゲーム画面の各画素に対応する画素オブジェクトと視点との距離に基づいて定まる解像度に従ってキャッシュメモリ１０５からシャドウマップの適切な画素の値を参照し、陰影判断に用いればよい。
【００５１】
以上説明したように、本実施形態の情報処理装置は、視点非依存マップを効率的に生成及び共有することができる。具体的には情報処理装置は、３次元シーンの描画を行う視点を示す視点情報を取得し、該取得した視点情報に基づく描画範囲に含まれるオブジェクトについての視点非依存マップを所定の演算により生成する。そして、該装置は、生成した視点非依存マップの各画素を、該画素に対応するオブジェクトと取得した視点情報により示される視点との距離に関連付けて格納する。該装置は、取得した視点情報により示される視点との距離に対応した、描画範囲に含まれるオブジェクトについての視点非依存マップの画素が既に格納されている場合に、所定の演算を行わない。
【００５２】
［その他の実施形態］
例示的な実施形態を参照して本発明を説明してきたが、記載した例示的な実施形態に発明が限られるものでないことは理解されよう。以下の特許請求の範囲は、このような変形、等価な構成及び機能の全てを包含するように、広範な解釈を許容されよう。また、本発明に係る情報処理装置及び制御方法は、コンピュータにおいて該手法が実行されるプログラムにより実現可能である。プログラムは、コンピュータ読み取り可能な記録媒体に格納されることで、または電気的な通信回線を介して、提供／配信可能である。
【００５３】
本出願は、その全体がここに参照により援用される、２０１３年２月６日に出願された米国仮出願第６１／７６１３３８号の利益を主張するものである。
【図１】
2015515030.tif 000003
【図２】
2015515030.tif 000004
【図３】
2015515030.tif 000005
【図４】
2015515030.tif 000006
【図５】
2015515030.tif 000007
【国際調査報告】
2015515030.tif 000008