(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-28
(45)【発行日】2022-07-06
(54)【発明の名称】キューブマップをテクスチャリングするためのLODを決定する方法、装置、コンピュータプログラム及び記録媒体
(51)【国際特許分類】
G06T 15/04 20110101AFI20220629BHJP
【FI】
G06T15/04
(21)【出願番号】P 2017233437
(22)【出願日】2017-12-05
【審査請求日】2020-11-30
(31)【優先権主張番号】10-2016-0174769
(32)【優先日】2016-12-20
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
【住所又は居所原語表記】129,Samsung-ro,Yeongtong-gu,Suwon-si,Gyeonggi-do,Republic of Korea
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】姜 錫
【審査官】板垣 有紀
(56)【参考文献】
【文献】米国特許出願公開第2005/0017983(US,A1)
【文献】特開2006-244426(JP,A)
【文献】米国特許第06975319(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/04
(57)【特許請求の範囲】
【請求項1】
キューブマップをテクスチャリングするための詳細レベル(LOD)を決定する方法において、
スクリーン空間の第1及び第2ピクセルの座標を決定する段階であって、前記第1及び第2ピクセルはそれぞれ第1キューブマップ座標及び第2キューブマップ座標に位置する前記キューブマップの第1及び第2キューブマップ・ピクセルにマッピングされる、段階と、
前記第1及び第2ピクセルそれぞれが、前記キューブマップの第1及び第2面に投影される場合に、前記第2キューブマップ・ピクセルの座標を変換する段階であって、前記第1面を基準面として指定し、キューブマップ・ピクセルの座標は「s」軸成分及び「t」軸成分により規定され、前記t軸は前記s軸に垂直である、段階と、
変換された座標を利用して、前記s軸及び前記t軸それぞれに沿って前記第1キューブマップ・ピクセルと前記第2キューブマップ・ピクセルとの間の成分距離を計算することにより、前記第1ピクセルの前記第2ピクセルに対する微分係数(∂s/∂x)
p01及び(∂t/∂x)
p01を計算する段階であって、「x」は前記スクリーン空間の座標軸を示し、p01は前記第1ピクセルと前記第2ピクセルとの間の関係を示す、段階と、
前記s軸及び前記t軸それぞれに沿って第3ピクセルが投影される第3キューブマップ・ピクセルと前記第1キューブマップ・ピクセルとの間の成分距離を計算することにより、前記第1ピクセルの、前記スクリーン空間の第3ピクセルに対する微分係数(∂s/∂x)
p02及び(∂t/∂x)
p02を計算する段階であって、p02は前記第1ピクセルと前記第3ピクセルとの間の関係を示す、段階と、
計算された微分係数に基づいて、前記キューブマップをテクスチャリングするためのLODの値λを、
【数1】
に従って決定する段階と、
を含む方法。
【請求項2】
前記変換する段階は、
前記キューブマップ・ピクセルの座標に要求される変換演算に係わる情報を含む座標変換テーブルに基づいて、前記キューブマップ・ピクセルの座標を変換することを特徴とする請求項1に記載の方法。
【請求項3】
前記変換する段階は、
前記第1又は第2キューブマップ・ピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行うことを特徴とする請求項1に記載の方法。
【請求項4】
前記キューブマップは、
正規化された大きさを有する6個の正方形の面を含む正六面体のテクスチャであることを特徴とする請求項1に記載の方法。
【請求項5】
前記変換する段階は、
スクリーン空間での前記第1及び第2ピクセルの方向ベクトルに基づいて、少なくとも前記第1及び第2ピクセルそれぞれが、前記キューブマップの互いに異なる面に対応するか否かを判断する段階を含むことを特徴とする請求項1に記載の方法。
【請求項6】
キューブマップをテクスチャリングするための詳細レベル(LOD)を決定する装置において、
コンピュータ実行可能命令を保存するメモリと、
プロセッサと、
を含み、前記プロセッサは、前記コンピュータ実行可能命令を実行することにより:
スクリーン空間の第1及び第2ピクセルの座標を決定する段階であって、前記第1及び第2ピクセルはそれぞれ第1キューブマップ座標及び第2キューブマップ座標に位置する前記キューブマップの第1及び第2キューブマップ・ピクセルにマッピングされる、段階と、
前記第1及び第2ピクセルそれぞれが、前記キューブマップの第1及び第2面に投影される場合に、前記第2キューブマップ・ピクセルの座標を変換する段階であって、前記第1面を基準面として指定し、キューブマップ・ピクセルの座標は「s」軸成分及び「t」軸成分により規定され、前記t軸は前記s軸に垂直である、段階と、
変換された座標を利用して、前記s軸及び前記t軸それぞれに沿って前記第1キューブマップ・ピクセルと前記第2キューブマップ・ピクセルとの間の成分距離を計算することにより、前記第1ピクセルの前記第2ピクセルに対する微分係数(∂s/∂x)
p01及び(∂t/∂x)
p01を計算する段階であって、「x」は前記スクリーン空間の座標軸を示し、p01は前記第1ピクセルと前記第2ピクセルとの間の関係を示す、段階と、
前記s軸及び前記t軸それぞれに沿って第3ピクセルが投影される第3キューブマップ・ピクセルと前記第1キューブマップ・ピクセルとの間の成分距離を計算することにより、前記第1ピクセルの、前記スクリーン空間の第3ピクセルに対する微分係数(∂s/∂x)
p02及び(∂t/∂x)
p02を計算する段階であって、p02は前記第1ピクセルと前記第3ピクセルとの間の関係を示す、段階と、
計算された微分係数に基づいて、前記キューブマップをテクスチャリングするためのLODの値λを、
【数2】
に従って決定する段階と、
を実行する装置。
【請求項7】
前記プロセッサは、
前記キューブマップ・ピクセルの座標に要求される変換演算に係わる情報を含む座標変換テーブルに基づいて、前記キューブマップ・ピクセルの座標を変換することを特徴とする請求項6に記載の装置。
【請求項8】
前記プロセッサは、
前記第1又は第2キューブマップ・ピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行うことを特徴とする請求項6に記載の装置。
【請求項9】
前記プロセッサは、
スクリーン空間での前記
第1及び第2ピクセルの方向ベクトルに基づいて、前記第1及び第2ピクセルそれぞれが、前記キューブマップの互いに異なる面に対応するか否かを判断することを特徴とする請求項6に記載の装置。
【請求項10】
前記プロセッサは、
前記キューブマップにおける前記第1及び第2ピクセルの座標を決定する第1処理要素と、
前記第2キューブマップ・ピクセルの座標を変換する第2処理要素と、
前記キューブマップにおいて、前記
第1及び第2ピクセルの微分係数を計算する第3処理要素と、
前記キューブマップをテクスチャリングするための前記LODを決定する第4処理要素と、
を含むことを特徴とする請求項6に記載の装置。
【請求項11】
プログラムを記録した非一時的なコンピュータ読み取り可能な記録媒体であって、前記プログラムは、グラフィックス処理装置のプロセッサにより実行されると、キューブマップをテクスチャリングするための詳細レベル(LOD)を決定する方法を実行し、前記方法は:
スクリーン空間の第1及び第2ピクセルの座標を決定する段階であって、前記第1及び第2ピクセルはそれぞれ第1キューブマップ座標及び第2キューブマップ座標に位置する前記キューブマップの第1及び第2キューブマップ・ピクセルにマッピングされる、段階と、
前記第1及び第2ピクセルそれぞれが、前記キューブマップの第1及び第2面に投影される場合に、前記第2キューブマップ・ピクセルの座標を変換する段階であって、前記第1面を基準面として指定し、キューブマップ・ピクセルの座標は「s」軸成分及び「t」軸成分により規定され、前記t軸は前記s軸に垂直である、段階と、
変換された座標を利用して、前記s軸及び前記t軸それぞれに沿って前記第1キューブマップ・ピクセルと前記第2キューブマップ・ピクセルとの間の成分距離を計算することにより、前記第1ピクセルの前記第2ピクセルに対する微分係数(∂s/∂x)
p01及び(∂t/∂x)
p01を計算する段階であって、「x」は前記スクリーン空間の座標軸を示し、p01は前記第1ピクセルと前記第2ピクセルとの間の関係を示す、段階と、
前記s軸及び前記t軸それぞれに沿って第3ピクセルが投影される第3キューブマップ・ピクセルと前記第1キューブマップ・ピクセルとの間の成分距離を計算することにより、前記第1ピクセルの、前記スクリーン空間の第3ピクセルに対する微分係数(∂s/∂x)
p02及び(∂t/∂x)
p02を計算する段階であって、p02は前記第1ピクセルと前記第3ピクセルとの間の関係を示す、段階と、
計算された微分係数に基づいて、前記キューブマップをテクスチャリングするためのLODの値λを、
【数3】
に従って決定する段階と、
を含む、記録媒体。
【請求項12】
前記変換する段階は、
スクリーン空間での前記
第1及び第2ピクセルの方向ベクトルに基づいて、少なくとも前記第1及び第2ピクセルそれぞれが、前記キューブマップの互いに異なる面に対応するか否かを判断する段階を含むことを特徴とする請求項11に記載の記録媒体。
【請求項13】
請求項1ないし5のうちいずれか1項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キューブマップをテクスチャリングするためのレベル・オブ・ディテール(level of detail:LOD)を決定する方法、装置、コンピュータプログラム及び記録媒体等に関する。
【背景技術】
【0002】
三次元グラフィックシステムにおいて、さらに臨場感ある映像を得るための方法の一環として、テクスチャリング技術またはテクスチャマッピング(texture mapping)技術が活用されている。該テクスチャリングまたはテクスチャマッピングとは、三次元物体の表面に質感を与えるために、二次元イメージを三次元物体表面に加えることを意味する。ここで、該テクスチャは、二次元イメージを意味し、テクスチャ内の各点は、テクセル(texel)であり、スクリーンスペース上のピクセルに対応する。三次元グラフィックスパイプラインが行われながら、二次元スクリーンスペースの各ピクセルに対応する三次元スペース上のオブジェクト表面が決定されれば、オブジェクト表面に該当するテクスチャ座標を有するテクセルが計算され、それにより、ピクセルとテクセルとのテクスチャマッピングが行われる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明が解決しようとする課題は、キューブマップをテクスチャリングするためのLODを決定する方法、及びその装置を提供するところにある。本実施形態が解決しようとする技術的課題は、前記のような技術的課題に限定されるものではなく、以下の実施形態から他の技術的課題が類推されてもよい。
【課題を解決するための手段】
【0004】
一側面によって、キューブマップ(cube map)をテクスチャリングするためのLODを決定する方法は、隣接するピクセルについて、キューブマップ上での座標を決定する段階と、ピクセルそれぞれがキューブマップの互いに異なる面(face)に対応する場合、ピクセルのうち少なくとも1つのピクセルの座標を補正する段階と、補正された座標を利用して、キューブマップ上でピクセルの変化率(derivative)を計算する段階と、計算された変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのLODを決定する段階と、を含んでもよい。
【0005】
また、補正する段階は、ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、ピクセルのうち他のピクセルの座標を補正することができる。
【0006】
また、補正する段階は、ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、ピクセルの座標を補正することができる。
【0007】
また、ピクセルの変化率を計算する段階は、キューブマップの座標軸上において、ピクセル間の座標値差(difference)を、ピクセルの変化率として計算することができる。
【0008】
また、該キューブマップは、正規化された大きさを有する6個の正方形面から構成された正六面体のテクスチャでもある。
【0009】
また、補正する段階は、スクリーンスペース上でのピクセルの方向ベクトルを基準に、ピクセルそれぞれがキューブマップの互いに異なる面に対応するか否かということを判断する段階を含んでもよい。
【0010】
他の側面による、キューブマップをテクスチャリングするためのLODを決定する装置は、コンピュータ実行可能命令語(computer executable instruction)を保存するメモリと、コンピュータ実行可能命令語を実行することにより、隣接するピクセルについて、キューブマップ上での座標を決定し、ピクセルそれぞれがキューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも1つのピクセルの座標を補正し、補正された座標を利用して、キューブマップ上でピクセルの変化率を計算し、計算された変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのLODを決定するプロセッサと、を含んでもよい。
【0011】
さらに他の側面によって、キューブマップをテクスチャリングするためのLODを決定する方法を具現するためのプログラムが記録されたコンピュータで判読可能な記録媒体が提供される。
【発明の効果】
【0012】
本実施形態によれば、ピクセルのキューブマップ上の補正された座標から、ピクセルの変化率を直接計算することができるが、変化率を計算するのに必要な演算器の個数を減らすことができ、それにより、装置の面積と消費電力とを減らすことができる。
【図面の簡単な説明】
【0013】
【
図1】一実施形態によるグラフィック処理装置を示した図面である。
【
図2】グラフィック処理装置が三次元グラフィックスを処理する過程について説明する図面である。
【
図3】テクスチャマッピングについて説明するための図面である。
【
図4】ミップマップについて説明するための図面である。
【
図5】一実施形態による、キューブマップをテクスチャリングするためのLODを決定する装置を示す図面である。
【
図6】スクリーンスペース上の座標系と、キューブマップ上の座標系との一実施形態を示す図面である。
【
図7】スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する実施形態を示す図面である。
【
図8】スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する具体的な実施形態を示す図面である。
【
図9】座標補正テーブルを利用して、ピクセルの変化率を計算する実施形態を示す図面である。
【
図10】ピクセルの座標を補正し、ピクセルの変化率を計算する実施形態を示す図面である。
【
図11】ピクセルの座標を補正し、ピクセルの変化率を計算する他の実施形態を示す図面である。
【
図12】一実施形態により、キューブマップをテクスチャリングするためのLODを決定する方法について説明するための図面である。
【発明を実施するための形態】
【0014】
以下、添付された図面を参照しながら、ただ例示のための実施形態について詳細に説明する。下記実施形態は、技術的内容を具体化させるためのものであり、権利範囲を制限したり限定したりするものではないということは、いうまでもない。詳細な説明、及び実施形態から、当該技術分野の専門家が容易に類推することができることは、権利範囲に属するものと解釈される。
【0015】
本明細書で使用される「構成される」または「含む」というような用語は、明細書上に記載された多くの構成要素、または多くの段階を必ずいずれも含むものであると解釈されるものではなく、そのうち一部構成要素または一部段階は、含まれないこともあり、または追加される構成要素または段階をさらに含んでもよいと解釈されなければならない。
【0016】
また、本明細書で使用される「第1」または「第2」のように序数を含む用語は、多様な構成要素についての説明に使用されるが、前記構成要素は、前記用語によって限定されるものではない。前記用語は、1つの構成要素を他の構成要素から区別する目的にのみ使用される。
【0017】
本実施形態は、キューブマップ(cube map)というテクスチャを処理する方法、及びその装置に係わるものであり、以下の実施形態が属する技術分野で当業者に周知されている事項については、詳細な説明を省略する。
【0018】
図1は、一実施形態によるグラフィック処理装置を示した図面である。
【0019】
図1に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいということは、関連技術分野で当業者であるならば、理解することができるであろう。
【0020】
図1を参照すれば、グラフィック処理装置100は、ラスタライザ(rasterizor)110、シェーダコア(shader core)120、テクスチャ処理装置(texture processing unit)130、ピクセル処理装置(pixel processing unit)140、タイルバッファ(tile buffer)150などを含んでもよい。グラフィック処理装置100は、バス(bus)300を介して、外部のメモリ200とデータを送受信することができる。
【0021】
図1に図示されたグラフィック処理装置100は、三次元グラフィックスを処理する装置であり、タイルに基づいたレンダリング(TBR:tile based rendering)方式を使用することができる。言い替えれば、グラフィック処理装置100は、1つのフレームに該当する三次元グラフィックスを生成するために、一定サイズに分割された複数個のタイルを、ラスタライザ110、シェーダコア120、ピクセル処理装置140を通過させ、処理結果をタイルバッファ150に保存することができる。グラフィック処理装置100は、フレームを構成する全てのタイルに対して、ラスタライザ110、シェーダコア120及びピクセル処理装置140で構成されるチャネルを複数個利用して、並列処理することができる。グラフィック処理装置100は、1つのフレームに該当する複数個のタイルが処理されれば、タイルバッファ150に保存された処理結果を、メモリ200のフレームバッファ(図示せず)に伝送することができる。
【0022】
ラスタライザ110は、幾何変換過程を経て、バーテックスシェーダ(vertex shader)から生成されたプリミティブ(primitive)に対して、ラスタ化(rasterization)を行うことができる。
【0023】
シェーダコア120は、ラスタライザ110からラスタ化されたプリミティブを伝達され、ピクセルシェーディングを行うことができる。シェーダコア120は、ラスタ化を経て生成されたプリミティブのフラグメントを含むタイルに対して、タイルを構成する全てのピクセルの色相を決定するピクセルシェーディングを行うことができる。シェーダコア120は、ピクセルシェーディング過程において、立体的で臨場感ある三次元グラフィックスを生成するために、テクスチャを利用して生成されたピクセル値を使用することができる。
【0024】
シェーダコア120は、ピクセルシェーダ(pixel shader)を含んでもよい。また、シェーダコア120は、バーテックスシェーダをさらに含んだ形態でもあり、バーテックスシェーダとピクセルシェーダとが統合された形態の統合シェーダでもある。シェーダコア120がバーテックスシェーダの機能を遂行することができる場合、オブジェクトを示すプリミティブを生成し、ラスタライザ110に伝達することができる。
【0025】
シェーダコア120が、所望ピクセルに対応するピクセル値を伝達することをテクスチャ処理装置130に要請すれば、テクスチャ処理装置130は、あらかじめ準備したテクスチャを処理して生成されたピクセル値を伝達する。該テクスチャは、テクスチャ処理装置130の内部または外部の所定空間、またはグラフィック処理装置100外部のメモリ200に保存されてもよい。テクスチャ処理装置130は、シェーダコア120で要請したピクセル値の生成に利用されるテクスチャが、テクスチャ処理装置130内部の所定空間にない場合、テクスチャ処理装置130外部の空間、またはメモリ200からテクスチャを持ってきて使用することができる。
【0026】
ピクセル処理装置140は、1つのタイル内の同一位置に対応するピクセルに対して、デプステストのような過程を経て、最終的に表示されるピクセル値を決定し、1つのタイルに該当する全てのピクセル値を決定することができる。
【0027】
タイルバッファ150は、ピクセル処理装置140から伝達された1つのタイルに該当する全てのピクセル値を保存することができる。1つのフレームを構成する全てのタイルに対するグラフィック処理過程が完了すれば、タイルバッファ150に保存された処理結果が、メモリ200のフレームバッファに伝達される。
【0028】
図2は、グラフィック処理装置が三次元グラフィックスを処理する過程について説明する図面である。
【0029】
三次元グラフィックスを処理する過程は、大別して、幾何変換、ラスタ化、ピクセルシェーディングの3段階に分けることができ、以下、
図2を参照し、さらに詳細な過程について説明する。具体的には、
図2は、段階11ないし段階18を通じて、三次元グラフィックスを処理する過程を示す。
【0030】
段階11は、バーテックス(vertices)を生成する段階である。該バーテックスは、三次元グラフィックスに含まれた客体(object)を示すために生成される。
【0031】
段階12は、生成されたバーテックスをシェーディング(shading)する段階である。バーテックスシェーダ(vertex shader)は、段階11で生成されたバーテックスの位置を指定することにより、バーテックスに対するシェーディングを遂行することができる。
【0032】
段階13は、プリミティブ(primitive)を生成する(generate)段階である。該プリミティブは、1以上のバーテックスを利用して形成される点、線、多角形(polygon)などを意味する。例えば、該プリミティブは、3個のバーテックスが連結された三角形でもある。
【0033】
段階14は、プリミティブをラスタ化(rasterization)する段階である。プリミティブのラスタ化は、プリミティブをフラグメントに分割することを意味する。該フラグメントは、プリミティブに対するグラフィックス処理を行うための基本単位でもある。該プリミティブは、バーテックスに係わる情報のみを含むので、ラスタライジングを介して、バーテックスとバーテックスとの間のフラグメントが生成されることにより、三次元グラフィックス処理が行われる。
【0034】
段階15は、ピクセルをシェーディングする(pixel shading)段階である。ラスタ化によって生成された、プリミティブを構成するフラグメントは、ピクセルにもなる。当該分野において、フラグメント及びピクセルという用語は、場合によっては、混用されて使用される。例えば、ピクセルシェーダは、フラグメントシェーダとも呼称される。一般的に、プリミティブを構成するグラフィック処理の基本単位をフラグメントと呼び、その後、ピクセルシェーディングから、グラフィック処理の基本単位をピクセルと称する。ピクセルシェーディングによって、ピクセル値、属性など(例えば、ピクセルの色)が決定される。
【0035】
段階16は、ピクセルの色を決定するためのテクスチャリング(texturing)段階である。該テクスチャリングは、あらかじめ準備したイメージであるテクスチャを利用して、ピクセルの色を決定する過程である。このとき、多様な色相と、パターンの様子とを表現するために、それぞれのピクセル色相を計算して決定することは、グラフィック処理に必要なデータ演算量とグラフィック処理時間とを増大させるので、グラフィック処理装置は、あらかじめ準備されたテクスチャを利用して、ピクセルの色相を決定することができる。
【0036】
段階17は、テスト及びミキシング(testing and mixing)段階である。デプステスト、カーリング(curling)、クリッピング(clipping)などにより、最終的に表示されるピクセル値が決定される。
【0037】
段階18は、段階11ないし段階17を介して生成されたフレームをフレームバッファ(frame buffer)に保存し、フレームバッファに保存されたフレームを、ディスプレイ装置を介して表示する段階である。
【0038】
図2で説明された三次元グラフィックスを処理する過程は、概括的なものであり、さらに詳細な過程については、当該技術分野の通常の技術者に自明であろう。
【0039】
図3は、テクスチャマッピングについて説明するための図面である。
【0040】
図3を参照すれば、ラスタライジングによって、スクリーンスペース上のピクセル301が生成された場合、テクスチャ処理装置130は、ピクセル301にマッピングされるテクスチャ302を決定することができる。このとき、テクスチャ302は、三次元客体表面の色相、質感及びパターンなどに係わる情報を有するイメージと定義され、テクスチャ空間上のテクセル(texel)単位で構成される。
【0041】
一方、客体の大きさは、スクリーンスペース上で連続的に変わるために、全てのピクセル301に対応するテクスチャ302をあらかじめ準備することは困難である。従って、テクスチャ処理装置130は、1つのテクスチャ、または複数のテクスチャを利用した補間(interpolation)作業を介して、ピクセル301の値を推定するテクスチャフィルタリングを行う。
【0042】
一方、テクスチャ処理装置130は、スクリーンスペース上の隣接するピクセルにマッピングされるキューブマップを決定することができる。該キューブマップは、6個の面(face)から構成された正六面体のテクスチャを意味する。例えば、該キューブマップは、特定視点(viewpoint)から見た周辺環境を表現する6個の面から構成されてもよい。また、該キューブマップは、グラフィック処理において、多様な効果又はエフェクト(effect)のために利用されてもよい。例えば、該キューブマップは、レンダリングしようとする場面内での反射(reflection)及び光効果(lighting effect)のためのソースデータにも利用される。従って、テクスチャ処理装置130は、あらかじめ準備されたキューブマップを利用して、テクスチャリングを行うことができる。
【0043】
図4は、ミップマップについて説明するための図面である。
【0044】
テクスチャ処理装置130は、スクリーンスペース上で変化する客体の大きさに適応的に対応するように、あらかじめ準備されたテクスチャを利用することができる。このとき、基本テクスチャと、それを縮小させたテクスチャとからなるビットマップイメージの集合をミップマップ(mipmap)という。
【0045】
このとき、他のレベルのミップマップは、解像度が異なる。
図4を参照すれば、レベル0ミップマップ410は、テクスチャのうち解像度が最も高いテクスチャであり、基本テクスチャを意味する。レベル0ミップマップ410を表現するために、8×8テクセルが必要である。また、基本テクスチャの大きさより1/4縮小されたミップマップは、レベル1ミップマップ411である。レベル1ミップマップ411を表現するために、4×4テクセルが必要である。また、基本テクスチャの大きさより1/16縮小されたミップマップは、レベル2ミップマップ412でもある。レベル2ミップマップ412を表現するために、2×2テクセルが必要である。
【0046】
一方、視点とピクセルとの距離が変わることにより、ピクセルにマッピングされるテクスチャが異なりもする。例えば、道路のタイルをスクリーン空間に表示するとき、視点で近いタイルに対応するピクセルにマッピングされるテクスチャは、解像度が高いレベル0ミップマップ410でもある。また、視点から遠く離れた道路のタイルに対応するピクセルにマッピングされるテクスチャは、解像度が低いレベル2ミップマップ412でもある。すなわち、複数のミップマップを利用する場合、遠い距離にある客体は、低い解像度で表現されるために、グラフィック処理装置は、三次元グラフィックを自然に表現することができる。併せて、異なるテクスチャがマッピングされたピクセルの境界面においてテクスチャフィルタリングが行われれば、三次元グラフィックの品質が向上することができる。
【0047】
一方、
図4では、二次元のテクスチュアを基準に、複数のミップマップについて説明したが、6個のテクスチャ面から構成されたキューブマップにも、複数のミップマップが用意されて利用される。
【0048】
また、スクリーンスペース上のピクセルにマッピングさせるテクスチャは、グラフィックのLOD(level of detail)に基づいて決定される。ここで、該LODは、三次元グラフィックイメージを表現する精度を段階化したものを意味する。テクスチャ処理装置130は、ピクセル情報を受信した後、グラフィックのLOD値を決定し、決定されたLOD値によってテクスチャフィルタリングを行うとき、必要なミップマップを決定することができる。例えば、テクスチャ処理装置は、2×2ピクセルで構成されたクアッド(quad)単位でグラフィックのLOD値を計算することができるが、LOD値を計算するときに必要なピクセルの数は、それに制限されるものではない。
【0049】
同様に、スクリーンスペース上のピクセルにマッピングさせるキューブマップは、グラフィックのLODに基づいて決定される。従って、テクスチャ処理装置130は、ピクセル情報を受信した後、グラフィックのLOD値を決定し、決定されたLOD値によってテクスチャフィルタリングを行うときに必要なミップマップを決定することができる。
【0050】
図5は、一実施形態による、キューブマップをテクスチャリングするためのLODを決定する装置を示す。
【0051】
装置500は、メモリ510及びプロセッサ520を含んでもよい。一方、
図5に図示された装置500は、キューブマップをテクスチャリングするためのLODを決定する実施形態に係わる構成要素が主に図示されている。従って、
図5に図示された構成要素以外に、他の汎用的な構成要素がさらに含まれてもよいことは、当該技術分野の通常の技術者であるならば、理解することができるであろう。また、一実施形態により、装置500は、
図1のテクスチャ処理装置130にも含まれ、テクスチャ処理装置130内の細部構成によっても具現されるが、それに制限されるものではない。
メモリ510は、コンピュータ実行可能命令語(computer executable instruction)を保存することができる。
【0052】
プロセッサ520は、メモリ510に保存されたコンピュータ実行可能命令語を実行することにより、隣接するピクセルについて、キューブマップ上での座標を決定することができる。言い換えれば、プロセッサ520は、隣接するピクセルそれぞれのスクリーンスペース上の座標を、テクスチャスペースであるキューブマップ上の座標に変換することができる。一実施形態により、プロセッサ520は、スクリーンスペース上において、ピクセルの方向ベクトルを基準に、ピクセルをキューブマップ上に投影(project)させた地点の座標を、ピクセルのキューブマップ上の座標として決定することができる。以下、
図6ないし
図8において、ピクセルのキューブマップ上の座標を決定する具体的な実施形態について述べる。
【0053】
図6は、スクリーンスペース上の座標系と、キューブマップ上の座標系との一実施形態を示す。
【0054】
図6において、スクリーンスペースは、互いに直交するx軸、y軸及びz軸によって構成された三次元座標系を有し、キューブマップは、6個の面ごとそれぞれに、原点を基準に、s
face軸及びt
face軸に構成された二次元座標系を有することができる。具体的には、キューブマップの中心に、スクリーンスペース上の原点が位置すると仮定することができ、キューブマップは、+x軸と交差するX+face、-x軸と交差するX-face、+y軸と交差するY+face、-y軸と交差するY-face、+z軸と交差するZ+face、及び-z軸と交差するZ-faceを含み、6個の面それぞれは、各面の原点を基準に、s
face軸及びt
face軸に構成された二次元座標系を有することができる。
【0055】
図7は、スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する実施形態を示す。
【0056】
プロセッサ520は、表710及び数式720に基づいて、キューブマップ上でのピクセルの座標を決定することができる。
【0057】
スクリーンスペース上でのピクセルの方向ベクトルが、(rx,ry,rz)(ただし、rx、ry、rzそれぞれは、実数である)である場合、プロセッサ520は、ピクセルのrx、ry及びrzそれぞれの大きさ、並びに符号を基準に、主軸方向(Major Axis Direction)を決定することができ、続いてキューブ・マップ面(Cube Map Face)、sc、tc及びrcを決定することができる。
【0058】
例えば、ピクセルのrx、ry及びrzのうちrxの大きさが最も大きく、符号が正数である場合、プロセッサ520は、ピクセルのMajor Axis Direction)が+x軸であると決定することができ、それにより、ピクセルが、キューブマップのうちX+faceに該当すると決定することができ、ピクセルの(sc,tc,rc)を(-rz,-ry,rx)と決定することができる。従って、プロセッサ520は、決定された(sc,tc,rc)を利用して、X+face上での座標(sface,tface)を決定することができる。
【0059】
同様に、ピクセルのrx、ry及びrzのうちrzが大きさが最も大きく、符号が負数である場合、プロセッサ520は、ピクセルのMajor Axis Directionが-z軸であると決定することができ、それにより、ピクセルが、キューブマップのうちZ-faceに該当すると決定することができ、ピクセルの(sc,tc,rc)を(-rx,-ry,rz)と決定することができる。従って、プロセッサ520は、決定された(sc,tc,rc)を利用して、Z-face上での座標(sface,tface)を決定することができる。
【0060】
図8は、スクリーンスペース上のピクセルについて、キューブマップ上の座標を決定する具体的な実施形態を示す。
【0061】
プロセッサ520は、スクリーンスペース上のピクセルP0,P1について、キューブマップ上の座標を決定することができる。言い換えれば、プロセッサ520は、ピクセルP0,P1をキューブマップ上に投影させた地点の座標を決定することができる。
【0062】
図8は、説明及び理解の便宜のために、ピクセルP0及びP1それぞれのy軸方向の方向ベクトルが0である場合を基準に説明する。
図8に図示されているように、ピクセルP0のスクリーンスペース上の座標は、(P0.rx,0,P0.rz)であり、ピクセルP1のスクリーンスペース上の座標は、(P1.rx,0,P1.rz)である。
【0063】
プロセッサ520は、ピクセルP0の方向ベクトル(P0.rx,0,P0.rz)に基づいて、キューブマップ上のピクセルP0の座標を、キューブマップのX+face上の(P0.s
face,P0.t
face)と決定することができる。例えば、プロセッサ520は、
図7の表710及び数式720を利用して、ピクセルP0の座標を、キューブマップのX+face上の(P0.s
face,P0.t
face)と決定することができる。同様に、プロセッサ520は、ピクセルP1の方向ベクトル(P1.rx,0,P1.rz)に基づいて、キューブマップ上のピクセルP1の座標を、キューブマップのZ+face上の(P1.s
face,P1.t
face)と決定することができる。例えば、プロセッサ520は、
図7の表710及び数式720を利用して、ピクセルP1の座標を、キューブマップのZ+face上の(P1.s
face,P1.t
face)と決定することができる。
【0064】
再び、
図5を参照すれば、プロセッサ520は、コンピュータ実行可能命令語を実行することにより、ピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも1つのピクセルの座標を補正することができる。
【0065】
まず、プロセッサ520は、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。言い換えれば、プロセッサ520は、スクリーンスペース上のピクセルが、キューブマップの互いに異なる面に投影されるか否かということを判断することができる。一実施形態により、プロセッサ520は、既定のピクセルそれぞれのキューブマップ上の座標が、キューブマップの互いに異なる面に含まれるか否かということにより、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。
【0066】
また、他の実施形態により、プロセッサ520は、ピクセルのスクリーンスペース上での方向ベクトルを基準に、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。具体的には、プロセッサ520は、ピクセルのスクリーンスペース上での方向ベクトルに基づいて、ピクセルのMajor Axis Directionを決定することができ、ピクセルのMajor Axis Directionが互いに異なる場合、ピクセルがキューブマップの互いに異なる面に投影されると判断することができる。
図8を例とすれば、プロセッサ520は、ピクセルP0の方向ベクトル(P0.rx,0,P0.rz)の座標軸それぞれの大きさ及び符号を基準に、P0のMajor Axis Directionが+x軸であると決定することができ、ピクセルP1の方向ベクトル(P1.rx,0,P1.rz)の座標軸それぞれの大きさ及び符号を基準に、ピクセルP1のMajor Axis Directionが-z軸であると決定することができる。従って、プロセッサ520は、ピクセルP0及びP1それぞれが、キューブマップの互いに異なる面に投影されると判断することができる。
【0067】
次に、プロセッサ520は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも1つのピクセルのキューブマップ上の座標を補正することができる。一実施形態により、プロセッサ520は、ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、ピクセルのうち他のピクセルのキューブマップ上の座標を補正することができる。例えば、第1ピクセル及び第2ピクセルが互いに異なる面であるX+face及びY-faceに投影される場合、プロセッサ520は、基準ピクセルである第1ピクセルが投影されるX+faceでのsface軸及びtface軸を基準に、第2ピクセルのキューブマップ上の座標を補正することができる。
【0068】
また、プロセッサ520は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、ピクセルのキューブマップ上の座標を補正することができる。該座標補正テーブルは、ピクセルそれぞれが、対応する面を基準に、ピクセルそれぞれの座標がいかなる演算を介して補正されなければならないかということに係わる情報を含んでもよい。
【0069】
例えば、プロセッサ520は、ピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行い、ピクセルの座標を補正することができる。具体的な例として、プロセッサ520は、ピクセルに対して、+1、-1または+2に対する加算演算を行い、ピクセルの符号を反転させる反転演算を行うことができる。また、プロセッサ520は、ピクセルの座標(sface,tface)の各座標軸値を、(tface、sface)のように、互いに交換(swap)させる演算を行うことができる。
【0070】
プロセッサ520は、コンピュータ実行可能命令語を実行することにより、ピクセルのキューブマップ上の補正された座標を利用して、キューブマップ上において、ピクセルの変化率(derivative)を計算することができる。
【0071】
ピクセルの変化率とは、スクリーンスペース上において、ピクセルの変化量対比の、キューブマップ上でピクセルの変化量の比率を意味する。具体的には、ピクセルの変化率は、スクリーンスペースの座標軸上において、ピクセル間の距離対比で、キューブマップの座標軸上において、ピクセル間の距離の比率を意味する。また、スクリーンスペースの座標軸上において、ピクセルの距離が一定である場合、プロセッサ520は、ピクセルのキューブマップの座標軸上での距離を計算し、ピクセルの変化率を計算することができる。また、プロセッサ520は、ピクセルの変化率を近似値として計算することができるが、ピクセルのキューブマップの座標軸上での距離を、ピクセルの変化率でもって計算することができる。
【0072】
具体的には、プロセッサ520は、キューブマップのsface座標軸に対するピクセルの変化率として、キューブマップのsface座標軸上において、ピクセル間の距離を計算することができる。言い換えれば、プロセッサ520は、キューブマップのsface座標軸上において、ピクセルそれぞれの座標値の差を計算することができる。また、プロセッサ520は、キューブマップのtface座標軸に対するピクセルの変化率として、キューブマップのtface座標軸上において、ピクセル間の距離を計算することができる。言い換えれば、プロセッサ520は、キューブマップのtface座標軸上において、ピクセルそれぞれの座標値の差を計算することができる。
【0073】
図9は、座標補正テーブルを利用して、ピクセルの変化率を計算する実施形態を示す。
【0074】
プロセッサ520は、座標補正テーブル910,920に基づいて、ピクセルのキューブマップ上の座標を補正することができる。
【0075】
具体的には、座標補正テーブル910は、ピクセルのsface座標値を補正するためのテーブルであり、座標補正テーブル920は、tface座標値を補正するためのテーブルである。また、各座標補正テーブル910,920において、「Face of Reference」は、ピクセルのうち基準ピクセルが投影される面を示し、「Face of adjusted Pixel」は、座標補正しようとするピクセルが投影される面を示す。
【0076】
ピクセルP0及びピクセルP1の場合を例として挙げて説明すれば、ピクセルP0のキューブマップ上の座標が、X-face上の座標(P0.sface,P0.tface)であり、ピクセルP1のキューブマップ上の座標が、Y+face上の座標(P1.sface,P1.tface)である。
【0077】
基準ピクセルがピクセルP0である場合、ピクセルP0の「Face of Reference」と「Face of adjusted Pixel」は、同一にX-faceになるので、座標補正テーブル910,920により、ピクセルP0の調整された座標(P0.sadj,P0.tadj)は、本来の座標(P0.sface,P0.tface)にそのまま維持される。ただし、ピクセルP1である場合、ピクセルP1の「Face of Reference」は、X-faceになり、ピクセルP1の「Face of adjusted Pixel」は、Y+faceになるので、座標補正テーブル910,920により、ピクセルP1の調整された座標(P1.sadj,P1.tadj)は、(P1.tface,-P1.sface)になる。
【0078】
次に、プロセッサ520は、ピクセルの補正された座標を利用して、キューブマップ上において、ピクセルの変化率を計算することができる。すなわち、プロセッサ520は、ピクセルの補正された座標を利用して、キューブマップのsface座標軸上において、ピクセルの変化率である
【0079】
【数1】
を計算することができ、ピクセルの補正された座標を利用して、キューブマップのt
face座標軸上でピクセルの変化率である
【0080】
【0081】
具体的には、プロセッサ520は、スクリーンスペースの座標軸上において、ピクセルの距離が一定である場合、スクリーンスペースのx座標軸上において、ピクセルの変化率である∂xを1と決定することができる。従って、プロセッサ520は、キューブマップのsface座標軸上でピクセルの変化率である
【0082】
【数3】
を、s
face座標軸上において、ピクセルP0とピクセルP1との座標値の差であるP1.s
adj-P0.s
adjと計算することができる。同様に、プロセッサ520は、キューブマップのt
face座標軸上において、ピクセルの変化率である
【0083】
【数4】
を、t
face座標軸上において、ピクセルP0とピクセルP1との座標値の差であるP1.t
adj-P0.t
adjと計算することができる。
【0084】
図10は、ピクセルの座標を補正し、ピクセルの変化率を計算する実施形態を示す。
【0085】
図10は、キューブマップ上の投影されたピクセルP0,P1,P2及びP3を図示する。プロセッサ520は、ピクセルP0,P1,P2及びP3が、キューブマップ上の互いに異なる面に含まれる場合、ピクセルP0,P1,P2及びP3のキューブマップ上の座標を補正することができる。
【0086】
一実施形態により、プロセッサ520は、ピクセルP0及びP1が互いに異なる面であるZ+face及びY+faceに含まれているので、基準ピクセルであるピクセルP0が投影されるZ+faceの原点及び座標軸を基準に、ピクセルP1のキューブマップ上の座標(P1.sface,P1.tface)を補正することができる。まず、プロセッサ520は、Z+face及びY+faceのsface軸の場合、平行であって方向が一致するので、ピクセルP1のsface座標値は、そのままP1.sfaceと決定することができる。次に、プロセッサ520は、キューブマップがサイズ1を有する正規化されたキューブマップであるので、Y+faceの原点が、Z+faceの原点よりtface軸方向に1ほど離れていると判断することができる。従って、プロセッサ520は、Y+face上でのピクセルP1のtface座標値であるP.tfaceをZ+face上でのtface座標値である(1-P.tface)に補正することができる。従って、プロセッサ520は、ピクセルP1のキューブマップ上の座標(P1.sface,P1.tface)を、座標(P1.sface,P1.tface-1)に補正することができる。同様に、プロセッサ520は、ピクセルP0と異なる面に投影されるピクセルP3のキューブマップ上の座標を補正することができる。
【0087】
次に、プロセッサ520は、ピクセルP0の座標、及び補正されたピクセルP1の座標に基づいて、ピクセルP0及びピクセルP1の変化率
【0088】
【数5】
を計算することができる。具体的には、プロセッサ520は、ピクセルP0の座標(P0.s
face,P0.t
face)、及び補正されたピクセルP1の座標(P1.s
face,P1.t
face-1)に基づいて、ピクセルP0及びピクセルP1の変化率
【0089】
【数6】
を計算することができる。同様に、プロセッサ520は、ピクセルP0及びピクセルP2の変化率、ピクセルP0及びピクセルP3の変化率などを計算することができる。
【0090】
他の実施形態により、プロセッサ520は、ピクセルP0及びP1が互いに異なる面であるZ+face及びY+faceに含まれているので、座標補正テーブル910,920に基づいて、ピクセルP0のキューブマップ上の座標(P0.sface,P0.tface)、及びピクセルP1のキューブマップ上の座標(P1.sface,P1.tface)を補正することができる。具体的には、プロセッサ520は、基準ピクセルをピクセルP0と判断し、ピクセルP0の「Face of Reference」と「Face of adjusted Pixel」は、同一にZ+faceになるので、座標補正テーブル910,920により、ピクセルP0の補正された座標(P0.sadj,P0.tadj)は、本来の座標(P0.sface,P0.tface)にそのまま維持させることができる。次に、プロセッサ520は、ピクセルP1の場合、「Face of Reference」は、Z+faceになり、「Face of adjusted Pixel」は、Y+faceになるので、座標補正テーブル910,920により、ピクセルP1の調整された座標(P1.sadj,P1.tadj)を(P1.sface,P1.tface-1)に補正することができる。同様に、プロセッサ520は、ピクセルP0と異なる面に投影されるピクセルP3のキューブマップ上の座標を補正することができる。
【0091】
次に、プロセッサ520は、補正されたピクセルP0の座標(P0.sface,P0.tface)、及び補正されたピクセルP1の座標(P1.sface,P1.tface-1)に基づいて、ピクセルP0及びピクセルP1の変化率
【0092】
【数7】
を計算することができる。同様に、プロセッサ520は、ピクセルP0及びピクセルP2の変化率、ピクセルP0及びピクセルP3の変化率などを計算することができる。
【0093】
図11は、ピクセルの座標を補正し、ピクセルの変化率を計算する他の実施形態を示す。
図11は、キューブマップ上の投影されたピクセルP0,P1,P2及びP3を図示する。プロセッサ520は、ピクセルP0,P1,P2及びP3が、キューブマップ上の互いに異なる面に含まれる場合、ピクセルP0,P1,P2及びP3のキューブマップ上の座標を補正することができる。
【0094】
一実施形態により、プロセッサ520は、ピクセルP0及びP1が互いに異なる面であるX+face及びY-faceに含まれているので、基準ピクセルであるピクセルP0が投影されるX+faceの原点及び座標軸を基準に、ピクセルP1のキューブマップ上の座標(P1.sface,P1.tface)を補正することができる。まず、プロセッサ520は、X+faceのsface軸と、Y-faceのtface軸とが互いに平行であって方向が一致するので、ピクセルP1のsface座標値をP1.tfaceと決定することができる。次に、プロセッサ520は、キューブマップがサイズ1を有する正規化されたキューブマップであるので、Y-faceの原点がX+faceの原点よりtface軸方向に2ほど離れていると判断することができる。従って、プロセッサ520は、Y-face上でのピクセルP1のtface座標値であるP1.tfaceを、X+face上でのtface座標値である(2-P1.sface)に補正することができる。従って、プロセッサ520は、ピクセルP1のキューブマップ上の座標(P1.sface,P1.tface)を、座標(P1.tface,2-P1.sface)に補正することができる。同様に、プロセッサ520は、ピクセルP0と異なる面に投影されるピクセルP2及びP3のキューブマップ上の座標を補正することができる。
【0095】
次に、プロセッサ520は、ピクセルP0の座標、及び補正されたピクセルP1の座標に基づいて、ピクセルP0及びピクセルP1の変化率
【0096】
【数8】
を計算することができる。具体的には、プロセッサ520は、ピクセルP0の座標(P0.s
face,P0.t
face)、及び補正されたピクセルP1の座標(P1.t
face,2-P1.s
face)に基づいて、ピクセルP0及びピクセルP1の変化率
【0097】
【数9】
を計算することができる。同様に、プロセッサ520は、ピクセルP0及びピクセルP1の変化率、ピクセルP0及びピクセルP3の変化率などを計算することができる。
【0098】
他の実施形態により、プロセッサ520は、ピクセルP0及びP1が互いに異なる面であるX+face及びY-faceに含まれているので、座標補正テーブル910,920に基づいて、ピクセルP0のキューブマップ上の座標(P0.sface,P0.tface)、及びピクセルP1のキューブマップ上の座標(P1.sface,P1.tface)を補正することができる。具体的には、プロセッサ520は、基準ピクセルをピクセルP0と判断し、ピクセルP0の「Face of Reference」と「Face of adjusted Pixel」は、同一にX+faceになるので、座標補正テーブル910,920により、ピクセルP0の調整された座標(P0.sadj,P0.tadj)は、本来の座標(P0.sface,P0.tface)にそのまま維持させることができる。次に、プロセッサ520は、ピクセルP1の場合、「Face of Reference」は、X+faceになり、「Face of adjusted Pixel」は、Y-faceになるので、座標補正テーブル910,920により、ピクセルP1の調整された座標(P1.sadj,P1.tadj)を、(P1.tface,2-P1.sface)に補正することができる。同様に、プロセッサ520は、ピクセルP0と異なる面に投影されるピクセルP2及びピクセルP3のキューブマップ上の座標を補正することができる。
【0099】
次に、プロセッサ520は、補正されたピクセルP0の座標(P0.sface,P0.tface)、及び補正されたピクセルP1の座標(P1.tface,2-P1.sface)に基づいて、ピクセルP0及びピクセルP1の変化率
【0100】
【数10】
を計算することができる。同様に、プロセッサ520は、ピクセルP0及びピクセルP2の変化率、ピクセルP0及びピクセルP3の変化率などを計算することができる。
【0101】
再び
図5を参照すれば、プロセッサ520は、計算されたピクセルの変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのLODを決定することができる。該LODは、例えば、次のような数式1を利用して計算されるが、それに限定されるものではない。
【0102】
【数11】
λは、LODの値であり、(∂s/∂x)
p01は、ピクセルP0及びP1のs
face座標軸上での変化率であり、(∂t/∂x)
p01は、ピクセルP0及びP1のt
face座標軸上での変化率であり、(∂s/∂x)
p02は、ピクセルP0及びP2のs
face座標軸上での変化率であり、(∂t/∂x)
p02は、ピクセルP0及びP2のt
face座標軸上での変化率である。
【0103】
また、一実施形態により、プロセッサ520は、隣接するピクセルに対して、前記キューブマップ上での座標を決定する第1演算部、ピクセルそれぞれがキューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも1つのピクセルの座標を補正する第2演算部、補正された座標を利用して、キューブマップ上において、ピクセルの変化率を計算する第3演算部、及び計算された変化率に基づいて、ピクセルにキューブマップをテクスチャリングするためのLODを決定する第4演算部を含んでもよい。
【0104】
従って、装置500は、ピクセルのキューブマップ上の補正された座標から、ピクセルの変化率を直接計算することができるが、該変化率の計算必要な演算器の個数を減らすことができる。具体的には、従来には、LOD決定に前提になるピクセルの変化率を計算するために、ピクセルのキューブマップ上の座標を決定する前、スクリーンスペース上で変化率を計算する過程、及び既計算の変化率を利用して、キューブマップ上でピクセルの変化率を計算する過程が要求されるが、かような過程において乗算器、加算器、及び除算器のような多数の演算器が必要であった。ただし、本開示によれば、装置500は、キューブマップ上でのピクセルの座標に対して、加算演算または反転演算ほどで遂行すればよく、変化率計算に必要な演算器の個数を減らすことができ、それにより、装置500の面積と消費電力とを減らすことができる。例えば、
図9において装置500は、s
face座標軸上及びt
face座標軸上において、ピクセルの変化率
【0105】
【数12】
を計算するために、2つのピクセルの座標補正に必要な演算器、及び補正された2つのピクセルの座標間の差を求めるための演算器のみを必要とする。
【0106】
図12は、一例による、キューブマップをテクスチャリングするためのLODを決定する方法について説明するための図面である。
図12は、一例により、キューブマップをテクスチャリングするためのLODを決定する方法について説明するための図面である。
図12に図示された方法は、
図5の装置500、または
図1のテクスチャ処理装置130の各構成要素によって遂行され、重複説明については省略する。
【0107】
段階S1210において、装置500は、隣接するピクセルについて、キューブマップ上での座標を決定することができる。一実施形態により、装置500は、スクリーンスペース上において、ピクセルの方向ベクトルを基準に、ピクセルをキューブマップ上に投影させた地点の座標を、ピクセルのキューブマップ上の座標と決定することができる。
【0108】
段階S1220において、装置500は、ピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも1つのピクセルの座標を補正することができる。
【0109】
まず、装置500は、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。言い換えれば、装置500は、スクリーンスペース上のピクセルが、キューブマップの互いに異なる面に投影されるか否かということを判断することができる。一実施形態により、装置500は、既定のピクセルそれぞれのキューブマップ上の座標が、キューブマップの互いに異なる面に含まれるか否かということにより、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。また、他の実施形態により、装置500は、ピクセルのスクリーンスペース上での方向ベクトルを基準に、ピクセルそれぞれが、キューブマップの互いに異なる面に対応するか否かということを判断することができる。
【0110】
次に、装置500は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルのうち少なくとも1つのピクセルのキューブマップ上の座標を補正することができる。一実施形態により、装置500は、ピクセルのうち基準ピクセルに対応する面の原点及び座標軸を基準に、ピクセルのうち他のピクセルのキューブマップ上の座標を補正することができる。また、装置500は、隣接するピクセルそれぞれが、キューブマップの互いに異なる面に対応する場合、ピクセルの座標に要求される補正演算に係わる情報を含む座標補正テーブルに基づいて、ピクセルのキューブマップ上の座標を補正することができる。
【0111】
例えば、装置500は、ピクセルの座標に対して、加算演算及び反転演算のうち少なくとも一つを行い、ピクセルの座標を補正することができる。具体的な例として、装置500は、ピクセルに対して、+1,-1または+2に係わる加算演算を行うことができ、ピクセルの符号を反転させる反転演算を行うことができる。また、装置500は、ピクセルの座標(sface,tface)の各座標軸値を、(tface,sface)のように、互いに交換させる演算を行うことができる。
【0112】
段階S1230において、装置500は、ピクセルのキューブマップ上の補正された座標を利用して、キューブマップ上において、ピクセルの変化率を計算することができる。具体的には、装置500は、キューブマップの座標軸上において、ピクセル間の距離を、ピクセルの変化率として計算することができる。例えば、装置500は、キューブマップのsface座標軸及びtface座標軸に係わるピクセルの変化率として、キューブマップのsface座標軸上及びtface座標軸上それぞれにおいて、ピクセル間の距離を計算することができる。言い換えれば、装置500は、キューブマップのsface座標軸上及びtface座標軸上において、ピクセルそれぞれの座標値の差を計算することができる。
【0113】
段階S1240において、装置500は、計算されたピクセルの変化率に基づいて、ピクセルに、キューブマップをテクスチャリングするためのLODを決定することができる。
【0114】
前述の実施形態による装置は、プロセッサ、プログラムデータを保存して実行するメモリ、ディスクドライブのような永久保存部(permanent storage)、外部装置と通信する通信ポート、タッチパネル・キー(key)・ボタンのようなユーザインターフェース装置などを含んでもよい。ソフトウェアモジュールまたはアルゴリズムによって具現される方法は、前記プロセッサ上で実行可能なコンピュータで読み取り可能なコードまたはプログラム命令として、コンピュータで読み取り可能な記録媒体上に保存される。ここで、コンピュータで読み取り可能な記録媒体として、マグネチック記録媒体(例えば、ROM(read-only memory)、RAM(random access memory)、フロッピーディスク、ハードディスクなど)及び光学的判読媒体(例えば、CD-ROM(compact disc read only memory)、DVD(digital versatile disc))などがある。コンピュータで読み取り可能な記録媒体は、ネットワークに連結されたコンピュータシステムに分散され、分散方式により、コンピュータで読み取り可能なコードが保存されて実行される。該媒体は、コンピュータによって読み取り可能であり、メモリに保存され、プロセッサでも実行される。
【0115】
本実施形態は、機能的なブロック構成、及び多様な処理段階でもって示される。かような機能ブロックは、特定機能を実行する多様な個数のハードウェア構成または/及びソフトウェア構成によっても具現される。例えば、一実施形態は、1以上のマイクロプロセッサの制御、または他の制御装置によって多様な機能を実行することができる、メモリ、プロセッシング、ロジック(logic)、ルックアップテーブル(look-uptable)のような直接回路構成を採用することができる。構成要素が、ソフトウェアプログラミングまたはソフトウェア要素で実行されることができるように、本実施形態は、データ構造、プロセス、ル-チン、または他のプログラミング構成の組み合わせによって具現される多様なアルゴリズムを含み、C、C++、ジャバ(Java(登録商標))、アセンブラ(assembler)のようなプログラミング言語またはスクリプティング言語によっても具現される。機能的な側面は、1以上のプロセッサで実行されるアルゴリズムによっても具現される。また、本実施形態は、電子的な環境設定、信号処理、及び/またはデータ処理などのために、従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」のような用語は、汎用され、機械的であって物理的な構成として限定されるものではない。前記用語は、プロセッサなどと連繋し、ソフトウェアの一連処理(routines)の意味を含んでもよい。
【0116】
本実施形態で説明する特定実行は、例示であり、いかなる方法によっても、技術的範囲を限定するものではない。明細書の簡潔さのために、従来の電子的な構成、制御システム、ソフトウェア、前記システムの他の機能的な側面の記載は省略される。また、図面に図示された構成要素間の線の連結、または連結部材は、機能的な連結及び/または物理的または回路的な連結を例示的に示したものであり、実際の装置においては、代替可能であったり追加されたりする多様な機能的な連結、物理的な連結または回路の連結としても示される。
【0117】
本明細書(特に、特許請求の範囲で)において、「前記」の用語、及びそれと類似した指示用語の使用は、単数及び複数のいずれにも該当する。また、範囲(range)を記載した場合、前記範囲に属する個別的な値を含み(それに反する記載がなければ)、詳細な説明に、前記範囲を構成する各個別的な値を記載した通りである。最後に、方法を構成する段階について、明白に順序を記載したり、それに反したりする記載がなければ、前記段階は、適する順序によって遂行される。必ずしも前記段階の記載順序に限定されるものではない。全ての例または例示的な用語(例えば、など)の使用は、単に技術的思想について詳細に説明するためのものであり、特許請求の範囲によって限定されない以上、前記例または例示的な用語によって、範囲が限定されるものではない。また、当業者は、多様な修正、組み合わせ及び変更が付加された特許請求の範囲またはその均等物の範疇内で、設計条件及びファクタによっても構成されるということが理解することができるであろう。
【産業上の利用可能性】
【0118】
本発明の、キューブマップをテクスチャリングするためのLODを決定する方法、及びその装置は、例えば、グラフィックス関連の技術分野に効果的に適用可能である。
【符号の説明】
【0119】
100 グラフィック処理装置
110 ラスタライザ
120 シェーダコア
130 テクスチャ処理装置
140 ピクセル処理装置
150 タイルバッファ
200,510 メモリ
300 バス
301 ピクセル
302 テクスチャ
500 装置
520 プロセッサ