(57)【要約】  画像生成装置２００は、画像を変形させて歪ませるための情報を歪み情報として記憶する歪み情報記憶部２３４と、歪み情報を用いたラスタライズ処理によって、歪み無し画像をメモリに生成することなく、歪み画像をレンダリングする歪みレンダリング部２３２とを含む。歪みレンダリング部２３２は、歪み情報にもとづいてラスタライズ処理対象の三角形を変換した歪みのある三角形の頂点の位置から上方向および下方向に歪みのある三角形をラスタライズ処理することにより、歪み画像をレンダリングする。
2020152754.tif 000002
【特許請求の範囲】
【請求項１】
画像を変形させて歪ませるための情報を歪み情報として記憶する歪み情報記憶部と、
前記歪み情報を用いたラスタライズ処理によって、歪み無し画像をメモリに生成することなく、歪み画像をレンダリングする歪みレンダリング部とを含むことを特徴とする画像生成装置。
【請求項２】
前記歪みレンダリング部は、前記歪み情報にもとづいてラスタライズ処理対象の三角形を変換した歪みのある三角形の頂点の位置から上方向および下方向に歪みのある三角形をラスタライズ処理することにより、歪み画像をレンダリングすることを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記歪みレンダリング部は、上方向および下方向に歪みのある三角形をラスタライズ処理する際、歪み適用前の歪みのない三角形においてピクセルの内外判定およびパラメータ生成を行うことを特徴とする請求項２に記載の画像生成装置。
【請求項４】
ユーザの注視領域と非注視領域の間の解像度の比率に関する情報を含む注視情報にもとづいて前記歪み情報を変形して注視歪み情報を生成する歪み情報算出部をさらに含み、
前記レンダリング部は、前記注視歪み情報を用いたラスタライズ処理によって、歪み無し画像をメモリに生成することなく、前記歪み画像をレンダリングすることを特徴とする請求項１から３のいずれかに記載の画像生成装置。
【請求項５】
前記歪みレンダリング部によってレンダリングされた歪み画像をテクスチャとして用いて、前記歪み画像に対して前記歪み情報を用いたラスタライズ処理を施すことによって、歪み無し画像をメモリに生成することなく、前記歪み画像をリプロジェクション処理する歪みリプロジェクション処理部をさらに含むことを特長とする請求項１から４のいずれかに記載の画像生成装置。
【請求項６】
前記歪み画像のテクスチャから歪みを除去した仮想テクスチャの座標値を前記歪み情報にもとづいて前記歪み画像のテクスチャの座標値に変換し、前記歪み画像のテクスチャの座標値からピクセルデータを取得するテクスチャ座標変換部をさらに含み、
前記歪みリプロジェクション処理部は、前記仮想テクスチャに対して前記歪み情報を用いたラスタライズ処理を施すことによって、歪み無し画像をメモリに生成することなく、前記歪み画像をリプロジェクション処理し、前記仮想テクスチャのピクセルデータをアクセスする際、前記テクスチャ座標変換部から、前記仮想テクスチャのピクセルに対応する前記歪み画像のテクスチャのピクセルのデータを取得することを特徴とする請求項５に記載の画像生成装置。
【請求項７】
画像を変形させて歪ませるための情報を歪み情報として読み出し、前記歪み情報を用いたラスタライズ処理によって、歪み無し画像をメモリに生成することなく、歪み画像をレンダリングする歪みレンダリングステップを含むことを特徴とする画像生成方法。
【請求項８】
画像を変形させて歪ませるための情報を歪み情報として読み出し、前記歪み情報を用いたラスタライズ処理によって、歪み無し画像をメモリに生成することなく、歪み画像をレンダリングする歪みレンダリング機能をコンピュータに実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像を生成する技術に関する。
【背景技術】
【０００２】
ヘッドマウントディスプレイに立体映像を表示し、ヘッドマウントディスプレイを装着したユーザが頭部を回転させると視線方向に応じた立体映像が表示されるようにして臨場感を高めたシステムが開発されている。ヘッドマウントディスプレイを利用することで、映像への没入感を高めたり、ゲームなどのアプリケーションの操作性を向上させることもできる。【０００３】
ヘッドマウントディスプレイではユーザの眼前と周囲に視野角の広い映像を表示させるために曲率の高い光学レンズを採用し、ユーザがレンズを介してディスプレイパネルを覗き込む構成になっている。しかしながら、曲率の高いレンズを用いるとレンズの歪曲収差によって映像が歪んでしまう。そこで、曲率の高いレンズを通して見たときに正しく見えるように、レンダリングされた画像に対してあらかじめ歪み補正を施し、歪み補正後の画像をヘッドマウントディスプレイに伝送してディスプレイパネルに表示し、ユーザが曲率の高いレンズを通して見ると正常に見えるようにしている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
レンダリングされた画像に歪み補正を施すためには、レンダリングされた画像をいったんフレームバッファに保持し、フレームバッファに格納された画像を歪み補正して出力する必要がある。そのため、歪みなし画像を保存するためのメモリ容量が必要になり、また歪み補正のための処理時間が余分にかかる。モバイル端末などの描画処理する場合はメモリ容量を削減して省電力化を図ることが求められる。また、ヘッドマウントディスプレイでは酔いを軽減するために描画レイテンシを短縮することが求められている。【０００５】
本発明はこうした課題に鑑みてなされたものであり、その目的は、メモリ容量を削減または描画レイテンシを短縮することができる画像生成技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の画像生成装置は、画像を変形させて歪ませるための情報を歪み情報として記憶する歪み情報記憶部と、前記歪み情報を用いたラスタライズ処理によって、歪み無し画像をメモリに生成することなく、歪み画像をレンダリングする歪みレンダリング部とを含む。【０００７】
本発明の別の態様は、画像生成方法である。この方法は、画像を変形させて歪ませるための情報を歪み情報として読み出し、前記歪み情報を用いたラスタライズ処理によって、歪み無し画像をメモリに生成することなく、歪み画像をレンダリングする歪みレンダリングステップを含む。【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、メモリ容量を削減または描画レイテンシを短縮することができる。
【図面の簡単な説明】
【００１０】
【図１】ヘッドマウントディスプレイの外観図である。
【図２】第１の実施の形態に係る画像生成システムの構成図である。
【図３】ヘッドマウントディスプレイの機能構成図である。
【図４】第１の実施の形態に係る画像生成装置の機能構成図である。
【図５】図５（ａ）は、従来のレンダリング処理を説明する図であり、図５（ｂ）は、第１の実施の形態の歪みレンダリング処理を説明する図である。
【図６】第１の実施の形態の歪みレンダリング処理の手順を示すフローチャートである。
【図７】図６のラスタライズ開始位置の決定処理を説明する図である。
【図８】図６のラスタライズ開始位置の決定処理を説明する図である。
【図９】図６の上方向のラスタライズ処理を説明する図である。
【図１０】図６の上方向のラスタライズ処理を説明する図である。
【図１１】図６の上方向のラスタライズ処理を説明する図である。
【図１２】図６の上方向のラスタライズ処理を説明する図である。
【図１３】図６の下方向のラスタライズ処理を説明する図である。
【図１４】歪みレンダリング処理でパラメータのＸ方向、Ｙ方向の微分値を算出する方法を説明する図である。
【図１５】図１５（ａ）〜図１５（ｃ）は、歪み変換および逆歪み変換を説明する図である。
【図１６】第２の実施の形態に係る画像生成装置の構成図である。
【図１７】従来のレンダリング処理を説明する図である。
【図１８】第２の実施の形態の歪みレンダリング処理を説明する図である。
【図１９】図１９（ａ）および図１９（ｂ）は、注視点が動的に変わる場合の歪みレンダリング処理を説明する図である。
【図２０】図１７の従来のレンダリング処理の変形例を説明する図である。
【図２１】第３の実施の形態の画像生成装置の構成図である。
【図２２】従来のリプロジェクション処理を説明する図である。
【図２３】第３の実施の形態の歪みリプロジェクション処理を説明する図である。
【図２４】第３の実施の形態の歪みリプロジェクション処理をより詳しく説明する図である。
【図２５】図２５（ａ）〜図２５（ｃ）は、歪みリプロジェクション処理の手順を説明する図である。
【図２６】従来のリプロジェクション処理の手順を説明する図である。
【図２７】従来のリプロジェクション処理の手順を説明する図である。
【図２８】第３の実施の形態の歪みリプロジェクション処理の手順を説明する図である。
【図２９】第３の実施の形態の歪みリプロジェクション処理の手順を説明する図である。
【図３０】第４の実施の形態に係る画像生成装置の構成図である。
【図３１】第４の実施の形態の歪みリプロジェクション処理の手順を説明する図である。
【図３２】第４の実施の形態の歪みリプロジェクション処理の手順を説明する図である。
【発明を実施するための形態】
【００１１】
（第１の実施の形態）
図１は、ヘッドマウントディスプレイ１００の外観図である。ヘッドマウントディスプレイ１００は、ユーザの頭部に装着してディスプレイに表示される静止画や動画などを鑑賞し、ヘッドホンから出力される音声や音楽などを聴くための表示装置である。
【００１２】
ヘッドマウントディスプレイ１００に内蔵または外付けされたジャイロセンサや加速度センサなどによりヘッドマウントディスプレイ１００を装着したユーザの頭部の位置情報と頭部の回転角や傾きなどの姿勢（orientation）情報を計測することができる。
【００１３】
ヘッドマウントディスプレイ１００は、「ウェアラブルディスプレイ」の一例である。ここでは、ヘッドマウントディスプレイ１００に表示される画像の生成方法を説明するが、本実施の形態の画像生成方法は、狭義のヘッドマウントディスプレイ１００に限らず、めがね、めがね型ディスプレイ、めがね型カメラ、ヘッドフォン、ヘッドセット（マイクつきヘッドフォン）、イヤホン、イヤリング、耳かけカメラ、帽子、カメラつき帽子、ヘアバンドなどを装着した場合にも適用することができる。
【００１４】
図２は、本実施の形態に係る画像生成システムの構成図である。ヘッドマウントディスプレイ１００は、一例として、映像・音声をデジタル信号で伝送する通信インタフェースの標準規格であるＨＤＭＩ（登録商標）（High-Definition Multimedia Interface）などのインタフェース３００で画像生成装置２００に接続される。
【００１５】
画像生成装置２００は、ヘッドマウントディスプレイ１００の現在の位置・姿勢情報から、映像の生成から表示までの遅延を考慮してヘッドマウントディスプレイ１００の位置・姿勢情報を予測し、ヘッドマウントディスプレイ１００の予測位置・姿勢情報を前提としてヘッドマウントディスプレイ１００に表示されるべき画像を描画し、ヘッドマウントディスプレイ１００に伝送する。
【００１６】
画像生成装置２００の一例はゲーム機である。画像生成装置２００は、さらにネットワークを介してサーバに接続されてもよい。その場合、サーバは、複数のユーザがネットワークを介して参加できるゲームなどのオンラインアプリケーションを画像生成装置２００に提供してもよい。ヘッドマウントディスプレイ１００は、画像生成装置２００の代わりに、コンピュータや携帯端末に接続されてもよい。
【００１７】
図３は、ヘッドマウントディスプレイ１００の機能構成図である。
【００１８】
制御部１０は、画像信号、センサ信号などの信号や、命令やデータを処理して出力するメインプロセッサである。入力インタフェース２０は、ユーザからの操作信号や設定信号を受け付け、制御部１０に供給する。出力インタフェース３０は、制御部１０から画像信号を受け取り、ディスプレイパネル３２に表示する。
【００１９】
通信制御部４０は、ネットワークアダプタ４２またはアンテナ４４を介して、有線または無線通信により、制御部１０から入力されるデータを外部に送信する。通信制御部４０は、また、ネットワークアダプタ４２またはアンテナ４４を介して、有線または無線通信により、外部からデータを受信し、制御部１０に出力する。
【００２０】
記憶部５０は、制御部１０が処理するデータやパラメータ、操作信号などを一時的に記憶する。
【００２１】
姿勢センサ６４は、ヘッドマウントディスプレイ１００の位置情報と、ヘッドマウントディスプレイ１００の回転角や傾きなどの姿勢情報を検出する。姿勢センサ６４は、ジャイロセンサ、加速度センサ、角加速度センサなどを適宜組み合わせて実現される。３軸地磁気センサ、３軸加速度センサおよび３軸ジャイロ（角速度）センサの少なくとも１つ以上を組み合わせたモーションセンサを用いて、ユーザの頭部の前後、左右、上下の動きを検出してもよい。
【００２２】
外部入出力端子インタフェース７０は、ＵＳＢ（Universal Serial Bus）コントローラなどの周辺機器を接続するためのインタフェースである。外部メモリ７２は、フラッシュメモリなどの外部メモリである。
【００２３】
ＨＤＭＩ送受信部９０は、ＨＤＭＩにしたがって映像・音声のデジタル信号を画像生成装置２００との間で送受信する。ＨＤＭＩ送受信部９０は、画像生成装置２００により生成された画像をＨＤＭＩ伝送路で画像生成装置２００から受信し、制御部１０に供給する。
【００２４】
制御部１０は、画像やテキストデータを出力インタフェース３０に供給してディスプレイパネル３２に表示させたり、通信制御部４０に供給して外部に送信させることができる。
【００２５】
姿勢センサ６４が検出したヘッドマウントディスプレイ１００の現在の位置・姿勢情報は、通信制御部４０または外部入出力端子インタフェース７０を介して画像生成装置２００に通知される。あるいは、ＨＤＭＩ送受信部９０がヘッドマウントディスプレイ１００の現在の位置・姿勢情報を画像生成装置２００に送信してもよい。
【００２６】
図４は、本実施の形態に係る画像生成装置２００の機能構成図である。同図は機能に着目したブロック図を描いており、これらの機能ブロックはハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現することができる。
【００２７】
画像生成装置２００の少なくとも一部の機能をヘッドマウントディスプレイ１００に実装してもよい。あるいは、画像生成装置２００の少なくとも一部の機能を、ネットワークを介して画像生成装置２００に接続されたサーバに実装してもよい。
【００２８】
位置・姿勢取得部２１０は、ヘッドマウントディスプレイ１００の現在の位置・姿勢情報をヘッドマウントディスプレイ１００から取得する。
【００２９】
視点・視線設定部２２０は、位置・姿勢取得部２１０により取得されたヘッドマウントディスプレイ１００の位置・姿勢情報を用いて、ユーザの視点位置および視線方向を設定する。
【００３０】
画像生成部２３０は、歪みレンダリング部２３２と、歪み情報記憶部２３４と、シーンデータ記憶部２４４とを含む。
【００３１】
歪みレンダリング部２３２は、シーンデータ記憶部２４４からシーンデータを読み出し、視点・視線設定部２２０によって設定されたユーザの視点位置および視線方向にしたがって、ヘッドマウントディスプレイ１００を装着したユーザの視点位置から視線方向に見える仮想空間のオブジェクトをレンダリングする。レンダリングの際、歪みレンダリング部２３２は、歪み情報記憶部２３４から歪み情報を読み出し、ヘッドマウントディスプレイ１００の光学系で生じる歪みに合わせて画像を変形（distortion）させて歪ませる処理を同時に実行する。すなわち、歪みレンダリング部２３２は、ヘッドマウントディスプレイ１００の光学系の歪み情報を参照して、歪み無し画像を生成することなく、歪み画像を直接レンダリングし、画像記憶部２６０のフレームバッファに書き込む。このように歪み無し画像を中間バッファに生成することなく、歪み画像を直接フレームバッファにレンダリングする処理を「歪みレンダリング処理」と呼び、詳しくは後述する。
【００３２】
ＨＤＭＩ送受信部２８０は、画像記憶部２６０から画像生成部２３０により生成された拡張現実画像のフレームデータを読み出し、ＨＤＭＩにしたがってヘッドマウントディスプレイ１００に伝送する。
【００３３】
図５（ａ）は、従来のレンダリング処理を説明する図であり、図５（ｂ）は、本実施の形態の歪みレンダリング処理を説明する図である。
【００３４】
従来、ヘッドマウントディスプレイ１００のディスプレイパネル３２に表示するための歪み画像４２０を生成する場合、図５（ａ）に示すように、レンダリング部２３１がシーンデータ記憶部２４４からシーンデータを読み出し、シーンデータにもとづいて歪み無し画像４００をフレームバッファにレンダリングした後、歪み変換部２３３が歪み情報記憶部２３４から歪み情報を読み出し、歪み無し画像４００を歪み情報にもとづいて歪ませて歪み画像４２０を生成していた。この従来のレンダリング処理では、歪み無し画像４００を保存するためにメモリが必要であり、また、いったんレンダリングした後、歪み変換処理を施すため、処理時間が余分にかかり、描画レイテンシが長くなる。
【００３５】
本実施の形態の歪みレンダリング処理では、図５（ｂ）に示すように、歪みレンダリング部２３２が、シーンデータ記憶部２４４に格納されたシーンデータにもとづく仮想空間のシーンを、歪み情報記憶部２３４に格納された歪み情報にもとづいて最初から歪ませてレンダリングし、歪み画像４２０をフレームバッファに書き込む。本実施の形態の歪みレンダリングでは、歪み無し画像を保存するためのメモリ容量を削減することができ、また、レンダリングと同時に歪み変換処理も行うため、処理時間を短縮し、描画レイテンシを短縮することができる。
【００３６】
モバイル端末などバッテリ容量に制約がある装置で描画処理を行う場合には省電力化が重要になるが、本実施の形態の歪みレンダリングでは、歪み無し画像をメモリに生成しないため、メモリアクセス回数が減り、消費電力が抑えられる。また、ヘッドマウントディスプレイ１００では酔い軽減などユーザ体験向上のために描画レイテンシの短縮が重要であるが、本実施の形態の歪みレンダリングでは、歪み変換をレンダリング時に行うため、処理時間を短縮し、低レイテンシで画像を描画することができる。
【００３７】
図６は、本実施の形態の歪みレンダリング処理の手順を示すフローチャートである。
【００３８】
通常、ラスタライズ処理は処理対象の三角形の３頂点の座標を用いてラスタライズ範囲を確定する。しかし、三角形を歪み情報にもとづいて歪み変換すると、歪みが非線形である場合、歪みの生じた三角形の３頂点の座標のみではラスタライズ範囲を確定できない。そのため、歪みの生じた三角形のラスタライズ開始位置から上方向および下方向に三角形の外側に出るまでラスタライズを続ける。
【００３９】
歪みレンダリング部２３２は、歪み適用後の座標を用いてラスタライズ開始位置を決定する（Ｓ１０）。歪みレンダリング部２３２は、ラスタライズ開始位置から上方向にラスタライズする（Ｓ２０）。上方向のラスタライズが終了すると、次に歪みレンダリング部２３２は、ラスタライズ開始位置から上方向にラスタライズする（Ｓ３０）。
【００４０】
図７および図８は、図６のラスタライズ開始位置の決定処理Ｓ１０を説明する図である。
【００４１】
図７は、ラスタライズ開始位置の決定方法を説明する図である。図７に示すように、歪み適用前の座標系Ｘ＿ｏｒｇ−Ｙ＿ｏｒｇにおけるラスタライス処理対象の三角形３１０は、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔでは歪んだ三角形３１２になる。歪み適用前の三角形３１０の３頂点ｖ０、ｖ１、ｖ２は、歪み適用後の三角形３１２の３頂点ｖ０’、ｖ１’、ｖ２’に移動する。歪み関数をｄｉｓｔで表すと、歪んだ三角形３１２の３頂点ｖ０’、ｖ１’、ｖ２’は以下の式で与えられる。
ｖ０’＝ｄｉｓｔ（ｖ０）
ｖ１’＝ｄｉｓｔ（ｖ１）
ｖ２’＝ｄｉｓｔ（ｖ２）
【００４２】
歪んだ三角形３１２においてＸ座標が最も小さい頂点を選択する。図７の例ではＸ座標が最も小さい頂点ｖ２’が選択される。頂点ｖ２’の座標値は一般に整数値ではないので、頂点ｖ２’に最も近いピクセル、すなわち頂点ｖ２’に最も近いＸ座標、Ｙ座標がともに整数である点Ｐ’をラスタライズ開始位置として選択する。
【００４３】
図８は、ラスタライズ開始ピクセルの生成方法を説明する図である。歪み適用後の座標系におけるラスタライズ開始ピクセルＰ’の歪み適用前の座標を求める。歪み関数ｄｉｓｔの逆関数であるｕｎｄｉｓｔを用いて歪み適用前のラスタライズ開始ピクセルＰを次式によって求める。
Ｐ＝ｕｎｄｉｓｔ（Ｐ’）
【００４４】
求められた歪み適用前のラスタライズ開始ピクセルＰについて、三角形の内外判定とパラメータ生成を行う。たとえば重心座標系を利用して、ラスタライズ開始ピクセルＰの値を三角形の３頂点ｖ０、ｖ１、ｖ２の値の線形和で求める。
【００４５】
歪み適用後のラスタライズ開始ピクセルＰ’のピクセル値を歪み適用前のラスタライズ開始ピクセルＰのピクセル値で設定する。このようにして歪み適用後のラスタライズ開始ピクセルＰ’が生成され、ラスタライズ開始位置の決定処理Ｓ１０が終了する。
【００４６】
図９〜図１２は、図６の上方向のラスタライズ処理Ｓ２０を説明する図である。
【００４７】
図９に示すように、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔにおいてラスタライズ開始ピクセルＰ’から右に１ピクセルずつ移動しながら、ピクセルＱ１’、Ｑ２’、Ｑ３’、Ｑ４’を処理する。逆歪み関数ｕｎｄｉｓｔを適用して歪みを除去すると、歪み適用後のピクセルＱ１’、Ｑ２’、Ｑ３’、Ｑ４’はそれぞれ歪み適用前のピクセルＱ１、Ｑ２、Ｑ３、Ｑ４に変換される。歪み適用前のピクセルＱ１、Ｑ２、Ｑ３、Ｑ４について三角形の内外判定とパラメータ生成を行う。歪み適用前のピクセルＱ１、Ｑ２、Ｑ３は、三角形の内部にあるため、重心座標系などを用いて歪み適用前のピクセルＱ１、Ｑ２、Ｑ３の値を三角形の３頂点ｖ０、ｖ１、ｖ２の値の線形和で求め、歪み適用後のピクセルＱ１’、Ｑ２’、Ｑ３’の値を求められた値に設定する。歪み適用前のピクセルＱ４は、三角形の外部にあるため、歪み適用後のピクセルＱ４’は生成されず、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔにおける右への移動は終了する。
【００４８】
図１０に示すように、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔにおいて右への移動が終了したピクセルＱ４’から１ピクセル上に移動し、ピクセルＱ５’から左に１ピクセルずつ移動しながら、ピクセルＱ５’、Ｑ６’、Ｑ７’を処理する。最初に歪み適用前の三角形の内部に入ったピクセルからラスタライズを再開する。ただし、右への移動が終了したピクセルＱ４’から１ピクセル上に移動した後の最初のピクセルＱ５’が既に歪み適用前の三角形の内部にあった場合、いったん三角形の外部に出るまで右に移動してから、左に１ピクセルずつ移動する必要がある。
【００４９】
図１０の例では、逆歪み関数ｕｎｄｉｓｔを適用して歪みを除去すると、歪み適用後のピクセルＱ５’、Ｑ６’、Ｑ７’はそれぞれ歪み適用前のピクセルＱ５、Ｑ６、Ｑ７に変換される。歪み適用前のピクセルＱ５、Ｑ６は三角形の外部にあるが、歪み適用前のピクセルＱ７は三角形の内部にある。よって、歪み適用後のピクセルＱ７’からラスタライズを再開する。
【００５０】
図１１に示すように、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔにおいてラスタライズ再開ピクセルＱ７’から左に１ピクセルずつ移動しながら、ピクセルＱ８’、Ｑ９’、Ｑ１０’を処理する。逆歪み関数ｕｎｄｉｓｔを適用して歪みを除去すると、歪み適用後のピクセルＱ８’、Ｑ９’、Ｑ１０’はそれぞれ歪み適用前のピクセルＱ８、Ｑ９、Ｑ１０に変換される。歪み適用前のピクセルＱ８、Ｑ９は三角形の内部にあるため、歪み適用前のピクセルＱ８、Ｑ９の値を三角形の３頂点ｖ０、ｖ１、ｖ２の値から求め、歪み適用後のピクセルＱ８’、Ｑ９’の値を求められた値に設定する。歪み適用前のピクセルＱ１０は、三角形の外部にあるため、歪み適用後のピクセルＱ１０’は生成されず、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔにおける左への移動は終了する。
【００５１】
以降、図１２に示すように、同様に１ラインずつ上方向にスキャンし、ラスタライズする。新しいラインのラスタライズ再開ピクセルを探す際、これまでにスキャンしたＸ座標範囲Ｓの端まで行っても三角形の内部に入らない場合、スキャンを終了する。図１２の例では最後ピクセルＬｕ’において上方向のラスタライズ処理を終了する。
【００５２】
図１３は、図６の下方向のラスタライズ処理Ｓ３０を説明する図である。上方向のラスタライズ処理Ｓ２０と同様に、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔにおいてラスタライズ開始ピクセルＰ’から左に１ピクセルずつ移動しながら、三角形の内部にあるピクセルをラスタライズし、三角形の外部に出ると、１ピクセル下に移動し、右に１ピクセルずつ移動しながら、三角形の内部にあるピクセルをラスタライズする。以降、１ラインずつ下方向に移動しながらピクセルをラスタライズし、上方向のラスタライズ処理Ｓ２０と同様に、それまでにスキャンしたＸ座標範囲Ｓの端まで行っても三角形の内部に入らない場合、最後ピクセルＬｄ’において下方向のラスタライズ処理を終了する。
【００５３】
図１４は、歪みレンダリング処理でパラメータのＸ方向、Ｙ方向の微分値を算出する方法を説明する図である。描画の際にミップマップを用いる場合など、ピクセルのパラメータのＸ方向、Ｙ方向の微分値が必要になることがある。
【００５４】
図１４に示すように、歪み適用後の座標系Ｘ＿ｄｉｓｔ−Ｙ＿ｄｉｓｔにおけるピクセルＰ’と隣接ピクセルＡ’、Ｂ’、Ｃ’は、逆歪み関数ｕｎｄｉｓｔを適用して歪みを除去すると、それぞれ歪み適用前の座標系Ｘ＿ｏｒｇ−Ｙ＿ｏｒｇにおけるピクセルＰ、Ａ、Ｂ、Ｃに変換される。
【００５５】
ピクセルＰ’のパラメータのＸ方向の微分値ｄｐ／ｄｘは、ピクセルＰ’と隣接ピクセルＡ’の差分により計算される。ピクセルＰ’の値は歪み適用前のピクセルＰをラスタライズすることで得られ、隣接ピクセルＡ’の値は歪み適用前のピクセルＡをラスタライズすることで得られる。同様に、ピクセルＰ’のパラメータのＹ方向の微分値ｄｐ／ｄｙは、ピクセルＰ’と隣接ピクセルＣ’の差分により計算される。ピクセルＰ’の値は歪み適用前のピクセルＰをラスタライズすることで得られ、隣接ピクセルＣ’の値は歪み適用前のピクセルＡをラスタライズすることで得られる。
【００５６】
そこで、２×２ピクセル単位でラスタライズを行って、ピクセルの値とともに、水平方向および垂直方向の隣接ピクセルとの差分値を計算し、水平方向および垂直方向の差分値をＸ方向、Ｙ方向の微分値として２×２ピクセル単位で共有する。あるいは、ラインバッファにおいて現在のラインとその上または下に隣接するラインのパラメータ値を保持しておき、Ｘ方向、Ｙ方向のピクセル間差分を求めるようにしてもよい。
【００５７】
図１５（ａ）〜図１５（ｃ）は、歪み変換および逆歪み変換を説明する図である。上述の歪み変換関数ｄｉｓｔ、逆歪み変換関数ｕｎｄｉｓｔは、図１５（ａ）のように多項式で与えることができる。図１５（ｂ）のようにメッシュ近似で歪み変換および逆歪み変換を定義してもよい。近傍のメッシュ頂点から補間することで任意の点を歪み変換および逆歪み変換することができる。図１５（ｃ）のように、歪み中心からの距離ｒを歪み変換および逆歪み変換した値をテーブルの形式で保持し、テーブルを参照して近似的に任意の点の歪み変換および逆歪み変換を行ってもよい。
【００５８】
以上述べたように、本実施の形態の画像生成装置２００による歪みレンダリング処理では、歪み無し画像をフレームバッファにレンダリングした後、歪み無し画像に歪み変換処理を施して歪み画像を生成するのではなく、歪み画像を直接フレームバッファにレンダリングする。歪み無し画像を中間バッファに生成しないため、メモリ容量を削減することができ、メモリアクセスのために必要な消費電力も削減することができる。また、レンダリングと歪み処理を同時に行うため、処理時間を短縮し、描画レイテンシを短縮することができる。
【００５９】
（第２の実施の形態）
上述の第１の実施の形態の歪みレンダリング処理は、フォービエイテッド（foveated）レンダリングに応用することができる。フォービエイテッドレンダリングでは、ユーザの視野の注視点を含む注視領域を他の領域よりも高解像度でレンダリングする。第１の実施の形態で利用した歪み情報を注視点に応じて動的に切り替えることで、注視点に応じた歪み画像を生成することができる。
【００６０】
図１６は、第２の実施の形態に係る画像生成装置２００の構成図である。第１の実施の形態の画像生成装置２００とは異なる構成と動作について説明し、共通する構成と動作については説明を省略する。
【００６１】
位置・姿勢取得部２１０は、ヘッドマウントディスプレイ１００からユーザの注視点の情報を取得し、注視情報記憶部２３８に注視情報として格納する。注視情報には、注視点の位置情報の他、注視点を含む注視領域の解像度を非注視領域の解像度に対して高める割合を示す縮尺情報が含まれる。
【００６２】
歪み情報算出部２３６は、注視情報を参照して、非注視領域に対する注視領域の解像度の比率を考慮して歪み情報を変形した「注視歪み情報」を算出して歪み情報記憶部２３４に格納する。歪みレンダリング部２３２は、歪み情報記憶部２３４から注視歪み情報を読み出し、注視歪み情報にもとづいて歪み画像をレンダリングして画像記憶部２６０に格納する。
【００６３】
ユーザの注視点は動的に変化するため、位置・姿勢取得部２１０がヘッドマウントディスプレイ１００からユーザの新しい注視点の情報を取得すると、注視情報記憶部２３８に新しい注視情報が格納され、歪み情報算出部２３６が新しい注視情報を参照して歪み情報を変形させ、新しい注視歪み情報を歪み情報記憶部２３４に格納する。歪みレンダリング部２３２は、新しい注視歪み情報にもとづいて歪み画像をレンダリングする。
【００６４】
図１７は、従来のレンダリング処理を説明する図である。レンダリング部２３１は、シーンデータ記憶部２４４からシーンデータを読み出し、注視情報記憶部２３８から注視情報を読み出し、注視点Ｇを含む注視領域の解像度を高くした画像をレンダリングしてフレームバッファに書き込む。ここでは注視点Ｇを含む注視領域を１．０倍、非注視領域を０．５倍に縮小しており、非注視領域は注視領域に比べてピクセル数が少ないので、ラスタライズの負荷が抑えられるのに対して、注視領域はピクセル数が多いので、高画質になる。
【００６５】
歪み変換部２３３は、歪み情報記憶部２３４から歪み情報を読み出し、レンダリングされた画像を歪ませる。この歪み変換処理の際、０．５倍の解像度の非注視領域は２倍でサンプリングすることで、等倍画像を生成し、メモリに保存する。スキャンアウト部２５１は、等倍画像をディスプレイパネル３２に出力する。
【００６６】
図１８は、本実施の形態の歪みレンダリング処理を説明する図である。歪み情報算出部２３６は、注視情報記憶部２３８から読み出した注視情報にもとづいて歪み情報を変形して注視歪み情報を算出し、歪み情報記憶部２３４に保存する。歪みレンダリング部２３２は、シーンデータ記憶部２４４からシーンデータを読み出し、歪み情報記憶部２３４から注視歪み情報を読み出し、注視歪み情報によって歪ませた画像をレンダリングする。ここでは注視点Ｇを含む注視領域が１．０倍、非注視領域が０．５倍に縮小された歪み画像がフレームバッファに生成される。
【００６７】
スケーリング付きスキャンアウト部２５２は、注視情報記憶部２３８から注視情報を読み出し、ラインバッファに少なくとも２ライン分の画像をバッファリングして注視情報に含まれる縮尺情報にしたがって画像のスケーリングを行って等倍画像を出力する。ここでは０．５倍の解像度の領域については２倍のサンプリングを行う。たとえばバイリニア補間であれば２ライン分のラインバッファが必要である。スキャンアウト時にスケーリングを行うため、図１７の従来のレンダリング処理のように等倍画像をメモリに展開する必要がないため、メモリ容量を削減することができる。また、レンダリングと歪み処理を同時に行うため、処理時間を短縮することができる。
【００６８】
なお、ここでは、説明の便宜上、画像生成部２３０の構成がヘッドマウントディスプレイ１００に設けられ、フレームバッファの画像がディスプレイパネル３２にスキャンアウトされる構成を説明する。この場合は、スケーリング付きスキャンアウト部２５２は出力インタフェース３０に実装され、ディスプレイパネル３２に画像を出力する。図４のように画像生成部２３０の構成が画像生成装置２００に設けられる場合でも、画像記憶部２６０から読み出された画像はＨＤＭＩ送受信部２８０によってヘッドマウントディスプレイ１００に送信され、ヘッドマウントディスプレイ１００の出力インタフェース３０に実装されたスケーリング付きスキャンアウト部２５２が画像をディスプレイパネル３２に出力する。
【００６９】
図１９（ａ）および図１９（ｂ）は、注視点が動的に変わる場合の歪みレンダリング処理を説明する図である。
【００７０】
図１９（ａ）では、注視点ＧＡの情報にもとづいて歪み情報算出部２３６は、注視歪み情報Ａを算出し、歪みレンダリング部２３２は、注視歪み情報Ａにもとづいて注視歪み画像を生成する。左上の注視点ＧＡを含む注視領域が１．０倍、非注視領域が０．５倍に縮小された注視歪み画像が生成される。スケーリング付きスキャンアウト部２５２は、縮尺情報にもとづいて非注視領域については２倍のサンプリングを行って出力する。
【００７１】
図１９（ｂ）では、注視点ＧＢの情報にもとづいて歪み情報算出部２３６は、注視歪み情報Ｂを算出し、歪みレンダリング部２３２は、注視歪み情報Ｂにもとづいて注視歪み画像を生成する。右下の注視点ＧＢを含む注視領域が１．０倍、非注視領域が０．５倍に縮小された注視歪み画像が生成される。注視点ＧＢを含む注視領域は、図１９（ａ）の注視点ＧＡを含む注視領域よりも狭く設定されている。注視領域と非注視領域の間の縮尺の設定は任意である。スケーリング付きスキャンアウト部２５２は、縮尺情報にもとづいて非注視領域については２倍のサンプリングを行って出力する。
【００７２】
図２０は、図１７の従来のレンダリング処理の変形例を説明する図である。図２０では、図１７の歪み変換部２３３の構成を外し、その代わりに歪み変換及びスケーリング付きスキャンアウト部２５３を設ける。レンダリング部２３１はシーンデータと注視情報にもとづいて注視画像をレンダリングする。歪み変換及びスケーリング付きスキャンアウト部２５３は、注視画像をラインバッファに読み出し、スキャンアウト時に歪み変換とスケーリング処理を行い、等倍画像を出力する。歪みの強度に応じて必要なラインバッファの本数が変わる。ｙ方向の強い変形に耐えるためには多数のラインバッファが必要になる。それに対して、図１８の本実施の形態の歪みレンダリング処理では、スキャンアウト時にはスケーリングを行うだけであり、バイリニア補間の場合は２ラインのバッファ量で足りるという利点がある。
【００７３】
（第３の実施の形態）
第１の実施の形態の歪みレンダリング処理は、リプロジェクションにも応用できる。第１の実施の形態で利用した歪み情報を利用して、リプロジェクション処理と同時に歪み変換を行い、レンダリングされた歪み画像からリプロジェクション処理された歪み画像（「リプロジェクション歪み画像」と呼ぶ）を生成することができる。
【００７４】
ここで、リプロジェクションについて説明する。ヘッドマウントディスプレイ１００にヘッドトラッキング機能をもたせて、ユーザの頭部の動きと連動して視点や視線方向を変えて仮想現実の映像を生成した場合、仮想現実の映像の生成から表示までに遅延があるため、映像生成時に前提としたユーザの頭部の向きと、映像をヘッドマウントディスプレイ１００に表示した時点でのユーザの頭部の向きとの間でずれが発生し、ユーザは酔ったような感覚（「ＶＲ酔い（Virtual Reality Sickness）」などと呼ばれる）に陥ることがある。
【００７５】
このように、ヘッドマウントディスプレイ１００の動きを検知し、ＣＰＵが描画コマンドを発行し、ＧＰＵ（Graphics Processing Unit）がレンダリングを実行し、描画された画像がヘッドマウントディスプレイ１００に出力されるまでには時間がかかる。描画がたとえば６０ｆｐｓ（フレーム／秒）のフレームレートで行われており、ヘッドマウントディスプレイ１００の動きを検知してから画像を出力するまでに１フレーム分の遅れが生じるとする。これはフレームレート６０ｆｐｓのもとでは、１６．６７ミリ秒ほどであり、人間がずれを感知するには十分な時間である。
【００７６】
そこで、「タイムワープ」または「リプロジェクション」と呼ばれる処理を行い、レンダリングした画像をヘッドマウントディスプレイ１００の最新の位置と姿勢に合わせて補正することで人間がずれを感知しにくいようにする。
【００７７】
図２１は、第３の実施の形態の画像生成装置２００の構成図である。第１の実施の形態の画像生成装置２００とは異なる構成と動作について説明し、共通する構成と動作については説明を省略する。
【００７８】
歪みレンダリング部２３２は、第１の実施の形態と同様、シーンデータにもとづいてレンダリングする際は、歪み情報にもとづいて歪み画像を生成するが、リプロジェクションの際は、既に生成された歪み画像をテクスチャとして利用して、歪み画像を台形変換してリプロジェクション歪み画像を生成する。リプロジェクションの際は、歪みレンダリング部２３２はテクスチャ座標変換部２４０と連携するため、歪みレンダリング部２３２とテクスチャ座標変換部２４０が歪みリプロジェクション部２４６として機能する。
【００７９】
歪みレンダリング部２３２は、参照すべき仮想テクスチャの座標をテクスチャ座標変換部２４０に提供する。テクスチャ座標変換部２４０は、テクスチャ歪み情報記憶部２４２からテクスチャ歪み情報を読み出し、テクスチャ歪み情報にもとづいて、歪みレンダリング部２３２が参照する仮想テクスチャの座標値を実テクスチャの座標値に変換する。テクスチャ座標変換部２４０は、変換後の実テクスチャの座標値にもとづいて実テクスチャである歪み画像からピクセルデータを読み出し、歪みレンダリング部２３２に提供する。
【００８０】
図２２は、従来のリプロジェクション処理を説明する図である。時刻ｔ１におけるヘッドマウントディスプレイ１００の投影面Ｓ１に対して、時刻ｔ２ではヘッドマウントディスプレイ１００の投影面Ｓ２はユーザの姿勢に応じて回転している。投影面Ｓ１にレンダリングされた歪み無し画像４００を投影面Ｓ２に表示させるために、歪み無し画像４００に台形変換を行い、リプロジェクション画像４１０を生成するのがリプロジェクション処理である。
【００８１】
時刻ｔ１でのヘッドマウントディスプレイ１００の姿勢に合わせて歪み無し画像４００がレンダリングされる。歪み無し画像４００をテクスチャとして利用して、時刻ｔ２でのヘッドマウントディスプレイ１００の最新の姿勢に合うようにリプロジェクション処理を施し、リプロジェクション画像４１０を生成する。その後、リプロジェクション画像４１０に歪み変換を施して歪み画像４２０を生成する。
【００８２】
図２３は、本実施の形態の歪みリプロジェクション処理を説明する図である。歪みレンダリング部２３２は、時刻ｔ１でのヘッドマウントディスプレイ１００の姿勢に合わせて、歪みレンダリング処理によって歪み画像４３０を投影面Ｓ１にレンダリングする。歪みリプロジェクション部２４６は、歪み画像４３０をテクスチャとして利用して、時刻ｔ２でのヘッドマウントディスプレイ１００の最新の姿勢に合うように歪みリプロジェクション処理を施し、投影面Ｓ２にリプロジェクション歪み画像４４０をレンダリングする。歪みリプロジェクション処理では、台形変換と歪み変換が同時に行われる。
【００８３】
図２４は、本実施の形態の歪みリプロジェクション処理をより詳しく説明する図である。
【００８４】
本実施の形態では、歪みレンダリング部２３２は歪み無し画像をフレームバッファに生成せずに、歪み画像を直接フレームバッファに生成する。そのため、歪み無し画像がフレームバッファに実在しないため、歪み無し画像に対して、台形変換と歪み変換を同時に行う歪みリプロジェクション処理を施すことはできない。そこで、歪み画像４３０をテクスチャとして利用する際、仮想的に歪みのないテクスチャ（「仮想テクスチャ」と呼ぶ）を想定し、仮想テクスチャ４５０に対して歪みリプロジェクション処理を施す。仮想テクスチャは歪みがないため、本実施の形態の歪みレンダリング処理を適用して、台形変換と同時に歪み変換を施すことで、リプロジェクション歪み画像４４０を生成することができる。
【００８５】
ただし、仮想テクスチャ４５０は実在しないため、仮想テクスチャ４５０へのデータアクセスを、フレームバッファに実際に生成された歪み有りの実テクスチャである歪み画像４３０へのデータアクセスに変換し、実テクスチャである歪み画像４３０からデータを取得できるようにする。仮想テクスチャ４５０から実テクスチャである歪み画像４３０へのテクスチャの座標変換は、歪みレンダリング処理で参照する歪み情報と同じ歪み変換である。ただし、テクスチャとして利用するために、テクスチャ座標を導入し、スケールとオフセットを調整する。仮想テクスチャ４５０を仮想テクスチャ座標系ｓ＿ｏｒｇ−ｔ＿ｏｒｇに設け、実テクスチャである歪み画像４３０を実テクスチャ座標系ｓ＿ｄｉｓｔ−ｔ＿ｄｉｓｔに設け、画像サイズがｓ＝１．０、ｔ＝１．０になるようにスケーリングし、画像の左上の座標がｓ＝０、ｔ＝０となるようにオフセットする。テクスチャ座標の変換に必要なテクスチャ歪み情報は、歪みレンダリング処理で参照する歪み情報からあらかじめ求めておく。
【００８６】
図２５（ａ）〜図２５（ｃ）は、歪みリプロジェクション処理の手順を説明する図である。図２５（ａ）に示すように、仮想テクスチャ４５０を大きな二つの三角形に分割し、三角形の頂点ｖ０、ｖ１、ｖ２に仮想テクスチャ座標を以下のように設定する。
ｖ０：Ｔｅｘ＿ｖ（１．０，０．０）
ｖ１：Ｔｅｘ＿ｖ（０．０，１．０）
ｖ２：Ｔｅｘ＿ｖ（０．０，０．０）
【００８７】
仮想テクスチャ４５０の３頂点は台形変換と歪み変換により、投影面Ｓ２では歪みのある三角形の３頂点に対応する。歪みレンダリング部２３２が歪みのある三角形に対して実施の形態１で述べた歪みレンダリング処理を実行し、ラスタライズする。ここでは、図２５（ｂ）に示すように、ピクセルＰをラスタライズする場合を説明する。ピクセルＰに逆歪み変換を施すことにより、ピクセルＰの仮想テクスチャ座標はたとえば以下のように求められる。
Ｐ：Ｔｅｘ＿ｖ（０．４，０．２）
【００８８】
仮想テクスチャは仮想的に存在するだけでフレームバッファに実在しないので、歪み変換によって仮想テクスチャ座標を実テクスチャ座標に変換する。これにより、図２５（ｃ）に示すように、ピクセルＰの実テクスチャ座標がたとえば以下のように求められる。ここでは、仮想テクスチャ座標Ｔｅｘ＿ｖ（０．４，０．２）が実テクスチャ座標Ｔｅｘ＿ｒ（０．３，０．３）に変換される。
Ｐ：Ｔｅｘ＿ｒ（０．３，０．３）
【００８９】
実際にピクセルＰをサンプリングするときは、実テクスチャ座標Ｔｅｘ＿ｒ（０．３，０．３）にもとづいて歪み画像４３０からサンプリングする。２つの三角形の内部の点を歪みレンダリング処理によってラスタライズすることにより、最終的にリプロジェクション歪み画像４４０が生成される。
【００９０】
図２６は、従来のリプロジェクション処理の手順を説明する図である。ここでは単純なシーンの描画のため、レンダリングに時間がかからず、リプロジェクションの予測時間が短い場合を想定する。レンダリング部２３１はシーンデータにもとづいて時刻ｔ＝Ｎの歪み無し画像４００をレンダリングし、歪み変換部２３３が歪み無し画像４００を歪み情報にもとづいて歪み変換し、時刻ｔ＝Ｎの歪み画像４２０を生成する。レンダリング処理よりも高いフレームレートで画像を出力する場合、時刻ｔ＝Ｎ＋１では、リプロジェクション部２４５は、直前の時刻ｔ＝Ｎの描画結果である歪み無し画像４００に対してリプロジェクション処理を施し、リプロジェクション歪み無し画像４１２を生成し、歪み変換部２３３がリプロジェクション歪み無し画像４１２を歪み情報にもとづいて歪み変換し、時刻ｔ＝Ｎ＋１のリプロジェクション歪み画像４２２を生成する。
【００９１】
図２７は、従来のリプロジェクション処理の手順を説明する図である。ここでは複雑なシーンの描画のため、レンダリングに時間がかかり、リプロジェクションの予測時間が長い場合を想定する。レンダリング部２３１はシーンデータにもとづいて歪み無し画像４００をレンダリングするが処理時間がかかったため、リプロジェクション部２４５は、歪み無し画像４００に対してリプロジェクション処理を施し、時刻ｔ＝Ｎのリプロジェクション画像４１０を生成し、歪み変換部２３３がリプロジェクション画像４１０を歪み情報にもとづいて歪み変換し、時刻ｔ＝Ｎのリプロジェクション歪み画像４２１を生成する。また、次の時刻ｔ＝Ｎ＋１では、リプロジェクション部２４５は、歪み無し画像４００に対してリプロジェクション処理を施し、時刻ｔ＝Ｎ＋１のリプロジェクション画像４１０を生成し、歪み変換部２３３がリプロジェクション画像４１０を歪み情報にもとづいて歪み変換し、時刻ｔ＝Ｎ＋１のリプロジェクション歪み画像４２１を生成する。
【００９２】
図２６、図２７のいずれの場合でもリプロジェクション時の予測時間は、リプロジェクション処理にかかる時間、同期待ち時間、歪み変換にかかる時間を合計した時間である。
【００９３】
図２８は、本実施の形態の歪みリプロジェクション処理の手順を説明する図である。ここでは単純なシーンの描画のため、レンダリングに時間がかからず、リプロジェクションの予測時間が短い場合を想定する。歪みレンダリング部２３２は、シーンデータと歪み情報にもとづいて時刻ｔ＝Ｎの歪み画像４２０をレンダリングする。歪みリプロジェクション部２４６は、時刻ｔ＝Ｎの歪み画像４２０に対して時刻ｔ＝Ｎ＋１のヘッドマウントディスプレイ１００の姿勢に合うように歪みリプロジェクション処理を施し、時刻ｔ＝Ｎ＋１の歪みリプロジェクション歪み画像４２２を生成する。
【００９４】
図２９は、本実施の形態の歪みリプロジェクション処理の手順を説明する図である。ここでは複雑なシーンの描画のため、レンダリングに時間がかかり、リプロジェクションの予測時間が長い場合を想定する。歪みレンダリング部２３２は、シーンデータと歪み情報にもとづいて歪み画像４２０をレンダリングする。歪みリプロジェクション部２４６は、歪み画像４２０に対して歪みリプロジェクション処理を施し、時刻ｔ＝Ｎの歪みリプロジェクション歪み画像４２１を生成する。次の時刻ｔ＝Ｎ＋１では、歪みリプロジェクション部２４６は、歪み画像４２０に対して歪みリプロジェクション処理を施し、時刻ｔ＝Ｎ＋１の歪みリプロジェクション歪み画像４２２を生成する。
【００９５】
図２８、図２９のいずれの場合でもリプロジェクション時の予測時間は、歪みリプロジェクション処理にかかる時間だけであり、図２６、２７の従来のリプロジェクション処理に比べて予測時間が短くなるので、低レイテンシであり、予測精度の向上も期待できる。また、中間バッファを介さないため、メモリリソースを削減できる。モバイル機器では、メモリアクセスが減る分、省電力の効果もある。
【００９６】
（第４の実施の形態）
第２の実施の形態のフォービエイテッドレンダリングと、第３の実施の形態のリプロジェクションとを組み合わせて行う場合を説明する。
【００９７】
図３０は、第４の実施の形態に係る画像生成装置２００の構成図である。歪み情報算出部２３６に関連する構成と動作は第２の実施の形態で説明し、歪みリプロジェクション部２４６に関連する構成と動作は第３の実施の形態で説明したので説明を省略し、ここでは、これらを組み合わせた構成と動作について説明する。
【００９８】
図３１は、本実施の形態の歪みリプロジェクション処理の手順を説明する図である。レンダリングに比較的時間がかからず、リプロジェクションの予測時間が短い場合を想定する。歪み情報記憶部２３４には、時刻ｔ＝Ｎでは注視点ＧＡの情報にもとづいて歪み情報算出部２３６によって生成された注視歪み情報Ａが保持されており、時刻ｔ＝Ｎ＋１では注視点ＧＢの情報にもとづいて歪み情報算出部２３６によって生成された注視歪み情報Ｂが保持されており、注視歪み情報が時間とともに変化していることに留意する。
【００９９】
歪みレンダリング部２３２は、シーンデータと注視歪み情報Ａにもとづいて時刻ｔ＝Ｎの注視歪み画像４２０をレンダリングする。
【０１００】
歪みリプロジェクション部２４６は、時刻ｔ＝Ｎの注視歪み画像４２０に対して時刻ｔ＝Ｎ＋１のヘッドマウントディスプレイ１００の姿勢に合うように歪みリプロジェクション処理を施すが、テクスチャ座標変換には時刻ｔ＝Ｎのテクスチャ歪み情報Ａを利用し、歪み変換には時刻ｔ＝Ｎ＋１の注視歪み情報Ｂを利用する。テクスチャ座標変換部２４０が時刻ｔ＝Ｎの注視歪み画像４２０に対応する仮想テクスチャを参照する際は、時刻ｔ＝Ｎのテクスチャ歪み情報Ａを利用するが、歪みレンダリング部２３２が注視歪み画像４２０を歪みリプロジェクション処理する際は、時刻ｔ＝Ｎ＋１の注視歪み情報Ｂにもとづいて歪み変換するからである。このようにして歪みリプロジェクション部２４６は、時刻ｔ＝Ｎの注視歪み画像４２０から、時刻ｔ＝Ｎ＋１のリプロジェクション注視歪み画像４２２を生成する。
【０１０１】
図３２は、本実施の形態の歪みリプロジェクション処理の手順を説明する図である。レンダリングに比較的時間がかかり、リプロジェクションの予測時間が長い場合を想定する。図３１と同様、歪み情報記憶部２３４には、時刻ｔ＝Ｎでは注視点ＧＡの情報にもとづいて生成された注視歪み情報Ａが保持されており、時刻ｔ＝Ｎ＋１では注視点ＧＢの情報にもとづいて生成された注視歪み情報Ｂが保持されている。
【０１０２】
歪みレンダリング部２３２は、シーンデータと注視歪み情報Ａにもとづいて歪み画像４２０をレンダリングする。歪みリプロジェクション部２４６は、歪み画像４２０に対して歪みリプロジェクション処理を施すが、テクスチャ座標変換には時刻ｔ＝Ｎのテクスチャ歪み情報Ａを利用し、歪み変換には時刻ｔ＝Ｎの注視歪み情報Ａを利用する。このようにして歪みリプロジェクション部２４６は、歪み画像４２０から時刻ｔ＝Ｎのリプロジェクション注視歪み画像４２１を生成する。
【０１０３】
次の時刻ｔ＝Ｎ＋１では、歪みリプロジェクション部２４６は、歪み画像４２０に対して歪みリプロジェクション処理を施すが、テクスチャ座標変換には時刻ｔ＝Ｎのテクスチャ歪み情報Ａを利用し、歪み変換には時刻ｔ＝Ｎ＋１の注視歪み情報Ｂを利用する。このようにして歪みリプロジェクション部２４６は、歪み画像４２０から時刻ｔ＝Ｎ＋１のリプロジェクション注視歪み画像４２２を生成する。
【０１０４】
本実施の形態の歪みリプロジェクション処理では、リプロジェクション次にテクスチャ歪み情報と注視歪み情報とを個別に用いることでフォービエイテッドレンダリングに対応したリプロジェクションが可能になる。
【０１０５】
上記のいずれの実施の形態でも、ヘッドマウントディスプレイ１００の光学系のように表示画像に非線形の歪みが生じる場合を説明したが、歪みは非線形に限らず、線形の歪みであっても歪みレンダリング処理を適用することができる。たとえば、壁にプロジェクションマッピングを行う場合、プロジェクタは壁を見上げるように斜めに設置されるため、画像にあらかじめ台形変換を施す必要がある。このような線形の歪みを画像に施す場合にも歪みレンダリングを適用して、レンダリング処理と歪み変換を同時に行うことでメモリ容量の削減と処理時間の短縮を図ることができる。ヘッドアップディスプレイや車のフロントガラスへの描画の際にも画像の歪み変換が必要になり、同様に歪みレンダリングを適用することができる。このように歪み変換として、拡大縮小、平行移動、回転など同次座標行列で表現可能な線形の変形の他、同次座標行列で表現できない、たとえばレンズの歪みなど２次以上の多項式で表現されるような非線形の変形など任意の変形を想定することができる。
【０１０６】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【０１０７】
１０  制御部、  ２０  入力インタフェース、  ３０  出力インタフェース、  ３２  ディスプレイパネル、  ４０  通信制御部、  ４２  ネットワークアダプタ、  ４４  アンテナ、  ５０  記憶部、  ６４  姿勢センサ、  ７０  外部入出力端子インタフェース、  ７２  外部メモリ、  １００  ヘッドマウントディスプレイ、  ２００  画像生成装置、  ２１０  位置・姿勢取得部、  ２２０  視点・視線設定部、  ２３０  画像生成部、  ２３２  歪みレンダリング部、  ２３４  歪み情報記憶部、  ２３４  歪み情報記憶部、  ２３６  歪み情報算出部、  ２３８  注視情報記憶部、  ２４０  テクスチャ座標変換部、  ２４２  テクスチャ歪み情報記憶部、  ２４４  シーンデータ記憶部、  ２４６  歪みリプロジェクション部、  ２６０  画像記憶部、  ２８０  ＨＤＭＩ送受信部、  ３００  インタフェース。
【産業上の利用可能性】
【０１０８】
この発明は、画像生成技術に利用できる。
【図１】
2020152754.tif 000003
【図２】
2020152754.tif 000004
【図３】
2020152754.tif 000005
【図４】
2020152754.tif 000006
【図５】
2020152754.tif 000007
【図６】
2020152754.tif 000008
【図７】
2020152754.tif 000009
【図８】
2020152754.tif 000010
【図９】
2020152754.tif 000011
【図１０】
2020152754.tif 000012
【図１１】
2020152754.tif 000013
【図１２】
2020152754.tif 000014
【図１３】
2020152754.tif 000015
【図１４】
2020152754.tif 000016
【図１５】
2020152754.tif 000017
【図１６】
2020152754.tif 000018
【図１７】
2020152754.tif 000019
【図１８】
2020152754.tif 000020
【図１９】
2020152754.tif 000021
【図２０】
2020152754.tif 000022
【図２１】
2020152754.tif 000023
【図２２】
2020152754.tif 000024
【図２３】
2020152754.tif 000025
【図２４】
2020152754.tif 000026
【図２５】
2020152754.tif 000027
【図２６】
2020152754.tif 000028
【図２７】
2020152754.tif 000029
【図２８】
2020152754.tif 000030
【図２９】
2020152754.tif 000031
【図３０】
2020152754.tif 000032
【図３１】
2020152754.tif 000033
【図３２】
2020152754.tif 000034
【国際調査報告】
2020152754.tif 000035
2020152754.tif 000036
2020152754.tif 000037