(57)【要約】【課題】描画処理において、リアルタイム処理の困難な高負荷処理を低負荷処理に対して擬似的に同期させる描画システム、描画装置、計算装置、描画プログラム、及び描画プロセッサ基盤を提供する。【解決手段】描画システムは、低速描画処理で求めた第１低速描画結果の描画完了時刻の直近時刻で描画された高速描画処理で求めた第１高速描画結果と、その直後の描画のために高速描画処理で求めた第２高速描画結果との間の仮想空間における移動量を求める計算手段と、第１低速描画結果と移動量とから第２高速描画結果の描画完了時刻の直近の時刻に対応する、低速描画処理が求めると予測される第２低速描画結果を予測低速描画結果として求める予測手段と、第１低速描画結果と第１高速描画結果とに基づいて第１の表示画像を出力した後に、予測低速描画結果と第２高速描画結果とに基づいて第２の表示画像を出力する表示出力手段とを備える。【選択図】図５
2015225382.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間の画面を描画する描画システムであって、高速な描画処理と低速な描画処理とを実行する描画手段と、
前記低速な描画処理で求めた第１の低速描画結果の描画完了時刻の直近の時刻で描画された前記高速な描画処理で求めた第１の高速描画結果と、前記第１の高速描画結果の直後の描画のために前記高速な描画処理で求めた第２の高速描画結果との間の前記仮想空間における移動量を求める計算手段と、
前記第１の低速描画結果と前記移動量とから、前記第２の高速描画結果の描画完了時刻の直近の時刻に対応する、前記低速な描画処理によって求められるであろう第２の低速描画結果を、予測低速描画結果として当該時刻までに予測して求める予測手段と、
前記第１の低速描画結果と前記第１の高速描画結果とに基づいて第１の表示画像を出力した後に、前記予測低速描画結果と前記第２の高速描画結果とに基づいて第２の表示画像を出力する表示出力手段とを備える、描画システム。
【請求項２】
請求項１に記載の描画システムを構成する描画装置であって、
前記低速な描画処理を実行する１つ以上の第１の計算装置と、
前記第１の装置とネットワークを介して接続され、前記高速な描画処理を実行する１つ以上の第２の計算装置とを、少なくとも含む、描画装置。
【請求項３】
請求項１に記載の描画システムを構成する計算装置であって、
前記低速な描画処理を実行する１つ以上の第１の描画プロセッサと、
前記高速な描画処理を実行する１つ以上の第２の描画プロセッサとを少なくとも搭載する、計算装置。
【請求項４】
請求項１に記載の描画手段、計算手段、予測手段、および表示出力手段として、１つのコンピュータを機能させ、あるいは２つ以上のコンピュータを連携機能させる、描画プログラム。
【請求項５】
請求項１に記載の描画手段、計算手段、予測手段、および表示出力手段の機能を集積した、描画プロセッサ基盤。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックス（ＣＧ）において、計算量が膨大な描画手段を実時間で実行するための描画システムに関する。
【背景技術】
【０００２】
パーソナルコンピューター（ＰＣ）やタブレット端末などの計算装置の高性能化に伴い、ＣＧの描画手段における計算は複雑なものが増え、計算量も膨大になっている。近年では、高性能なサーバー装置で描画処理を行い、表示装置を持つクライアント装置に画像を送信することで、高性能でない機器でも高品質な画像を見ることが出来るシステムなども増えている。
【０００３】
特許文献１に記載されているように、ネットワークを通してサーバー装置からクライアント装置に描画した映像を転送するようなシステムにおいて、クライアント装置の描画性能に依存せずに、高品質なＣＧ映像を提供するため、サーバー装置で描画の処理を行い、クライアント端末に画面を提供するという方法も存在している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−９９４９４号公報
【非特許文献】
【０００５】
【非特許文献１】SCHERZER, D., YANG, L., MATTAUSCH, O., NEHAB, D., SANDER, P. V., WIMMER, M., and EISEMANN, E., 2011, "A survey on temporal coherence methods in real-time rendering," In Euro graphics State of the Art Reports. （3.2 Forward reprojection）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記特許文献１のように、サーバー装置などの高い処理能力のある計算装置に、描画処理の高負荷な部分を負担させることで、クライアント装置にかかる計算負荷を減らすことが出来、クライアント端末の描画性能に依存せずに高品質な画像を描画出来るようになるが、サーバー装置の描画性能によっては利用できない描画手段が存在する。
例えば、仮想空間内における光の反射の振る舞いを正確に扱うグローバルイルミネーションのような計算量が膨大な描画手段も、高性能な計算装置であれば比較的早く計算出来るようにはなっているが、リアルタイム（リアルタイム：ここでは、鑑賞者が不快と感じない程度の描画間隔、例えば１秒間に３０〜６０回描画を行う程度の描画の間隔を示す表現として用いる。以降に記述される部分についても同様とする。）で行う事が出来ない。
【０００７】
上記のように、計算負荷の高い描画手段を用いて描画を行う際に、サーバー装置で計算負荷の高い処理を行った場合、サーバー装置の描画の間隔がクライアント装置で求められる描画の間隔に追いつかず、結果としてクライアント装置の描画更新に遅れが生じてしまう。
例えば図２に示すように、サーバー装置での描画タイミングがＳ１００〜Ｓ３００、クライアント装置での描画タイミングがＣ１００〜Ｃ９００となる場合、Ｓ１００とＣ１００で同時に描画結果が生成された後、Ｓ２００とＣ５００までの間、クライアント装置のＣ２００〜Ｃ４００ではサーバー装置では描画処理が続いているため、クライアント装置と同じ描画タイミングで描画結果を生成する事が出来ない。
仮にクライアント装置の描画の間隔が３０ＦＰＳ（ＦＰＳ：１秒間に行われる描画の回数）、サーバー装置の描画の間隔が１０ＦＰＳの場合、サーバー装置で１フレーム（フレーム：ここでは、描画の間隔のうちの１回分の事を意味する。以降に記述される部分についても同様とする。）描画される間に、クライアント装置では３フレーム分描画され、差が発生する。その結果、必要な画像が揃わずに遅い描画間隔に合わせる必要があり、クライアント装置の描画間隔も１０ＦＰＳになるという問題が発生する。
【０００８】
本発明の目的は、描画処理を負荷の高い描画処理と負荷の低い描画処理に分担させた際に、負荷の高い描画処理としてリアルタイムに描画することの出来ない計算量が膨大な描画手段を用いても擬似的にリアルタイムに表示させる技術を提供することである。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の一局面は、仮想空間の画面を描画する描画システムであって、高速な描画処理と低速な描画処理とを実行する描画手段と、低速な描画処理で求めた第１の低速描画結果の描画完了時刻の直近の時刻で描画された高速な描画処理で求めた第１の高速描画結果と、第１の高速描画結果の直後の描画のために高速な描画処理で求めた第２の高速描画結果との間の仮想空間における移動量を求める計算手段と、第１の低速描画結果と移動量とから、第２の高速描画結果の描画完了時刻の直近の時刻に対応する、低速な描画処理によって求められるであろう第２の低速描画結果を、予測低速描画結果として当該時刻までに予測して求める予測手段と、第１の低速描画結果と第１の高速描画結果とに基づいて第１の表示画像を出力した後に、予測低速描画結果と第２の高速描画結果とに基づいて第２の表示画像を出力する表示出力手段とを備える。
【００１０】
また、本発明の他の局面は、上述の描画システムを構成する描画装置であって、低速な描画処理を実行する１つ以上の第１の計算装置と、第１の装置とネットワークを介して接続され、高速な描画処理を実行する１つ以上の第２の計算装置とを、少なくとも含む。
【００１１】
また、本発明の他の局面は、上述の描画システムを構成する計算装置であって、低速な描画処理を実行する１つ以上の第１の描画プロセッサと、高速な描画処理を実行する１つ以上の第２の描画プロセッサとを少なくとも搭載する。
【００１２】
また、本発明の他の局面は、上述の描画手段、計算手段、予測手段、および表示出力手段として、１つのコンピュータを機能させ、あるいは２つ以上のコンピュータを連携機能させる、描画プログラムである。
【００１３】
また、本発明の他の局面は、上述の描画手段、計算手段、予測手段、および表示出力手段の機能を集積した、描画プロセッサ基盤である。
【発明の効果】
【００１４】
本発明によって、本来リアルタイムで描画する事の出来ないような計算量が膨大な描画手段を用いても、擬似的にリアルタイムで描画する事が出来る。
【図面の簡単な説明】
【００１５】
【図１】実施形態に関わる描画システムの構成例の説明図
【図２】図１に示すサーバー装置（１００）とクライアント装置（２００）の描画間隔が異なる場合の課題についての説明図
【図３】図１に示すクライアント装置（２００）において表示装置に表示される１フレームが描画されるまでの処理の詳細を説明するフローチャート
【図４】図１に示すサーバー装置（１００）において表示装置に表示される１フレームが描画されるまでの処理の詳細を説明するフローチャート
【図５】図２に示す課題の解決のため、サーバー装置（１００）描画間隔をクライアント装置（２００）の描画間隔に一致させる手法についての説明図
【発明を実施するための形態】
【００１６】
本発明の実施形態について、以下に例示的な詳細を、図１を参照し説明する。以下に挙げる実施形態は、本発明の本質的な特徴を特定することを意図しておらず、特許請求の範囲を決定することも意図されていない。
【００１７】
図１は、本発明の実施形態に関わる描画システムを、２台の計算装置で構築するシステム構成図である。本実施形態では、高性能なサーバー装置（１００）と表示装置を持ったクライアント装置（２００）とが、ネットワーク（３００）を介して接続されている。表示装置に表示する画像の描画処理については、サーバー装置（１００）とクライアント装置（２００）とで処理を分担して行い、その内のサーバ装置（２００）は負荷の高い描画処理を行い、クライアント装置（２００）では、リアルタイムに描画計算が出来るように負荷の低い処理を行う。
【００１８】
クライアント装置（２００）は、例えば、デスクトップＰＣ、ノートＰＣ、スマートフォン、タブレット端末などの既存の計算装置で有り得る。クライアント装置（２００）は、最低限ＣＧのインターフェイス規格であるＯｐｅｎＧＬ等に代表される規格仕様に則ったＣＧの描画が行える性能を有するものとする。また、高性能な計算サーバー（１００）は、例えば、ワークステーション、サーバー・クラスター、メインフレーム、クラウドサーバーなどの既存の高性能ＰＣ及びサーバー装置（１００）で有り得る。クライアント装置（２００）、サーバー装置（１００）はいずれも、２台以上あってもよい。
【００１９】
なお、上記ではクライアント・サーバー型のシステム構成での処理形態を挙げたが、サーバー装置を用いず、クライアント装置１台のみで同様の処理を行うことも当然可能である。例えば、クライアント装置内にグラフィックボード等の描画計算用チップを複数搭載させ、描画計算用チップごとに負荷の高い描画処理と負荷の低い描画処理を分担させる方法が挙げられる。
【実施例】
【００２０】
以下、本発明の実施例について、例示的な詳細を図３および図４を参照し説明する。図３および図４はそれぞれ、クライアント装置（２００）とサーバー装置（１００）において、表示装置に表示される１フレームが描画されるまでの処理を説明したものである。図３および図４の処理は、表示装置に表示されたシーン（シーン：ここでは、画面に表示されている仮想３次元空間全体のことを意味する。以降に記述される部分についても同様とする。）の配置や状態の変化が終了するまで繰り返される。
なお、以下に挙げる実施例は、描画を行うための手法の例であり、これに限定されるものではない。
【００２１】
まず、クライアント装置（２００）の処理を説明する。Ｆ１０１では、クライアント装置（２００）が鑑賞者によって操作され、クライアント装置（２００）の表示装置に表示されたシーンの変化を与える操作が発生した時、処理を開始する。この時、シーンの変化を与える操作とは光源の明るさ・位置の変更、物体の位置の変更、カメラ位置の変更といった操作である。この時、この内のいずれか、または複数の操作がなされ、表示されているシーンを変化させる必要が出た場合に、Ｆ１０２のステップに移動する。
なお、クライアント装置（２００）では、鑑賞者からの操作を受けるまでの間、待機しながら表示画面の更新を繰り返す。
【００２２】
Ｆ１０２では、表示装置に表示されたシーンを更新する情報としてＦ１０１で受けた操作情報を元に、シーンの情報に変化（光源の座標を移動させる・物体の座標を移動させる等）をかけるためのジオメトリ情報（光の位置・物体の位置等）の更新を行う。
【００２３】
Ｆ１０３では、変化したシーンの描画を行うため、クライアント装置（２００）からサーバー装置（１００）に対して、画像生成の命令を送信する。この際、光源・物体・カメラのシーン更新情報を一緒に送信する。（送信された情報は、サーバー装置（１００）のＦ２０１のステップで受け取られる。）
【００２４】
Ｆ１０４では、サーバー装置（１００）からネットワーク（３００）を通じて送信された、シーン内の光の多重反射の振る舞いを計算で表現し、物体に当たる光の明るさを描き出したライトマップテクスチャのデータを受信する。
【００２５】
Ｆ１０５では、Ｆ１０４で受け取ったライトマップテクスチャを利用して、表示装置に表示されていた画面の次のフレームとなる画像の描画（物体の描画や陰影の計算など）を行い、表示装置の画面を更新する。
【００２６】
Ｆ１０６では、表示装置に表示される１フレーム分の描画処理を終了する。（表示装置に表示されたシーンの変化が終了していない場合、Ｆ１０１のステップに戻り次フレームの描画処理を開始し、シーンの変化が終了するまでこの処理を繰り返す。）
【００２７】
次に、サーバー装置（１００）の処理について説明する。サーバー装置（１００）では、現在のフレームで利用するライトマップテクスチャを予測して生成する計算負荷の低い予測生成処理（Ｆ２００）と、高負荷な多重反射の計算処理でライトマップテクスチャを生成する計算負荷の高い描画処理（Ｆ２２０）の二つの処理が同時に処理される。
なお、Ｆ２２２でライトマップテクスチャを生成する際、シーン全体の反射計算を行うと、計算が非常に膨大になってしまうため、表示装置に表示される範囲（スクリーンスペース）での計算のみ行うこととする。
【００２８】
まず、Ｆ２０１では、クライアント装置（２００）で、表示装置に表示されているシーンに変化を与える処理が発生しＦ１０３のステップで送られた画像生成命令とシーン更新情報を受信した時、処理を開始する。
なお、サーバー装置（１００）ではＦ２００の処理もＦ２２０の処理も、クライアント装置（２００）から画像生成命令を受け取るまで、待機し続ける。
【００２９】
Ｆ２０２では、クライアント装置（２００）から受け取ったシーン更新情報から、低コストなシーンを生成（陰影の計算等をしない最低限の処理で、クライアント装置（２００）と同等の描画間隔で描画を行う。）する（高速な描画処理）。ここで生成された画像は、Ｆ２０３で利用される。
【００３０】
Ｆ２０３では、Ｆ２０２で生成された低コストシーンの画像と、一つ前のフレームで描画された低コストシーンの画像から、一つ前のフレームと比較してシーンの描画範囲にどれだけの移動量があったかの計算を行う。
なお、ここで計算されたフレームの移動量は、Ｆ２０３で現在のフレームのライトマップテクスチャを予測するのに利用される。
【００３１】
Ｆ２０４では、Ｆ２０３で計算されたフレームの移動量と、一つ前のフレームにおいてＦ２２２で生成された、またはＦ２０４で生成されたライトマップテクスチャから、現在のフレームで描画するライトマップテクスチャを予測して生成する。
描画フレームレートについて、クライアント装置（２００）で行われる描画処理はリアルタイムで描画計算出来る処理としているため、サーバー装置（１００）での描画フレームレートはクライアント装置（２００）でのフレームレートと比較して、遅れが発生する。サーバー装置（１００）の描画フレームレートを、クライアント装置（２００）の描画フレームレートにあわせるには、図５に示すように、サーバー装置（１００）で次のフレームを描画するまでの間、クライアント装置（２００）で描画されるフレームと同じタイミングのフレームでライトマップテクスチャを生成する必要がある。
【００３２】
非特許文献１では、現在のフレームで描画された画像と、前フレームで描画された画像とを比較し、描画されたシーン全体の移動量を計算し、前フレームで描画された陰影情報等の画像から、現在のフレームに必要な陰影情報等の画像を予測して生成する方法が挙げられている。図５に示すように非特許文献１と同様、サーバー装置（１００）でクライアント装置（２００）の描画タイミングと同じ、Ｌ０１０〜Ｌ０９０の描画タイミングで、低コストシーン画像を描画し、現在のフレームの低コストシーン画像と前フレームの低コストシーン画像との比較から移動量を計算し、Ｓ１００〜Ｓ３００の間でクライアント装置（２００）の描画タイミングと同様のタイミングで描画をする事の出来ない間のライトマップテクスチャを予測して生成すればよい。
例えば、図５のＣ６００の描画タイミングに合わせるためにＳ２０１のフレームで描画するライトマップテクスチャを生成する場合、Ｌ０５０で描画された低コストシーン画像とＬ０６０で描画された低コストシーン画像を比較し、描画された低コストシーン内の移動量を計算し、Ｓ２００で描画されたライトマップテクスチャから、非特許文献１の手法に則ってＳ２０１のタイミングで移動していると考えられる光や影を予測し、ライトマップテクスチャを生成する。その先も同様に、Ｌ０６０で描画された低コストシーン画像とＬ０７０で描画された低コストシーン画像のシーン内の移動量から、Ｓ２０１で生成されたライトマップテクスチャを元にＳ２０２のフレームでのライトマップテクスチャを生成する。Ｓ２００で描画されてから、Ｓ３００で描画されるまでの間を上記のように予測して生成していくことで、サーバー装置（１００）の描画タイミングを、クライアント装置（２００）の描画タイミングと擬似的に合わせる事が出来る。
【００３３】
なお、Ｆ１０１でカメラ位置が移動していた場合、表示装置に表示される範囲より外の情報が必要になる可能性がある。その場合、Ｆ３０２で予測されるライトマップテクスチャを生成する際に、前フレームで描画されたライトマップテクスチャの範囲外の情報が必要となり、ライトマップテクスチャが生成出来なくなる可能性がある。そのため、Ｆ１０１でカメラ位置が移動した場合においては、Ｆ２０４で生成するライトマップテクスチャとＦ３０２で生成するライトマップテクスチャの範囲をスクリーンスペースよりも大きい範囲で描画・生成することで、対応可能となる。
【００３４】
Ｆ２０５では、Ｆ２０４かＦ２２２で生成されたライトマップテクスチャをクライアント装置（２００）に送信する。（送信されたライトマップテクスチャは、サーバー装置（１００）のＦ１０４のステップで受け取られる。）
【００３５】
Ｆ２０６では、クライアント装置（２００）の表示装置に表示される１フレーム分の描画でライティングに利用されるライトマップテクスチャの描画処理を終了する。（表示装置に表示されたシーンの変化が終了しておらず、画像生成命令が送信された場合、Ｆ２０１のステップからライトマップテクスチャの描画処理を再び行い、シーンの変化が終了するまでこの処理を繰り返す。）
【００３６】
Ｆ２１１では、Ｆ２２０の処理でライティング計算が続いているか、完了しているかを判断し、ライティング計算の最中であればＦ２０３のステップに、ライティングの計算が完了していれば、Ｆ２２３のステップに移動する。
【００３７】
Ｆ２２１では、Ｆ２２３の処理で計算結果の送信後、次フレームのライティング計算を開始する。
【００３８】
Ｆ２２２では、クライアント装置（２００）から受け取った、光源・物体・カメラのシーン更新情報から、シーンに影響を与える多重反射する光の拡散反射や鏡面反射の振る舞いを計算し、テクスチャ画像に格納することで、ライトマップテクスチャを生成する（低速な描画処理）。ここでの処理はクライアント装置（２００）の１フレームで実行される処理が終了するまでの間に終了しない高負荷な描画処理が行われるため、クライアント装置（２００）の１フレームの処理時間に合わせる目的で、Ｆ２００の処理とは同時並行で実行される。（Ｆ２２０の処理で生成が出来ない分のフレームの画像を、Ｆ２００の処理で生成をすることで、クライアント装置（２００）の描画タイミングと合わせる。）
なお、ここで生成されたライトマップテクスチャは、クライアント装置（２００）に送信されるだけでなく、Ｆ２０４で現在のフレームのライトマップテクスチャを生成するのにも利用される。
【００３９】
Ｆ２２３では、Ｆ２２１から画像生成命令を受け取ってから、Ｆ２２２で生成された計算結果をＦ２０５のステップに移動し、クライアント装置（２００）に送信する。その後、Ｆ２２１のステップでライティング計算を再度開始させる。（表示装置に表示されたシーンの変化が終了するまで、Ｆ２２１のステップからライトマップテクスチャの描画処理を繰り返す。シーンの変化が無く、画像生成命令が来ない場合、Ｆ２２０の処理は画像生成命令が出るまで待機する。）
【００４０】
以上のように、描画処理を分担出来る複数のステップに分かれた描画手段と、次に描画される画像を予測して生成する手法を組み合わせることで、本来リアルタイムで描画する事の出来ない描画手段を利用して、高負荷な演算処理を行えないような計算装置でも擬似的にリアルタイムで描画する事が可能となる。なお、上述した各機能、処理内容の一部または全部は、１つ以上のプロセッサをそれぞれ備えた１つ以上のコンピュータにプログラムによって実行させることが可能であり、あるいは、描画プロセッサを含む回路基盤に集積することも可能である。また、本発明は、ＣＧ画像の描画におけるライトマップテクスチャの生成だけでなく、多様な演算処理にも適宜適用できる。
【産業上の利用可能性】
【００４１】
本発明は、ＣＧ画像を表示するパーソナルコンピューター（ＰＣ）やタブレット端末などの計算装置に有用である。
【符号の説明】
【００４２】
１００    サーバー装置
２００    クライアント装置
３００    ネットワーク
Ｓ１００〜Ｓ３００    サーバー装置の描画タイミング
Ｃ１００〜Ｃ９００    クライアント装置の描画タイミング
Ｆ１０１    クライアント装置の処理
Ｆ１０２    状態の更新
Ｆ１０３    描画命令と更新情報の送信
Ｆ１０４    ライトマップテクスチャの受信
Ｆ１０５    フレームの描画と表示画面の更新
Ｆ１０６    クライアント装置の処理の終了
Ｆ２００    サーバー装置での現在のフレームのライトマップテクスチャ予測生成処理
Ｆ２０１    描画命令と更新情報の受信
Ｆ２０２    低コストシーンの生成
Ｆ２０３    フレームの移動量計算
Ｆ２０４    現在のフレーム用ライトマップテクスチャの予測・生成
Ｆ２０５    ライトマップテクスチャの送信
Ｆ２０６    現在のフレームのライトマップテクスチャ予測生成処理の終了
Ｆ２１１    ライティング計算完了の是非
Ｆ２２０    サーバー装置での高負荷な多重反射の計算処理
Ｆ２２１    次フレームのライティング計算の開始
Ｆ２２２    ライティング計算
Ｆ２２３    計算結果の送信
Ｌ０１０〜Ｌ０９０    低コストシーン画像の描画タイミング
Ｓ１０１〜１０３、Ｓ２０１〜Ｓ２０３    予測して生成されるライトマップテクスチャの生成タイミング
【図２】
2015225382.tif 000003
【図３】
2015225382.tif 000004
【図４】
2015225382.tif 000005
【図５】
2015225382.tif 000006
【図１】
2015225382.tif 000007