(57)【要約】【課題】  キューブマップをテクスチャリングするためのＬＯＤを決定する方法及びその装置を提供すること。【解決手段】  ピクセルがキューブマップの互いに異なる面に対応する場合、ピクセルの座標を補正し、補正された座標を利用して、ピクセルの変化率を計算し、計算された変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのＬＯＤを決定する方法及びそのための装置が提供される。【選択図】      図５
2018101415.tif 000002
【特許請求の範囲】
【請求項１】
キューブマップをテクスチャリングするためのＬＯＤを決定する方法において、
隣接するピクセルに対して、前記キューブマップ上での座標を決定する段階と、
前記ピクセルそれぞれが、前記キューブマップの互いに異なる面に対応する場合、前記ピクセルのうち少なくとも１つのピクセルの座標を補正する段階と、
前記補正された座標を利用して、前記キューブマップ上において、前記ピクセルの変化率を計算する段階と、
前記計算された変化率に基づいて、前記ピクセルに前記キューブマップをテクスチャリングするためのＬＯＤを決定する段階と、を含む方法。
【請求項２】
前記補正する段階は、
前記ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、前記ピクセルのうち他のピクセルの座標を補正することを特徴とする請求項１に記載の方法。
【請求項３】
前記補正する段階は、
前記ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、前記ピクセルの座標を補正することを特徴とする請求項１に記載の方法。
【請求項４】
前記補正する段階は、
前記少なくとも１つのピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行うことを特徴とする請求項１に記載の方法。
【請求項５】
前記ピクセルの変化率を計算する段階は、
前記キューブマップの座標軸上において、前記ピクセル間の座標値差を、前記ピクセルの変化率として計算することを特徴とする請求項１ないし４のうち何れか一項に記載の方法。
【請求項６】
前記キューブマップは、
正規化された大きさを有する６個の正方形面から構成された正六面体のテクスチャであることを特徴とする請求項１ないし５のうち何れか一項に記載の方法。
【請求項７】
前記補正する段階は、
スクリーンスペース上での前記ピクセルの方向ベクトルを基準に、前記ピクセルそれぞれが、前記キューブマップの互いに異なる面に対応するか否かということを判断する段階を含むことを特徴とする請求項１に記載の方法。
【請求項８】
キューブマップをテクスチャリングするためのＬＯＤを決定する装置において、
コンピュータ実行可能命令語を保存するメモリと、
前記コンピュータ実行可能命令語を実行することにより、隣接するピクセルに対して、前記キューブマップ上での座標を決定し、前記ピクセルそれぞれが、前記キューブマップの互いに異なる面に対応する場合、前記ピクセルのうち少なくとも１つのピクセルの座標を補正し、前記補正された座標を利用して、前記キューブマップ上において、前記ピクセルの変化率を計算し、前記計算された変化率に基づいて、前記ピクセルに前記キューブマップをテクスチャリングするためのＬＯＤを決定するプロセッサと、を含む装置。
【請求項９】
前記プロセッサは、
前記ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、前記ピクセルのうち他のピクセルの座標を補正することを特徴とする請求項８に記載の装置。
【請求項１０】
前記プロセッサは、
前記ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、前記ピクセルの座標を補正することを特徴とする請求項８に記載の装置。
【請求項１１】
前記プロセッサは、
前記少なくとも１つのピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行うことを特徴とする請求項８に記載の装置。
【請求項１２】
前記プロセッサは、
前記キューブマップの座標軸上において、前記ピクセル間の座標値差を、前記ピクセルの変化率として計算することを特徴とする請求項８ないし１１のうち何れか一項に記載の装置。
【請求項１３】
前記プロセッサは、
スクリーンスペース上での前記ピクセルの方向ベクトルを基準に、前記ピクセルそれぞれが、前記キューブマップの互いに異なる面に対応するか否かということを判断することを特徴とする請求項８に記載の装置。
【請求項１４】
前記プロセッサは、
隣接するピクセルに対して、前記キューブマップ上での座標を決定する第１演算部と、
前記ピクセルのうち少なくとも１つのピクセルの座標を補正する第２演算部と、
前記キューブマップ上において、前記ピクセルの変化率を計算する第３演算部と、
前記ピクセルに前記キューブマップをテクスチャリングするためのＬＯＤを決定する第４演算部と、を含むことを特徴とする請求項８ないし１３のうち何れか一項に記載の装置。
【請求項１５】
請求項１ないし７のうちいずれか１項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キューブマップをテクスチャリングするためのレベル・オブ・ディテール（level  of  detail：LOD）を決定する方法、装置、コンピュータプログラム及び記録媒体等に関する。
【背景技術】
【０００２】
三次元グラフィックシステムにおいて、さらに臨場感ある映像を得るための方法の一環として、テクスチャリング技術またはテクスチャマッピング（texture  mapping）技術が活用されている。該テクスチャリングまたはテクスチャマッピングとは、三次元物体の表面に質感を与えるために、二次元イメージを三次元物体表面に加えることを意味する。ここで、該テクスチャは、二次元イメージを意味し、テクスチャ内の各点は、テクセル（texel）であり、スクリーンスペース上のピクセルに対応する。三次元グラフィックスパイプラインが行われながら、二次元スクリーンスペースの各ピクセルに対応する三次元スペース上のオブジェクト表面が決定されれば、オブジェクト表面に該当するテクスチャ座標を有するテクセルが計算され、それにより、ピクセルとテクセルとのテクスチャマッピングが行われる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明が解決しようとする課題は、キューブマップをテクスチャリングするためのＬＯＤを決定する方法、及びその装置を提供するところにある。本実施形態が解決しようとする技術的課題は、前記のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されてもよい。
【課題を解決するための手段】
【０００４】
一側面によって、キューブマップ（cube  map）をテクスチャリングするためのＬＯＤを決定する方法は、隣接するピクセルについて、キューブマップ上での座標を決定する段階と、ピクセルそれぞれがキューブマップの互いに異なる面（face）に対応する場合、ピクセルのうち少なくとも１つのピクセルの座標を補正する段階と、補正された座標を利用して、キューブマップ上でピクセルの変化率（derivative）を計算する段階と、計算された変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのＬＯＤを決定する段階と、を含んでもよい。
【０００５】
また、補正する段階は、ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、ピクセルのうち他のピクセルの座標を補正することができる。
【０００６】
また、補正する段階は、ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、ピクセルの座標を補正することができる。
【０００７】
また、ピクセルの変化率を計算する段階は、キューブマップの座標軸上において、ピクセル間の座標値差（difference）を、ピクセルの変化率として計算することができる。
【０００８】
また、該キューブマップは、正規化された大きさを有する６個の正方形面から構成された正六面体のテクスチャでもある。
【０００９】
また、補正する段階は、スクリーンスペース上でのピクセルの方向ベクトルを基準に、ピクセルそれぞれがキューブマップの互いに異なる面に対応するか否かということを判断する段階を含んでもよい。
【００１０】
他の側面による、キューブマップをテクスチャリングするためのＬＯＤを決定する装置は、コンピュータ実行可能命令語（computer  executable  instruction）を保存するメモリと、コンピュータ実行可能命令語を実行することにより、隣接するピクセルについて、キューブマップ上での座標を決定し、ピクセルそれぞれがキューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも１つのピクセルの座標を補正し、補正された座標を利用して、キューブマップ上でピクセルの変化率を計算し、計算された変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのＬＯＤを決定するプロセッサと、を含んでもよい。
【００１１】
さらに他の側面によって、キューブマップをテクスチャリングするためのＬＯＤを決定する方法を具現するためのプログラムが記録されたコンピュータで判読可能な記録媒体が提供される。
【発明の効果】
【００１２】
本実施形態によれば、ピクセルのキューブマップ上の補正された座標から、ピクセルの変化率を直接計算することができるが、変化率を計算するのに必要な演算器の個数を減らすことができ、それにより、装置の面積と消費電力とを減らすことができる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態によるグラフィック処理装置を示した図面である。
【図２】グラフィック処理装置が三次元グラフィックスを処理する過程について説明する図面である。
【図３】テクスチャマッピングについて説明するための図面である。
【図４】ミップマップについて説明するための図面である。
【図５】一実施形態による、キューブマップをテクスチャリングするためのＬＯＤを決定する装置を示す図面である。
【図６】スクリーンスペース上の座標系と、キューブマップ上の座標系との一実施形態を示す図面である。
【図７】スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する実施形態を示す図面である。
【図８】スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する具体的な実施形態を示す図面である。
【図９】座標補正テーブルを利用して、ピクセルの変化率を計算する実施形態を示す図面である。
【図１０】ピクセルの座標を補正し、ピクセルの変化率を計算する実施形態を示す図面である。
【図１１】ピクセルの座標を補正し、ピクセルの変化率を計算する他の実施形態を示す図面である。
【図１２】一実施形態により、キューブマップをテクスチャリングするためのＬＯＤを決定する方法について説明するための図面である。
【発明を実施するための形態】
【００１４】
以下、添付された図面を参照しながら、ただ例示のための実施形態について詳細に説明する。下記実施形態は、技術的内容を具体化させるためのものであり、権利範囲を制限したり限定したりするものではないということは、いうまでもない。詳細な説明、及び実施形態から、当該技術分野の専門家が容易に類推することができることは、権利範囲に属するものと解釈される。
【００１５】
本明細書で使用される「構成される」または「含む」というような用語は、明細書上に記載された多くの構成要素、または多くの段階を必ずいずれも含むものであると解釈されるものではなく、そのうち一部構成要素または一部段階は、含まれないこともあり、または追加される構成要素または段階をさらに含んでもよいと解釈されなければならない。
【００１６】
また、本明細書で使用される「第１」または「第２」のように序数を含む用語は、多様な構成要素についての説明に使用されるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、１つの構成要素を他の構成要素から区別する目的にのみ使用される。
【００１７】
本実施形態は、キューブマップ（cube  map）というテクスチャを処理する方法、及びその装置に係わるものであり、以下の実施形態が属する技術分野で当業者に周知されている事項については、詳細な説明を省略する。
【００１８】
図１は、一実施形態によるグラフィック処理装置を示した図面である。
【００１９】
図１に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、関連技術分野で当業者であるならば、理解することができるであろう。
【００２０】
図１を参照すれば、グラフィック処理装置１００は、ラスタライザ（rasterizor）１１０、シェーダコア（shader  core）１２０、テクスチャ処理装置（texture  processing  unit）１３０、ピクセル処理装置（pixel  processing  unit）１４０、タイルバッファ（tile  buffer）１５０などを含んでもよい。グラフィック処理装置１００は、バス（bus）３００を介して、外部のメモリ２００とデータを送受信することができる。
【００２１】
図１に図示されたグラフィック処理装置１００は、三次元グラフィックスを処理する装置であり、タイルに基づいたレンダリング（ＴＢＲ：tile  based  rendering）方式を使用することができる。言い替えれば、グラフィック処理装置１００は、１つのフレームに該当する三次元グラフィックスを生成するために、一定サイズに分割された複数個のタイルを、ラスタライザ１１０、シェーダコア１２０、ピクセル処理装置１４０を通過させ、処理結果をタイルバッファ１５０に保存することができる。グラフィック処理装置１００は、フレームを構成する全てのタイルに対して、ラスタライザ１１０、シェーダコア１２０及びピクセル処理装置１４０で構成されるチャネルを複数個利用して、並列処理することができる。グラフィック処理装置１００は、１つのフレームに該当する複数個のタイルが処理されれば、タイルバッファ１５０に保存された処理結果を、メモリ２００のフレームバッファ（図示せず）に伝送することができる。
【００２２】
ラスタライザ１１０は、幾何変換過程を経て、バーテックスシェーダ（vertex  shader）から生成されたプリミティブ（primitive）に対して、ラスタ化（rasterization）を行うことができる。
【００２３】
シェーダコア１２０は、ラスタライザ１１０からラスタ化されたプリミティブを伝達され、ピクセルシェーディングを行うことができる。シェーダコア１２０は、ラスタ化を経て生成されたプリミティブのフラグメントを含むタイルに対して、タイルを構成する全てのピクセルの色相を決定するピクセルシェーディングを行うことができる。シェーダコア１２０は、ピクセルシェーディング過程において、立体的で臨場感ある三次元グラフィックスを生成するために、テクスチャを利用して生成されたピクセル値を使用することができる。
【００２４】
シェーダコア１２０は、ピクセルシェーダ（pixel  shader）を含んでもよい。また、シェーダコア１２０は、バーテックスシェーダをさらに含んだ形態でもあり、バーテックスシェーダとピクセルシェーダとが統合された形態の統合シェーダでもある。シェーダコア１２０がバーテックスシェーダの機能を遂行することができる場合、オブジェクトを示すプリミティブを生成し、ラスタライザ１１０に伝達することができる。
【００２５】
シェーダコア１２０が、所望ピクセルに対応するピクセル値を伝達することをテクスチャ処理装置１３０に要請すれば、テクスチャ処理装置１３０は、あらかじめ準備したテクスチャを処理して生成されたピクセル値を伝達する。該テクスチャは、テクスチャ処理装置１３０の内部または外部の所定空間、またはグラフィック処理装置１００外部のメモリ２００に保存されてもよい。テクスチャ処理装置１３０は、シェーダコア１２０で要請したピクセル値の生成に利用されるテクスチャが、テクスチャ処理装置１３０内部の所定空間にない場合、テクスチャ処理装置１３０外部の空間、またはメモリ２００からテクスチャを持ってきて使用することができる。
【００２６】
ピクセル処理装置１４０は、１つのタイル内の同一位置に対応するピクセルに対して、デプステストのような過程を経て、最終的に表示されるピクセル値を決定し、１つのタイルに該当する全てのピクセル値を決定することができる。
【００２７】
タイルバッファ１５０は、ピクセル処理装置１４０から伝達された１つのタイルに該当する全てのピクセル値を保存することができる。１つのフレームを構成する全てのタイルに対するグラフィック処理過程が完了すれば、タイルバッファ１５０に保存された処理結果が、メモリ２００のフレームバッファに伝達される。
【００２８】
図２は、グラフィック処理装置が三次元グラフィックスを処理する過程について説明する図面である。
【００２９】
三次元グラフィックスを処理する過程は、大別して、幾何変換、ラスタ化、ピクセルシェーディングの３段階に分けることができ、以下、図２を参照し、さらに詳細な過程について説明する。具体的には、図２は、段階１１ないし段階１８を通じて、三次元グラフィックスを処理する過程を示す。
【００３０】
段階１１は、バーテックス（vertices）を生成する段階である。該バーテックスは、三次元グラフィックスに含まれた客体（object）を示すために生成される。
【００３１】
段階１２は、生成されたバーテックスをシェーディング（shading）する段階である。バーテックスシェーダ（vertex  shader）は、段階１１で生成されたバーテックスの位置を指定することにより、バーテックスに対するシェーディングを遂行することができる。
【００３２】
段階１３は、プリミティブ（primitive）を生成する（generate）段階である。該プリミティブは、１以上のバーテックスを利用して形成される点、線、多角形（polygon）などを意味する。例えば、該プリミティブは、３個のバーテックスが連結された三角形でもある。
【００３３】
段階１４は、プリミティブをラスタ化（rasterization）する段階である。プリミティブのラスタ化は、プリミティブをフラグメントに分割することを意味する。該フラグメントは、プリミティブに対するグラフィックス処理を行うための基本単位でもある。該プリミティブは、バーテックスに係わる情報のみを含むので、ラスタライジングを介して、バーテックスとバーテックスとの間のフラグメントが生成されることにより、三次元グラフィックス処理が行われる。
【００３４】
段階１５は、ピクセルをシェーディングする（pixel  shading）段階である。ラスタ化によって生成された、プリミティブを構成するフラグメントは、ピクセルにもなる。当該分野において、フラグメント及びピクセルという用語は、場合によっては、混用されて使用される。例えば、ピクセルシェーダは、フラグメントシェーダとも呼称される。一般的に、プリミティブを構成するグラフィック処理の基本単位をフラグメントと呼び、その後、ピクセルシェーディングから、グラフィック処理の基本単位をピクセルと称する。ピクセルシェーディングによって、ピクセル値、属性など（例えば、ピクセルの色）が決定される。
【００３５】
段階１６は、ピクセルの色を決定するためのテクスチャリング（texturing）段階である。該テクスチャリングは、あらかじめ準備したイメージであるテクスチャを利用して、ピクセルの色を決定する過程である。このとき、多様な色相と、パターンの様子とを表現するために、それぞれのピクセル色相を計算して決定することは、グラフィック処理に必要なデータ演算量とグラフィック処理時間とを増大させるので、グラフィック処理装置は、あらかじめ準備されたテクスチャを利用して、ピクセルの色相を決定することができる。
【００３６】
段階１７は、テスト及びミキシング（testing  and  mixing）段階である。デプステスト、カーリング（curling）、クリッピング（clipping）などにより、最終的に表示されるピクセル値が決定される。
【００３７】
段階１８は、段階１１ないし段階１７を介して生成されたフレームをフレームバッファ（frame  buffer）に保存し、フレームバッファに保存されたフレームを、ディスプレイ装置を介して表示する段階である。
【００３８】
図２で説明された三次元グラフィックスを処理する過程は、概括的なものであり、さらに詳細な過程については、当該技術分野の通常の技術者に自明であろう。
【００３９】
図３は、テクスチャマッピングについて説明するための図面である。
【００４０】
図３を参照すれば、ラスタライジングによって、スクリーンスペース上のピクセル３０１が生成された場合、テクスチャ処理装置１３０は、ピクセル３０１にマッピングされるテクスチャ３０２を決定することができる。このとき、テクスチャ３０２は、三次元客体表面の色相、質感及びパターンなどに係わる情報を有するイメージと定義され、テクスチャ空間上のテクセル（texel）単位で構成される。
【００４１】
一方、客体の大きさは、スクリーンスペース上で連続的に変わるために、全てのピクセル３０１に対応するテクスチャ３０２をあらかじめ準備することは困難である。従って、テクスチャ処理装置１３０は、１つのテクスチャ、または複数のテクスチャを利用した補間（interpolation）作業を介して、ピクセル３０１の値を推定するテクスチャフィルタリングを行う。
【００４２】
一方、テクスチャ処理装置１３０は、スクリーンスペース上の隣接するピクセルにマッピングされるキューブマップを決定することができる。該キューブマップは、６個の面（face）から構成された正六面体のテクスチャを意味する。例えば、該キューブマップは、特定視点（viewpoint）から見た周辺環境を表現する６個の面から構成されてもよい。また、該キューブマップは、グラフィック処理において、多様な効果又はエフェクト（effect）のために利用されてもよい。例えば、該キューブマップは、レンダリングしようとする場面内での反射（reflection）及び光効果（lighting  effect）のためのソースデータにも利用される。従って、テクスチャ処理装置１３０は、あらかじめ準備されたキューブマップを利用して、テクスチャリングを行うことができる。
【００４３】
図４は、ミップマップについて説明するための図面である。
【００４４】
テクスチャ処理装置１３０は、スクリーンスペース上で変化する客体の大きさに適応的に対応するように、あらかじめ準備されたテクスチャを利用することができる。このとき、基本テクスチャと、それを縮小させたテクスチャとからなるビットマップイメージの集合をミップマップ（mipmap）という。
【００４５】
このとき、他のレベルのミップマップは、解像度が異なる。図４を参照すれば、レベル０ミップマップ４１０は、テクスチャのうち解像度が最も高いテクスチャであり、基本テクスチャを意味する。レベル０ミップマップ４１０を表現するために、８×８テクセルが必要である。また、基本テクスチャの大きさより１／４縮小されたミップマップは、レベル１ミップマップ４１１である。レベル１ミップマップ４１１を表現するために、４×４テクセルが必要である。また、基本テクスチャの大きさより１／１６縮小されたミップマップは、レベル２ミップマップ４１２でもある。レベル２ミップマップ４１２を表現するために、２×２テクセルが必要である。
【００４６】
一方、視点とピクセルとの距離が変わることにより、ピクセルにマッピングされるテクスチャが異なりもする。例えば、道路のタイルをスクリーン空間に表示するとき、視点で近いタイルに対応するピクセルにマッピングされるテクスチャは、解像度が高いレベル０ミップマップ４１０でもある。また、視点から遠く離れた道路のタイルに対応するピクセルにマッピングされるテクスチャは、解像度が低いレベル２ミップマップ４１２でもある。すなわち、複数のミップマップを利用する場合、遠い距離にある客体は、低い解像度で表現されるために、グラフィック処理装置は、三次元グラフィックを自然に表現することができる。併せて、異なるテクスチャがマッピングされたピクセルの境界面においてテクスチャフィルタリングが行われれば、三次元グラフィックの品質が向上することができる。
【００４７】
一方、図４では、二次元のテクスチュアを基準に、複数のミップマップについて説明したが、６個のテクスチャ面から構成されたキューブマップにも、複数のミップマップが用意されて利用される。
【００４８】
また、スクリーンスペース上のピクセルにマッピングさせるテクスチャは、グラフィックのＬＯＤ（level  of  detail）に基づいて決定される。ここで、該ＬＯＤは、三次元グラフィックイメージを表現する精度を段階化したものを意味する。テクスチャ処理装置１３０は、ピクセル情報を受信した後、グラフィックのＬＯＤ値を決定し、決定されたＬＯＤ値によってテクスチャフィルタリングを行うとき、必要なミップマップを決定することができる。例えば、テクスチャ処理装置は、２×２ピクセルで構成されたクアッド（quad）単位でグラフィックのＬＯＤ値を計算することができるが、ＬＯＤ値を計算するときに必要なピクセルの数は、それに制限されるものではない。
【００４９】
同様に、スクリーンスペース上のピクセルにマッピングさせるキューブマップは、グラフィックのＬＯＤに基づいて決定される。従って、テクスチャ処理装置１３０は、ピクセル情報を受信した後、グラフィックのＬＯＤ値を決定し、決定されたＬＯＤ値によってテクスチャフィルタリングを行うときに必要なミップマップを決定することができる。
【００５０】
図５は、一実施形態による、キューブマップをテクスチャリングするためのＬＯＤを決定する装置を示す。
【００５１】
装置５００は、メモリ５１０及びプロセッサ５２０を含んでもよい。一方、図５に図示された装置５００は、キューブマップをテクスチャリングするためのＬＯＤを決定する実施形態に係わる構成要素が主に図示されている。従って、図５に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいことは、当該技術分野の通常の技術者であるならば、理解することができるであろう。また、一実施形態により、装置５００は、図１のテクスチャ処理装置１３０にも含まれ、テクスチャ処理装置１３０内の細部構成によっても具現されるが、それに制限されるものではない。
メモリ５１０は、コンピュータ実行可能命令語（computer  executable  instruction）を保存することができる。
【００５２】
プロセッサ５２０は、メモリ５１０に保存されたコンピュータ実行可能命令語を実行することにより、隣接するピクセルについて、キューブマップ上での座標を決定することができる。言い換えれば、プロセッサ５２０は、隣接するピクセルそれぞれのスクリーンスペース上の座標を、テクスチャスペースであるキューブマップ上の座標に変換することができる。一実施形態により、プロセッサ５２０は、スクリーンスペース上において、ピクセルの方向ベクトルを基準に、ピクセルをキューブマップ上に投影（project）させた地点の座標を、ピクセルのキューブマップ上の座標として決定することができる。以下、図６ないし図８において、ピクセルのキューブマップ上の座標を決定する具体的な実施形態について述べる。
【００５３】
図６は、スクリーンスペース上の座標系と、キューブマップ上の座標系との一実施形態を示す。
【００５４】
図６において、スクリーンスペースは、互いに直交するｘ軸、ｙ軸及びｚ軸によって構成された三次元座標系を有し、キューブマップは、６個の面ごとそれぞれに、原点を基準に、ｓｆａｃｅ軸及びｔｆａｃｅ軸に構成された二次元座標系を有することができる。具体的には、キューブマップの中心に、スクリーンスペース上の原点が位置すると仮定することができ、キューブマップは、＋ｘ軸と交差するＸ＋ｆａｃｅ、−ｘ軸と交差するＸ−ｆａｃｅ、＋ｙ軸と交差するＹ＋ｆａｃｅ、−ｙ軸と交差するＹ−ｆａｃｅ、＋ｚ軸と交差するＺ＋ｆａｃｅ、及び−ｚ軸と交差するＺ−ｆａｃｅを含み、６個の面それぞれは、各面の原点を基準に、ｓｆａｃｅ軸及びｔｆａｃｅ軸に構成された二次元座標系を有することができる。
【００５５】
図７は、スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する実施形態を示す。
【００５６】
プロセッサ５２０は、表７１０及び数式７２０に基づいて、キューブマップ上でのピクセルの座標を決定することができる。
【００５７】
スクリーンスペース上でのピクセルの方向ベクトルが、（ｒｘ，ｒｙ，ｒｚ）（ただし、ｒｘ、ｒｙ、ｒｚそれぞれは、実数である）である場合、プロセッサ５２０は、ピクセルのｒｘ、ｒｙ及びｒｚそれぞれの大きさ、並びに符号を基準に、主軸方向（Major  Axis  Direction）を決定することができ、続いてキューブ・マップ面（Cube  Map  Face）、ｓｃ、ｔｃ及びｒｃを決定することができる。
【００５８】
例えば、ピクセルのｒｘ、ｒｙ及びｒｚのうちｒｘの大きさが最も大きく、符号が正数である場合、プロセッサ５２０は、ピクセルのMajor  Axis  Direction）が＋ｘ軸であると決定することができ、それにより、ピクセルが、キューブマップのうちＸ＋ｆａｃｅに該当すると決定することができ、ピクセルの（ｓｃ，ｔｃ，ｒｃ）を（−ｒｚ，−ｒｙ，ｒｘ）と決定することができる。従って、プロセッサ５２０は、決定された（ｓｃ，ｔｃ，ｒｃ）を利用して、Ｘ＋ｆａｃｅ上での座標（ｓｆａｃｅ，ｔｆａｃｅ）を決定することができる。
【００５９】
同様に、ピクセルのｒｘ、ｒｙ及びｒｚのうちｒｚが大きさが最も大きく、符号が負数である場合、プロセッサ５２０は、ピクセルのMajor  Axis  Directionが−ｚ軸であると決定することができ、それにより、ピクセルが、キューブマップのうちＺ−ｆａｃｅに該当すると決定することができ、ピクセルの（ｓｃ，ｔｃ，ｒｃ）を（−ｒｘ，−ｒｙ，ｒｚ）と決定することができる。従って、プロセッサ５２０は、決定された（ｓｃ，ｔｃ，ｒｃ）を利用して、Ｚ−ｆａｃｅ上での座標（ｓｆａｃｅ，ｔｆａｃｅ）を決定することができる。
【００６０】
図８は、スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する具体的な実施形態を示す。
【００６１】
プロセッサ５２０は、スクリーンスペース上のピクセルＰ０，Ｐ１について、キューブマップ上の座標を決定することができる。言い換えれば、プロセッサ５２０は、ピクセルＰ０，Ｐ１をキューブマップ上に投影させた地点の座標を決定することができる。
【００６２】
図８は、説明及び理解の便宜のために、ピクセルＰ０及びＰ１それぞれのｙ軸方向の方向ベクトルが０である場合を基準に説明する。図８に図示されているように、ピクセルＰ０のスクリーンスペース上の座標は、（Ｐ０．ｒｘ，０，Ｐ０．ｒｚ）であり、ピクセルＰ１のスクリーンスペース上の座標は、（Ｐ１．ｒｘ，０，Ｐ１．ｒｚ）である。
【００６３】
プロセッサ５２０は、ピクセルＰ０の方向ベクトル（Ｐ０．ｒｘ，０，Ｐ０．ｒｚ）に基づいて、キューブマップ上のピクセルＰ０の座標を、キューブマップのＸ＋ｆａｃｅ上の（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）と決定することができる。例えば、プロセッサ５２０は、図７の表７１０及び数式７２０を利用して、ピクセルＰ０の座標を、キューブマップのＸ＋ｆａｃｅ上の（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）と決定することができる。同様に、プロセッサ５２０は、ピクセルＰ１の方向ベクトル（Ｐ１．ｒｘ，０，Ｐ１．ｒｚ）に基づいて、キューブマップ上のピクセルＰ１の座標を、キューブマップのＺ＋ｆａｃｅ上の（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）と決定することができる。例えば、プロセッサ５２０は、図７の表７１０及び数式７２０を利用して、ピクセルＰ１の座標を、キューブマップのＺ＋ｆａｃｅ上の（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）と決定することができる。
【００６４】
再び、図５を参照すれば、プロセッサ５２０は、コンピュータ実行可能命令語を実行することにより、ピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも１つのピクセルの座標を補正することができる。
【００６５】
まず、プロセッサ５２０は、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。言い換えれば、プロセッサ５２０は、スクリーンスペース上のピクセルが、キューブマップの互いに異なる面に投影されるか否かということを判断することができる。一実施形態により、プロセッサ５２０は、既定のピクセルそれぞれのキューブマップ上の座標が、キューブマップの互いに異なる面に含まれるか否かということにより、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。
【００６６】
また、他の実施形態により、プロセッサ５２０は、ピクセルのスクリーンスペース上での方向ベクトルを基準に、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。具体的には、プロセッサ５２０は、ピクセルのスクリーンスペース上での方向ベクトルに基づいて、ピクセルのMajor  Axis  Directionを決定することができ、ピクセルのMajor  Axis  Directionが互いに異なる場合、ピクセルがキューブマップの互いに異なる面に投影されると判断することができる。図８を例とすれば、プロセッサ５２０は、ピクセルＰ０の方向ベクトル（Ｐ０．ｒｘ，０，Ｐ０．ｒｚ）の座標軸それぞれの大きさ及び符号を基準に、Ｐ０のMajor  Axis  Directionが＋ｘ軸であると決定することができ、ピクセルＰ１の方向ベクトル（Ｐ１．ｒｘ，０，Ｐ１．ｒｚ）の座標軸それぞれの大きさ及び符号を基準に、ピクセルＰ１のMajor  Axis  Directionが−ｚ軸であると決定することができる。従って、プロセッサ５２０は、ピクセルＰ０及びＰ１それぞれが、キューブマップの互いに異なる面に投影されると判断することができる。
【００６７】
次に、プロセッサ５２０は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも１つのピクセルのキューブマップ上の座標を補正することができる。一実施形態により、プロセッサ５２０は、ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、ピクセルのうち他のピクセルのキューブマップ上の座標を補正することができる。例えば、第１ピクセル及び第２ピクセルが互いに異なる面であるＸ＋ｆａｃｅ及びＹ−ｆａｃｅに投影される場合、プロセッサ５２０は、基準ピクセルである第１ピクセルが投影されるＸ＋ｆａｃｅでのｓｆａｃｅ軸及びｔｆａｃｅ軸を基準に、第２ピクセルのキューブマップ上の座標を補正することができる。
【００６８】
また、プロセッサ５２０は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、ピクセルのキューブマップ上の座標を補正することができる。該座標補正テーブルは、ピクセルそれぞれが、対応する面を基準に、ピクセルそれぞれの座標がいかなる演算を介して補正されなければならないかということに係わる情報を含んでもよい。
【００６９】
例えば、プロセッサ５２０は、ピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行い、ピクセルの座標を補正することができる。具体的な例として、プロセッサ５２０は、ピクセルに対して、＋１、−１または＋２に対する加算演算を行い、ピクセルの符号を反転させる反転演算を行うことができる。また、プロセッサ５２０は、ピクセルの座標（ｓｆａｃｅ，ｔｆａｃｅ）の各座標軸値を、（ｔｆａｃｅ、ｓｆａｃｅ）のように、互いに交換（swap）させる演算を行うことができる。
【００７０】
プロセッサ５２０は、コンピュータ実行可能命令語を実行することにより、ピクセルのキューブマップ上の補正された座標を利用して、キューブマップ上において、ピクセルの変化率（derivative）を計算することができる。
【００７１】
ピクセルの変化率とは、スクリーンスペース上において、ピクセルの変化量対比の、キューブマップ上でピクセルの変化量の比率を意味する。具体的には、ピクセルの変化率は、スクリーンスペースの座標軸上において、ピクセル間の距離対比で、キューブマップの座標軸上において、ピクセル間の距離の比率を意味する。また、スクリーンスペースの座標軸上において、ピクセルの距離が一定である場合、プロセッサ５２０は、ピクセルのキューブマップの座標軸上での距離を計算し、ピクセルの変化率を計算することができる。また、プロセッサ５２０は、ピクセルの変化率を近似値として計算することができるが、ピクセルのキューブマップの座標軸上での距離を、ピクセルの変化率でもって計算することができる。
【００７２】
具体的には、プロセッサ５２０は、キューブマップのｓｆａｃｅ座標軸に対するピクセルの変化率として、キューブマップのｓｆａｃｅ座標軸上において、ピクセル間の距離を計算することができる。言い換えれば、プロセッサ５２０は、キューブマップのｓｆａｃｅ座標軸上において、ピクセルそれぞれの座標値の差を計算することができる。また、プロセッサ５２０は、キューブマップのｔｆａｃｅ座標軸に対するピクセルの変化率として、キューブマップのｔｆａｃｅ座標軸上において、ピクセル間の距離を計算することができる。言い換えれば、プロセッサ５２０は、キューブマップのｔｆａｃｅ座標軸上において、ピクセルそれぞれの座標値の差を計算することができる。
【００７３】
図９は、座標補正テーブルを利用して、ピクセルの変化率を計算する実施形態を示す。
【００７４】
プロセッサ５２０は、座標補正テーブル９１０，９２０に基づいて、ピクセルのキューブマップ上の座標を補正することができる。
【００７５】
具体的には、座標補正テーブル９１０は、ピクセルのｓｆａｃｅ座標値を補正するためのテーブルであり、座標補正テーブル９２０は、ｔｆａｃｅ座標値を補正するためのテーブルである。また、各座標補正テーブル９１０，９２０において、「Face  of  Reference」は、ピクセルのうち基準ピクセルが投影される面を示し、「Face  of  adjusted  Pixel」は、座標補正しようとするピクセルが投影される面を示す。
【００７６】
ピクセルＰ０及びピクセルＰ１の場合を例として挙げて説明すれば、ピクセルＰ０のキューブマップ上の座標が、Ｘ−ｆａｃｅ上の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）であり、ピクセルＰ１のキューブマップ上の座標が、Ｙ＋ｆａｃｅ上の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）である。
【００７７】
基準ピクセルがピクセルＰ０である場合、ピクセルＰ０の「Face  of  Reference」と「Face  of  adjusted  Pixel」は、同一にＸ−ｆａｃｅになるので、座標補正テーブル９１０，９２０により、ピクセルＰ０の調整された座標（Ｐ０．ｓａｄｊ，Ｐ０．ｔａｄｊ）は、本来の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）にそのまま維持される。ただし、ピクセルＰ１である場合、ピクセルＰ１の「Face  of  Reference」は、Ｘ−ｆａｃｅになり、ピクセルＰ１の「Face  of  adjusted  Pixel」は、Ｙ＋ｆａｃｅになるので、座標補正テーブル９１０，９２０により、ピクセルＰ１の調整された座標（Ｐ１．ｓａｄｊ，Ｐ１．ｔａｄｊ）は、（Ｐ１．ｔｆａｃｅ，−Ｐ１．ｓｆａｃｅ）になる。
【００７８】
次に、プロセッサ５２０は、ピクセルの補正された座標を利用して、キューブマップ上において、ピクセルの変化率を計算することができる。すなわち、プロセッサ５２０は、ピクセルの補正された座標を利用して、キューブマップのｓｆａｃｅ座標軸上において、ピクセルの変化率である
【００７９】
【数１】
2018101415.tif 000003
を計算することができ、ピクセルの補正された座標を利用して、キューブマップのｔｆａｃｅ座標軸上でピクセルの変化率である
【００８０】
【数２】
2018101415.tif 000004
を計算することができる。
【００８１】
具体的には、プロセッサ５２０は、スクリーンスペースの座標軸上において、ピクセルの距離が一定である場合、スクリーンスペースのｘ座標軸上において、ピクセルの変化率である∂ｘを１と決定することができる。従って、プロセッサ５２０は、キューブマップのｓｆａｃｅ座標軸上でピクセルの変化率である
【００８２】
【数３】
2018101415.tif 000005
を、ｓｆａｃｅ座標軸上において、ピクセルＰ０とピクセルＰ１との座標値の差であるＰ１．ｓａｄｊ−Ｐ０．ｓａｄｊと計算することができる。同様に、プロセッサ５２０は、キューブマップのｔｆａｃｅ座標軸上において、ピクセルの変化率である
【００８３】
【数４】
2018101415.tif 000006
を、ｔｆａｃｅ座標軸上において、ピクセルＰ０とピクセルＰ１との座標値の差であるＰ１．ｔａｄｊ−Ｐ０．ｔａｄｊと計算することができる。
【００８４】
図１０は、ピクセルの座標を補正し、ピクセルの変化率を計算する実施形態を示す。
【００８５】
図１０は、キューブマップ上の投影されたピクセルＰ０，Ｐ１，Ｐ２及びＰ３を図示する。プロセッサ５２０は、ピクセルＰ０，Ｐ１，Ｐ２及びＰ３が、キューブマップ上の互いに異なる面に含まれる場合、ピクセルＰ０，Ｐ１，Ｐ２及びＰ３のキューブマップ上の座標を補正することができる。
【００８６】
一実施形態により、プロセッサ５２０は、ピクセルＰ０及びＰ１が互いに異なる面であるＺ＋ｆａｃｅ及びＹ＋ｆａｃｅに含まれているので、基準ピクセルであるピクセルＰ０が投影されるＺ＋ｆａｃｅの原点及び座標軸を基準に、ピクセルＰ１のキューブマップ上の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）を補正することができる。まず、プロセッサ５２０は、Ｚ＋ｆａｃｅ及びＹ＋ｆａｃｅのｓｆａｃｅ軸の場合、平行であって方向が一致するので、ピクセルＰ１のｓｆａｃｅ座標値は、そのままＰ１．ｓｆａｃｅと決定することができる。次に、プロセッサ５２０は、キューブマップがサイズ１を有する正規化されたキューブマップであるので、Ｙ＋ｆａｃｅの原点が、Ｚ＋ｆａｃｅの原点よりｔｆａｃｅ軸方向に１ほど離れていると判断することができる。従って、プロセッサ５２０は、Ｙ＋ｆａｃｅ上でのピクセルＰ１のｔｆａｃｅ座標値であるＰ．ｔｆａｃｅをＺ＋ｆａｃｅ上でのｔｆａｃｅ座標値である（１−Ｐ．ｔｆａｃｅ）に補正することができる。従って、プロセッサ５２０は、ピクセルＰ１のキューブマップ上の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）を、座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ−１）に補正することができる。同様に、プロセッサ５２０は、ピクセルＰ０と異なる面に投影されるピクセルＰ３のキューブマップ上の座標を補正することができる。
【００８７】
次に、プロセッサ５２０は、ピクセルＰ０の座標、及び補正されたピクセルＰ１の座標に基づいて、ピクセルＰ０及びピクセルＰ１の変化率
【００８８】
【数５】
2018101415.tif 000007
を計算することができる。具体的には、プロセッサ５２０は、ピクセルＰ０の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）、及び補正されたピクセルＰ１の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ−１）に基づいて、ピクセルＰ０及びピクセルＰ１の変化率
【００８９】
【数６】
2018101415.tif 000008
を計算することができる。同様に、プロセッサ５２０は、ピクセルＰ０及びピクセルＰ２の変化率、ピクセルＰ０及びピクセルＰ３の変化率などを計算することができる。
【００９０】
他の実施形態により、プロセッサ５２０は、ピクセルＰ０及びＰ１が互いに異なる面であるＺ＋ｆａｃｅ及びＹ＋ｆａｃｅに含まれているので、座標補正テーブル９１０，９２０に基づいて、ピクセルＰ０のキューブマップ上の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）、及びピクセルＰ１のキューブマップ上の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）を補正することができる。具体的には、プロセッサ５２０は、基準ピクセルをピクセルＰ０と判断し、ピクセルＰ０の「Face  of  Reference」と「Face  of  adjusted  Pixel」は、同一にＺ＋ｆａｃｅになるので、座標補正テーブル９１０，９２０により、ピクセルＰ０の補正された座標（Ｐ０．ｓａｄｊ，Ｐ０．ｔａｄｊ）は、本来の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）にそのまま維持させることができる。次に、プロセッサ５２０は、ピクセルＰ１の場合、「Face  of  Reference」は、Ｚ＋ｆａｃｅになり、「Face  of  adjusted  Pixel」は、Ｙ＋ｆａｃｅになるので、座標補正テーブル９１０，９２０により、ピクセルＰ１の調整された座標（Ｐ１．ｓａｄｊ，Ｐ１．ｔａｄｊ）を（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ−１）に補正することができる。同様に、プロセッサ５２０は、ピクセルＰ０と異なる面に投影されるピクセルＰ３のキューブマップ上の座標を補正することができる。
【００９１】
次に、プロセッサ５２０は、補正されたピクセルＰ０の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）、及び補正されたピクセルＰ１の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ−１）に基づいて、ピクセルＰ０及びピクセルＰ１の変化率
【００９２】
【数７】
2018101415.tif 000009
を計算することができる。同様に、プロセッサ５２０は、ピクセルＰ０及びピクセルＰ２の変化率、ピクセルＰ０及びピクセルＰ３の変化率などを計算することができる。
【００９３】
図１１は、ピクセルの座標を補正し、ピクセルの変化率を計算する他の実施形態を示す。図１１は、キューブマップ上の投影されたピクセルＰ０，Ｐ１，Ｐ２及びＰ３を図示する。プロセッサ５２０は、ピクセルＰ０，Ｐ１，Ｐ２及びＰ３が、キューブマップ上の互いに異なる面に含まれる場合、ピクセルＰ０，Ｐ１，Ｐ２及びＰ３のキューブマップ上の座標を補正することができる。
【００９４】
一実施形態により、プロセッサ５２０は、ピクセルＰ０及びＰ１が互いに異なる面であるＸ＋ｆａｃｅ及びＹ−ｆａｃｅに含まれているので、基準ピクセルであるピクセルＰ０が投影されるＸ＋ｆａｃｅの原点及び座標軸を基準に、ピクセルＰ１のキューブマップ上の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）を補正することができる。まず、プロセッサ５２０は、Ｘ＋ｆａｃｅのｓｆａｃｅ軸と、Ｙ−ｆａｃｅのｔｆａｃｅ軸とが互いに平行であって方向が一致するので、ピクセルＰ１のｓｆａｃｅ座標値をＰ１．ｔｆａｃｅと決定することができる。次に、プロセッサ５２０は、キューブマップがサイズ１を有する正規化されたキューブマップであるので、Ｙ−ｆａｃｅの原点がＸ＋ｆａｃｅの原点よりｔｆａｃｅ軸方向に２ほど離れていると判断することができる。従って、プロセッサ５２０は、Ｙ−ｆａｃｅ上でのピクセルＰ１のｔｆａｃｅ座標値であるＰ１．ｔｆａｃｅを、Ｘ＋ｆａｃｅ上でのｔｆａｃｅ座標値である（２−Ｐ１．ｓｆａｃｅ）に補正することができる。従って、プロセッサ５２０は、ピクセルＰ１のキューブマップ上の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）を、座標（Ｐ１．ｔｆａｃｅ，２−Ｐ１．ｓｆａｃｅ）に補正することができる。同様に、プロセッサ５２０は、ピクセルＰ０と異なる面に投影されるピクセルＰ２及びＰ３のキューブマップ上の座標を補正することができる。
【００９５】
次に、プロセッサ５２０は、ピクセルＰ０の座標、及び補正されたピクセルＰ１の座標に基づいて、ピクセルＰ０及びピクセルＰ１の変化率
【００９６】
【数８】
2018101415.tif 000010
を計算することができる。具体的には、プロセッサ５２０は、ピクセルＰ０の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）、及び補正されたピクセルＰ１の座標（Ｐ１．ｔｆａｃｅ，２−Ｐ１．ｓｆａｃｅ）に基づいて、ピクセルＰ０及びピクセルＰ１の変化率
【００９７】
【数９】
2018101415.tif 000011
を計算することができる。同様に、プロセッサ５２０は、ピクセルＰ０及びピクセルＰ１の変化率、ピクセルＰ０及びピクセルＰ３の変化率などを計算することができる。
【００９８】
他の実施形態により、プロセッサ５２０は、ピクセルＰ０及びＰ１が互いに異なる面であるＸ＋ｆａｃｅ及びＹ−ｆａｃｅに含まれているので、座標補正テーブル９１０，９２０に基づいて、ピクセルＰ０のキューブマップ上の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）、及びピクセルＰ１のキューブマップ上の座標（Ｐ１．ｓｆａｃｅ，Ｐ１．ｔｆａｃｅ）を補正することができる。具体的には、プロセッサ５２０は、基準ピクセルをピクセルＰ０と判断し、ピクセルＰ０の「Face  of  Reference」と「Face  of  adjusted  Pixel」は、同一にＸ＋ｆａｃｅになるので、座標補正テーブル９１０，９２０により、ピクセルＰ０の調整された座標（Ｐ０．ｓａｄｊ，Ｐ０．ｔａｄｊ）は、本来の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）にそのまま維持させることができる。次に、プロセッサ５２０は、ピクセルＰ１の場合、「Face  of  Reference」は、Ｘ＋ｆａｃｅになり、「Face  of  adjusted  Pixel」は、Ｙ−ｆａｃｅになるので、座標補正テーブル９１０，９２０により、ピクセルＰ１の調整された座標（Ｐ１．ｓａｄｊ，Ｐ１．ｔａｄｊ）を、（Ｐ１．ｔｆａｃｅ，２−Ｐ１．ｓｆａｃｅ）に補正することができる。同様に、プロセッサ５２０は、ピクセルＰ０と異なる面に投影されるピクセルＰ２及びピクセルＰ３のキューブマップ上の座標を補正することができる。
【００９９】
次に、プロセッサ５２０は、補正されたピクセルＰ０の座標（Ｐ０．ｓｆａｃｅ，Ｐ０．ｔｆａｃｅ）、及び補正されたピクセルＰ１の座標（Ｐ１．ｔｆａｃｅ，２−Ｐ１．ｓｆａｃｅ）に基づいて、ピクセルＰ０及びピクセルＰ１の変化率
【０１００】
【数１０】
2018101415.tif 000012
を計算することができる。同様に、プロセッサ５２０は、ピクセルＰ０及びピクセルＰ２の変化率、ピクセルＰ０及びピクセルＰ３の変化率などを計算することができる。
【０１０１】
再び図５を参照すれば、プロセッサ５２０は、計算されたピクセルの変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのＬＯＤを決定することができる。該ＬＯＤは、例えば、次のような数式１を利用して計算されるが、それに限定されるものではない。
【０１０２】
【数１１】
2018101415.tif 000013
λは、ＬＯＤの値であり、（∂ｓ／∂ｘ）ｐ０１は、ピクセルＰ０及びＰ１のｓｆａｃｅ座標軸上での変化率であり、（∂ｔ／∂ｘ）ｐ０１は、ピクセルＰ０及びＰ１のｔｆａｃｅ座標軸上での変化率であり、（∂ｓ／∂ｘ）ｐ０２は、ピクセルＰ０及びＰ２のｓｆａｃｅ座標軸上での変化率であり、（∂ｔ／∂ｘ）ｐ０２は、ピクセルＰ０及びＰ２のｔｆａｃｅ座標軸上での変化率である。
【０１０３】
また、一実施形態により、プロセッサ５２０は、隣接するピクセルに対して、前記キューブマップ上での座標を決定する第１演算部、ピクセルそれぞれがキューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも１つのピクセルの座標を補正する第２演算部、補正された座標を利用して、キューブマップ上において、ピクセルの変化率を計算する第３演算部、及び計算された変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのＬＯＤを決定する第４演算部を含んでもよい。
【０１０４】
従って、装置５００は、ピクセルのキューブマップ上の補正された座標から、ピクセルの変化率を直接計算することができるが、該変化率の計算必要な演算器の個数を減らすことができる。具体的には、従来には、ＬＯＤ決定に前提になるピクセルの変化率を計算するために、ピクセルのキューブマップ上の座標を決定する前、スクリーンスペース上で変化率を計算する過程、及び既計算の変化率を利用して、キューブマップ上でピクセルの変化率を計算する過程が要求されるが、かような過程において乗算器、加算器、及び除算器のような多数の演算器が必要であった。ただし、本開示によれば、装置５００は、キューブマップ上でのピクセルの座標に対して、加算演算または反転演算ほどで遂行すればよく、変化率計算に必要な演算器の個数を減らすことができ、それにより、装置５００の面積と消費電力とを減らすことができる。例えば、図９において装置５００は、ｓｆａｃｅ座標軸上及びｔｆａｃｅ座標軸上において、ピクセルの変化率
【０１０５】
【数１２】
2018101415.tif 000014
を計算するために、２つのピクセルの座標補正に必要な演算器、及び補正された２つのピクセルの座標間の差を求めるための演算器のみを必要とする。
【０１０６】
図１２は、一例による、キューブマップをテクスチャリングするためのＬＯＤを決定する方法について説明するための図面である。図１２は、一例により、キューブマップをテクスチャリングするためのＬＯＤを決定する方法について説明するための図面である。図１２に図示された方法は、図５の装置５００、または図１のテクスチャ処理装置１３０の各構成要素によって遂行され、重複説明については省略する。
【０１０７】
段階Ｓ１２１０において、装置５００は、隣接するピクセルについて、キューブマップ上での座標を決定することができる。一実施形態により、装置５００は、スクリーンスペース上において、ピクセルの方向ベクトルを基準に、ピクセルをキューブマップ上に投影させた地点の座標を、ピクセルのキューブマップ上の座標と決定することができる。
【０１０８】
段階Ｓ１２２０において、装置５００は、ピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも１つのピクセルの座標を補正することができる。
【０１０９】
まず、装置５００は、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。言い換えれば、装置５００は、スクリーンスペース上のピクセルが、キューブマップの互いに異なる面に投影されるか否かということを判断することができる。一実施形態により、装置５００は、既定のピクセルそれぞれのキューブマップ上の座標が、キューブマップの互いに異なる面に含まれるか否かということにより、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。また、他の実施形態により、装置５００は、ピクセルのスクリーンスペース上での方向ベクトルを基準に、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。
【０１１０】
次に、装置５００は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも１つのピクセルのキューブマップ上の座標を補正することができる。一実施形態により、装置５００は、ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、ピクセルのうち他のピクセルのキューブマップ上の座標を補正することができる。また、装置５００は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、ピクセルのキューブマップ上の座標を補正することができる。
【０１１１】
例えば、装置５００は、ピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行い、ピクセルの座標を補正することができる。具体的な例として、装置５００は、ピクセルに対して、＋１，−１または＋２に係わる加算演算を行うことができ、ピクセルの符号を反転させる反転演算を行うことができる。また、装置５００は、ピクセルの座標（ｓｆａｃｅ，ｔｆａｃｅ）の各座標軸値を、（ｔｆａｃｅ，ｓｆａｃｅ）のように、互いに交換させる演算を行うことができる。
【０１１２】
段階Ｓ１２３０において、装置５００は、ピクセルのキューブマップ上の補正された座標を利用して、キューブマップ上において、ピクセルの変化率を計算することができる。具体的には、装置５００は、キューブマップの座標軸上において、ピクセル間の距離を、ピクセルの変化率として計算することができる。例えば、装置５００は、キューブマップのｓｆａｃｅ座標軸及びｔｆａｃｅ座標軸に係わるピクセルの変化率として、キューブマップのｓｆａｃｅ座標軸上及びｔｆａｃｅ座標軸上それぞれにおいて、ピクセル間の距離を計算することができる。言い換えれば、装置５００は、キューブマップのｓｆａｃｅ座標軸上及びｔｆａｃｅ座標軸上において、ピクセルそれぞれの座標値の差を計算することができる。
【０１１３】
段階Ｓ１２４０において、装置５００は、計算されたピクセルの変化率に基づいて、ピクセルに、キューブマップをテクスチャリングするためのＬＯＤを決定することができる。
【０１１４】
前述の実施形態による装置は、プロセッサ、プログラムデータを保存して実行するメモリ、ディスクドライブのような永久保存部（permanent  storage）、外部装置と通信する通信ポート、タッチパネル・キー（key）・ボタンのようなユーザインターフェース装置などを含んでもよい。ソフトウェアモジュールまたはアルゴリズムによって具現される方法は、前記プロセッサ上で実行可能なコンピュータで読み取り可能なコードまたはプログラム命令として、コンピュータで読み取り可能な記録媒体上に保存される。ここで、コンピュータで読み取り可能な記録媒体として、マグネチック記録媒体（例えば、ＲＯＭ（read-only  memory）、ＲＡＭ（random  access  memory）、フロッピーディスク、ハードディスクなど）及び光学的判読媒体（例えば、ＣＤ−ＲＯＭ（compact  disc  read  only  memory）、ＤＶＤ（digital  versatile  disc））などがある。コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式により、コンピュータで読み取り可能なコードが保存されて実行される。該媒体は、コンピュータによって読み取り可能であり、メモリに保存され、プロセッサでも実行される。
【０１１５】
本実施形態は、機能的なブロック構成、及び多様な処理段階でもって示される。かような機能ブロックは、特定機能を実行する多様な個数のハードウェア構成または／及びソフトウェア構成によっても具現される。例えば、一実施形態は、１以上のマイクロプロセッサの制御、または他の制御装置によって多様な機能を実行することができる、メモリ、プロセッシング、ロジック（logic）、ルックアップテーブル（look-uptable）のような直接回路構成を採用することができる。構成要素が、ソフトウェアプログラミングまたはソフトウェア要素で実行されることができるように、本実施形態は、データ構造、プロセス、ル−チン、または他のプログラミング構成の組み合わせによって具現される多様なアルゴリズムを含み、Ｃ、Ｃ＋＋、ジャバ（Java（登録商標））、アセンブラ（assembler）のようなプログラミング言語またはスクリプティング言語によっても具現される。機能的な側面は、１以上のプロセッサで実行されるアルゴリズムによっても具現される。また、本実施形態は、電子的な環境設定、信号処理、及び／またはデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」のような用語は、汎用され、機械的であって物理的な構成として限定されるものではない。前記用語は、プロセッサなどと連繋し、ソフトウェアの一連処理（routines）の意味を含んでもよい。
【０１１６】
本実施形態で説明する特定実行は、例示であり、いかなる方法によっても、技術的範囲を限定するものではない。明細書の簡潔さのために、従来の電子的な構成、制御システム、ソフトウェア、前記システムの他の機能的な側面の記載は省略される。また、図面に図示された構成要素間の線の連結、または連結部材は、機能的な連結及び／または物理的または回路的な連結を例示的に示したものであり、実際の装置においては、代替可能であったり追加されたりする多様な機能的な連結、物理的な連結または回路の連結としても示される。
【０１１７】
本明細書（特に、特許請求の範囲で）において、「前記」の用語、及びそれと類似した指示用語の使用は、単数及び複数のいずれにも該当する。また、範囲（range）を記載した場合、前記範囲に属する個別的な値を含み（それに反する記載がなければ）、詳細な説明に、前記範囲を構成する各個別的な値を記載した通りである。最後に、方法を構成する段階について、明白に順序を記載したり、それに反したりする記載がなければ、前記段階は、適する順序によって遂行される。必ずしも前記段階の記載順序に限定されるものではない。全ての例または例示的な用語（例えば、など）の使用は、単に技術的思想について詳細に説明するためのものであり、特許請求の範囲によって限定されない以上、前記例または例示的な用語によって、範囲が限定されるものではない。また、当業者は、多様な修正、組み合わせ及び変更が付加された特許請求の範囲またはその均等物の範疇内で、設計条件及びファクタによっても構成されるということが理解することができるであろう。
【産業上の利用可能性】
【０１１８】
本発明の、キューブマップをテクスチャリングするためのＬＯＤを決定する方法、及びその装置は、例えば、グラフィックス関連の技術分野に効果的に適用可能である。
【符号の説明】
【０１１９】
１００    グラフィック処理装置
１１０    ラスタライザ
１２０    シェーダコア
１３０    テクスチャ処理装置
１４０    ピクセル処理装置
１５０    タイルバッファ
２００，５１０    メモリ
３００    バス
３０１    ピクセル
３０２    テクスチャ
５００    装置
５２０    プロセッサ
【図１】
2018101415.tif 000015
【図２】
2018101415.tif 000016
【図３】
2018101415.tif 000017
【図４】
2018101415.tif 000018
【図５】
2018101415.tif 000019
【図６】
2018101415.tif 000020
【図７】
2018101415.tif 000021
【図８】
2018101415.tif 000022
【図９】
2018101415.tif 000023
【図１０】
2018101415.tif 000024
【図１１】
2018101415.tif 000025
【図１２】
2018101415.tif 000026