JP2015212890A - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP2015212890A JP2015212890A JP2014095480A JP2014095480A JP2015212890A JP 2015212890 A JP2015212890 A JP 2015212890A JP 2014095480 A JP2014095480 A JP 2014095480A JP 2014095480 A JP2014095480 A JP 2014095480A JP 2015212890 A JP2015212890 A JP 2015212890A
- Authority
- JP
- Japan
- Prior art keywords
- component
- interpolation
- attribute
- attribute data
- pixel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
【課題】 頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減する技術的手段を提供する。【解決手段】 セットアップ部22は、3次元位置座標属性POSのNZ成分および1/W成分と、テクスチャ座標属性UVのU成分およびV成分とをマージする。その後、セットアップ部22は、U成分、V成分、NZ成分および1/W成分の各々の補間係数を算出する。補間演算部24の補間器241は、U成分、V成分、NZ成分および1/W成分の各々の補間演算を並列して行う。補間演算部24は、補間演算後のU成分およびV成分と、補間演算後のNZ成分および1/W成分とを分離する。【選択図】図3
Description
この発明は、3次元空間内のオブジェクトを2次元のスクリーンに表示するための画像処理装置に関する。
3次元コンピュータグラフィクスでは、3次元空間内のオブジェクトの表面を複数のプリミティブ(例えば、三角形や四角形などのポリゴン)の集合とみなし、各プリミティブの描画処理を行う。三角形などのプリミティブは、その各頂点を結んだ直線により表現される。このプリミティブをディスプレイに表示する際、画像処理装置は、プリミティブを表現する形式を各頂点を結んだ直線による表現形式からピクセルを並べた表現形式に変換するラスタライズを行う。なお、この種の画像処理装置に関する技術は、例えば、特許文献1に開示されている。
ラスタライズ前のプリミティブの各頂点には、当該プリミティブに関する各種のデータが与えられる。本明細書では、プリミティブの頂点に与えられるデータの種類(例えば、3次元位置座標、テクスチャ座標、色座標、法線など)を頂点属性(あるいは、単に属性)と呼ぶ。また、頂点属性のデータのことを属性データと呼ぶ。この種の画像処理装置では、ラスタライズによりプリミティブをピクセルで表現するとともに、頂点の属性データに基づきピクセルの属性データを補間する処理を行う。例えば、三角形のプリミティブの第1の頂点にテクスチャ座標属性の属性データU_1が、同第2の頂点にテクスチャ座標属性の属性データU_2が、同第3の頂点にテクスチャ座標属性の属性データU_3が与えられており、これらU_1、U_2およびU_3に基づいて、ピクセルのテクスチャ座標属性の属性データU_Pを補間する、という具合である。
図10は、従来の画像処理装置5が有する従来の補間装置50の構成例を示すブロック図である。補間装置50は、頂点の属性データに基づいてピクセルの属性データを補間する装置である。図10の例では、プリミティブの各頂点には、4種類の頂点属性(3次元位置座標属性、テクスチャ座標属性、色座標属性、法線属性)の属性データが与えられている。この例における補間装置50は、補間器501〜504を有する。補間器501は、各頂点の3次元位置座標属性POSの属性データに基づいてピクセルの3次元位置座標属性POSの属性データの補間演算を行う回路である。補間器502は、各頂点のテクスチャ座標属性UVの属性データに基づいてピクセルのテクスチャ座標属性UVの属性データの補間演算を行う回路である。補間器503は、各頂点の色座標属性COLの属性データに基づいてピクセルの色座標属性COLの属性データの補間演算を行う回路である。補間器504は、各頂点の法線属性Nの属性データに基づいてピクセルの法線属性Nの属性データの補間演算を行う回路である。
図11は、図10の補間装置50における補間処理の流れの概略を示す図である。補間装置50に1番目のクロックが与えられると、補間器501は、最初の描画対象(すなわち最初のピクセル)について3次元位置座標属性POSの属性データの補間演算を行う。それに後続して、2番目のクロックが与えられると、補間器502は、同描画対象についてテクスチャ座標属性UVの属性データの補間演算を行う。同様に、3番目のクロックが与えられると、補間器503は、同描画対象について色座標属性COLの属性データの補間演算を行い、4番目のクロックが与えられると、補間器504は、同描画対象について法線属性Nの属性データの補間演算を行う。さらに、5番目のクロックが与えられると、補間器501は、次の描画対象について3次元位置座標属性POSの属性データの補間演算を行う。以下、同様にして順次補間演算を行う。図10および図11に示すように、従来の補間装置50では、頂点属性の数分の補間器501〜504を動作させて補間処理を行っている。このため、補間処理の際の処理負荷が大きくなっている。
この発明は以上のような事情に鑑みてなされたものであり、頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減する技術的手段を提供することを目的としている。
この発明は、プリミティブの各頂点の複数種類の属性データの成分に基づいて前記プリミティブを表す各ピクセルの複数種類の属性データの成分を補間する補間処理手段を有し、前記補間処理手段は、所定時間内に所定数の成分の補間演算を行う1補間単位を所定数利用し、成分の個数が1補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を1補間単位を利用して行うことを特徴とする画像処理装置を提供する。
この発明によれば、成分の個数が1補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を1補間単位を利用して行うため、属性毎に補間演算を行う態様に比べ、補間演算の演算回数を減らすことができる。従って、頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減することができる。
以下、図面を参照し、この発明の実施形態について説明する。
<実施形態>
[1.画像処理装置の構成の概略]
図1は、この発明の一実施形態である画像処理装置1の構成を示すブロック図である。画像処理装置1は、3次元空間内のオブジェクトを2次元のスクリーンに表示するための装置である。画像処理装置1は、頂点シェーダ10、補間装置20およびピクセルシェーダ30を有している。また、補間装置20は、セットアップ部22、補間演算部24およびラスタライザ26を有している。これら機能ブロックのうちの少なくとも頂点シェーダ10、補間装置20およびピクセルシェーダ30は、例えば、半導体集積回路により実現される。
<実施形態>
[1.画像処理装置の構成の概略]
図1は、この発明の一実施形態である画像処理装置1の構成を示すブロック図である。画像処理装置1は、3次元空間内のオブジェクトを2次元のスクリーンに表示するための装置である。画像処理装置1は、頂点シェーダ10、補間装置20およびピクセルシェーダ30を有している。また、補間装置20は、セットアップ部22、補間演算部24およびラスタライザ26を有している。これら機能ブロックのうちの少なくとも頂点シェーダ10、補間装置20およびピクセルシェーダ30は、例えば、半導体集積回路により実現される。
頂点シェーダ10は、3次元空間におけるプリミティブの各頂点の位置を2次元のスクリーン上の位置に変換する処理を行うものである。頂点シェーダ10には、プリミティブの各頂点の複数種類の頂点属性の属性データが与えられている。本実施形態では、3次元位置座標属性POS、テクスチャ座標属性UV、色座標属性COLおよび法線属性Nの各属性データが与えられている。この属性データは、例えば、コントローラ2によって与えられる。
本実施形態における頂点属性についてより詳細に説明する。各頂点属性は、所定個数の成分からなる。具体的には、3次元位置座標属性POSは、X成分、Y成分、正規化されたZ座標(換言すると、正規化された深さ)を示すNZ成分および拡大縮小(スケーリング)を示す1/W成分からなる。テクスチャ座標属性UVは、U成分およびV成分からなる。色座標属性COLは、R成分、G成分、B成分および透明度を示すA成分からなる。法線属性Nは、nX成分、nY成分およびnZ成分からなる。また、本実施形態において、1の頂点属性の有する成分の個数の最大は、4個である。
セットアップ部22は、補間演算部24による処理およびラスタライザ26による処理を行うための前処理を行う装置である。セットアップ部22は、頂点シェーダ10からプリミティブの各頂点の属性データを取得する。セットアップ部22は、取得した各頂点の属性データに基づいて、補間演算に用いる補間係数を算出する。セットアップ部22は、頂点属性の成分毎に補間係数を算出する。セットアップ部22は、算出した補間係数を補間演算部24に出力する。また、セットアップ部22は、プリミティブの各頂点の3次元位置座標属性POSの属性データからプリミティブの各頂点間を結ぶ直線の傾き係数を算出する処理も行う。セットアップ部22は、プリミティブの各頂点の3次元位置座標属性のX成分と、同Y成分と、算出した傾き係数とをラスタライザ26に出力する。セットアップ部22については、後に詳述する。
ラスタライザ26は、セットアップ部22から与えられるX成分と、Y成分と、傾き係数とに基づいてラスタライズする装置である。ラスタライズについては、公知の技術であるため説明を省略する。ラスタライザ26は、ピクセルを4×4の16ピクセル毎にブロック化する。つまり、ラスタライザ26によってプリミティブは、ピクセルブロックを並べたもので表現される。ラスタライザ26は、各ピクセルブロックについて、4×4の16ピクセルのうちの左上隅のピクセルのX座標およびY座標を当該ピクセルブロックの代表座標に決定する。ここで、ピクセルの座標を(Xpj−k、Ypj−k)と表記することとする。符号「j」は、プリミティブ内のピクセルブロック番号(j=1〜m)を示す。例えば、j=1は、プリミティブの左上隅のピクセルブロックを示し、j=mは、プリミティブの右下隅のピクセルブロックを示す。また、符号「k」は、ピクセルブロック内のピクセル番号(k=1〜16)を示す。例えば、k=1は、ピクセルブロック内の左上隅のピクセル(すなわち代表ピクセル)を示し、k=16はピクセルブロック内の右下隅のピクセルを示す。この表記に従って、ピクセルブロックの代表座標を(Xpj−1、Ypj−1)と表記する。ピクセルブロックの代表座標(Xpj−1、Ypj−1)は、描画対象のX成分およびY成分として利用される。ラスタライザ26は、各ピクセルブロックの各代表座標(Xpj−1、Ypj−1)を補間演算部24に出力する。なお、ピクセルブロックは、4×4の16ピクセルに限られず、例えば、8×8の64ピクセルとしても良い。
補間演算部24は、セットアップ部22から与えられる頂点属性の成分毎の補間係数と、ラスタライザ26から与えられるピクセルブロックの代表座標とに基づいて、各ピクセルについて属性データの補間演算を行う装置である。補間演算部24は、頂点属性の成分毎に補間演算を行う。すなわち、補間演算部24は、プリミティブの頂点の頂点属性の成分ごとの属性データからプリミティブ内のピクセルの当該成分を算出する。補間演算部24は、演算結果をピクセルシェーダ30に出力する。補間演算部24については、後に詳述する。
ピクセルシェーダ30は、補間装置20によってラスタライズされたプリミティブの各ピクセルの色を調整する処理を行うものである。例えば、ピクセルシェーダ30は、各ピクセルについて、補間されたテクスチャ座標属性の属性データに対応するテクスチャデータをテクスチャメモリ(図示略)から読み出して、そのテクスチャデータを当該ピクセルのカラーデータの演算に用いる、というような処理を行う。ピクセルシェーダ30は、処理結果をメモリ3に出力する。メモリ3には、各プリミティブについての描画処理結果が蓄積される。そして、メモリ3に蓄積されたデータが表示制御装置(図示略)によって読み出されることにより、3次元空間のオブジェクトがスクリーンに表示される。
以上が、画像表示装置1の構成の概要である。
以上が、画像表示装置1の構成の概要である。
[2.補間係数の算出式および補間演算式]
次に、補間係数の算出式および補間演算式について説明する。図2は、プリミティブおよびその頂点の属性データを例示する図である。図2(A)は、スクリーン座標系にプリミティブを示したものである。図2(A)では、頂点sc0、sc1およびsc2によって三角形のプリミティブPTが形成されている。頂点sc0の座標は(x0、y0)、頂点sc1の座標は(x1、y1)、頂点sc2の座標は(x2、y2)である。プリミティブPT内の描画対象の点をscとし、その座標を(x、y)とする。プリミティブPTは、描画対象の点scによって3つの三角形(sc1、sc2およびscから形成され面積ΔA0を有する三角形、sc0、sc2およびscから形成され面積ΔA1を有する三角形、sc0、sc1およびscから形成され面積ΔA2を有する三角形)に分割することができる。プリミティブPTの面積ΔAと三角形の面積ΔA0との比率、プリミティブPTの面積ΔAと三角形の面積ΔA1との比率およびプリミティブPTの面積ΔAと三角形の面積ΔA2との比率は、式(1u)、(1v)および(1w)のように表すことができる。
u=ΔA0/ΔA ・・・(1u)
v=ΔA1/ΔA ・・・(1v)
w=ΔA2/ΔA ・・・(1w)
次に、補間係数の算出式および補間演算式について説明する。図2は、プリミティブおよびその頂点の属性データを例示する図である。図2(A)は、スクリーン座標系にプリミティブを示したものである。図2(A)では、頂点sc0、sc1およびsc2によって三角形のプリミティブPTが形成されている。頂点sc0の座標は(x0、y0)、頂点sc1の座標は(x1、y1)、頂点sc2の座標は(x2、y2)である。プリミティブPT内の描画対象の点をscとし、その座標を(x、y)とする。プリミティブPTは、描画対象の点scによって3つの三角形(sc1、sc2およびscから形成され面積ΔA0を有する三角形、sc0、sc2およびscから形成され面積ΔA1を有する三角形、sc0、sc1およびscから形成され面積ΔA2を有する三角形)に分割することができる。プリミティブPTの面積ΔAと三角形の面積ΔA0との比率、プリミティブPTの面積ΔAと三角形の面積ΔA1との比率およびプリミティブPTの面積ΔAと三角形の面積ΔA2との比率は、式(1u)、(1v)および(1w)のように表すことができる。
u=ΔA0/ΔA ・・・(1u)
v=ΔA1/ΔA ・・・(1v)
w=ΔA2/ΔA ・・・(1w)
プリミティブPTの各頂点sc0、sc1およびsc2には、4成分(S、T、R、Q)を有する属性データが与えられているとする。図2(B)は、S成分(あるいは、T成分、R成分、Q成分)を表現した座標系にプリミティブPTを対応させたものである。S成分座標系(図2(B))における座標s0は、スクリーン座標系(図2(A))における頂点sc0の座標に対応付けられ、S成分座標系における座標s1は、スクリーン座標系における頂点sc1の座標に対応付けられ、S成分座標系における座標s2は、スクリーン座標系における頂点sc2の座標に対応付けられる。描画対象の点scにS成分の属性データを補間するということは、描画対象の点scに対応するS成分座標系の1点を算出することに相当する。そこで、S成分座標系のプリミティブPTを式(1u)、(1v)および(1w)に示す面積関係と同じ面積関係になる三角形に分割する座標を、描画対象の点scに補間するS成分とする。このため、以下の式(2S)によって、描画対象の点scに対応するS成分座標系の座標Sを算出する。
S=u×s0+v×s1+w×s2 ・・・(2S)
例えば、スクリーン座標系において描画対象の点scが頂点sc0に近い場合、ΔA0が大きくなり式(1u)のuが大きくなるため、式(2S)においてs0の割合がs1およびs2に比べ大きくなり、描画対象の点scに補間するS成分は、s0の寄与が大きなものになる、という具合である。
S=u×s0+v×s1+w×s2 ・・・(2S)
例えば、スクリーン座標系において描画対象の点scが頂点sc0に近い場合、ΔA0が大きくなり式(1u)のuが大きくなるため、式(2S)においてs0の割合がs1およびs2に比べ大きくなり、描画対象の点scに補間するS成分は、s0の寄与が大きなものになる、という具合である。
S成分について説明したが、T成分、R成分およびQ成分についてもS成分と同様である。すなわち、T成分座標系、R成分座標系およびQ成分座標系の各々のプリミティブPTを式(1u)、(1v)および(1w)に示す面積関係と同じ面積関係になる三角形に分割する座標を、描画対象の点scに補間するT成分、R成分およびQ成分とする。このため、以下の式(2T)、(2R)および(2Q)によって、描画対象の点scに対応するT成分座標系の座標T、同R成分座標系の座標Rおよび同Q成分座標系の座標Qを算出する。
T=u×t0+v×t1+w×t2 ・・・(2T)
R=u×r0+v×r1+w×r2 ・・・(2R)
Q=u×q0+v×q1+w×q2 ・・・(2Q)
式(2S)〜(2Q)に示すように、描画対象の点scの属性データは、成分(S、T、R、Q)毎に算出される。
T=u×t0+v×t1+w×t2 ・・・(2T)
R=u×r0+v×r1+w×r2 ・・・(2R)
Q=u×q0+v×q1+w×q2 ・・・(2Q)
式(2S)〜(2Q)に示すように、描画対象の点scの属性データは、成分(S、T、R、Q)毎に算出される。
各三角形の面積ΔA0、ΔA1およびΔA2は、三角形を形成する2辺の外積で求めることができる。このため、面積比率は、頂点sc0、sc1およびsc2の各座標で表すことができる。従って、式(2S)、(2T)、(2R)および(2Q)は、次式(3S)、(3T)、(3R)および(3Q)に変形することができる。
S=S_a×x+S_b×y+S_c ・・・(3S)
T=T_a×x+T_b×y+T_c ・・・(3T)
R=R_a×x+R_b×y+R_c ・・・(3R)
Q=Q_a×x+Q_b×y+Q_c ・・・(3Q)
式(3S)〜(3Q)におけるxおよびyは、スクリーン座標系における描画対象の点scの座標(x、y)である。また、S_a、S_b、S_c、T_a、T_b、T_c、R_a、R_b、R_c、Q_a、Q_bおよびQ_cは、補間係数である。すなわち、描画対象の点scの座標と補間係数とから描画対象の点scにおける補間演算を行うことができる。例えば、式(3S)に示す式によって、当該描画対象の点の座標(x、y)と、補間係数S_a、S_b、およびS_cとから頂点属性のS成分の補間演算を行うことができる、という具合である。また、式(3S)における補間係数S_a、S_bおよびS_cは、次式(4S_a)、(4S_b)および(4S_c)によって算出することができる。
S_a=(s0−s1)(y2−y1)/ΔA+(s2−s1)(y1−y0)/ΔA
・・・(4S_a)
S_b=(s0−s1)(x1−x2)/ΔA+(s2−s1)(x0−x1)/ΔA
・・・(4S_b)
S_c=(s0−s1)(x2y1−x1y2)/ΔA+(s2−s1)(x1y0−x0y1)/ΔA+s1 ・・・(4S_c)
式(3T)、(3R)および(3Q)における補間係数T_a、T_b、T_c、R_a、R_b、R_c、Q_a、Q_bおよびQ_cについても、式(4S_a)、(4S_b)および(4S_c)と同様な式によって算出することができる。
S=S_a×x+S_b×y+S_c ・・・(3S)
T=T_a×x+T_b×y+T_c ・・・(3T)
R=R_a×x+R_b×y+R_c ・・・(3R)
Q=Q_a×x+Q_b×y+Q_c ・・・(3Q)
式(3S)〜(3Q)におけるxおよびyは、スクリーン座標系における描画対象の点scの座標(x、y)である。また、S_a、S_b、S_c、T_a、T_b、T_c、R_a、R_b、R_c、Q_a、Q_bおよびQ_cは、補間係数である。すなわち、描画対象の点scの座標と補間係数とから描画対象の点scにおける補間演算を行うことができる。例えば、式(3S)に示す式によって、当該描画対象の点の座標(x、y)と、補間係数S_a、S_b、およびS_cとから頂点属性のS成分の補間演算を行うことができる、という具合である。また、式(3S)における補間係数S_a、S_bおよびS_cは、次式(4S_a)、(4S_b)および(4S_c)によって算出することができる。
S_a=(s0−s1)(y2−y1)/ΔA+(s2−s1)(y1−y0)/ΔA
・・・(4S_a)
S_b=(s0−s1)(x1−x2)/ΔA+(s2−s1)(x0−x1)/ΔA
・・・(4S_b)
S_c=(s0−s1)(x2y1−x1y2)/ΔA+(s2−s1)(x1y0−x0y1)/ΔA+s1 ・・・(4S_c)
式(3T)、(3R)および(3Q)における補間係数T_a、T_b、T_c、R_a、R_b、R_c、Q_a、Q_bおよびQ_cについても、式(4S_a)、(4S_b)および(4S_c)と同様な式によって算出することができる。
補間演算の際には、上記の4成分(S、T、R、Q)を各種の頂点属性の各成分に対応付けて式(3S)〜(3Q)を用いて演算することができる。例えば、色座標属性COLの属性データの補間演算の際には、色座標属性COLのR成分を上記のS成分に対応付け、同G成分を上記のT成分に対応付け、同B成分を上記のR成分に対応付け、同A成分を上記のQ成分に対応付ける、という具合である。また、補間演算の際、頂点属性の成分の数が4個よりも少ない場合には、当該頂点属性の成分の数分だけ上記の4成分を対応付ければよい。例えば、補間演算の際の頂点属性の数が3個の場合、上記の4成分のうちの(S、T、R)を当該3個の成分の各々に対応付ける、という具合である。
[3.画像処理装置1の詳細な構成]
図3は、画像処理装置1の詳細な構成を示すブロック図である。頂点シェーダ10は、3次元空間におけるプリミティブの各頂点の位置を2次元のスクリーン上の位置に変換した後のプリミティブの各頂点の属性データを出力する。頂点シェーダ10は、出力対象である属性データを保持するための出力レジスタ100〜103を有している。頂点シェーダ10は、各出力レジスタ100〜103に保持した属性データを出力レジスタ103、102、101、100の順に出力する。
図3は、画像処理装置1の詳細な構成を示すブロック図である。頂点シェーダ10は、3次元空間におけるプリミティブの各頂点の位置を2次元のスクリーン上の位置に変換した後のプリミティブの各頂点の属性データを出力する。頂点シェーダ10は、出力対象である属性データを保持するための出力レジスタ100〜103を有している。頂点シェーダ10は、各出力レジスタ100〜103に保持した属性データを出力レジスタ103、102、101、100の順に出力する。
図4は、頂点シェーダ10の出力レジスタ100〜103に保持されるプリミティブの頂点属性の成分を示す図である。図4におけるS、T、RおよびQは、上述した頂点属性の4つの成分(S、T、R、Q)を示す。属性データを最初に出力する出力レジスタ103には、3次元位置座標属性POSの属性データが保持される。より詳細には、S成分にX成分が、T成分にY成分が、R成分にNZ成分が、Q成分に1/W成分が対応付けられて保持される。出力レジスタ103の次に属性データを出力する出力レジスタ102には、成分が2以下の頂点属性の属性データが保持される。本実施形態では、出力レジスタ102には、テクスチャ座標属性UVの属性データが保持される。より詳細には、S成分にU成分が、T成分にV成分が対応付けられて保持される。出力レジスタ101には、色座標属性COLの属性データが保持される。より詳細には、S成分にR成分が、T成分にG成分が、R成分にB成分が、Q成分にA成分が対応付けられて保持される。出力レジスタ100には、法線属性Nの属性データが保持される。より詳細には、S成分にnX成分が、T成分にnY成分が、R成分にnZ成分が対応付けられて保持される。出力レジスタ100〜103の各々には、プリミティブの頂点分(プリミティブが三角形の場合には3頂点分)の属性データが保持される。例えば、出力レジスタ103には、プリミティブの3頂点分の3次元位置座標属性POSの属性データが保持される、という具合である。なお、空欄は、成分がないことを示している。
図3に示すように、セットアップ部22は、分離部221、傾き係数演算部222、TMPレジスタ223、乗算部224、225および226、POSバッファ227、マージ部228、補間係数演算部231およびレジスタ232を有している。分離部221は、3次元位置座標属性POSのうちのX成分およびY成分と、同NZ成分および1/W成分とを分離する回路である。分離部221によってX成分およびY成分が補間演算の対象から外される。X成分およびY成分は、描画対象のピクセルの位置の指定に利用されるからである。傾き係数演算部222は、プリミティブの各頂点分の3次元位置座標属性POSのX成分と同Y成分とからプリミティブの各頂点間を結ぶ直線の傾き係数を算出する回路である。分離部221から出力されるX成分、同Y成分、傾き係数演算部222から出力される傾き係数は、ラスタライザ26に引き渡される。
TMPレジスタ223は、3次元位置座標属性POSの1/W成分を一時的に保持するバッファである。乗算部224は、テクスチャ座標属性UVのU成分およびV成分の各々に1/W成分を乗算する回路である。乗算部225は、色座標属性COLのR成分、G成分、B成分およびA成分の各々に1/W成分を乗算する回路である。乗算部226は、法線属性NのnX成分、nY成分およびnZ成分の各々に1/W成分を乗算する回路である。POSバッファ227は、3次元位置座標属性POSのNZ成分と1/W成分とを一時的に保持するバッファである。
マージ部228は、3次元位置座標属性POSのNZ成分および1/W成分と、1/W成分を乗算した後のテクスチャ座標属性UVのU成分およびV成分とをマージする回路である。マージについて説明する。図5は、頂点属性の各成分に着目してセットアップ部22の処理の流れを示す図である。図5の「セットアップ部における前処理」の部分に着目する。分離部221によってX成分およびY成分が補間演算の対象から外されるため、1クロック目のS成分およびT成分に対応する3次元位置座標属性POSの欄は空いている。また、2クロック目のテクスチャ座標属性UVは、2個の成分しか有していないため、2クロック目のR成分およびQ成分に対応するテクスチャ座標属性UVの欄は空いている。そこで、マージ部228は、3次元位置座標属性POSの空いているS成分およびT成分の代わりにテクスチャ座標属性UVのU成分およびV成分を補間係数演算部231に入力し、テクスチャ座標属性UVの空いているR成分およびQ成分の代わりに3次元位置座標属性POSのNZ成分および1/W成分を補間係数演算部231に入力する。これにより、3次元位置座標属性POSとテクスチャ座標属性UVとをまとめて、U成分、V成分、NZ成分および1/W成分を有する1つの頂点属性として取り扱って後続の処理を行う。
図3の補間係数演算部231は、各頂点属性の各成分について、補間係数を算出する回路である。補間係数演算部231は、上述の式(4S_a)〜(4S_c)等に基づいて補間係数を算出する。分離部221によってX成分およびY成分を補間演算の対象から外したため、3次元位置座標属性の補間係数cPOSは、NZ成分についての補間係数cNZと1/W成分についての補間係数c1/Wのみが得られる。レジスタ232は、補間係数演算部231によって算出された3次元位置座標属性の補間係数cPOS(cNZ、c1/W)、テクスチャ座標属性の補間係数cUV(cU、cV)、色座標属性の補間係数cCOL(cR、cG、cB、cA)および法線属性の補間係数cN(cnX、cnY、cnZ)を一時的に保持するバッファである。なお、各符号の先頭のcは、補間係数であることを示す符号である。
補間演算部24は、coefバッファ240、補間器241、242および243、レジスタ244、分離部245、TMPレジスタ246、乗算部247、248および249、XYリピータ251、マージ部252、出力レジスタ253を有する。coefバッファ240は、セットアップ部22のレジスタ232に保持される補間係数cPOS、cUV、cCOLおよびcNを読み出して保持するバッファである。
XYリピータ251は、ラスタライザ26の出力するピクセルブロックの代表座標(Xpj−1、Ypj−1)を保持するバッファである。また、XYリピータ251は、プリミティブ内のピクセルブロックのうちの描画対象のピクセルブロックの代表座標(Xpj−1、Ypj−1)を各補間器241〜243に出力する。XYリピータ251は、プリミティブの左上隅のピクセルブロックの代表座標(Xp1−1、Yp1−1)からプリミティブの右下隅のピクセルブロックの代表座標(Xpm−1、Ypm−1)までを所定時間間隔毎に順次切り替えて出力する。すなわち、XYリピータ251は、描画対象のピクセルの位置を順次指定するものである。
補間器241〜243は、各々、1のクロックに応じて4成分(S、T、R、Q)の補間演算を行う回路である。この1クロックで4成分の補間演算を行うことを1補間単位と呼ぶこととする。すなわち、補間器241〜243の各々は、1補間単位の回路である。補間器241〜243は、各々、上述の式(3S)〜(3Q)に基づいて補間演算を行う。補間器241〜243について詳細に説明する。補間器241は、3次元位置座標属性POSの属性データの補間演算とテクスチャ座標属性UVの属性データの補間演算とを行う。図6は、補間器241の構成を示すブロック図である。補間器241は、ピクセル座標算出部2410、補間回路241S、241T、241Rおよび241Qを有する。
ピクセル座標算出部2410は、XYリピータ251から与えられる描画対象のピクセルブロックの代表座標(Xpj−1、Ypj−1)に基づいて、当該ピクセルブロック内の左上隅のピクセル(代表座標のピクセル)以外の各ピクセル(本実施形態では、残りの15個のピクセル)の座標を算出する回路である。ピクセル座標算出部2410は、描画対象のピクセルブロック内の左上隅のピクセルの座標(Xpj−1、Ypj−1)から同ピクセルブロック内の右下隅のピクセルの座標(Xpj−16、Ypj−16)までの各ピクセルの座標(本実施形態では、16ピクセル分の座標)を一括に出力する。描画対象の各ピクセルの座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)は、補間回路241S、241T、241R、241Qの各々に入力される。
補間回路241Sは、式(3S)に基づいて頂点属性の4成分のうちのS成分に対応付けられた成分の補間演算を行う回路である。補間回路241Sは、描画対象の複数のピクセル(本実施形態では16個のピクセル)の各々についてのS成分の補間演算を並列して行う。具体的には、補間回路241Sは、補間係数cUと描画対象のピクセルの座標(Xpj−1、Ypj−1)とから座標(Xpj−1、Ypj−1)におけるU成分の補間演算を行い、並列して、補間係数cUと描画対象のピクセルの座標(Xpj−2、Ypj−2)とから座標(Xpj−2、Ypj−2)におけるU成分の補間演算を行い、・・・並列して、補間係数cUと描画対象のピクセルの座標(Xpj−16、Ypj−16)とから座標(Xpj−16、Ypj−16)におけるU成分の補間演算を行う。このため、補間回路241Sから出力される補間演算結果iUには、描画対象のピクセルブロック内のピクセルの数(本実施形態では16個)分の補間演算結果が含まれる。
補間器241Tは、補間回路241Sと同様の回路である。補間器241Tは、式(3T)に基づいて頂点属性の4成分のうちのT成分に対応付けられた成分の補間演算を行う点において補間回路241Sと異なる。具体的には、補間回路241Tは、補間係数cVと描画対象のピクセルの座標(Xpj−1、Ypj−1)とから座標(Xpj−1、Ypj−1)におけるV成分の補間演算を行い、並列して、補間係数cVと描画対象のピクセルの座標(Xpj−2、Ypj−2)とから座標(Xpj−2、Ypj−2)におけるV成分の補間演算を行い、・・・並列して、補間係数cVと描画対象のピクセルの座標(Xpj−16、Ypj−16)とから座標(Xpj−16、Ypj−16)におけるV成分の補間演算を行う。
補間器241Rは、補間回路241Sと同様の回路である。補間器241Rは、式(3R)に基づいて頂点属性の4成分のうちのR成分に対応付けられた成分の補間演算を行う点において補間回路241Sと異なる。具体的には、補間回路241Rは、補間係数cNZと描画対象のピクセルの座標(Xpj−1、Ypj−1)とから座標(Xpj−1、Ypj−1)におけるNZ成分の補間演算を行い、並列して、補間係数cNZと描画対象のピクセルの座標(Xpj−2、Ypj−2)とから座標(Xpj−2、Ypj−2)におけるNZ成分の補間演算を行い、・・・並列して、補間係数cNZと描画対象のピクセルの座標(Xpj−16、Ypj−16)とから座標(Xpj−16、Ypj−16)におけるNZ成分の補間演算を行う。
補間器241Qは、補間回路241Sと同様の回路である。補間器241Qは、式(3Q)に基づいて頂点属性の4成分のうちのQ成分に対応付けられた成分の補間演算を行う点において補間回路241Sと異なる。具体的には、補間回路241Qは、補間係数c1/Wと描画対象のピクセルの座標(Xpj−1、Ypj−1)とから座標(Xpj−1、Ypj−1)における1/W成分の補間演算を行い、並列して、補間係数c1/Wと描画対象のピクセルの座標(Xpj−2、Ypj−2)とから座標(Xpj−2、Ypj−2)における1/W成分の補間演算を行い、・・・並列して、補間係数c1/Wと描画対象のピクセルの座標(Xpj−16、Ypj−16)とから座標(Xpj−16、Ypj−16)における1/W成分の補間演算を行う。
テクスチャ座標属性UVは、U成分およびV成分の2成分しか有しないため、成分の個数が1補間単位の成分数(4成分)に満たない。また、3次元位置座標属性POSは、X成分およびY成分を分離しておりNZ成分および1/W成分の2成分しか有しないため、成分の個数が1補間単位の成分数(4成分)に満たない。補間器241は、成分の個数が1補間単位の成分数(4成分)に満たない複数種類の頂点属性(具体的にはテクスチャ座標属性UVおよび3次元位置座標属性POS)の各成分を統合して、統合した各成分の補間演算を1補間単位を利用して行う。具体的には、補間回路241S、241T、241Rおよび241Qは、同時並列処理が可能であり、補間器241は、U成分、V成分、NZ成分および1/W成分の4成分の補間演算を並列して行う。
図3の補間器242も、補間器241と同様に、各ピクセルの座標を算出するピクセル座標算出部と、頂点属性の4成分の各々に対応付けられた成分の補間演算を行う同時並列処理が可能な4個の補間回路242S、242T、242Rおよび242Qを有している(図示略)。補間回路242Sは、補間係数cRと描画対象のピクセルの座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)とから各座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)における色座標属性COLのR成分の補間演算を行う。補間回路242Tは、補間係数cGと同座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)とから各座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)における色座標属性COLのG成分の補間演算を行う。補間回路242Rは、補間係数cBと同座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)とから各座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)における色座標属性COLのB成分の補間演算を行う。補間回路242Qは、補間係数cAと同座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)とから各座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)における色座標属性COLのA成分の補間演算を行う。
補間器243も、補間器241と同様に、各ピクセルの座標を算出するピクセル座標算出部と、頂点属性の4成分の各々に対応付けられた成分の補間演算を行う同時並列処理が可能な4個の補間回路243S、243T、243Rおよび243Qを有している(図示略)。補間回路243Sは、補間係数cnXと描画対象のピクセルの座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)とから各座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)におけるnX成分の補間演算を行う。補間回路243Tは、補間係数cnYと同座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)とから各座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)におけるnY成分の補間演算を行う。補間回路243Rは、補間係数cnZと同座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)とから各座標(Xpj−1、Ypj−1)〜(Xpj−16、Ypj−16)におけるnZ成分の補間演算を行う。
レジスタ244は、3次元位置座標属性POSの補間演算結果iPOS(iNZ、i1/W)、テクスチャ座標属性UVの補間演算結果iUV(iU、iV)、色座標属性COLの補間演算結果iCOL(iR、iG、iB、iA)および法線属性Nの補間演算結果iN(inX、inY、inZ)を一時的に保持するバッファである。なお、各符号の先頭のiは、補間演算結果であることを示す符号である。分離部245は、マージされている3次元位置座標属性POSの属性データとテクスチャ座標属性UVの属性データとを分離する回路である。より詳細には、分離部245は、補間演算結果iNZおよびi1/Wと、補間演算結果iUおよびiVとを分離する。TMPレジスタ246は、補間演算結果i1/Wを一時的に保持するバッファである。乗算部247は、テクスチャ座標属性UVの補間演算結果iUおよびiVにi1/Wを乗算する回路である。乗算部248は、色座標属性COLの補間演算結果iR、iG、iBおよびiAにi1/Wを乗算する回路である。乗算部249は、法線属性Nの補間演算結果inX、inYおよびinZにi1/Wを乗算する回路である。
マージ部252は、分離部245によって分離された補間演算結果iNZおよびi1/Wと、描画対象のピクセルの座標(Xpj−k、Ypj−k)とをマージする回路である。補間演算の対象から除外していたX成分およびY成分が、マージ部252によって再び3次元位置座標属性POSの属性データに加えられる。描画対象のピクセルの座標については、例えば、補間器241のピクセル座標演算部2410から与えられる。補間演算結果iNZおよびi1/Wは、描画対象のピクセルブロック内のピクセルの数分の補間演算結果を含んでいる。このため、マージ部252は、ピクセル毎にマージして、ピクセルの数分の3次元位置座標属性POSの属性データを生成する。例えば、マージ部252は、描画対象のピクセルの座標(Xpj−16、Ypj−16)と、当該座標(Xpj−16、Ypj−16)から算出されたNZ成分の補間演算結果と、当該座標(Xpj−16、Ypj−16)から算出された1/W成分の補間演算結果とをまとめる、という具合である。出力レジスタ253は、補間演算されてマージされた3次元位置座標属性POSの属性データ、補間演算されて乗算されたテクスチャ座標属性UVの属性データ、補間演算されて乗算された色座標属性COLの属性データ、補間演算されて乗算された法線属性Nの属性データの各々を一時的に保持するバッファである。
ピクセルシェーダ30は、補間演算部24の出力レジスタ253から出力される属性データを保持する入力レジスタ300、301、302および303を有している。入力レジスタ303には、補間処理の完了した3次元位置座標属性POSの属性データIPOSが保持される。入力レジスタ302には、補間処理の完了したテクスチャ座標属性UVの属性データIUVが保持される。入力レジスタ301には、補間処理の完了した色座標属性COLの属性データICOLが保持される。入力レジスタ300には、補間処理の完了した法線属性Nの属性データINが保持される。これらの属性データは、入力レジスタ303、302、301、300の順に保持される。
以上が、画像処理装置1の詳細な構成である。
以上が、画像処理装置1の詳細な構成である。
[4.画像処理装置1の動作]
[4−1.セットアップ部22の動作]
次に、画像処理装置1の動作を説明する。
図7は、セットアップ部22の処理の流れを示すフローチャートである。図3、図5および図7を参照してセットアップ部22の動作を説明する。図5に示すように、セットアップ部22は、クロックに従って動作する。
[4−1.セットアップ部22の動作]
次に、画像処理装置1の動作を説明する。
図7は、セットアップ部22の処理の流れを示すフローチャートである。図3、図5および図7を参照してセットアップ部22の動作を説明する。図5に示すように、セットアップ部22は、クロックに従って動作する。
まず、セットアップ部22は、1番目のクロックが与えられると、出力レジスタ103から3次元位置座標属性POSの属性データを読み出す(図7:SA10)。次に、セットアップ部22の分離部221は、読み出した3次元位置座標属性POSのX成分およびY成分と、同NZ成分および1/W成分とを分離する。分離部221は、X成分およびY成分を傾き係数演算部222とラスタライザ26に出力する。次に、セットアップ部22の傾き係数演算部222は、プリミティブの各頂点間を結ぶ直線の傾き係数を算出する(SA11)。傾き係数演算部222は、算出した傾き係数をラスタライザ26に出力する。
セットアップ部22は、分離部221において各成分を分離した後、TMPレジスタ223に1/W成分を格納する(SA12)。次に、セットアップ部22は、POSバッファ227にNZ成分および1/W成分を格納する(SA13)。
次に、2番目のクロックが与えられると、セットアップ部22は、出力レジスタ102からテクスチャ座標属性UVの属性データを読み出す(SA20)。図5に示すように、テクスチャ座標属性UVのU成分はS成分に対応しており、V成分はT成分に対応している。次に、セットアップ部22の乗算部224は、TMPレジスタ223から1/W成分を読み出し、U成分およびV成分の各々に1/W成分を乗算する(SA21)。
次に、セットアップ部22のマージ部228は、POSバッファ227からNZ成分および1/W成分を読み出し、1/Wを乗算したU成分、1/Wを乗算したV成分、NZ成分および1/W成分をマージして、これら各成分を補間係数演算部231に与える(SA22)。このとき、S成分に1/Wを乗算したU成分が対応し、T成分に1/Wを乗算したV成分が対応し、R成分にNZ成分が対応し、Q成分に1/W成分が対応するようにこれら各成分をマージする。
次に、セットアップ部22の補間係数演算部231は、マージされた3次元位置座標属性POSの各成分の補間係数とテクスチャ座標属性UVの各成分の補間係数を算出する(SA23)。セットアップ部22は、算出した補間係数cU、cV、cNZおよびc1/Wをレジスタ232に格納する。そして、セットアップ部22は、レジスタ232の補間係数cU、cV、cNZおよびc1/Wを補間演算部24のcoefバッファ240に引き渡す。
次に、3番目のクロックが与えられると、セットアップ部22は、出力レジスタ101から色座標属性COLの属性データを読み出す(SA30)。図5に示すように、色座標属性COLのR成分はS成分に対応しており、色座標属性COLのG成分はT成分に対応しており、色座標属性COLのB成分はR成分に対応しており、色座標属性COLのA成分はQ成分に対応している。次に、セットアップ部22の乗算部225は、TMPレジスタ223から1/W成分を読み出し、色座標属性COLのR成分、G成分、B成分およびA成分の各々に1/W成分を乗算する(SA31)。
次に、セットアップ部22の補間係数演算部231は、色座標属性COLの各成分の補間係数を算出する(SA32)。セットアップ部22は、算出した補間係数cR、cG、cBおよびcAをレジスタ232に格納する。そして、セットアップ部22は、レジスタ232の補間係数cR、cG、cBおよびcAを補間演算部24のcoefバッファ240に引き渡す。
次に、4番目のクロックが与えられると、セットアップ部22は、出力レジスタ100から法線属性Nの属性データを読み出す(SA40)。図5に示すように、法線属性NのnX成分はS成分に対応しており、法線属性NのnY成分はT成分に対応しており、法線属性NのnZ成分はR成分に対応している。次に、セットアップ部22の乗算部226は、TMPレジスタ223から1/W成分を読み出し、法線属性NのnX成分、nY成分およびnZ成分の各々に1/W成分を乗算する(SA41)。
次に、セットアップ部22の補間係数演算部231は、法線属性Nの各成分の補間係数を算出する(SA42)。セットアップ部22は、算出した補間係数cnX、cnYおよびcnZをレジスタ232に格納する。そして、セットアップ部22は、レジスタ232の補間係数cnX、cnYおよびcnZを補間演算部24のcoefバッファ240に引き渡す。
以上が、セットアップ部22の動作である。
以上が、セットアップ部22の動作である。
[4−2.ラスタライザ26の動作]
ラスタライザ26は、3次元位置座標属性POSのX成分、同Y成分および傾き係数演算部222の算出した傾き係数をセットアップ部22から引き渡されると、それらを用いてラスタライズする。そして、ラスタライザ26は、プリミティブの左上隅のピクセルブロックの代表座標(Xp1−1、Yp1−1)からプリミティブの右下隅のピクセルブロックの代表座標(Xpm−1、Ypm−1)までの各ピクセルブロックの各代表座標を補間演算部24のXYリピータ251に引き渡す。
ラスタライザ26は、3次元位置座標属性POSのX成分、同Y成分および傾き係数演算部222の算出した傾き係数をセットアップ部22から引き渡されると、それらを用いてラスタライズする。そして、ラスタライザ26は、プリミティブの左上隅のピクセルブロックの代表座標(Xp1−1、Yp1−1)からプリミティブの右下隅のピクセルブロックの代表座標(Xpm−1、Ypm−1)までの各ピクセルブロックの各代表座標を補間演算部24のXYリピータ251に引き渡す。
[4−3.補間演算部24の動作]
図8は、頂点属性の各成分に着目して補間演算部24の処理の流れを示す図である。図9は、補間演算部24の処理の流れを示すフローチャートである。図8、図9および図3を参照して補間演算部24の動作を説明する。図8に示すように、補間演算部24は、クロックに従って動作する。
図8は、頂点属性の各成分に着目して補間演算部24の処理の流れを示す図である。図9は、補間演算部24の処理の流れを示すフローチャートである。図8、図9および図3を参照して補間演算部24の動作を説明する。図8に示すように、補間演算部24は、クロックに従って動作する。
図8に示すように、補間演算部24のcoefバッファ240には、各成分の補間係数が保持されている。このとき、補間係数cU、cV、cNZおよびc1/Wは、マージされた状態で保持されている。また、XYリピータ251には、ピクセルブロックの数分のピクセルブロックの代表座標がラスタライザ26から引き渡されて保持されている。
まず、補間演算部24は、1番目のクロックが与えられると、補間係数cU、cV、cNZおよびc1/Wをcoefバッファ240から読み出して補間器241に与える(SB10)。また、補間演算部24のXYリピータ251は、1番目のピクセルブロックを描画対象のピクセルブロックとし、当該1番目のピクセルブロックの代表座標(Xp1−1、Yp1−1)を補間器241に与える(SB11)。次に、補間器241のピクセル座標算出部2410は、与えられた1番目のピクセルブロックの代表座標(Xp1−1、Yp1−1)に基づいて当該ピクセルブロック内の残りの各ピクセルの座標(Xp1−2、Yp1−2)〜(Xp1−16、Yp1−16)を算出する。次に、補間器241は、補間係数cU、cV、cNZおよびc1/Wと、描画対象である1番目のピクセルブロック内の各ピクセルの座標(Xp1−1、Yp1−1)〜(Xp1−16、Yp1−16)とから、それら各ピクセルについて、U成分、V成分、NZ成分および1/W成分の補間演算を行う(SB12)。すなわち、補間器241は、補間回路241S〜241Qを並列動作させて、3次元位置座標属性POSのNZ成分および1/W成分の各々の補間演算と、テクスチャ座標属性UVのU成分およびV成分の各々の補間演算とをまとめて行う。上述の式(3S)〜(3Q)等に示すように、描画対象の座標以外で各成分(S、T、R、Q)間が関連していないため、補間器241は、複数種類の頂点属性の成分の補間演算をまとめて行うことができる。補間演算部24は、3次元位置座標属性POSの補間演算結果iPOS(iNZ、i1/W)およびテクスチャ座標属性UVの補間演算結果iUV(iU、iV)をレジスタ244に格納する。また、補間演算部24に与えられる1番目のクロックは、セットアップ部22に与えられる3番目以降のクロックに関連付けられる。補間係数cU、cV、cNZおよびc1/Wをまとめて補間器241に与えるためである。
次に、補間演算部24の分離部245は、3次元位置座標属性POSの補間演算結果iPOSとテクスチャ座標属性UVの補間演算結果iUVとを分離する(SB13)。次に、補間演算部24は、補間演算結果i1/WをTMPレジスタ246に格納する(SB14)。次に、補間演算部24のマージ部252は、3次元位置座標属性POSの補間演算結果iPOS(iNZ、i1/W)と1番目のピクセルブロック内の各ピクセルの座標(Xp1−1、Yp1−1)〜(Xp1−16、Yp1−16)とをマージする(SB15)。補間演算部24は、マージ部252によってマージした3次元位置座標属性POSの各成分を、最初の描画対象(最初のピクセルブロック)についての補間処理後の3次元位置座標属性POSの属性データIPOSとして出力レジスタ253に格納する(SB16)。この属性データIPOSには、最初のピクセルブロック内のピクセルの数分の3次元位置座標属性POSの補間処理結果が含まれている。そして、補間演算部24は、出力レジスタ253の属性データIPOSをピクセルシェーダ30の入力レジスタ303に出力する。
次に、補間演算部24の乗算部247は、分離部245によって分離した補間演算結果iUおよびiVの各々にi1/Wを乗算する(SB17)。補間演算部24は、乗算部247による乗算後のデータを、最初の描画対象(最初のピクセルブロック)についての補間処理後のテクスチャ座標属性UVの属性データIUVとして出力レジスタ253に格納する(SB18)。この属性データIUVには、最初のピクセルブロック内のピクセルの数分のテクスチャ座標属性UVの補間処理結果が含まれている。そして、補間演算部24は、属性データIPOSを出力したクロックの次のクロックに応じて、出力レジスタ253の属性データIUVをピクセルシェーダ30の入力レジスタ302に出力する。
次に、補間演算部24は、2番目のクロックが与えられると、補間係数cR、cG、cBおよびcAをcoefバッファ240から読み出して補間器242に与える(SB20)。また、補間演算部24のXYリピータ251は、描画対象である1番目のピクセルブロックの代表座標(Xp1−1、Yp1−1)を補間器242に与える(SB21)。次に、補間器242のピクセル座標算出部は、与えられた1番目のピクセルブロックの代表座標(Xp1−1、Yp1−1)に基づいて当該ピクセルブロック内の残りの各ピクセルの座標(Xp1−2、Yp1−2)〜(Xp1−16、Yp1−16)を算出する。次に、補間器242は、補間係数cR、cG、cBおよびcAと、描画対象である1番目のピクセルブロック内の各ピクセルの座標(Xp1−1、Yp1−1)〜(Xp1−16、Yp1−16)とから、それら各ピクセルについて、R成分、G成分、B成分およびA成分の各々の補間演算を行う(SB22)。補間演算部24は、色座標属性COLの補間演算結果iCOL(iR、iG、iB、iA)をレジスタ244に格納する。
次に、補間演算部24の乗算部248は、補間演算結果iR、iG、iBおよびiAの各々にi1/Wを乗算する(SB23)。補間演算部24は、乗算部248による乗算後のデータを、最初の描画対象(最初のピクセルブロック)についての補間処理後の色座標属性COLの属性データICOLとして出力レジスタ253に格納する(SB24)。この属性データICOLには、最初のピクセルブロック内のピクセルの数分の色座標属性COLの補間処理結果が含まれている。そして、補間演算部24は、属性データIUVを出力したクロックの次のクロックに応じて、出力レジスタ253の属性データICOLをピクセルシェーダ30の入力レジスタ301に出力する。
次に、補間演算部24は、3番目のクロックが与えられると、補間係数cnX、cnYおよびcnZをcoefバッファ240から読み出して補間器243に与える(SB30)。また、補間演算部24のXYリピータ251は、描画対象である1番目のピクセルブロックの代表座標(Xp1−1、Yp1−1)を補間器243に与える(SB31)。次に、補間器243のピクセル座標算出部は、与えられた1番目のピクセルブロックの代表座標(Xp1−1、Yp1−1)に基づいて当該ピクセルブロック内の残りの各ピクセルの座標(Xp1−2、Yp1−2)〜(Xp1−16、Yp1−16)を算出する。次に、補間器243は、補間係数cnX、cnYおよびcnZと、描画対象である1番目のピクセルブロック内の各ピクセルの座標(Xp1−1、Yp1−1)〜(Xp1−16、Yp1−16)とから、それら各ピクセルについて、nX成分、nY成分およびnZ成分の各々について補間演算を行う(SB32)。補間演算部24は、法線属性Nの補間演算結果iN(inX、inY、inZ)をレジスタ244に格納する。
次に、補間演算部24の乗算部249は、補間演算結果inX、inYおよびinZの各々にi1/Wを乗算する(SB33)。補間演算部24は、乗算部249による乗算後のデータを、最初の描画対象(最初のピクセルブロック)についての補間処理後の法線属性Nの属性データINとして出力レジスタ253に格納する(SB34)。この属性データINには、最初のピクセルブロック内のピクセルの数分の法線属性Nの補間処理結果が含まれている。そして、補間演算部24は、属性データICOLを出力したクロックの次のクロックに応じて、出力レジスタ253の属性データINをピクセルシェーダ30の入力レジスタ300に出力する。
次に、補間演算部24は、4番目のクロックが与えられると、補間係数cU、cV、cNZおよびc1/Wをcoefバッファ240から読み出して補間器241に与える。また、補間演算部24のXYリピータ251は、描画対象を次の(2番目の)ピクセルブロックに切り替えて、当該2番目のピクセルブロックの代表座標(Xp2−1、Yp2−1)を補間器241に与える。そして、補間器241は、補間係数cU、cV、cNZおよびc1/Wと、描画対象である2番目のピクセルブロック内の各ピクセルの座標(Xp2−1、Yp2−1)〜(Xp2−16、Yp2−16)とから、それら各ピクセルについて、U成分、V成分、NZ成分および1/W成分の各々の補間演算を行う。すなわち、補間演算部24は、2番目のピクセルブロックの各ピクセルを描画対象として1番目のクロックが与えられたときと同様の処理を行う。そして、補間演算部24は、当該2番目の描画対象(2番目のピクセルブロック)についての補間処理後の3次元位置座標属性POSの属性データIPOSをピクセルシェーダ30の入力レジスタ303に出力する。このとき、当該2番目の描画対象における属性データIPOSは、1つ前の描画対象(この場合では最初のピクセルブロック)においてピクセルシェーダ30に最後に出力する属性データ(この場合では属性データIN)と同じタイミングで出力される。
補間演算部24は、5番目のクロックが与えられると、2番目のピクセルブロックの各ピクセルを描画対象として2番目のクロックが与えられたときと同様の処理を行い、6番目のクロックが与えられると、2番目のピクセルブロックの各ピクセルを描画対象として3番目のクロックが与えられたときと同様の処理を行う。以下、補間演算部24は、すべての描画対象について同様の処理を繰り返す。
以上が、補間演算部24の動作である。
以上が、補間演算部24の動作である。
[5.効果]
このように、本実施形態による画像処理装置1は、プリミティブの各頂点の複数種類の属性データの成分に基づいてプリミティブの各ピクセルの複数種類の属性データの成分を補間する補間装置20を有している。補間装置20では、所定時間内に所定数の成分の補間演算(本実施形態では1クロックで4成分の補間演算)を行う1補間単位を所定数利用して補間演算を行う。プリミティブの各頂点についての複数種類の属性データには、3次元位置座標属性POSの属性データの成分とテクスチャ座標属性UVの属性データの成分とが含まれている。補間装置20は、描画対象のピクセルを指定するために利用する3次元位置座標属性POSのX成分およびY成分を補間演算の対象から除外し、成分の個数が1補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を1補間単位を利用して行う。具体的には、補間装置20の補間器241は、3次元位置座標属性POSのNZ成分および1/W成分とテクスチャ座標属性UVのU成分およびV成分とを統合し、統合したNZ成分、1/W成分、U成分およびV成分の補間演算を並列して行う。3次元位置座標属性POSの属性データとテクスチャ座標属性UVの属性データとをまとめて補間演算するため、画像処理装置1では、従来の画像処理装置と比べて、補間演算の演算回数を1描画対象あたり(換言すると1ピクセルブロックあたり)1補間単位分(すなわち1クロック分)減らすことができる。このため、頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減することができる。具体的には、図10に示す従来の画像処理装置5では、頂点属性の数が4種類であるため、補間演算の演算回数が1描画対象あたり4クロック分であった。これに対して、本実施形態の画像処理装置1では、頂点属性の数が4種類であるが、補間演算の演算回数が1描画対象あたり3クロック分である(図8参照)。すなわち、画像処理装置1は、画像処理装置5に比べ、補間演算における処理負荷を1描画対象あたり3/4に軽減することができる。また、画像処理装置1では、従来の画像処理装置と比べて、補間器を1個分減らすことができる。すなわち、画像処理装置1では、従来の画像処理装置と比べて、補間装置の回路規模を小さくすることができる。補間器は、比較的ゲート数が多く規模が大きな回路である。このため、補間器を1個分減らして補間装置の回路規模を小さくするのは、有益である。
このように、本実施形態による画像処理装置1は、プリミティブの各頂点の複数種類の属性データの成分に基づいてプリミティブの各ピクセルの複数種類の属性データの成分を補間する補間装置20を有している。補間装置20では、所定時間内に所定数の成分の補間演算(本実施形態では1クロックで4成分の補間演算)を行う1補間単位を所定数利用して補間演算を行う。プリミティブの各頂点についての複数種類の属性データには、3次元位置座標属性POSの属性データの成分とテクスチャ座標属性UVの属性データの成分とが含まれている。補間装置20は、描画対象のピクセルを指定するために利用する3次元位置座標属性POSのX成分およびY成分を補間演算の対象から除外し、成分の個数が1補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を1補間単位を利用して行う。具体的には、補間装置20の補間器241は、3次元位置座標属性POSのNZ成分および1/W成分とテクスチャ座標属性UVのU成分およびV成分とを統合し、統合したNZ成分、1/W成分、U成分およびV成分の補間演算を並列して行う。3次元位置座標属性POSの属性データとテクスチャ座標属性UVの属性データとをまとめて補間演算するため、画像処理装置1では、従来の画像処理装置と比べて、補間演算の演算回数を1描画対象あたり(換言すると1ピクセルブロックあたり)1補間単位分(すなわち1クロック分)減らすことができる。このため、頂点の属性データに基づいてピクセルの属性データを補間する際の処理負荷を軽減することができる。具体的には、図10に示す従来の画像処理装置5では、頂点属性の数が4種類であるため、補間演算の演算回数が1描画対象あたり4クロック分であった。これに対して、本実施形態の画像処理装置1では、頂点属性の数が4種類であるが、補間演算の演算回数が1描画対象あたり3クロック分である(図8参照)。すなわち、画像処理装置1は、画像処理装置5に比べ、補間演算における処理負荷を1描画対象あたり3/4に軽減することができる。また、画像処理装置1では、従来の画像処理装置と比べて、補間器を1個分減らすことができる。すなわち、画像処理装置1では、従来の画像処理装置と比べて、補間装置の回路規模を小さくすることができる。補間器は、比較的ゲート数が多く規模が大きな回路である。このため、補間器を1個分減らして補間装置の回路規模を小さくするのは、有益である。
<他の実施形態>
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
(1)上記実施形態では、3次元位置座標属性POSの一部の属性データとテクスチャ座標属性UVの属性データとをマージして補間演算を行っていた。しかし、マージする頂点属性の種類は、3次元位置座標属性POSとテクスチャ座標属性UVとに限られない。成分の数が1補間単位の成分数に満たない複数種類の属性データの各成分を1補間単位に統合して補間演算を行えば、上記実施形態と同様の効果が得られるからである。このとき、制約された1補間単位の成分数(4成分)(具体的には、並列処理可能な補間回路の数)を超えないように各成分を統合するのが好ましい。また、上記実施形態は、3次元位置座標属性POSの一部の属性データと成分の数が2以下の頂点属性の属性データとをマージする一態様を示したものである。3次元位置座標属性POSは、X成分およびY成分の計2成分を補間演算の対象から外している。このため、この補間演算の対象から外した2成分に対応する数(すなわち2以下)だけ他の頂点属性の成分をマージすることができる。また、マージする頂点属性の種類は、2種類に限られない。例えば、3種類の頂点属性の各成分をマージするようにしても良い。
(2)上記実施形態では、プリミティブの各頂点に3次元位置座標属性、テクスチャ座標属性、色座標属性および法線属性の4種類の属性データが与えられていた。しかし、プリミティブの各頂点の属性データの種類および数は、これに限られない。また、頂点属性の種類が少なくなるほど、補間演算の際の処理負荷の軽減される割合が高くなる。このため、頂点属性の種類が少ない画像処理装置であるほど、効果は顕著になる。例えば、頂点属性の種類が2個の場合(例えば、3次元位置座標属性とテクスチャ座標属性のみの場合)、従来の画像処理装置に比べ、補間演算における処理負荷が1描画対象あたり1/2に軽減されるため、頂点属性の数が4個の場合の3/4に比べ、効果が大きい、という具合である。
(3)上記実施形態では、画像処理装置1は、1クロックで4成分(S、T、R、Q)の補間演算を並列処理する補間器241〜243を有していた。しかし、画像処理装置に1クロックで1成分の補間演算を行う補間器を設け、その補間器を時分割で動作させて4クロックで4成分の補間演算を行うようにしても良い。この場合、4クロック4成分を1補間単位として取り扱えば良い。この場合においても、成分の数が1補間単位の成分数に満たない複数種類の属性データの各成分を1補間単位に統合して補間演算を行うことにより、上記実施形態と同様の効果を奏する。
(4)上記実施形態の補間器241〜243では、4成分(S、T、R、Q)の補間演算を行っていた。しかし、補間器の行う補間演算の対象となる成分の数は4個に限られない。この場合、補間器は、成分の個数に応じた数の補間回路を有していれば良い。
(5)上記実施形態では、頂点シェーダ10は、4個の出力レジスタ100〜103を有しており、ピクセルシェーダ30は、4個の入力レジスタ300〜303を有していた。しかし、頂点シェーダの出力レジスタの数およびピクセルシェーダの入力レジスタの数は、これに限られない。頂点シェーダの出力レジスタおよびピクセルシェーダの入力レジスタは、少なくとも、頂点属性の数以上であれば良い。このとき、頂点シェーダの最初に出力する出力レジスタに3次元位置座標属性POSの属性データを保持し、次に出力する出力レジスタに3次元位置座標属性POSの属性データとマージすべき頂点属性の属性データを保持すれば良い。ピクセルシェーダの入力レジスタについても、頂点シェーダの出力レジスタと同様である。
(6)上記実施形態では、三角形のプリミティブを例に説明したが、プリミティブの形状は、三角形に限られない。例えば、プリミティブの形状は、四角形やそれ以上の多角形であっても良い。これらの場合についても上記実施形態と同様の効果が得られる。
1…画像処理装置、2…コントローラ、3…メモリ、10…頂点シェーダ、20…補間装置、22…セットアップ部、24…補間演算部、26…ラスタライザ、30…ピクセルシェーダ、100,101,102,103,253…出力レジスタ、221,245…分離部、222…傾き係数演算部、223,246…TMPレジスタ、224,225,226,247,248,249…乗算部、227…POSバッファ、228,252…マージ部、231…補間係数演算部、232,244…レジスタ、240…coefバッファ、241,242,243…補間器、2410…ピクセル座標算出部、241S,241T,241R,241Q…補間回路、251…XYリピータ、300,301,302,303…入力レジスタ。
Claims (4)
- プリミティブの各頂点の複数種類の属性データの成分に基づいて前記プリミティブを表す各ピクセルの複数種類の属性データの成分を補間する補間処理手段を有し、
前記補間処理手段は、所定時間内に所定数の成分の補間演算を行う1補間単位を所定数利用し、成分の個数が1補間単位の成分数に満たない複数種類の属性データの各成分を統合して、統合した各成分の補間演算を1補間単位を利用して行うことを特徴とする画像処理装置。 - 前記プリミティブの各頂点についての複数種類の属性データの中の第1の種類の属性データは、当該頂点の3次元位置座標属性の成分を含み、第2の種類の属性データは、2個以下の成分を含み、
前記補間処理手段は、前記第1の種類の属性データから前記3次元位置座標属性のX成分およびY成分を除いた成分と、前記第2の種類の属性データの成分とを統合し、統合した各成分の補間演算を前記1補間単位を利用して行うことを特徴とする請求項1に記載の画像処理装置。 - 前記補間処理手段は、
成分毎の補間係数を算出する補間係数演算手段と、
前記補間係数演算手段が算出する前記補間係数と描画対象のピクセルのX座標およびY座標とから補間演算を行う補間演算手段と、を有し、
前記補間係数演算手段は、前記3次元位置座標属性のX成分およびY成分を除いた成分と前記第2の種類の属性データの成分とを統合して、統合した各成分の補間係数を算出し、
前記補間演算手段は、前記3次元位置座標属性のX成分およびY成分を除いた成分の補間演算と、前記第2の種類の属性データの成分の補間演算とを、並列して行うことを特徴とする請求項2に記載の画像処理装置。 - 前記第2の種類の属性データは、テクスチャ座標属性の属性データであることを特徴とする請求項2または3に記載の画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014095480A JP2015212890A (ja) | 2014-05-02 | 2014-05-02 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014095480A JP2015212890A (ja) | 2014-05-02 | 2014-05-02 | 画像処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015212890A true JP2015212890A (ja) | 2015-11-26 |
Family
ID=54697117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014095480A Pending JP2015212890A (ja) | 2014-05-02 | 2014-05-02 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015212890A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110270089A (zh) * | 2019-06-21 | 2019-09-24 | 上海米哈游网络科技股份有限公司 | 一种模型细节展示方法、装置、服务器和介质 |
CN112507288A (zh) * | 2020-11-12 | 2021-03-16 | 中国电建集团中南勘测设计研究院有限公司 | 一种多属性数据插值方法 |
-
2014
- 2014-05-02 JP JP2014095480A patent/JP2015212890A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110270089A (zh) * | 2019-06-21 | 2019-09-24 | 上海米哈游网络科技股份有限公司 | 一种模型细节展示方法、装置、服务器和介质 |
CN112507288A (zh) * | 2020-11-12 | 2021-03-16 | 中国电建集团中南勘测设计研究院有限公司 | 一种多属性数据插值方法 |
CN112507288B (zh) * | 2020-11-12 | 2023-01-31 | 中国电建集团中南勘测设计研究院有限公司 | 一种多属性数据插值方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI509562B (zh) | 用以輸入修飾覆蓋資料至像素著色器之系統、方法與電腦程式產品 | |
KR102101626B1 (ko) | 스크린 위치에 따라 달라지는 분해능을 가진 다수의 렌더 타겟을 위한 텍스처 매핑을 위한 그라디언트 조정 | |
JP5456812B2 (ja) | タイルベース・レンダリング・システムにおけるマルチコアの形状処理 | |
JP2022078281A (ja) | 非正規直交グリッドへのテクスチャマッピングのためのグラデーションの調整 | |
JP4266939B2 (ja) | 描画処理装置および描画データ圧縮方法 | |
TWI250785B (en) | Image rendering device and image rendering method | |
US8605086B2 (en) | Hybrid multisample/supersample antialiasing | |
JP2005100177A (ja) | 画像処理装置およびその方法 | |
KR102598915B1 (ko) | 그래픽 처리 | |
TWI425440B (zh) | 複合多重樣本/超樣本抗頻疊 | |
JP4637640B2 (ja) | 図形描画装置 | |
TWI221588B (en) | Apparatus and method for rendering antialiased image | |
US7616211B2 (en) | Rendering processor, rasterizer and rendering method | |
US7576746B1 (en) | Methods and systems for rendering computer graphics | |
JP2015212890A (ja) | 画像処理装置 | |
US20030160799A1 (en) | Reconfigurable hardware filter for texture mapping and image processing | |
US6867778B2 (en) | End point value correction when traversing an edge using a quantized slope value | |
JP2001222712A (ja) | 画像処理装置、畳み込み積分回路及びその方法 | |
US8134570B1 (en) | System and method for graphics attribute packing for pixel shader usage | |
JP4691494B2 (ja) | 画像描画装置、頂点選出方法、頂点選出プログラム及び集積回路 | |
JP2008299642A (ja) | 図形描画装置 | |
JP2005235205A (ja) | 形状チャネルを用いないクリップ・トゥ・セルフ(clip−to−self)機能を有する合成 | |
JP5606632B2 (ja) | ジオモーフィング装置 | |
JP2010146250A (ja) | 曲線分割装置、曲線分割方法、曲線分割プログラム、曲線分割プログラムを記録した記録媒体、曲線分割集積回路 | |
US7609272B1 (en) | Partial texture loads |