(57)【要約】      （修正有）【課題】グラフィック処理ユニットＧＰＵにおける視界ベースの状態更新のための技法を提供する。【解決手段】ＧＰＵは、画像データから画像をレンダリングするために、マルチ・パス・レンダリング処理を実行する。ＧＰＵは、マルチ・パス・レンダリング処理の第１のパスの間に、画像データによって定義された複数のオブジェクトのための視界情報を決定する。視界情報は、複数のオブジェクトのうちのおのおのが、マルチ・パス・レンダリング処理の第２のパスの間に、画像データからレンダリングされた画像において目に見えるようになるか否かを示す。ＧＰＵは、その後、視界情報に基づいて、画像データの複数のオブジェクトをレンダリングする際にマルチ・パス・レンダリング処理の第２のパスによって使用される状態データをメモリから取得する。【選択図】図２
2018060556.tif 000002
【特許請求の範囲】
【請求項１】
画像データをレンダリングする方法であって、
グラフィック処理ユニットにおいて、マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データによって定義された複数のオブジェクトの視界情報を決定することと、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のオブジェクトのおのおのが、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示す、
前記グラフィック処理ユニットにおいて、前記視界情報に基づいて、前記画像データのうちの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得することと、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、を備える方法。
【請求項２】
前記画像データを複数のタイルへ分割することをさらに備え、
前記視界情報を決定することは、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定することを備え、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像の対応するタイルにおいて目に見えるようになるか否かを示し、
前記状態データを取得することは、前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得することを備える、請求項１に記載の方法。
【請求項３】
前記グラフィック処理ユニットは、前記マルチ・パス・レンダリング処理を実施し、
前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記状態データを取得することは、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するために、前記ポインタを逆参照することを備える、請求項１に記載の方法。
【請求項４】
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、請求項１に記載の方法。
【請求項５】
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記方法はさらに、変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換することを備え、
前記視界情報を決定することは、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定することを備える、請求項１に記載の方法。
【請求項６】
前記視界情報を決定することは、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定することを備える、請求項１に記載の方法。
【請求項７】
前記視界情報を決定することは、前記視界情報を決定するために低解像度Ｚバッファ処理を実行することを備える、請求項１に記載の方法。
【請求項８】
前記グラフィック処理ユニット（ＧＰＵ）は、モバイル・コンピューティング・デバイス内に存在する、請求項１に記載の方法。
【請求項９】
画像データをレンダリングするデバイスであって、
マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データによって定義された複数のオブジェクトの視界情報を決定する手段と、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のオブジェクトのおのおのが、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示す、
前記視界情報に基づいて、前記画像データのうちの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態情報を取得する手段と、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、を備えるデバイス。
【請求項１０】
前記画像データを複数のタイルへ分割する手段をさらに備え、
前記視界情報を決定する手段は、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定する手段を備え、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像のうちの対応するタイルにおいて目に見えるようになるか否かを示し、
前記状態データを取得する手段は、前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得する手段を備える、請求項９に記載のデバイス。
【請求項１１】
前記グラフィック処理ユニットは、前記マルチ・パス・レンダリング処理を実施し、前記視界情報を決定する手段と、前記状態データを取得する手段とを含み、
前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記状態データを取得する手段は、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するために、前記ポインタを逆参照する手段を備える、請求項９に記載のデバイス。
【請求項１２】
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、請求項９に記載のデバイス。
【請求項１３】
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記デバイスはさらに、変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換する手段を備え、
前記視界情報を決定する手段は、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定する手段を備える、請求項９に記載のデバイス。
【請求項１４】
前記視界情報を決定する手段は、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定する手段を備える、請求項９に記載のデバイス。
【請求項１５】
前記視界情報を決定する手段は、前記視界情報を決定するために低解像度Ｚバッファ処理を実行する手段を備える、請求項９に記載のデバイス。
【請求項１６】
モバイル・コンピューティング・デバイスを備える、請求項９に記載のデバイス。
【請求項１７】
画像データをレンダリングするデバイスであって、
状態データを格納するように構成されたメモリと、
前記画像データから画像をレンダリングするために、マルチ・パス・レンダリング処理を実行するように構成されたプロセッサとを備え、
前記プロセッサは、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データによって定義された複数のオブジェクトの視界情報を決定し、
前記視界情報は、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示し、
前記プロセッサはさらに、前記視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによる使用のための状態データを前記メモリから取得し、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、デバイス。
【請求項１８】
前記画像データを複数のタイルへ分割することをさらに備え、
前記プロセッサはさらに、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定するように構成され、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像のうちの対応するタイルにおいて目に見えるようになるか否かを示し、
前記プロセッサはまた、前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するように構成された、請求項１７に記載のデバイス。
【請求項１９】
前記プロセッサは、グラフィック処理ユニットを備え、ここで、前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記グラフィック処理ユニットは、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するために、前記ポインタを逆参照するように構成された、請求項１７に記載のデバイス。
【請求項２０】
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、請求項１７に記載のデバイス。
【請求項２１】
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記プロセッサはさらに、
変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換し、
前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定するように構成された、請求項１７に記載のデバイス。
【請求項２２】
前記プロセッサは、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定するように構成された、請求項１７に記載のデバイス。
【請求項２３】
前記プロセッサはさらに、前記視界情報を決定するために低解像度Ｚバッファ処理を実行するように構成された、請求項１７に記載のデバイス。
【請求項２４】
モバイル・コンピューティング・デバイスを備える、請求項１７に記載のデバイス。
【請求項２５】
実行された場合、１または複数のプロセッサに対して、
マルチ・パス・レンダリング処理の第１のパスの間に、画像データによって定義された複数のオブジェクトのための視界情報を決定することと、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のオブジェクトのおのおのが、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示す、
前記視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによる使用のための状態データを取得することと、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、を実行させる命令群を備える非一時的なコンピュータ読取可能な媒体。
【請求項２６】
実行された場合、前記１または複数のプロセッサに対して、
前記画像データを、複数のタイルに分割することと、
前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定することと、ここで、前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像のうちの対応するタイルにおいて目に見えるようになるか否かを示す、
前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得することと、を実行させる命令群をさらに備える請求項２５に記載の非一時的なコンピュータ読取可能な媒体。
【請求項２７】
前記１または複数のプロセッサは、少なくとも１つのグラフィック処理ユニットを備え、
前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットの外部からのメモリにおける開始位置を識別するポインタを含み、
実行された場合、前記少なくとも１つのグラフィック処理ユニットに対して前記状態データを取得させる命令群はさらに、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得ために、前記ポインタを逆参照することを備える、請求項２５に記載の非一時的なコンピュータ読取可能な媒体。
【請求項２８】
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、請求項２５に記載の非一時的なコンピュータ読取可能な媒体。
【請求項２９】
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記非一時的なコンピュータ読取可能な媒体さらに、実行された場合に、前記１または複数のプロセッサに対して、
変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換することと、
前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定することと、を実行させる命令群を備える、請求項２５に記載の非一時的なコンピュータ読取可能な媒体。
【請求項３０】
実行された場合、前記１または複数のプロセッサに対して、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定することを実行させる命令群をさらに備える、請求項２５に記載の非一時的なコンピュータ読取可能な媒体。
【請求項３１】
実行された場合、前記１または複数のプロセッサに対して、前記視界情報を決定するために低解像度Ｚバッファ処理を実行することを実行させる命令群をさらに備える、請求項２５に記載の非一時的なコンピュータ読取可能な媒体。
【請求項３２】
モバイル・コンピューティング・デバイスが、前記非一時的なコンピュータ読取可能な媒体と、前記１または複数のプロセッサとを含む、請求項２５に記載の非一時的なコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、グラフィック処理ユニット（ＧＰＵ）に関し、さらに詳しくは、ＧＰＵにおいて状態データを維持することに関する。
【背景技術】
【０００２】
ビジュアル表示のためのコンテンツを提供するデバイスは、一般に、グラフィック処理装置（ＧＰＵ）を含んでいる。ＧＰＵは、ディスプレイ上に、コンテンツを代表するピクセルをレンダリングする。ＧＰＵは、ディスプレイ上に、各ピクセルのための１または複数のピクセル値を生成し、ディスプレイ上の各ピクセルのためのピクセル値にグラフィック処理を実行して、表示のため各ピクセルをレンダリングする。
【発明の概要】
【０００３】
一般に、この開示は、状態更新に関連付けられたオブジェクトの視界情報に基づいて、ＧＰＵにおける状態データ更新を遅らせるための技法を記載している。ＧＰＵは、マルチ・パス・ピクセル・レンダリング処理の第１のパスの間に、ＧＰＵによってレンダリングされるべき画像データの各オブジェクトに関連付けられた視界情報を決定できるように、この技法を実施しうる。この視界情報は、オブジェクトがそれぞれ、マルチ・パス・レンダリング処理の第２のパスの間に、画像データからレンダリングされた出力画像において目に見えるか否かを示しうる。
【０００４】
その後、この視界情報に基づいて、ＧＰＵは、第２のパスで使用される状態データを取得しうる。一例として、オブジェクトが目に見えることを視界情報が示しているのであれば、ＧＰＵは、現在の状態データを取得し、この状態データを、オフ・チップ・メモリ（一例として、ＧＰＵの外部のメモリを意味する）からオン・チップ・メモリ（一例として、ＧＰＵの内部、または、ＧＰＵ内に統合されたメモリ）にロードする。
【０００５】
オブジェクトが目に見えないことを視界情報が示しているのであれば、ＧＰＵは、この状態データを取得しない。このように、ＧＰＵは、オフ・チップ・メモリ・アクセスを潜在的に低減させるため、かつ、ＧＰＵをオフ・チップ・メモリに接続しているメモリ・バス上の不要な帯域幅使用を防ぐために、状態データの取得を遅らせる。
【０００６】
一例では、グラフィック処理ユニットにおいて、マルチ・パス・レンダリング処理の第１のパスの間に、画像データによって定義された複数のオブジェクトの視界情報を決定することを備える。ここで、視界情報は、複数のオブジェクトのおのおのが、マルチ・パス・レンダリング処理の第２のパスの間に、画像データからレンダリングされた画像において目に見えるようになるか否かを示す。この方法はまた、グラフィック処理ユニットにおいて、視界情報に基づいて、画像データのうちの複数のオブジェクトをレンダリングする際に、マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得することを備える。第１のパスは、第２のパスが完了する前に終了する。
【０００７】
別の例において、画像データをレンダリングするデバイスは、マルチ・パス・レンダリング処理の第１のパスの間に、画像データによって定義された複数のオブジェクトの視界情報を決定する手段を備える。ここで、視界情報は、複数のオブジェクトのおのおのが、マルチ・パス・レンダリング処理の第２のパスの間に、画像データからレンダリングされた画像において目に見えるようになるか否かを示す。デバイスはさらに、視界情報に基づいて、画像データのうちの複数のオブジェクトをレンダリングする際に、マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得する手段を備える。第１のパスは、第２のパスが完了する前に終了する。
【０００８】
別の例では、画像データをレンダリングするデバイスは、状態データを格納するように構成されたメモリを備える。デバイスはまた、画像データから画像をレンダリングするために、マルチ・パス・レンダリング処理を実行するように構成されたプロセッサを備える。ここで、プロセッサは、マルチ・パス・レンダリング処理の第１のパスの間に、画像データによって定義された複数のオブジェクトの視界情報を決定する。ここで、視界情報は、複数のオブジェクトのおのおのが、マルチ・パス・レンダリング処理の第２のパスの間に、画像データからレンダリングされた画像において目に見えるか否かを示す。プロセッサはさらに、視界情報に基づいて、画像データの複数のオブジェクトをレンダリングする際に、マルチ・パス・レンダリング処理の第２のパスによる使用のための状態データをメモリから取得する。第１のパスは、第２のパスが完了する前に終了する。
【０００９】
別の例において、非一時的なコンピュータ読取可能な媒体は、実行された場合に、１または複数のプロセッサに対して、マルチ・パス・レンダリング処理の第１のパスの間に、画像データによって定義された複数のオブジェクトの視界情報を決定させる。ここで、視界情報は、複数のオブジェクトのおのおのが、マルチ・パス・レンダリング処理の第２のパスの間に、画像データからレンダリングされた画像において目に見えるか否かを示す。非一時的なコンピュータ読取可能な媒体は、実行された場合に、１または複数のプロセッサに対してさらに、視界情報に基づいて、画像データの複数のオブジェクトをレンダリングする際に、マルチ・パス・レンダリング処理の第２のパスによる使用のための状態データを取得させる。第１のパスは、第２のパスが完了する前に終了する。
【００１０】
１または複数の例の詳細が、添付図面および以下の説明において述べられる。他の特徴、目的、および利点が、説明と図面から、および特許請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【００１１】
【図１】図１は、本開示の態様を実施するように構成されたデバイスを例示するブロック図である。
【図２】図２は、図１の例で図示されたデバイスのメモリおよびグラフィック処理ユニットを詳細に例示するブロック図である。
【図３】図３は、本開示で記載された状態データ取得技法を実施する際のグラフィック処理ユニットの動作の例を例示するフローチャートである。
【図４】図４は、本開示で記載された技法の例にしたがって典型的な視界情報が生成される変換された画像データの例を例示する図である。
【発明を実施するための形態】
【００１２】
図１は、本開示の態様を実施するように構成されうるデバイス２を例示するブロック図である。デバイス２の例は、限定される訳ではないが、無線デバイス、いわゆるスマート・フォンを含むモバイル電話またはセルラ電話、携帯情報端末（ＰＤＡ）、ビデオ・ディスプレイを含むビデオ・ゲーム・コンソール、モバイル・ビデオ・ゲーム・デバイス、モバイル・ビデオ会議ユニット、ラップトップ・コンピュータ、デスクトップ・コンピュータ、テレビジョン・セット・トップ・ボックス、タブレット・コンピューティング・デバイス、ｅブック・リーダ、固定または移動式のメディア・プレーヤ、等を含みうる。デバイス２は、プロセッサ４、グラフィック処理ユニット（ＧＰＵ）６、ディスプレイ８、フレーム・バッファ１０、記憶デバイス１２、トランシーバ・モジュール１４、ユーザ・インタフェース１６、およびメモリ１８を含みうる。デバイス２は、例示を容易にする目的のために図１に図示されていないさらなるモジュールまたはユニットを含みうる。例えば、デバイス２は、デバイス２がセルラ無線ハンドセットである例では、電話通信を効果的に行うための、何れも図１に図示されていないスピーカおよびマイクロホンを含みうる。さらに、デバイス２に示されるさまざまなモジュールおよびユニットは、デバイス２のすべての例において必ずしも必要とされる訳ではない。例えば、ユーザ・インタフェース１６およびディスプレイ８は、デバイス２がデスクトップ・コンピュータを表わす例では、デバイス２の外部に存在しうる。
【００１３】
プロセッサ４は、１または複数のアプリケーションを実行しうる。アプリケーションの例は、ウェブ・ブラウザ、電子メール・アプリケーション、スプレッドシート、ビデオゲーム、オーディオおよび／またはビデオ・キャプチャまたは編集アプリケーション、または、ディスプレイ８によって表されるべき画像データの生成を開始するその他のアプリケーションを含む。１または複数のアプリケーションは、記憶デバイス１２内に格納されうる。いくつかの事例では、プロセッサ４は、トランシーバ・モジュール１４によって１または複数のアプリケーションをダウンロードしうる。プロセッサ４は、ユーザ・インタフェース１６によるユーザによる選択に基づいて１または複数のアプリケーションを実行しうる。いくつかの例において、プロセッサ４は、何れのユーザ・インタラクションをも必要とせずに、１または複数のアプリケーションを実行しうる。
【００１４】
プロセッサ４の例は、限定される訳ではないが、デジタル信号プロセサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向けＩＣ（ＡＳＩＣ）、フィールド・プログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な統合または離散論理回路を含む。記憶デバイス１２は、１または複数のコンピュータ読取可能な記憶媒体を備えうる。記憶デバイス１２の例は、限定される訳ではないが、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電子的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ（登録商標））、ＣＤ−ＲＯＭ、または他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、フラッシュ・メモリ、または、命令群またはデータ構造の形式で所望のプログラム・コードを格納し、さらに、コンピュータまたはプロセッサによって実行されうるその他任意の媒体を含む。いくつかの態様では、記憶デバイス１２は、実行された場合に、ホスト・プロセッサ４および／またはＧＰＵ６に対して、本開示ではホスト・プロセッサ４および／またはＧＰＵ６に割り当てられている機能を実行させるための命令群を含みうる。
【００１５】
一般に、ＧＰＵ６は、ディスプレイ８上で表示するために、ピクセルについてさまざまな機能を実行しうる。例えば、ＧＰＵ６は、ディスプレイ８に表示されるべきピクセルのピクセル値を生成するために、例えば、シェーディング、ブレンディング、照明、およびその他のような機能を実行しうる。ＧＰＵ６の例は、限定される訳ではないが、ＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、または、その他の等価な統合または離散論理回路を含む。ＧＰＵ６は、シングル・コアまたはマルチ・コアのプロセッサを備え、ＯｐｅｎＧＬ、ＯｐｅｎＣＬ、ＤｉｒｅｃｔＸ  １１等にしたがって動作するように構成されうる１または複数のグラフィック処理パイプラインを含みうる。図１では個別に図示されているが、いくつかの例において、プロセッサ４は、ＧＰＵ６を含みうる。例えば、プロセッサ４およびＧＰＵ６は、同じＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、またはその他等価な統合または離散論理回路内に構成されうる。他の例において、プロセッサ４は、ＧＰＵ６に対してさまざまなグラフィック処理動作を実行するように指示するアプリケーション・プロセッサとして役立ちうる。図１では１つのＧＰＵ６しか例示されていないが、本開示の態様は、それに限定されない。いくつかの例において、デバイス２は、ＧＰＵ６に類似した複数のＧＰＵまたはＧＰＵコアを含みうる。グラフィック処理タスクは、これらのＧＰＵまたはＧＰＵコア間に分離されうる。
【００１６】
ディスプレイ８は、液晶ディスプレイ（ＬＣＤ）、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、陰極線管（ＣＲＴ）ディスプレイ、プラズマ・ディスプレイ、または別のタイプのディスプレイ・デバイスを備えうる。ディスプレイ８は、２Ｄピクセル・アレイにおいて、水平および垂直に配置された複数のピクセルを含んでいる。ディスプレイ８の各ピクセルは、例えば（ｘ，ｙ）デカルト座標のような２次元座標によって識別可能でありうる。例えば、ディスプレイ８の左上隅に位置するピクセルは、（０，０）に位置するピクセルとして識別されうる。（０，０）に位置するピクセルのすぐ右のピクセルは、（１，０）に位置するピクセルとして識別されうる。（０，０）に位置するピクセルのすぐ下のピクセルは、（０，１）に位置するピクセルとして識別されうる。ディスプレイ８のすべてのピクセルが、同様に識別されうる。前述されたデカルト座標は、例示目的のみのために記載される。ディスプレイ８のピクセルは、例えば極座標、バイポーラ座標、放物線座標等のような異なるタイプの座標系によって識別可能でありうる。さらに、ピクセルの位置の例は、例示目的のみのために記載される。いくつかの例では、（０，０）に位置するピクセルは、ディスプレイ８の左下、右上、右下、またはその他任意のピクセル位置でありうる。
【００１７】
フレーム・バッファ１０は、複数の記憶場所を含む二次元バッファを表わしうる。フレーム・バッファ１０内の記憶場所の数は、ディスプレイ８上に表示されるべきピクセルの数に、実質的に類似しうる。例えば、ディスプレイ８が、６４０×４８０ピクセルを含むように構成されている場合、フレーム・バッファ１０は、６４０×４８０の記憶場所を含みうる。フレーム・バッファ１０は、ＧＰＵ６によって処理されたピクセルの各々のための最終ピクセル値を格納しうる。ディスプレイ８は、フレーム・バッファ１０から最終ピクセル値を取得し、フレーム・バッファ１０に格納されたピクセル値に基づいて最終画像を表示しうる。
【００１８】
記憶デバイス１２は、いくつかの例では、非一時的な記憶媒体であると考えられうる。「非一時的な」という用語は、記憶媒体が、搬送波または伝搬信号で具現化されないことを示しうる。しかしながら、「非一時的な」という用語は、記憶デバイス１２が、移動可能ではないことを意味するように解釈されるべきではない。一例として、記憶デバイス１２は、デバイス２から取り除かれ、別のデバイスへ移されうる。別の例として、記憶デバイス１２に実質的に類似した記憶デバイスが、デバイス２へ挿入されうる。ある例において、非一時的な記憶媒体は、（例えば、ＲＡＭにおいて）経時的に変動しうるデータを格納しうる。
【００１９】
トランシーバ・モジュール１４は、デバイス２がデータを送信および受信しうるモジュールを表わしうる。トランシーバ・モジュール１４は、一般に、インタフェースとも呼ばれうる。この点において、トランシーバ・モジュール１４は、デバイス２と、別のデバイスまたはネットワークとの間の無線通信または有線通信を可能にするための回路を含みうる。トランシーバ・モジュール１４は、変調器、復調器、増幅器、および、有線または無線による通信のためのその他のこのような回路を含みうる。これらは、例示を簡単にする目的で、図１の例では図示されていない。さらに、あるいは、その代わりに、トランシーバ・モジュール１４は、例えば、有線ネットワークまたは無線ネットワークによる通信を可能にするために、１または複数のネットワーク・アダプタ・ユニットを含みうる。
【００２０】
ユーザ・インタフェース１６は、デバイス２のユーザが、デバイス２とインタラクトするためにインタフェースするハードウェア、または、ハードウェアとソフトウェアとの組み合わせを表わしうる。ユーザ・インタフェース１６の例は、限定される訳ではないが、トラックボール、マウス、キーボード、およびその他のタイプの入力デバイスを含む。ユーザ・インタフェース１６はまた、タッチ・スクリーンでありうる。そして、ディスプレイ８の一部として組み込まれうる。
【００２１】
前述したように、プロセッサ４は、画像データを生成しうる１または複数のアプリケーションを実行しうる。いくつかの事例では、１または複数のアプリケーションが実行されると、プロセッサ４は、ＧＰＵ６によってレンダリングされるべき複数のプリミティブを定義するコマンド・ストリームを生成しうる。プリミティブは、線（曲線、スプライン等を含む）、点、円、楕円、多角形（一般に、多角形は、１または複数の三角形の集合として定義される）、または、その他任意の２次元（２Ｄ）プリミティブを備えうる。用語「プリミティブ」はまた、いくつか例を挙げると、例えば立方体、円柱、球、ピラミッド、およびトーラスのような３次元（３Ｄ）プリミティブを称しうる。一般に、用語「プリミティブ」は、ディスプレイ８によって、画像（または、ビデオ・データのコンテキストのフレーム）として表示するために、ＧＰＵ６によってレンダリングされることが可能な任意の基本的な幾何学形状または要素を称する。
【００２２】
コマンド・ストリームは、１または複数の２Ｄおよび／または３Ｄのオブジェクトを生成するためにこれらプリミティブを定義しうる。したがって、用語「オブジェクト」は、オブジェクトの例をいくつか挙げると、アイテム、動物、人、または構造を表わすために組み合わされうる１または複数のプリミティブを称する。コマンド・ストリームはまた、１または複数のプリミティブおよび／またはオブジェクト（これらもまた１または複数のプリミティブの集合として称される）に関連付けられうる状態データをも定義しうる。状態データは、例えば、色、テクスチャ、または、プリミティブのその他の態様を定義しうる。状態データは、さらに、カメラ、光（または照明）、およびプリミティブのレンダリングにインパクトを与えうるその他の周囲または文脈上のデータを称しうる。さらなる例示の目的のために、カメラを定義する状態データを考慮すると、この状態データは、プリミティブに関するカメラの位置、カメラのズームまたは拡大、カメラ・フィルタの存在およびタイプ、カメラ方向、および、カメラによって画像またはビデオをキャプチャすることに関連付けられたその他の態様を定義しうる。一般に、コマンド・ストリームは、ｘ座標、ｙ座標、およびｚ座標を有する３Ｄモデル空間におけるプリミティブと状態データとの両方を定義する。
【００２３】
このコマンド・ストリームを受け取ることに応じて、ＧＰＵ６は、１または複数のモデル変換（これは、状態データにおいても指定される）を適用することによって、プリミティブおよび状態データを、ワールド空間へ変換しうる。変換されると、ＧＰＵ６は、照明およびプリミティブの座標を、カメラまたは目空間（eye space）に変換するために、アクティブ・カメラ（これは、カメラを定義する状態データにおいても指定されうる）のビュー変換を適用しうる。ＧＰＵ６はまた、任意のアクティブな照明の観点からプリミティブの外観をレンダリングするために、頂点シェーディングを実行しうる。ＧＰＵ６は、前述したモデル空間、ワールド空間、またはビュー空間のうちの１または複数において頂点シェーディングを実行しる（一般には、ワールド空間において実行される）。
【００２４】
プリミティブがシェードされると、ＧＰＵ６は、一例として、（−１，−１，−１）および（１，１，１）のような極端な点を持つ単位立方体へと画像を投影するための投影を実行する。この単位立方体は、一般に、カノニカル・ビュー・ボリューム（canonical view volume）と称される。モデルを、目空間からカノニカル・ビュー・ボリュームへ変換した後、ＧＰＵ６は、ビュー・ボリューム内に少なくとも部分的に存在することはない何れかのプリミティブを除去するためのクリッピングを実行しうる。言い換えれば、ＧＰＵ６は、カメラのフレーム内に無いあらゆるプリミティブを除去しうる。その後、ＧＰＵ６は、プリミティブの座標を、ビュー・ボリュームからスクリーン空間へとマップし、プリミティブの３Ｄ座標を、スクリーンの２Ｄ座標へと効果的に減少させる。
【００２５】
関連付けられたシェーディング・データを用いて、プリミティブまたはオブジェクトを定義する頂点が変換および投射されたと仮定して、ＧＰＵ６は、プリミティブをラスタライズしうる。これは、ＧＰＵ６が、オブジェクトによってカバーされているスクリーンのピクセルの色を計算し、設定しうることを意味する。ラスタライズ中に、ＧＰＵ６は、プリミティブに関連付けられたテクスチャを適用しうる（ここで、テクスチャは、状態データを備えうる）。ＧＰＵ６はさらに、プリミティブおよび／またはオブジェクトのうちの何れかが、他の何れかのオブジェクトによって隠されているのか否かを判定するために、ラスタライズ中、デプス・テストとも称されるＺバッファ・アルゴリズムを実行しうる。ＧＰＵ６が、スクリーンに各プリミティブを描画する順序を知ることができるように、Ｚバッファ・アルゴリズムは、それらのデプスにしたがってプリミティブをソートする。ＧＰＵ６は、レンダリングされたタイルを、フレーム・バッファ１０に出力する。ＧＰＵ６が、レンダリングされたタイルのすべてを出力し、レンダリングされた画像を生成すると、ディスプレイ８は、デバイス２のユーザによって使用されるために、この画像を取得し、表示しうる。
【００２６】
フレーム・バッファ１０は、図１の例では、オフ・チップ・メモリ２０から離れて図示されているが、フレーム・バッファ１０は、メモリ２０に組み込まれうるか、または、メモリ２０内に格納されうる。すなわち、フレーム・バッファ１０は、メモリ２０のいくつかの部分を消費しうる。あるいは、メモリ２０は、専用フレーム・バッファ１０のため、ある量のスペースを確保しうる。したがって、フレーム・バッファ１０は、図１の例では、メモリ２０から離れて図示されているが、本技法は、オフ・チップ・メモリまたはオン・チップ・メモリから離れていようと、オフ・チップ・メモリまたはオン・チップ・メモリ内に含まれていようと、メモリ２０内に含まれているフレーム・バッファに関して、または、フレーム・バッファのその他任意の実装に関して実施されうる。
【００２７】
いくつかの事例では、ＧＰＵは、プリミティブ全体を隠すその他のプリミティブによって、プリミティブ全体がレンダリングされる必要がないという結果を持って、単にＺバッファ・アルゴリズムを実行することのみのために、多くのレンダリング動作を実行しうる。すなわち、ＧＰＵは、いくつかのプリミティブが、（深さ的に）最も背面にあるプリミティブから、（これも同様に深さ的に）最も前面にあるプリミティブまで作用するおのおののプリミティブを描画する。その結果、これらプリミティブを、これらプリミティブの前面にある他のプリミティブを用いて覆い隠すためにのみレンダリングされうる。このいわゆる「オーバドロー」の結果として、ＧＰＵがレンダリングを実行する場合に、無視またはバイパスされるようにアイ・ビュー内に無いか、または、全体的に隠されているこれらプリミティブをＧＰＵが識別できるようにするために、ＧＰＵは、早期Ｚバッファ・アルゴリズム・テストを実行するように適応されうる。この点に関し、ＧＰＵは、レンダリングされる必要のあるプリミティブの数を潜在的に低減するために、グラフィック・パイプラインにおける早期のオブジェクトおよび／またはおのおののプリミティブに関して、何が「視界情報」として称されうるのかを判定するように適用されていた。
【００２８】
従来、早期ＧＰＵは、計算が複雑なことと、これら計算の複雑なＧＰＵを動作させるために必要な同伴電力とによって、例えば、デスクトップ・コンピュータ、ワークステーション、サーバ等のような有線コンピューティング・デバイスのためにほとんど実施されていた。製造技術の発展と、ＧＰＵアーキテクチャにおける著しい成長とによって、ＧＰＵは、より低電力での動作を特徴とするようになった。これらの、より低電力のＧＰＵは、例えば、セルラ電話またはハンドセット（いわゆる「スマート・フォン」を含む）、ラップトップ・コンピュータ、タブレットまたはスレート・コンピュータ、携帯情報端末、ポータブル・ゲーム・デバイス、ポータブル・エンタテイメントまたはメディア・デバイス、電子リーダ（「ｅ−リーダ」）等のようなモバイル・コンピューティング・デバイス内に配置されている。
【００２９】
（時間が経つと電力が消費され、充電が必要となりうるバッテリに依存するという点において、電力が制限されるデバイスの一例として考えられうる）これらモバイス・デバイスでは、ＧＰＵは一般に、状態データを取得するためにオフ・チップ・メモリ・アクセスを実行する際、および、この状態データを格納するためにオン・チップ・メモリに電力を供給する際、モバイル・デバイスの利用可能電力をある程度消費する。デバイス２のコンテキストにおけるオフ・チップ・メモリは、メモリ２０を称しうる。これは、チップの外部にあり（ＧＰＵ６が、図１の例であることを意味し）、ＧＰＵ６に関してオフ・チップである。図１の例では図示されていないが、ＧＰＵ６は、オン・チップ・メモリを含みうる。これは、ＧＰＵ６へ統合されたメモリを称する。オフ・チップ・メモリ２０にアクセスすることは一般に、状態データおよびプリミティブ・データが取得および／または格納されうるように、メモリ２０にＧＰＵ６を接続するバスに電力を与えるための電力を必要とする。大きなオン・チップ・メモリは、より小さなオン・チップ・メモリと比較して、動作のためにより大量の電力を必要としうる。
【００３０】
これら電力に関連するもののうちのいくつかを相殺するために、いわゆる「低電力ＧＰＵ」（これはまた、「モバイルＧＰＵ」とも称される）が開発されており、「タイル・ベース」または「ビーン・ベース」のレンダリングと称されるものを実現する。すなわち、これらのＧＰＵは、レンダリングされるべき画像データを、タイルまたはビンに分割し、画像全体がレンダリングされるまで、各タイルまたはビンを、連続的に（または、しばしば、同時または並行して）レンダリングする。画像をタイルに分割することによって、（オン・チップ・メモリが、タイルをレンダリングするための十分な画像データを格納するために十分大きいことを考慮して）ＧＰＵは、オフ・チップ・メモリからの、より少ないデータ取得を促進しながら、オン・チップ・メモリ要件を低減しうる。例として、ＧＰＵ６は、画像データの所与のタイルのためのすべてのデータを格納するために、十分な記憶スペースを有するオン・チップ・メモリを含み、これによって、従来、非タイル・ベースのＧＰＵにおいて画像をレンダリングするために維持されているオフ・チップ・メモリ２０へ格納されたオフ・チップＺバッファにアクセスする必要なく、早期のＺバッファ試験がオン・チップ全体的で実行されるようになる。この早期Ｚバッファ試験を実行することによって、ＧＰＵ６は、さらに、目に見えるプリミティブのみがレンダリングされることを考慮して、メモリ２０に関するオフ・チップ・メモリ読取および書込の数を低減しうる。その結果、ＧＰＵ６は、目に見えるプリミティブの状態データ（例えば、テクスチャ）のみを取得しうる。
【００３１】
一般に、画像データの各タイルをレンダリングするために、これら低電力ＧＰＵは、プロセッサまたはコンピュータ処理ユニット（ＣＰＵ）から受け取ったコマンド・ストリームを処理するコマンド・ストリーム処理モジュールまたは要素を含む。コマンド・ストリーム処理モジュールは、画像データのタイルのうちの各１つ内に含まれるプリミティブをレンダリングするために必要なコマンドのみを含むタイル特有のコマンド・ストリームを生成するために、コマンド・ストリームからコマンドを分離しうる。このＧＰＵアーキテクチャでは、プリミティブおよび／またはオブジェクトは、状態データを互いに共有しない。これは、プリミティブおよび／またはオブジェクトがおのおの、自己の状態データのセットに関連付けられていることを意味する。
【００３２】
しかしながら、いくつかのＧＰＵアーキテクチャでは、状態データは、プリミティブおよび／またはオブジェクトによって繰り返し定義され、集合的に共有されている。状態データが共有されるので、第１のタイルにおけるオブジェクトのために定義された状態データが、異なる第２のタイプにおいてレンダリングされるべきオブジェクトによって共有されると、この共有状態データ・アーキテクチャを実施するＧＰＵは、タイル特有のコマンド・ストリームを生成するためにコマンド・ストリームをフィルタしない。この実施では、ＧＰＵは、各プリミティブが、対応するタイルにおいて目に見えるか否かを示す、各タイルについて個別のタイル特有の視界情報を生成しうる。しかしながら、プリミティブが目に見えず、レンダリングされる必要のない場合であっても、この目に見えないプリミティブのために定義された状態データは、目に見える別のプリミティブによって共有されうる。したがって、これらＧＰＵは、これらプリミティブが目に見えるか否かに関わらず、プリミティブのための状態データをロードしうる。
【００３３】
また、状態データは、プリミティブ間で共有されるので、ＧＰＵは、プリミティブが目に見えるか否かに関わらず、状態データを取得するために、オフ・チップ・メモリ２０に頻繁にアクセスしうる。言い換えれば、各プリミティブについて、レンダリングされている現在の２またはそれ以上のタイルにおいてプリミティブが目に見えるか否かに関わらず、ＧＰＵは、これらプリミティブのおのおのに関連付けられた現在の状態データを取得する。いくつかの事例では、ＧＰＵは、（目に見えないので現在のプリミティブをレンダリングするために使用されていない）目に見えないプリミティブのための状態データの現在のバージョンを、オフ・チップ・メモリから取得し、（これもまた、目に見えないので現在のプリミティブをレンダリングするために使用されていない）目に見えない別のプリミティブのための状態データの現在のバージョンを、オフ・チップ・メモリから取得し、その後、（目に見えるので現在のプリミティブをレンダリングするために使用される）目に見えるプリミティブの状態データの現在のバージョンを取得しうる。目に見えないプリミティブをレンダリングするために使用されない、２つの連続した状態データ取得は、電力を無益に消費し、ＧＰＵをオフ・チップ・メモリに接続しているメモリ・バスにおけるメモリ・バス帯域幅を消費しうる。
【００３４】
本開示に記載された技法にしたがって、ＧＰＵ６は、マルチ・パス・ピクセル・レンダリング処理の第１のパスの間に、ＧＰＵによってレンダリングされるべき画像データの各オブジェクトに関連付けられた視界情報を決定しうる。この視界情報は、前述したように、各オブジェクトが、画像データの対応するタイルにおいて目に見えるか否かを示しうる。この視界情報に基づいて、ＧＰＵ６は、その後、第２のパスで使用される状態データを取得しうる。一例として、視界情報が、オブジェクトが目に見えることを示すのであれば、ＧＰＵ６は、現在の状態データを取得し、オフ・チップ・メモリ（一例として、メモリ２０を意味する）からのこの状態データを、オン・チップ・メモリ（一例として、ＧＰＵの内部のメモリ、または、ＧＰＵ内に統合されたメモリ）にロードする。オブジェクトが目に見えないことを視界情報が示すのであれば、ＧＰＵ６は、この状態データを取得しない。このように、ＧＰＵ６は、オフ・チップ・メモリ・アクセスを潜在的に低減するため、および、ＧＰＵ６をオフ・チップ・メモリ２０に接続しているメモリ・バスにおける帯域幅の不必要な消費を回避するために、状態データの取得を遅れさせる。
【００３５】
言い換えれば、例では、ＧＰＵ６は、目に見えるプリミティブをレンダリングするために実際に使用される場合にのみ、ＧＰＵ６が状態データを取得する「レイジーな状態データ取得」と称されうるものの形態を実行する。ＧＰＵ６によって実施されるタイル・ベースの共有状態アーキテクチャにおけるオブジェクトによって状態データが共有されることを考慮すると、この状態データは、現在の目に見えるプリミティブと、以前の目に見えないプリミティブとの両方に関連付けられうる。したがって、ＧＰＵ６は、現在の目に見えるプリミティブに関連付けられた、または、現在の目に見えるプリミティブに関して定義された、現在の状態データを単にロードするのではなく、現在の目に見えるプリミティブよりも前に、コマンド・ストリームにおいて定義された現在の目に見えるプリミティブおよびその他の目に見えないプリミティブに関連付けられた状態データをロードしうる。
【００３６】
動作において、ＧＰＵ６は、１つの例において、個々のピクセル値ではなく、（例えば、４×４ピクセルのブロックのような）ピクセルのブロックを考慮する低解像度Ｚバッファを用いて、この視界情報を生成しうる。ＧＰＵ６は、このＺバッファが、オン・チップ・メモリに格納されるように、言い換えれば、オン・チップ・メモリ・サイズ要件を潜在的に低減するために、このＺバッファを、より低い解像度で構築しうる。ＧＰＵ６は、低解像度Ｚバッファを構築するために、低解像度Ｚアルゴリズムを実行する。この低解像度Ｚアルゴリズムは、モデル空間からスクリーン空間へとプリミティブを変換するために必要とされる、前述した動作のうちの多くを含む。スクリーン空間では、ＧＰＵ６が、前から後ろへと、互いに関するプリミティブを順序付け、１）現在のプリミティブが、所与のサブ・タイル内に含まれているか否か、および、２）所与のサブ・タイルに含まれているのであれば、現在のプリミティブが、特定のサブ・タイル内のその他何れかのプリミティブによって隠されているか否か、を決定するために、現在のタイルのサブ・タイル（一般に、階層方式では、連続したより小さなサブ・タイルを含む再帰的な方式であることを意味する）をテストする。現在のプリミティブが現在のサブ・タイル内に含まれており、サブ・タイル内のその他何れかのプリミティブによって隠されているのであれば、ＧＰＵ６は、現在のプリミティブが目に見えることを示すために、視界情報を生成する。ＧＰＵ６は、その後、この視界情報を、オフ・チップ・メモリ２０に格納しうる。いくつかの事例では、ＧＰＵ６はまず、この視界情報を圧縮し、その後、圧縮された視界情報を、オフ・チップ・メモリ２０に格納しうる。
【００３７】
このビニング・パスを完了し、タイルのおのおのの視界情報を生成した後、ＧＰＵ６は、前述したものに類似した方式で、レンダリング・パスを実行しうる。しかしながら、ＧＰＵ６は、現在の状態データを格納するメモリ２０における開始位置のメモリ・アドレスを格納するポインタに、各プリミティブまたはオブジェクトを関連付けうる。プロセッサ４は、ＧＰＵ６にインパクトを与えることなく、状態データへの変更を格納しうるか、または、新たな状態データを定義さえしうる。これらの変更は、ＧＰＵ６にインパクトを与えない。なぜなら、オフ・チップ・メモリ２０における開始位置が変化する場合、ポインタは、新たな状態データの新たな開始位置を参照するために、容易に更新されうるからである。さらに、開始位置が変化しないのであれば、ＧＰＵ６は、このポインタが逆参照された場合に、これらポインタを用いて、状態データの直近のバージョンにのみアクセスする。ＧＰＵ６は、単にこのポインタを逆参照し、目に見えるプリミティブに応じてこの状態データを取得するので、状態データの直近のバージョンが取得されることを保証しうる。この点に関し、ＧＰＵ６は、本開示の例にしたがって、レイジーな状態データ取得を実行するためにポインタを利用しうる。これは、直近または最新の状態データの取得を促進しながら、メモリ・アクセスを低減しうる。
【００３８】
本開示の技法は、モバイルまたは低電力ＧＰＵに関して記載されているが、（バッテリが電力を受けないが、有線または潜在的に無線の電源から電力を受けるという観点において）大電力へのアクセスを有するものとして考慮されうるデバイスのために開発された高電力ＧＰＵを含む、視界情報を生成することが可能な何れかのマルチ・ステージＧＰＵに関して実現されうる。したがって、これら技法は、本開示に記述された例に限定されるべきではない。
【００３９】
図２は、図１の例において図示されるデバイス２のグラフィック処理ユニット６およびメモリ２０をより詳細に例示するブロック図である。図２の例では、ＧＰＵ６は、グラフィック処理パイプラインを含みうる。さらに、メモリ・ユニット３０、タイル・ユニット３２、および、ラスタライザ・ピクセル・シェダー・ユニット３４を含みうる。個別のユニット３０−３４として図示されているが、ユニット３０−３４のうちの１または複数は、結合されうるか、または、ハードウェアを共有しうる。すなわち、ユニット３０−３４は、異なる機能を記載するために個別のユニットとして図示されており、必ずしも個別のハードウェア・ユニットを表すものとして考慮されるべきではない。いくつかの事例では、ユニット３０−３４は、同じハードウェアを利用しうる。一般に、ＧＰＵは、パイプライン・アーキテクチャで形成された多くのハードウェア・ユニットを含んでいる。このパイプライン・アーキテクチャは、複数のパスを実行するためにさまざまな王式で適応されうる。例えば、ＧＰＵ６によって表わされるグラフィック・パイプラインは、マルチ・パス・レンダリング処理のうちの最初のパスとして、前述したビニング・パスまたはタイル・パスを実行するように構成されうる。この同じグラフィック・パイプラインは、その後、マルチ・パス・レンダリング処理のレンダリング・パスを実行するように構成されうる。ここで、１または複数のタイルは、レンダリングされたタイルを、フレーム・バッファ１０へ出力するようにレンダリングされる。
【００４０】
幾何学ユニット３０は、グラフィック・パイプラインの構成を表す。これによって、グラフィック・パイプラインは、レンダリングされるべき各オブジェクトのスクリーン空間位置を決定するために、前述した幾何学処理のすべてを実行できるようになる。タイル・ユニット３２は、ＧＰＵ６が、１または複数のタイルを決定し、その後、各タイルに関してどのオブジェクトが目に見えるのかを決定するために、幾何学ユニット３０によって生成されたオブジェクトのスクリーン空間位置を利用できるようにするグラフィック・パイプラインの構成を表わす。タイル・ユニット３２は、視界情報を決定するために低解像度の深さ（Ｚ）アルゴリズム（ＬＲＺアルゴリズム）を実施しうる。ここで、ＬＲＺアルゴリズムは、図２の例において、“ＬＲＺ  ＡＲＬ  ３６”として示されている。ラスタライザ・ピクセル・シェダー・ユニット３４は、タイル・ユニット３２によって生成された視界情報を用いてタイルのうちの１または複数をＧＰＵ６がレンダリングできるようにする、ＧＰＵ６のグラフィク・パイプラインの構成を表わす。［ｇｐｕのさまざまな態様は、プログラム可能でありうる一方、他の態様は、固定された論理ユニットでありうる］
動作において、幾何学ユニット３０は、先ず、例えば画像データ３８のような画像データを、メモリ・バス４０を介してオフ・チップ・メモリ２０から取得し、この画像データ３８を、オン・チップ・メモリ２９に格納する。オン・チップ・メモリ２９は、画像（または、この例では、画像のタイル）をレンダリングする際に使用するために、ＧＰＵ６に統合された、または、ＧＰＵ６の内部のメモリを表わす。オン・チップ・メモリ２９は、ＲＡＭ、ダイナミックＲＡＭ（ＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、キャッシュ、またはその他のタイプのメモリを備えうる。画像データ３８は、１または複数のオブジェクト４２および状態データ４４を定義するコマンド・ストリームを表わしうる。オブジェクト４２は、前述したように、１または複数のプリミティブを備えうる。幾何学ユニット３０は、オブジェクト４２を、モデル空間からスクリーン空間へ変換し、この変換を反映するようにオブジェクト４２を更新する。幾何学ユニット３０は、変換されたオブジェクト４２を、タイル・ユニット３２へ出力する。
【００４１】
タイル・ユニット３２は、変換されたオブジェクト４２を受け取り、スクリーン空間内のタイルを定義する。これは、しばしば、（例えば、一例では１６×１６のピクセル・タイルのように）スクリーンの正方形部分または長方形部分である。タイルを定義した後、タイル・ユニット３２は、変換されたオブジェクト４２のうちのどれが、定義されたタイルのおのおの内に含まれているのかを判定する。タイル・ユニット３２はその後、定義された各タイル内に含まれるべきであると判定された変換されたオブジェクト４２について、これら変換されたオブジェクト４２のうちのどれが目に見えるのか（定義されたタイルのうちの同じタイル内にも含まれている、変換されたオブジェクト４２のうちの別のオブジェクトによって隠されていないことを意味する）を判定するために、ＬＲＺアルゴリズム３６を実施しうる。タイル・ユニット３２は、各タイルのための視界情報４６（“ｖｉｓ  ｉｎｆｏ  ４６”）を出力し、この視界情報４６を、ラスタライザ・ピクセル・シェダー・ユニット３４による後の使用のためにオフ・チップ・メモリ２０に格納する。視界情報４６を決定するために、タイル・ユニット３２は、オン・チップ・メモリ２９内のＬＲＺ−バッファ４８を定義しうる。ＬＲＺ−バッファ４８は、各タイルのために形成されうる。ここで、対応するタイル内に含まれている変換されたオブジェクト４２のうちのオブジェクトが、深さ的に（前面から背面へ、または、背面から前面へ）配置され、これによって、タイル・ユニット３２は、変換されたオブジェクト４２のうちの１または複数が全体的に隠されるか否かを判定しうる。タイル・ユニット３２はその後、視界情報４６を、一般には、１およびゼロのストリームとして出力しうる。ここで、１およびゼロのおのおのはオブジェクトに対応し、１という値は、対応するオブジェクトが、現在のタイルに関して目に見えることを示し、ゼロは、対応するオブジェクトが、現在のタイルに関して目に見えないことを示す。タイル・ユニット３２はまた、変換されたオブジェクト４２を、オフ・チップ・メモリ２０に格納し、モデル空間において定義されたオブジェクト４２を、スクリーン空間において定義された変換されたオブジェクト４２に交換する。
【００４２】
タイリングが完了し、少なくとも１つのタイルについて、視界情報４６が生成され、オフ・チップ・メモリ２０に格納されると、ラスタライザ・ピクセル・シェダー・ユニット３４は、このタイルのレンダリングを開始しうる。ラスタライザ・ピクセル・シェダー・ユニット３４は、１または複数のタイル内に各ピクセルをレンダリングするために、前述した動作を実行しうる。ラスタライザ・ピクセル・シェダー・ユニット３４は、レンダリングされるべき現在の１または複数のタイルに関連付けられた視界情報４６を取得し、この視界情報４６を、オン・チップ・メモリ２９に格納する。ラスタライザ・ピクセル・シェダー・ユニット３４はまた、変換されたオブジェクト４２を取得しうる。これら変換されたオブジェクト４２のおのおのは、前述したポインタに関連付けられうる。ここで、これらポインタは、図２の例では、ポインタ５０として図示されている。ポインタ５０は、状態データ４４が格納されるオフ・チップ・メモリ２０内の開始位置を識別する。ラスタライザ・ピクセル・シェダー・ユニット３４は、変換されたオブジェクト４２を、オン・チップ・メモリ２９へ格納する。
【００４３】
視界情報４６および変換されたオブジェクト４２が取得された後、ラスタライザ・ピクセル・シェダー・ユニット３４は、各タイルのレンダリングを開始する。ラスタライザ・ピクセル・シェダー・ユニット３４は、ポインタ５０を用いて、変換されたオブジェクト４２のピクセル・データをレンダリングするために、状態データ４４を取得しうる。ラスタライザ・ピクセル・シェダー・ユニット３４は、視界情報４６に関わらず状態データ４４を取得するのではなく、視界情報４６において目に見えるとして示されたオブジェクト４２の状態データ４４のみを取得しうる。すなわち、オブジェクト４２の対応する１つが目に見えることを視界情報４６が示す場合、ラスタライザ・ピクセル・シェダー・ユニット３４は、状態データ４４を取得するために、ポインタ５０のうちの関連付けられた１つを逆参照する。オブジェクト４２のうちの対応する１つが目に見えないことを視界情報４６が示す場合、ラスタライザ・ピクセル・シェダー・ユニット３４は、これらオブジェクト４２のうちの対応する１つをスキップし、状態データ４４を取得するために、ポインタ５０のうちの対応する１つを逆参照しない。このように、ラスタライザ・ピクセル・シェダー・ユニット３４は、オフ・チップ・メモリ２０へのアクセスの数を低減するため、および、メモリ・バス４０におけるメモリ・バス帯域幅を節約するために、本開示に記載されたレイジーな状態データ取得技法を実施しうる。
【００４４】
ラスタライザ・ピクセル・シェダー・ユニット３４は、この手法で各タイルをレンダリングし、レンダリングされたタイルを、レンダリングされたタイル５２としてオン・チップ・メモリ２９に格納する。所与のタイルのレンダリングを完了すると、ラスタライザ・ピクセル・シェダー・ユニット３４は、レンダリングされたタイル５２を、ディスプレイ８上に表示するために、フレーム・バッファ１０へ出力し、レンダリングされた画像のタイルのすべてが完了している訳ではないのであれば、次のタイルのレンダリングを開始しうる。
【００４５】
図３は、本開示に記載されたレイジーな状態データ取得技法を実施する際に、図２の例に図示される例えばＧＰＵ６のようなグラフィック処理ユニットの動作の例を例示するフローチャートである。以下では、特定のタイプのマルチ・パスＧＰＵ、すなわち、タイリング・パスまたはビニング・パスおよびレンダリング・パスを実行するＧＰＵ６に関して記載されているが、本技法は、先ず視界情報を決定し、次にこの視界情報を用いて画像をレンダリングする任意のタイプのマルチ・パスＧＰＵによって実施されうる。
【００４６】
先ず、ＧＰＵ６の幾何学ニット３０が、メモリ・バス４０を介してオフ・チップ・メモリから、モデル空間内の１または複数のオブジェクト４２を定義する画像データを取得し、この画像データ３８を、オン・チップ・メモリ２９に格納する（６０）。
【００４７】
その後、幾何学ユニット３０は、ビニング・パスを開始し、前述した手法で、オブジェクト４２を、モデル空間からスクリーン空間へ変換する（６２）。幾何学ユニット３０は、この変換を反映するように、オン・チップ・メモリ２９内のオブジェクト４２を更新し、変換されたオブジェクト４２を、タイル・ユニット３２に出力する。
【００４８】
タイル・ユニット３２は、変換されたオブジェクト４２を受け取る。そして、スクリーン空間におけるタイルを決定することによってビニング・パスを実行し続ける（６４）。これは、前述したように、（例えば、一例では１６×１６のピクセル・タイルのような）スクリーンの正方形部分または長方形部分でありうる。タイルを決定した後に、タイル・ユニット３２は、変換されたオブジェクト４２のうちのどれが、定義されたタイルのおのおのに含まれているのかを判定する。タイル・ユニット３２は、その後、定義された各ファイル内に含まれるべきであると判定された変換されたオブジェクト４２について、前述した方式で、変換されたオブジェクト４２のうちのどれが目に見えるのか（定義されたタイルのうちの同じタイル内にも含まれている変換されたオブジェクト４２のうちの別のオブジェクトによって隠されていないことを意味している）を決定するために、ＬＲＺアルゴリズム３６を実施し、各タイルの視界情報４６（“ｖｉｓ  ｉｎｆｏ  ４６”）を出力する（６６）。タイル・ユニット３２はその後、ラスタライザ・ピクセル・シェダー・ユニット３４による後の使用のために、この視界情報４６をオフ・チップ・メモリ２０に格納しうる。視界情報４６は、一般に、１とゼロとからなるストリームを備える。ここで、１およびゼロのおのおのはオブジェクトに対応し、１という値は、対応するオブジェクトが、現在のタイルに関して目に見えることを示し、ゼロは、対応するオブジェクトが、現在のタイルに関して目に見えないことを示す。タイル・ユニット３２はまた、変換されたオブジェクト４２を、オフ・チップ・メモリ２０に格納し、モデル空間において定義されたオブジェクト４２を、スクリーン空間において定義された変換されたオブジェクト４２と交換する。
【００４９】
タイリングが完了し、少なくとも１つのタイルについて、視界情報４６が生成され、オフ・チップ・メモリ２０に格納されると、ラスタライザ・ピクセル・シェダー・ユニット３４は、タイルのレンダリングを開始するために、レンダリング・パスを実行しうる。ラスタライザ・ピクセル・シェダー・ユニット３４は、１または複数のタイル内に各ピクセルをレンダリングするために、前述した動作を実行しうる。ラスタライザ・ピクセル・シェダー・ユニット３４は、レンダリングされるべき現在の１または複数のタイルに関連付けられた視界情報４６を取得し、この視界情報４６を、オン・チップ・メモリ２９に格納する。ラスタライザ・ピクセル・シェダー・ユニット３４はまた、変換されたオブジェクト４２を取得しうる。これら変換されたオブジェクト４２のおのおのは、前述したポインタに関連付けられうる。ここで、これらポインタは、図２の例では、ポインタ５０として図示されている。ポインタ５０に関連付けられたオブジェクト４２のおのおのとして記載されているが、オブジェクト４２の２またはそれ以上が、ポインタ５０のうちの同じポインタに関連付けられうる。ポインタ５０は、状態データ４４が格納されるオフ・チップ・メモリ２０内の開始位置を識別する。ラスタライザ・ピクセル・シェダー・ユニット３４は、変換されたオブジェクト４２を、オン・チップ・メモリ２９へ格納する。
【００５０】
視界情報４６および変換されたオブジェクト４２が取得された後、ラスタライザ・ピクセル・シェダー・ユニット３４は、各タイルのレンダリングを開始する。ラスタライザ・ピクセル・シェダー・ユニット３４は、ポインタ５０を用いて、変換されたオブジェクト４２のピクセル・データをレンダリングするために、状態データ４４を取得しうる。ラスタライザ・ピクセル・シェダー・ユニット３４は、視界情報４６に関わらず状態データ４４を取得するのではなく、視界情報４６において目に見えるとして示されたオブジェクト４２の状態データ４４のみを取得しうる。言い換えれば、ラスタライザ・ピクセル・シェダー・ユニット３４は、各タイルの変換されたオブジェクト４２が、目に見えるか否かを、視界情報４６に基づいて判定する（６８）。視界情報４６が、オブジェクト４２のうちの対応する１つが目に見えることを示す場合（“ＹＥＳ”７０）、ラスタライザ・ピクセル・シェダー・ユニット３４は、状態データ４４を取得し、変換されたオブジェクト４２のうちの対応する１つを、取得した状態データ４４に基づいてレンダリングするために、ポインタ５０のうちの対応する１つを逆参照する（７２，７４）。視界情報４６が、オブジェクト４２のうちの対応する１つが目に見えないことを示す場合（“ＮＯ”７０）、ラスタライザ・ピクセル・シェダー・ユニット３４は、これらオブジェクト４２のうちの対応する１つをスキップする。そして、状態データ４４を取得するために、ポインタ５０のうちの対応する１つを逆参照しない。このように、ラスタライザ・ピクセル・シェダー・ユニット３４は、オフ・チップ・メモリ２０へのアクセスの数を低減するため、および、メモリ・バス４０におけるメモリ・バス帯域幅を節約するために、本開示に記載されたレイジーな状態データ取得技法を実施しうる。
【００５１】
ラスタライザ・ピクセル・シェダー・ユニット３４は、このようにして各タイルをレンダリングしうる。すなわち、ラスタライザ・ピクセル・シェダー・ユニット３４は、現在のタイルのために、オブジェクト４２のうちの最後の１つが処理および／またはレンダリングされるまで、現在のタイルについて、変換されたオブジェクト４２のおのおのが目に見えるか否かを、視界情報４６に基づいて判定し続けうる（７６）。最後のオブジェクトが、処理も、および／または、レンダリングもされていないのであれば（“ＮＯ”７６）、ラスタライザ・ピクセル・シェダー・ユニット３４は、前述した手法で、視界情報４６に基づいて各オブジェクトをレンダリングし続け、対応するオブジェクトが視界情報４６によって目に見えると示された場合にのみ状態データ４６を取得し、この取得された状態データ４４に基づいて、オブジェクト４６のうちの対応する１つをレンダリングする（６８−７６）。オブジェクト４２ののうち最後の１つが処理された場合（“ＹＥＳ”７６）、ラスタライザ・ピクセル・シェダー・ユニット３４は、レンダリングされたタイルをレンダリングされたタイル５２として、オン・チップ・メモリ２９に格納する。これは、その後、フレーム・バッファ１０に格納される（７８）。所与のタイルのレンダリングを完了すると、レンダリングされた画像のタイルのすべてが完了している訳ではないのであれば、ラスタライザ・ピクセル・シェダー・ユニット３４は、次のタイルのレンダリングを開始し、前述したレンダリング・パスを繰り返す（“ＮＯ”８０；６８−７８）。最後のタイルがレンダリングされ、フレーム・バッファ１０へ格納された（“ＹＥＳ”８０；画像全体がレンダリングされ、フレーム・バッファ１０へ格納されたことを意味する）のであれば、ＧＰＵ６は、ディスプレイ８に対して通知し、ディスプレイ８は、レンダリングされた画像を表示しうる（８２）。
【００５２】
図４は、典型的な視界情報９２Ａ−９２Ｉが生成された、変換された画像データ９０の例を例示する図解である。図４の例では、変換された画像データ９０は、モデル空間からスクリーン空間へ変換された画像データを表わす。例えば図２の例においてＧＰＵ６として図示されている本開示に記載された技法を実施するＧＰＵは、画像データを変換し、変換された画像データ９０を生成しうる。変換された画像データ９０は、変換されたオブジェクト９４Ａ−９４Ｄ（“オブジェクト９４”）を含みうる。これは、図４の例では、おのおの、Ｔ１−Ｔ４として示される三角形として図示されている。破線を有するものとして図示されているオブジェクト、すなわち、図４の例におけるオブジェクト９４Ｃ，９４Ｄは、目に見えないオブジェクトを表わす。オブジェクト９４Ｃは、オブジェクト９４Ｂによって完全に隠されるので、オブジェクト９４Ｃは目に見えない。
【００５３】
ＧＰＵ６のタイル・ユニット３２は、前述したように、ビニング・パスまたはタイリング・パスの間、タイル９６Ａ−９６Ｉ（「タイル９６」）を決定しうる。ここで、タイル９６は、行（図４の例では、０，１，および２として示される）および列（図４の例ではＡ，Ｂ，およびＣとして示される）が後に続く「タイル」として称されうる。タイル９６Ａは、例えば、「タイル０Ａ」とも称されうる。タイル９６Ｂは、「タイル０Ｂ」とも称され、タイル９６Ｄは、「タイル１Ａ」と称されるという具合である。ＧＰＵ６のタイル・ユニット３２は、視界情報９２Ａ−９２Ｉ（「視界情報９２」）を決定しうる。これは、図２の例において図示される視界情報４６の一例を表わしうる。視界情報９２のおのおのの左に示されるように、視界情報９２のおのおのは、タイル９６のうちの１つに対応する。すなわち、視界情報９２Ａは、タイル０Ａ（またはタイル９６Ａ）に対応する一方、視界情報９２Ｂは、タイル０Ｂ（またはタイル９６Ｂ）に対応するという具合である。
【００５４】
視界情報９２のおのおのは、オブジェクト９４のおのおののためのビットを含んでいる（これらオブジェクトは、図４の例では、Ｔ１−Ｔ４によって示されている）。これらのビットのうちの１つのビットに対する１という値（“１”）は、対応するオブジェクトＴ１−Ｔ４（またはオブジェクト９４）が、対応するタイル０Ａ−２Ｃ（またはタイル９６）において目に見えることを示している。これらのビットのうちの１つのビットに対するゼロである値（“０”）は、対応するオブジェクトＴ１−Ｔ４（またはオブジェクト９４）が、対応するタイル０Ａ−２Ｃ（またはタイル９６）において目に見えないことを示している。例えば、視界情報９２Ａは、値が１１００である４ビットからなるビット・ストリームを備えており、タイル９６Ａに関し、オブジェクト９４Ａは目に見え、オブジェクト９４Ｂも目に見えることを示す。視界情報９２Ｂは、値が０１００である４ビットからなるビット・ストリームを備えており、タイル９６Ｂに関し、オブジェクト９４Ｂは目に見えることを示す。別の例として、視界情報９２Ｅは、値が０１００である４ビットからなるビット・ストリームを備えており、タイル９６Ｅに関し、オブジェクト９４Ｂは目に見えるが、オブジェクト９４Ｃは、タイル９６Ｅにおいて、オブジェクト９４Ｂによって完全に隠されているので、目に見えないことを示す。このように、タイル・ユニット３２は、変換された画像データ９０のタイル９６のおのおのについて、視界情報９２のうちの対応する１つを生成しうる。
【００５５】
その後、ラスタライザ・ピクセル・シェダー３４が、視界情報９２を取得し、より詳細に前述された本開示に記載された技法にしたがって、この視界情報９２に基づいてのみ、状態データを取得しうる。例えば、オブジェクト９４Ａが目に見えず、オブジェクト９４Ｂが目に見え、オブジェクト９４Ｃ，９４Ｄが目に見えないことを示す視界情報９２Ｄを考慮されたい。この例では、オブジェクト９４Ａが目に見えないことを視界情報９２Ｄが示すので、ラスタライザ・ピクセル・シェダー３４は、オブジェクト９４Ａのための状態データを、オフ・チップ・メモリ２０から取得しないことがありうる。しかしながら、視界情報９２Ｄによれば、オブジェクト９４Ｂは、タイル内で目に見えるので、ラスタライザ・ピクセル・シェダー３４は、オブジェクト９４Ｂをレンダリングするための状態データ４４を取得するために、ポインタ５０を逆参照しうる。この点において、本技法によって、ＧＰＵは、必要な場合にのみ状態データを取得できるようになりうる。あるいは、言い換えれば、レイジーな状態データ更新または取得を実行できるようになりうる。
【００５６】
１または複数の例では、記述された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実現されうる。ソフトウェアで実現される場合、これら機能は、非一時的なコンピュータ読取可能な媒体を備える製造物品における１または複数の命令群またはコードとして格納されうる。コンピュータ読取可能な媒体は、コンピュータ・データ記憶媒体を含みうる。データ記憶媒体は、本開示において記述された技術を実施するための命令群、コード、および／または、データ構造を検索するために１または複数のコンピュータまたは１または複数のプロセッサによってアクセスされうる任意の利用可能な媒体でありうる。限定することなく、一例として、そのようなコンピュータ読取可能な媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク記憶装置、磁気ディスク記憶装置またはその他の磁気記憶デバイス、フラッシュ・メモリ、あるいは、所望のプログラム・コード手段を命令群またはデータ構造の形式で搬送または格納するために使用され、しかも、コンピュータによってアクセスされうるその他任意の媒体を備えうる。本明細書で使用されるディスク（ｄｉｓｋおよびｄｉｓｃ）は、コンパクト・ディスク（ｄｉｓｃ）（ＣＤ）、レーザ・ディスク（ｄｉｓｃ）、光ディスク（ｄｉｓｃ）、デジタル多用途ディスク（ｄｉｓｃ）（ＤＶＤ）、フロッピー（登録商標）ディスク（ｄｉｓｋ）、およびブルー・レイ・ディスク（ｄｉｓｃ）を含む。これらｄｉｓｃは、レーザを用いてデータを光学的に再生する。それに対して、ｄｉｓｋは、通常、データを磁気的に再生する。前述した組み合わせもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【００５７】
例えば、１または複数のＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、またはその他等価な統合論理回路またはディスクリート論理回路のような１または複数のプロセッサによって実行されうる。さらに、いくつかの態様では、本明細書に記載された機能は、専用のハードウェア・モジュールおよび／またはソフトウェア・モジュール内に提供されうる。さらに、これら技法は、１または複数の回路または論理要素で完全に実現されうる。
【００５８】
本開示の技法は、無線ハンドセット、集積回路（ＩＣ）、またはＩＣのセット（例えば、チップセット）を含む種々さまざまなデバイスまたは装置において実現されうる。さまざまな構成要素、モジュール、またはユニットは、本開示では、開示された技術を実行するように構成されたデバイスの機能態様を強調するように記載されているが、異なるハードウェア・ユニットによる実現を必ずしも必要とする訳ではない。むしろ、前述されたように、さまざまなユニットは、適切なソフトウェアおよび／またはハードウェアと連携する、前述されたような１または複数のプロセッサを含む共通のハードウェア・ユニットの集合によって提供されうるか、コーデック・ハードウェア・ユニットに結合されうる。
【００５９】
さまざまな例が記載された。これらの例およびその他の例は、以下の特許請求の範囲のスコープ内である。
【図１】
2018060556.tif 000003
【図２】
2018060556.tif 000004
【図３】
2018060556.tif 000005
【図４】
2018060556.tif 000006
【手続補正書】
【提出日】平成29年12月11日(2017.12.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像データをレンダリングする方法であって、
グラフィック処理ユニットにおいて、マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データのコマンド・ストリームによって定義された複数のプリミティブの視界情報を決定することと、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のプリミティブのおのおのが、前記コマンド・ストリームからレンダリングされた画像において目に見えるようになるか否かを示す、
前記グラフィック処理ユニットにおいて、前記視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される状態データを取得することと、ここで、前記第１のパスは、前記第２のパスが完了する前に終了し、前記複数のプリミティブのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有し、前記状態データは、現在の目に見えるプリミティブと、以前の目に見えないプリミティブとの両方に関連付けられる、を備える方法。
【請求項２】
前記画像データを複数のタイルへ分割することをさらに備え、
前記視界情報を決定することは、前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定することを備え、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のプリミティブのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記コマンド・ストリームからレンダリングされた前記画像の対応するタイルにおいて目に見えるようになるか否かを示し、
前記状態データを取得することは、前記画像の前記複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される状態データを取得することを備える、請求項１に記載の方法。
【請求項３】
前記グラフィック処理ユニットは、前記マルチ・パス・レンダリング処理を実施し、
前記複数のプリミティブのうちの少なくとも１つは、前記状態データを格納する前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記状態データを取得することは、前記グラフィック処理ユニットからの外部にある前記メモリにおける前記開始位置にアクセスするため、および、前記視界情報が、前記複数のプリミティブのうちの対応する１つが目に見えることを示す場合、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される前記状態データを取得するために、前記ポインタを逆参照することを備える、請求項１に記載の方法。
【請求項４】
前記コマンド・ストリームは、モデル空間における前記複数のプリミティブを定義し、
前記方法はさらに、変換された複数のプリミティブをスクリーン空間において定義する、変換されたコマンド・ストリームを生成するために、前記複数のプリミティブを、前記モデル空間から前記スクリーン空間へ変換することを備え、
前記視界情報を決定することは、前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記変換されたコマンド・ストリームによって定義された、前記変換された複数のプリミティブの視界情報を決定することを備える、請求項１に記載の方法。
【請求項５】
前記視界情報を決定することは、前記画像を生成するために、前記コマンド・ストリームによって定義された前記複数のプリミティブをレンダリングする前に、前記コマンド・ストリームによって定義された前記複数のプリミティブの前記視界情報を決定することを備える、請求項１に記載の方法。
【請求項６】
前記視界情報を決定することは、前記視界情報を決定するために低解像度Ｚバッファ処理を実行することを備える、請求項１に記載の方法。
【請求項７】
前記グラフィック処理ユニット（ＧＰＵ）は、モバイル・コンピューティング・デバイス内に存在する、請求項１に記載の方法。
【請求項８】
画像データをレンダリングするデバイスであって、
マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データのコマンド・ストリームによって定義された複数のプリミティブの視界情報を決定する手段と、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のプリミティブのおのおのが、前記コマンド・ストリームからレンダリングされた画像において目に見えるようになるか否かを示す、
前記視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される状態データを取得する手段と、ここで、前記第１のパスは、前記第２のパスが完了する前に終了し、前記複数のプリミティブのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有し、前記状態データは、現在の目に見えるプリミティブと、以前の目に見えないプリミティブとの両方に関連付けられる、を備えるデバイス。
【請求項９】
前記画像データを複数のタイルへ分割する手段をさらに備え、
前記視界情報を決定する手段は、前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定する手段を備え、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のプリミティブのおのおのが、前記マルチ・パス・レンダリング処理の前記第２のパスの間に、前記コマンド・ストリームからレンダリングされた前記画像のうちの対応するタイルにおいて目に見えるようになるか否かを示し、
前記状態データを取得する手段は、前記画像の前記複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得する手段を備える、請求項８に記載のデバイス。
【請求項１０】
グラフィック処理ユニットが、前記マルチ・パス・レンダリング処理を実施し、前記視界情報を決定する手段と、前記状態データを取得する手段とを含み、
前記複数のプリミティブのうちの少なくとも１つは、前記状態データを格納する前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記状態データを取得する手段は、前記グラフィック処理ユニットからの外部にある前記メモリにおける前記開始位置にアクセスするため、および、前記視界情報が、前記複数のプリミティブのうちの対応する１つが目に見えることを示す場合、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される前記状態データを取得するために、前記ポインタを逆参照する手段を備える、請求項８に記載のデバイス。
【請求項１１】
前記コマンド・ストリームは、モデル空間における前記複数のプリミティブを定義し、
前記デバイスはさらに、変換された複数のプリミティブをスクリーン空間において定義する、変換されたコマンド・ストリームを生成するために、前記複数のプリミティブを、前記モデル空間から前記スクリーン空間へ変換する手段を備え、
前記視界情報を決定する手段は、前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記変換されたコマンド・ストリームによって定義された、前記変換された複数のプリミティブの視界情報を決定する手段を備える、請求項８に記載のデバイス。
【請求項１２】
前記視界情報を決定する手段は、前記画像を生成するために、前記コマンド・ストリームによって定義された前記複数のプリミティブをレンダリングする前に、前記コマンド・ストリームによって定義された前記複数のプリミティブの前記視界情報を決定する手段を備える、請求項８に記載のデバイス。
【請求項１３】
前記視界情報を決定する手段は、前記視界情報を決定するために低解像度Ｚバッファ処理を実行する手段を備える、請求項８に記載のデバイス。
【請求項１４】
モバイル・コンピューティング・デバイスを備える、請求項８に記載のデバイス。
【請求項１５】
画像データをレンダリングするデバイスであって、
状態データを格納するように構成されたメモリと、
前記画像データのコマンド・ストリームから画像をレンダリングするために、マルチ・パス・レンダリング処理を実行するように構成されたプロセッサとを備え、
前記プロセッサは、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記コマンド・ストリームによって定義された複数のプリミティブの視界情報を決定し、
前記視界情報は、前記複数のプリミティブのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記コマンド・ストリームからレンダリングされた前記画像において目に見えるようになるか否かを示し、
前記プロセッサはさらに、前記視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによる使用のための前記状態データを前記メモリから取得し、ここで、前記第１のパスは、前記第２のパスが完了する前に終了し、前記複数のプリミティブのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有し、前記状態データは、現在の目に見えるプリミティブと、以前の目に見えないプリミティブとの両方に関連付けられる、デバイス。
【請求項１６】
前記画像データを複数のタイルへ分割することをさらに備え、
前記プロセッサはさらに、前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定するように構成され、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のプリミティブのおのおのが、前記マルチ・パス・レンダリング処理の前記第２のパスの間に、前記コマンド・ストリームからレンダリングされた前記画像のうちの対応するタイルにおいて目に見えるようになるか否かを示し、
前記プロセッサはまた、前記画像の前記複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される状態データを取得するように構成された、請求項１５に記載のデバイス。
【請求項１７】
前記プロセッサは、グラフィック処理ユニットを備え、ここで、前記複数のプリミティブのうちの少なくとも１つは、前記状態データを格納する前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記グラフィック処理ユニットは、前記グラフィック処理ユニットからの外部にある前記メモリにおける前記開始位置にアクセスするため、および、前記視界情報が、前記複数のプリミティブのうちの対応する１つが目に見えることを示す場合、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される前記状態データを取得するために、前記ポインタを逆参照するように構成された、請求項１５に記載のデバイス。
【請求項１８】
前記コマンド・ストリームは、モデル空間における前記複数のプリミティブを定義し、
前記プロセッサはさらに、
変換された複数のプリミティブをスクリーン空間において定義する、変換されたコマンド・ストリームを生成するために、前記複数のプリミティブを、前記モデル空間から前記スクリーン空間へ変換し、
前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記変換されたコマンド・ストリームによって定義された、前記変換された複数のプリミティブの視界情報を決定するように構成された、請求項１５に記載のデバイス。
【請求項１９】
前記プロセッサは、前記画像を生成するために、前記コマンド・ストリームによって定義された前記複数のプリミティブをレンダリングする前に、前記コマンド・ストリームによって定義された前記複数のプリミティブの前記視界情報を決定するように構成された、請求項１５に記載のデバイス。
【請求項２０】
前記プロセッサはさらに、前記視界情報を決定するために低解像度Ｚバッファ処理を実行するように構成された、請求項１５に記載のデバイス。
【請求項２１】
モバイル・コンピューティング・デバイスを備える、請求項１５に記載のデバイス。
【請求項２２】
実行された場合、１または複数のプロセッサに対して、
マルチ・パス・レンダリング処理の第１のパスの間に、画像データのコマンド・ストリームによって定義された複数のプリミティブのための視界情報を決定することと、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のプリミティブのおのおのが、前記コマンド・ストリームからレンダリングされた画像において目に見えるようになるか否かを示す、
前記視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによる使用のための状態データを取得することと、ここで、前記第１のパスは、前記第２のパスが完了する前に終了し、前記複数のプリミティブのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有し、前記状態データは、現在の目に見えるプリミティブと、以前の目に見えないプリミティブとの両方に関連付けられる、を実行させる命令群を記憶した非一時的なコンピュータ読取可能な記憶媒体。
【請求項２３】
実行された場合、前記１または複数のプロセッサに対して、
前記画像データを、複数のタイルに分割することと、
前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定することと、ここで、前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のプリミティブのおのおのが、前記マルチ・パス・レンダリング処理の前記第２のパスの間に、前記コマンド・ストリームからレンダリングされた前記画像のうちの対応するタイルにおいて目に見えるようになるか否かを示す、
前記画像の前記複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される状態データを取得することと、を実行させる命令群をさらに記憶した請求項２２に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項２４】
前記１または複数のプロセッサは、少なくとも１つのグラフィック処理ユニットを備え、
前記複数のプリミティブのうちの少なくとも１つは、前記状態データを格納する前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
非一時的なコンピュータ読取可能な記憶媒体はさらに、実行された場合、前記少なくとも１つのグラフィック処理ユニットに対して、前記グラフィック処理ユニットからの外部にある前記メモリにおける前記開始位置にアクセスするため、および、前記視界情報が、前記複数のプリミティブのうちの対応する１つが目に見えることを示す場合、前記コマンド・ストリームの前記複数のプリミティブをレンダリングする際に、前記マルチ・パス・レンダリング処理の前記第２のパスによって使用される前記状態データを取得するために、前記ポインタを逆参照することを実行させる命令群を記憶した、請求項２２に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項２５】
前記コマンド・ストリームは、モデル空間における前記複数のプリミティブを定義し、
前記非一時的なコンピュータ読取可能な記憶媒体はさらに、実行された場合に、前記１または複数のプロセッサに対して、
変換された複数のプリミティブをスクリーン空間において定義する、変換されたコマンド・ストリームを生成するために、前記複数のプリミティブを、前記モデル空間から前記スクリーン空間へ変換することと、
前記マルチ・パス・レンダリング処理の前記第１のパスの間に、前記変換されたコマンド・ストリームによって定義された、前記変換された複数のプリミティブの視界情報を決定することと、を実行させる命令群を記憶した、請求項２２に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項２６】
実行された場合、前記１または複数のプロセッサに対して、前記画像を生成するために、前記コマンド・ストリームによって定義された前記複数のプリミティブをレンダリングする前に、前記コマンド・ストリームによって定義された前記複数のプリミティブの前記視界情報を決定することを実行させる命令群をさらに記憶した、請求項２２に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項２７】
実行された場合、前記１または複数のプロセッサに対して、前記視界情報を決定するために低解像度Ｚバッファ処理を実行することを実行させる命令群をさらに記憶した、請求項２２に記載の非一時的なコンピュータ読取可能な記憶媒体。
【請求項２８】
モバイル・コンピューティング・デバイスが、前記非一時的なコンピュータ読取可能な記憶媒体と、前記１または複数のプロセッサとを含む、請求項２２に記載の非一時的なコンピュータ読取可能な記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
さまざまな例が記載された。これらの例およびその他の例は、以下の特許請求の範囲のスコープ内である。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
画像データをレンダリングする方法であって、
グラフィック処理ユニットにおいて、マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データによって定義された複数のオブジェクトの視界情報を決定することと、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のオブジェクトのおのおのが、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示す、
前記グラフィック処理ユニットにおいて、前記視界情報に基づいて、前記画像データのうちの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得することと、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、を備える方法。
［Ｃ２］
前記画像データを複数のタイルへ分割することをさらに備え、
前記視界情報を決定することは、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定することを備え、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像の対応するタイルにおいて目に見えるようになるか否かを示し、
前記状態データを取得することは、前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得することを備える、Ｃ１に記載の方法。
［Ｃ３］
前記グラフィック処理ユニットは、前記マルチ・パス・レンダリング処理を実施し、
前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記状態データを取得することは、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するために、前記ポインタを逆参照することを備える、Ｃ１に記載の方法。
［Ｃ４］
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、Ｃ１に記載の方法。
［Ｃ５］
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記方法はさらに、変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換することを備え、
前記視界情報を決定することは、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定することを備える、Ｃ１に記載の方法。
［Ｃ６］
前記視界情報を決定することは、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定することを備える、Ｃ１に記載の方法。
［Ｃ７］
前記視界情報を決定することは、前記視界情報を決定するために低解像度Ｚバッファ処理を実行することを備える、Ｃ１に記載の方法。
［Ｃ８］
前記グラフィック処理ユニット（ＧＰＵ）は、モバイル・コンピューティング・デバイス内に存在する、Ｃ１に記載の方法。
［Ｃ９］
画像データをレンダリングするデバイスであって、
マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データによって定義された複数のオブジェクトの視界情報を決定する手段と、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のオブジェクトのおのおのが、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示す、
前記視界情報に基づいて、前記画像データのうちの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態情報を取得する手段と、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、を備えるデバイス。
［Ｃ１０］
前記画像データを複数のタイルへ分割する手段をさらに備え、
前記視界情報を決定する手段は、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定する手段を備え、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像のうちの対応するタイルにおいて目に見えるようになるか否かを示し、
前記状態データを取得する手段は、前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得する手段を備える、Ｃ９に記載のデバイス。
［Ｃ１１］
前記グラフィック処理ユニットは、前記マルチ・パス・レンダリング処理を実施し、前記視界情報を決定する手段と、前記状態データを取得する手段とを含み、
前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記状態データを取得する手段は、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するために、前記ポインタを逆参照する手段を備える、Ｃ９に記載のデバイス。
［Ｃ１２］
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、Ｃ９に記載のデバイス。
［Ｃ１３］
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記デバイスはさらに、変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換する手段を備え、
前記視界情報を決定する手段は、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定する手段を備える、Ｃ９に記載のデバイス。
［Ｃ１４］
前記視界情報を決定する手段は、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定する手段を備える、Ｃ９に記載のデバイス。
［Ｃ１５］
前記視界情報を決定する手段は、前記視界情報を決定するために低解像度Ｚバッファ処理を実行する手段を備える、Ｃ９に記載のデバイス。
［Ｃ１６］
モバイル・コンピューティング・デバイスを備える、Ｃ９に記載のデバイス。
［Ｃ１７］
画像データをレンダリングするデバイスであって、
状態データを格納するように構成されたメモリと、
前記画像データから画像をレンダリングするために、マルチ・パス・レンダリング処理を実行するように構成されたプロセッサとを備え、
前記プロセッサは、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記画像データによって定義された複数のオブジェクトの視界情報を決定し、
前記視界情報は、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示し、
前記プロセッサはさらに、前記視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによる使用のための状態データを前記メモリから取得し、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、デバイス。
［Ｃ１８］
前記画像データを複数のタイルへ分割することをさらに備え、
前記プロセッサはさらに、前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定するように構成され、
前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像のうちの対応するタイルにおいて目に見えるようになるか否かを示し、
前記プロセッサはまた、前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するように構成された、Ｃ１７に記載のデバイス。
［Ｃ１９］
前記プロセッサは、グラフィック処理ユニットを備え、ここで、前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットからの外部にあるメモリにおける開始位置を識別するポインタを含み、
前記グラフィック処理ユニットは、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得するために、前記ポインタを逆参照するように構成された、Ｃ１７に記載のデバイス。
［Ｃ２０］
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、Ｃ１７に記載のデバイス。
［Ｃ２１］
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記プロセッサはさらに、
変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換し、
前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定するように構成された、Ｃ１７に記載のデバイス。
［Ｃ２２］
前記プロセッサは、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定するように構成された、Ｃ１７に記載のデバイス。
［Ｃ２３］
前記プロセッサはさらに、前記視界情報を決定するために低解像度Ｚバッファ処理を実行するように構成された、Ｃ１７に記載のデバイス。
［Ｃ２４］
モバイル・コンピューティング・デバイスを備える、Ｃ１７に記載のデバイス。
［Ｃ２５］
実行された場合、１または複数のプロセッサに対して、
マルチ・パス・レンダリング処理の第１のパスの間に、画像データによって定義された複数のオブジェクトのための視界情報を決定することと、ここで、前記視界情報は、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記複数のオブジェクトのおのおのが、前記画像データからレンダリングされた画像において目に見えるようになるか否かを示す、
前記視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによる使用のための状態データを取得することと、ここで、前記第１のパスは、前記第２のパスが完了する前に終了する、を実行させる命令群を備える非一時的なコンピュータ読取可能な媒体。
［Ｃ２６］
実行された場合、前記１または複数のプロセッサに対して、
前記画像データを、複数のタイルに分割することと、
前記マルチ・パス・レンダリング処理の第１のパスの間に、前記複数のタイルのおのおののためのタイル特有の視界情報を決定することと、ここで、前記タイル特有の視界情報は、前記複数のタイルのうちの対応する１つについて、前記複数のオブジェクトのおのおのが、前記マルチ・パス・レンダリング処理の第２のパスの間に、前記画像データからレンダリングされた画像のうちの対応するタイルにおいて目に見えるようになるか否かを示す、
前記画像の複数のタイルのそれぞれを出力するために、対応する前記タイル特有の視界情報に基づいて、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得することと、を実行させる命令群をさらに備えるＣ２５に記載の非一時的なコンピュータ読取可能な媒体。
［Ｃ２７］
前記１または複数のプロセッサは、少なくとも１つのグラフィック処理ユニットを備え、
前記複数のオブジェクトのうちの少なくとも１つは、前記状態データを格納するグラフィック処理ユニットの外部からのメモリにおける開始位置を識別するポインタを含み、
実行された場合、前記少なくとも１つのグラフィック処理ユニットに対して前記状態データを取得させる命令群はさらに、前記グラフィック処理ユニットからの外部にあるメモリにおける開始位置にアクセスするため、および、前記視界情報が、前記複数のオブジェクトのうちの対応する１つが目に見えることを示す場合、前記画像データの複数のオブジェクトをレンダリングする際に、前記マルチ・パス・レンダリング処理の第２のパスによって使用される状態データを取得ために、前記ポインタを逆参照することを備える、Ｃ２５に記載の非一時的なコンピュータ読取可能な媒体。
［Ｃ２８］
前記複数のオブジェクトのうちの少なくとも２つまたはそれ以上が、同じ状態データを共有する、Ｃ２５に記載の非一時的なコンピュータ読取可能な媒体。
［Ｃ２９］
前記画像データは、モデル空間における複数のオブジェクトを定義し、
前記非一時的なコンピュータ読取可能な媒体さらに、実行された場合に、前記１または複数のプロセッサに対して、
変換された複数のオブジェクトをスクリーン空間において定義する、変換された画像データを生成するために、前記複数のオブジェクトを、前記モデル空間から前記スクリーン空間へ変換することと、
前記マルチ・パス・レンダリング処理の第１のパスの間に、前記変換された画像データによって定義された、前記変換された複数のオブジェクトの視界情報を決定することと、を実行させる命令群を備える、Ｃ２５に記載の非一時的なコンピュータ読取可能な媒体。
［Ｃ３０］
実行された場合、前記１または複数のプロセッサに対して、前記画像を生成するために、前記画像データによって定義された複数のオブジェクトをレンダリングする前に、前記画像データによって定義された複数のオブジェクトの視界情報を決定することを実行させる命令群をさらに備える、Ｃ２５に記載の非一時的なコンピュータ読取可能な媒体。
［Ｃ３１］
実行された場合、前記１または複数のプロセッサに対して、前記視界情報を決定するために低解像度Ｚバッファ処理を実行することを実行させる命令群をさらに備える、Ｃ２５に記載の非一時的なコンピュータ読取可能な媒体。
［Ｃ３２］
モバイル・コンピューティング・デバイスが、前記非一時的なコンピュータ読取可能な媒体と、前記１または複数のプロセッサとを含む、Ｃ２５に記載の非一時的なコンピュータ読取可能な媒体。
【外国語明細書】
2018060556000001.pdf