JP3556517B2 - 3次元画像処理装置 - Google Patents

3次元画像処理装置 Download PDF

Info

Publication number
JP3556517B2
JP3556517B2 JP9340699A JP9340699A JP3556517B2 JP 3556517 B2 JP3556517 B2 JP 3556517B2 JP 9340699 A JP9340699 A JP 9340699A JP 9340699 A JP9340699 A JP 9340699A JP 3556517 B2 JP3556517 B2 JP 3556517B2
Authority
JP
Japan
Prior art keywords
polygon
texture
value
pixel
subpixel
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.)
Expired - Fee Related
Application number
JP9340699A
Other languages
English (en)
Other versions
JP2000285256A (ja
Inventor
剛 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Priority to JP9340699A priority Critical patent/JP3556517B2/ja
Publication of JP2000285256A publication Critical patent/JP2000285256A/ja
Application granted granted Critical
Publication of JP3556517B2 publication Critical patent/JP3556517B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ポリゴン画像を用いて画面上に立体的に映像を表示する3次元画像処理装置に係り、特にポリゴンやテクスチャのデータ(色や表面の模様)を表示するための3次元画像処理装置に関する。
【0002】
【従来の技術】
<従来技術1>
ビットマップ・ディスプレイ装置である従来のパソコンの表示装置の構成を図22に示す。CPU701が表示する文字コードをVRAM702と呼ばれるメモリ装置に書き込む。また、この文字コードに対応するイメージデータをさらにグラフィックVRAM703に書き込む。このイメージデータがディスプレイ・コントローラ704からの水平垂直信号に同期して読み出され、ビデオ信号に変換されディスプレイ705上に表示される。
【0003】
<従来技術2>
グラフィックス・ディスプレイ装置である従来のグラフィックス・ディスプレイ装置の構成を図23に示す。この装置は、CPU801、テクスチャデータを記憶するテクスチャ・メモリ802、ポリゴン・マッピング処理回路803、および1画面分のフレームメモリ804からなり、フレームメモリ804の内容をディスプレイ・コントローラ805に読み出し、ディスプレイ806へ順次出力するようにしたものである。この処理装置では、CPU801は各ポリゴンを定義するデータとアプリケーションソフトやオペレーターの操作に応じて得られる操作データとを用いて、モデリング変換や投影変換等を実行し、ポリゴン画像を形成すべく順次所要のポリゴンに対応する変換後のデータを、ポリゴン・マッピング処理回路803へ出力する。ポリゴン・マッピング処理回路803は、入力されるポリゴンのデータに対応するテクスチャをデータメモリ802から取り込み、各ポリゴンにテクスチャを付しながら、隠面処理を逐次施して、その結果をフレームメモリ804に出力する。ポリゴン・マッピング処理回路803で生成されたポリゴン画像は、フレーム画としてフレームメモリ804に書き込まれ、所要の速度でディスプレイ806に繰り返し読み出されて、静止画として表示される。
【0004】
<従来技術3>
従来のVRAM型3次元画像表示装置の構成を図24に示す。
この装置はCPU901、座標変換およびポリゴン・コードの描画を行なう座標変換装置902、ポリゴン・コードを保存するポリゴン・コードメモリ903、3頂点ポリゴンの各頂点座標とレンダリング・パラメータを記憶するポリゴンキャシュ904、3頂点ポリゴンの各頂点座標と画面座標から画面に表示されるべきポリゴン面上の1点を求める内分値発生器905、内分値と3頂点ポリゴンの各頂点のレンダリング・パラメータから内分値が示すポリゴン面上の1点におけるレンダリング・パラメータを求め、レンダリング・パラメータから表示する画素の色を求めるレンダラ906、及びディスプレイ・コントローラ907からなる。この処理装置では、描画側、表示側の2つの処理がある。
【0005】
まず描画処理について説明する。
CPU901は、ユーザの操作に従って、表示すべき三角形ポリゴンの3つの描画頂点座標917およびポリゴン・コード911を生成し、座標変換回路902に出力する。また、各頂点に対し1組ずつ計3組のレンダリング・パラメータ909をポリゴン・キャシュ904に対し出力する。
座標変換回路902には、4×4の座標変換マトリクス916と、三角形ポリゴンの各描画頂点座標(x,y,z,1)が入力される。4×4の座標変換マトリクス916を頂点座標に左からかけて、3つの(x,y,z)を生成する。この3つの(x,y,z)を頂点座標910としてポリゴン・キャシュ904に対し出力する。
【0006】
ポリゴン・コード911は、ポリゴンの通し番号である。最初のポリゴンのポリゴン・コード911は1、次のポリゴンのポリゴン・コード911は2となる。1フレームのポリゴン数を最大16383とした場合、ポリゴン・コード911は14bitの整数である。色は通常RGB各bitの計24bitで表わされる。通常ポリゴン・コードの方が色より少ないbit数で表わすことができる。
ポリゴン・キャシュ904は、ポリゴン・コード911の最大値数個のエントリを持つバッファが2つで構成される。座標変換回路902から出力されるポリゴン・コード911の示す位置(エントリ)に頂点座標910とレンダリング・パラメータ909が格納される。
【0007】
座標変換回路902は、画面アドレス918を生成し、この値で示されるポリゴン・コード・メモリ903のエントリにポリゴン・コード911を書き込む。ポリゴン・コード・メモリ903は、ポリゴン・コード911を格納する(画面の横ピクセル数)×(画面の縦ピクセル数)のエントリを持った2つのメモリで構成される。座標変換回路902からアドレスとして出力されるポリゴン・コード911の示す位置(エントリ)に頂点座標910とレンダリング・パラメータ909が格納される。
【0008】
描画を行ないながら表示を行なうため、ポリゴン・コード・メモリ903は、画面のピクセル数の容量を持つ2つのメモリで構成される。一方のメモリを描画側で使用する間はもう一方のメモリを表示側に使用する。同様にポリゴン・キャシュ904も2つで構成され、一方を描画側で使用している時は、一方を表示側で使用する。
1画面分の表示に必要なポリゴン処理を行い、ポリゴン・コード・メモリ9303やポリゴン・キャシュ904への書き込みが完了した時点で、CPU901は制御信号921を用いて、ポリゴン・コード・メモリ903とポリゴン・キャシュ904の描画側と表示側に入れ変える。この処理をスワップ・バッファ処理と呼び、これによって書き込みが完了したデータを表示側の回路から参照できるようになる。
【0009】
以降表示側の処理を説明する。
ディスプレイの水平垂直走査に同期してディスプレイ・コントローラ907は画面座標919を生成する。ポリゴン・コード・メモリ903は画面座標919で示される位置に保存されているポリゴン・コード911をポリゴン・キャシュ904に対し出力する。ポリゴン・キャシュ904は、ポリゴン・コード911で示される位置に保存されている3頂点分の頂点座標912およびレンダリング・パラメータ914を出力する。内分値発生器905は画面座標919と3つの頂点座標912を入力する。内分値発生器905は、画面座標919で示される画面位置に投影される3つの頂点座標912で定義されたポリゴン面上の位置を算出する。レンダラ906には、内分値913と3組のレンダリング・パラメータ914が入力される。レンダラ906は3組のレンダリング・パラメータ914を補間し、内分値913が示す位置における色データ値915を算出する。
ディスプレイ・コントローラ907はレンダラ906から色データ値915を入力し、画像信号920に変換し、ディスプレイ908に対し出力する。
以上が画面上の1ピクセルの表示処理である。この処理をディスプレイ908の画素数分繰り返し1画面の表示処理が終了する。
【0010】
【発明が解決しようとする課題】
従来技術1は、ディスプレイの水平垂直信号に同期して画素生成処理を行なうため、処理が非常に軽いという特徴がある。しかし、四角い図形しか表示できないために、従来技術1の発明では3次元グラフィクスが表示できないという欠点があった。
【0011】
従来技術2は、3次元グラフィクスを表示する機能を有しているという特徴がある。しかし、ポリゴン毎に表示処理を行なうため、画面の塗り重ねが多発し、画素生成処理が非常に重くなるという欠点があった。
【0012】
従来技術3は、色ではなくコードを描画するので、VRAMへの書き込み処理が軽減される。またディスプレイの水平垂直信号に同期してマッピング等のレンダリング処理を行なうので、レンダリング処理が非常に軽い。また、座標変換後の3頂点の座標データおよびレンダリングパラメータをそのままポリゴンキャシュに記憶するためキャシュ処理の負荷が軽いという特徴がある。
【0013】
さて、高画質な画像を生成するには、アルファブレンディングが有効である。アルファブレンディングは半透明な物体を描画する技術である。アルファブレンディングは通常、以下の方法で行われる。物体を視点から遠い順に描画する。半透明の物体の書き込みの際、フレームバッファにすでに書き込まれた色とこれから書き込む色とを平均する。これによって背景物の色が半透明物体を透過している様子が描画できる。
【0014】
ところが、従来技術3のようにコードを描画する方式では、フレームバッファに対し色でなくコードを描画する。このため、背景物のコードしか取り出すことができない。このため、アルファブレンディングを実現することができなかった。
【0015】
また高画質な画像を生成するには、精密な形状データを使用することが有効である。形状が精密になればなるほど、形状の凹凸の周波数が高くなる傾向にある。この高い周波数が、表示デバイスの表現しうる周波数を越えた場合、エリアシングが発生する。エリアシングによって発生する不規則な点滅や、モアレ等のノイズは画質向上の為には最小限に押える必要がある。この画質向上技術をアンチエリアシングと呼ぶ。その代表的手法がオーバーサンプリングである。オーバーサンプリングは表示デバイスよりも高い解像度で処理を行い、それを平均し縮小することでノイズを低減する手法である。通常オーバーサンプリングはピクセル毎に行われる。物体を描く際、各サブピクセルの位置に物体のどの部分を描くべきか各々算出する。この各々のピクセルの色を平均し、ピクセルの色を求める。これをフレームバッファに描画する。
【0016】
ところが上述のようにコードを描画する方式では、フレームバッファに対し色でなくコードを描画する。このため、サブピクセルの色をフレームバッファへの書き込み前に決定することができない。このため、アンチエリアシングを実現することができなかった。
このように、従来技術3は、コードを描画するため、アルファブレンディングやアンチエリアシングなどの高画質なレンダリング処理ができないという欠点があった。
【0017】
以上のように、これまでのグラフィックス装置は、高画質な3次元グラフィックスを軽い処理で表示することができなかった。
【0018】
そこで、本発明の目的は、アルファブレンディングやアンチエリアシング等の高画質なレンダリング処理を軽い負荷で、且つ高速で行うことができる3次元画像処理装置を提供することである。
【0019】
【課題を解決するための手段】
発明は、ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、を備え、前記レンダラは、マテリアルデータを選択するアドレスであるマテリアルIDを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルIDと色データ値を出力する補間手段と、前記マテリアルIDから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャIDを出力するマテリアル・メモリと、前記テクスチャ座標値で示される位置の前記テクスチャIDに選択されたテクスチャ色を出力するテクスチャ・メモリと、前記テクスチャ色と前記色データ値を混合する混合手段と、からなることを特徴とする3次元画像処理装置である。
【0020】
発明は、ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、を備え、前記ポリゴン・キャシュと内分値発生手段とレンダラは、直列接続され、この直列接続されたものが複数並列接続されて、前記レンダラは、マテリアルデータを選択するアドレスであるマテリアルIDを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルIDと色データ値を出力する補間手段と、前記マテリアルIDから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャIDを出力するマテリアル・メモリと、前記テクスチャ座標値で示される位置の前記テクスチャIDに選択されたテクスチャ色を出力するテクスチャ・メモリと、前記テクスチャ色と前記色データ値を混合する混合手段と、からなることを特徴とする3次元画像処理装置である
【0021】
発明は、前記3次元画像処理装置であって、前記レンダラは、さらに、前記サブピクセル・ポリゴン・コードにより、前記混合手段からの色データを出力するか、サブピクセルの色データ値に変換して出力するかを選択するセレクタを備えたことを特徴とする。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態を図面によって詳述する。
【0028】
<実施形態1>
以下、本発明に係る実施形態1について説明する。
図1は、本発明に係る3次元画像形成装置の実施形態1を示すブロック図である。図1に示す3次元画像形成装置は、CPU101、座標変換回路102、ディザ回路126、ポリゴン・コード・メモリ103、ポリゴン・キャシュ104、内分値発生器105、レンダラ106、合成器123、ディスプレイ・コントローラ107からなる構成である。この3次元画像形成装置で形成した3次元画像をディスプレイ108に表示する。
本実施形態は、ポリゴン画像を構成するピクセルを、サブピクセルに分割して処理するものであり、通常はピクセルを2×2、3×3、4×4のサブピクセルに分割して処理する。本実施形態においては、サブピクセルの分割は2×2とする。
【0029】
CPU101は、サブピクセル・ポリゴン・コード111および描画頂点座標117および座標変換マトリクス116を座標変換回路102に対し出力する。同様に、サブピクセル・ポリゴン・コード111に対応したレンダリング・パラメータ109をポリゴン・キャシュ104に対し出力する。
また、制御信号124によってポリゴン・コード・メモリ103およびポリゴン・キャシュ104を制御する。
またディザデータ127をディザ回路426に対し出力する。ディザデータは、サブピクセルの書き込みの許可不許可を表す。
【0030】
座標変換回路102は、入力された描画頂点座標117を頂点座標110に座標変換し、該頂点座標110をサブピクセル・ポリゴン・コード111でアドレスされるポリゴン・キャシュ104のエントリに書き込む。また、サブピクセル画面アドレス118及びサブピクセル・ポリゴン・コード111をディザ回路126に与える。
【0031】
ディザ回路126は、サブピクセル画面アドレス118にしたがってディザデータ127を確認評価し、描画を行う場合はサブピクセルの位置をサブピクセル画面アドレス118で与え、対応するサブピクセル・ポリゴン・コード111をポリゴン・コード・メモリ103に書き込む。
画面座標119によって示されるポリゴン・コード・メモリ103の領域から各サブピクセルのポリゴン・コード122がピクセルの分割個数の回数だけ読み出され、ポリゴン・キャシュ104に送られる。
【0032】
ポリゴン・キャシュ104には、座標変換回路102から出力されたサブピクセル・ポリゴン・コード111をアドレスとして与えられ、座標変換された頂点座標110が書き込まれる。同時にCPU101からのレンダリング・パラメータ109も同じ領域に書き込まれる。
また、ポリゴン・コード・メモリ103から各サブピクセルのポリゴン・コード122がアドレスとしてポリゴン・キャシュ104に出力され、ポリゴン・キャシュ104からは、ポリゴン・コード122で示される領域に格納されている頂点座標110とレンダリング・パラメータ109が読み出される。
【0033】
内分値発生器105は、ポリゴン・キャシュ104から出力された頂点座標112およびディスプレイ・コントローラ107から出力された画面座標119を与えられ、内分値113をレンダラ106に対し出力する。
レンダラ106は、内分値113およびレンダリング・パラメータ114から、各サブピクセルの色データ値115および各サブピクセルのブレンディングモード125を生成し、合成器123に対し出力する。ここで、ブレンディングモードとは、物体の透明性に併せて処理をするモードである。
合成器123は、レンダラ106からピクセルの分割数個の各サブピクセルの色データ値115を入力し、合成を行ない合成色データ値121を出力する。
ディスプレイコントローラ407は、合成色ディスプレイ値421に従った画像信号420をディスプレイ408に対し出力しディスプレイ408がその画像を表示する。
【0034】
以下本発明の動作について説明する。
本発明の動作は描画側と表示側の2つの処理がある。
描画側は、ポリゴンの外形を生成する処理である。一方、表示側は、ポリゴン面を構成するピクセルの色を決定し、ディスプレイ108に表示する処理である。
【0035】
始めに描画側の処理から説明する。
CPU101は、ユーザの操作に従って、表示すべき三角形ポリゴンの3つの描画頂点座標117およびサブピクセル・ポリゴン・コード111を生成し、座標変換回路102に出力する。三角形ポリゴンの各描画頂点座標は(x,y,z,1)の形で表される。また、各頂点に対し1組ずつ計3組のレンダリング・パラメータ109をポリゴン・キャシュ104に対し出力する。
座標変換回路102は、4×4の座標変換マトリクス116をCPU101から供給されて、この4×4のマトリクスを、描画頂点座標に左からかけて、3つの(x,y,z)を生成する。この3つの(x,y,z)を頂点座標110としてポリゴン・キャシュ104に出力する。
ポリゴン・キャシュ104は、サブピクセル・ポリゴン・コード111の最大値数個のエントリを持つバッファが2つで構成される。座標変換回路102からアドレスとして出力されるサブピクセル・ポリゴン・コード111の示す位置(エントリ)に、頂点座標110とレンダリング・パラメータ109が格納される。
【0036】
次にポリゴンの外形を描画する。図2は画面座標と3次元座標の関係を表している説明図である。図2において、Z=1の平面が画面を構成し、画面の上端が(1,1,1)または(−1,1,1)下端が(1,−1,1)又は(−1,−1,1)である。3次元座標上の点P0(X0,Y0,Z0)は、画面座標(X0/Z0,Y0/Z0,1)に投影されることがわかる。同様に、点P1(X1,Y1,Z1)が、画面上の座標(X1/Z1,Y1/Z1,1)に、点P2(X2,Y2,Z2)が、画面上の座標(X2/Z2,Y2/Z2,1)に、投影される。
ポリゴンを描画すべき領域は、−1≦Y/Z≦1と、−1≦X/Z≦1およびZ=nearとZ=farとで囲まれる部分となる。ただしnearとfarとは任意の正の数とする。
【0037】
この領域内のポリゴン面を構成する各サブピクセルについて、図1の座標変換回路102は、サブピクセル画面アドレス118とサブピクセル・ポリゴン・コード111を生成し、ディザ回路126に出力する。本実施形態においては、サブピクセルの分割は2×2なので、ポリゴン・コード・メモリ103は{(画面の横ピクセル数)×2}×{(画面の縦ピクセル数)×2}のサブピクセル・ポリゴン・コードの配列である。
【0038】
本実施形態において、ディザデータ127は、16サブピクセル×16サブピクセルに対する1ビットのデータである。ディザデータ127の1ビットはサブピクセルの書き込みの許可不許可を表す。1の時書き込みは許可であり、0の時は不許可である。ディザデータ127は画面の左上から画面いっぱいに繰り返ししきつめられている。画面サイズが640×480の時、サブピクセルは2×2であるので、サブピクセル数は1280×960となる。したがって、ディザデータ127は、横に80回、縦に60回繰り返される。
【0039】
ディザ回路126は、サブピクセル画面アドレス118が入力されると、サブピクセル画面アドレス118が示す位置のディザデータ127を調べる。この値が1の時、サブピクセル画面アドレス118で示されるポリゴン・コード・メモリ103のエントリにサブピクセル・ポリゴン・コード111を書き込む。0の時はデータを書き込まない。こうして隠面消去処理を行う。
【0040】
図3は、上記の処理を行なった後のポリゴン・コード・メモリ103の状態を示す。151は、ディザデータに基づいて、ポリゴン・コード・メモリ103に記憶されたサブピクセル・ポリゴン・コードのID=1のポリゴンである。同様に152,153は、サブピクセル・ポリゴン・コードのID=2,D=3のポリゴン7である。
ポリゴン・コードのID=1,2,3を持つ3つの三角形ポリゴンをポリゴン・コード・メモリ103に順に書き込んだ結果、3次元的に投影処理された3つの三角形がポリゴン・コード・メモリ103上に保存されていることがわかる。また、ディザの結果ID=1,2のポリゴン151,152がID=3のポリゴン153の上に描画されていることがわかる。
【0041】
図4は、上記の処理を行なった後のポリゴン・キャシュ104の状態を示す。ID1,2,3の3つの三角形ポリゴンの頂点座標110およびレンダリング・パラメータ109がID番目の位置に保存されていることがわかる。
描画を行ないながら表示を行なうため、ポリゴン・コード・メモリ103は、画面のピクセル数の容量を持つ2つのメモリで構成される。一方のメモリを描画側で使用する間は、他方のメモリを表示側に使用する。同様にポリゴン・キャシュ104も2つで構成され、一方を描画側で使用している時は、他方を表示側で使用する。
1画面分の表示に必要なポリゴン処理を行い、ポリゴン・コード・メモリ103やポリゴン・キャシュ104への書き込みが完了した時点で、CPU101は制御信号124を用いて、ポリゴン・コード・メモリ103とポリゴン・キャシュ104の描画側と表示側を入れ変える。この処理をスワップバッファ処理と呼び、これによって書き込みが完了したデータを表示側の回路から参照できるようになる。
【0042】
次に表示側の処理を説明する。
図1で示す本実施形態は、1ピクセルを2×2のサブピクセルに分割する例であるので、合成器127は4つのサブピクセル色を合成する。サブピクセル色の合成数は通常4、9、16が使用される。
ディスプレイ・コントローラ107は、画面のすべてのピクセルを横方向に走査するように、画面座標を生成する。ディスプレイ・コントローラ107は1ピクセルについて4つのサブピクセルの画面座標を生成する。
【0043】
各々の画面座標について以下の処理を実行する。
ポリゴン・コード・メモリ103は画面座標119で示される位置に保存されているサブピクセル・ポリゴン・コード122をポリゴン・キャシュ104に対し出力する。ポリゴン・キャシュ104は、サブピクセル・ポリゴン・コード122で示される位置に保存されている3頂点分の頂点座標112およびレンダリング・パラメータ114を出力する。
【0044】
内分値発生器105には、画面座標119と3つの頂点座標112が入力される。内分値発生器105は、画面座標119で示される画面位置に投影される3つの頂点座標112で定義されたポリゴン面の位置を算出する。算出のアルゴリズムは、視点と画面座標を結ぶ水平平面と垂直平面でポリゴンを切断する方式を用いる。算出した点の位置は、3つの頂点座標112の内分値113で表される。
【0045】
図5は、実施形態1における内分値413の説明図である。図5において、ポリゴンは3頂点ABCで構成されている。内分値113は頂点順序および内分比で構成される。内分比は3つの数字である。また、頂点順序は3つの頂点の並べ変えの順序を表す1つの数字である。例えば、ABC,ACB,BAC,BCA,CAB,CBAの各頂点順序を各々1,2,3,4,5,6の数字で表す。図5に示す頂点順序は1であり、内分比が各々α、β、γである。この時、ABをα:1−αで内分した点をPとし、ACをβ:1−βで内分した点をQとする。この2点PQをγ:1−γで内分した点をRとする。この点Rの位置が内分値413によって表される位置である。頂点順序が2の時は、BとCを入れ変えて同じ操作を実行する。
【0046】
レンダラ106には、内分値113とポリゴン・キャシュ104から3組のレンダリング・パラメータ114が入力される。レンダラ106は3組のレンダリング・パラメータ114を補間し、内分値113が示す位置における色データ値115を算出する。図6は、レンダリング・パラメータ410のうちs0,s1,s2の補間の様子を示している。
【0047】
図6において、ポリゴンは3頂点ABCで構成されている。今、頂点A、B、Cに対するレンダリング・パラメータ114を各々(s0,t0,r0),(s1,t1,r1),(s2,t2,r2)とし、頂点順序が1、内分比をα、β、γとする。点Rのレンダリング・パラメータを(s,t,r)として、これらを頂点のレンダリング・パラメータから求める。
まず、sを求める。ABのレンダリング・パラメータのs0,s1をα:1−αで内分した値をsaとし、ACのレンダリング・パラメータのs0,s2をβ:1−βで内分した値をsbとする。この2つの値sa、sbをγ:1−γで内分した値をsとする。このsが内分値113で示される位置Rにおけるレンダリング・パラメータsの値である。レンダラ106は同様にR位置における残りのパラメータt、rについても求める。レンダリング・パラメータ110はユーザーが各頂点毎に指定する1組の数字である。通常は頂点色、3次元テクスチャ座標、テクスチャIDを使用する。
【0048】
図7は、レンダラ106の一例を示すブロック図である。図7のレンダラは、レンダリング・パラメータ114が頂点色205とテクスチャ座標(s,t,r,ID)204とブレンディングモード211で構成される場合を示す。本実施形態において、テクスチャ座標は3次元の座標値(s,t,r)及びテクスチャの種類を選択するテクスチャIDで構成される。テクスチャIDはテクスチャの種類を選択するためのアドレスであり、3次元の座標値(s,t,r)はテクスチャIDによつて選択されるテクスチャ内の一点を表すアドレスである。
【0049】
補間器201は、内分値113および3頂点のテクスチャ座標204を入力し、s,t,r,IDの4つのパラメータについて補間を行ない、内分値113で示される位置Rのテクスチャ座標(s,t,r)207およびテクスチャID206をテクスチャ・メモリ202に対し出力する。またテクスチャ座標207と同様の方法で3つの頂点色205を補間し、色データ値209を生成し、ミキサ203に対し出力する。また3頂点のブレンディングモード125を補間し、ブレンディングモード211を生成し、各サブピクセルのブレンディングモード125として合成器123に対し出力する。
【0050】
テクスチャ・メモリ202は、ポリゴンに張り付けるテクスチャイメージを格納する。テクスチャ・メモリ202には補間器201からテクスチャID206とテクスチャ座標207が入力され、テクスチャID206とテクスチャ座標207で示される位置のテクスチャ色208をミキサ203に対し出力する。ミキサ203は、補間器201からの色データ値209とテクスチャ色208とを合成し、ミキサ色を生成し、各サブピクセルの色データ値115として合成器123に対し出力する。
【0051】
図8は、レンダラ106の他の例を示すブロック図である。レンダラ106の入力レンダリング・パラメータが頂点色225およびテクスチャ座標(s,t,r,MID)の場合の実施例である。
図8のレンダラにおいて、テクスチャ座標は3次元の座標値(s,t,r)及びマテリアルの種類を選択するマテリアルIDで構成される。マテリアルID(MID)はマテリアルの種類を選択するアドレスである。マテリアルとは、ポリゴンの材質のことであり、材質の特性は通常、テクスチャ、透明度、反射特性等のデータで表現される。これら1つのマテリアルを表現する一連のデータを1組として、マテリアルデータと呼ぶ。マテリアルメモリ232は、このマテリアルデータを複数格納する。マテリアルID231はマテリアルメモリ232に格納される複数のマテリアルデータから1つを選択するアドレスである。
【0052】
ここで、マテリアルメモリ232に格納するマテリアルデータは、テクスチャIDとブレンディングモードで構成される。テクスチャIDは、テクスチャの種類を選択するためのアドレスであり、3次元の座標値(s,t,r)はテクスチャIDによって選択されるテクスチャ内の一点を表すアドレスである。
【0053】
補間器221は、内分値113および3頂点のテクスチャ座標224を入力し、4つのパラメータ(s,t,r,MID)について補間を行ない、内分値113で示される位置のテクスチャ座標値(s,t,r)227をテクスチャ・メモリ222に対して出力する。また内分値113で示される位置のマテリアルID231をマテリアルメモリ232に対し出力する。
【0054】
また3つの頂点色225を入力し、補間を行ない、内分値113で示される位置の色データ値229をミキサ223に対し出力する。マテリアルメモリ232はマテリアルID231によって選択されるマテリアルデータを出力する。
マテリアルデータのうちブレンディングモード125は各サブピクセルのブレンディングモードとして合成器123に出力される。またテクスチャID226はテクスチャ・メモリ222に対し出力される。
【0055】
テクスチャ・メモリ222は、ポリゴンに貼りつけるテクスチャ・イメージを格納する。テクスチャ・メモリ222は、補間器221からテクスチャ座標227とマテリアルメモリ232からテクスチャID226をアドレスとして入力され、テクスチャID226とテクスチャ座標227で示される位置のテクスチャ色228をミキサ223に対し出力する。
ミキサ223は、補間器221からの色データ値229とテクスチャ色228とを合成し、ミキサ色を生成し、各サブピクセルの色データ値として合成器123に対し出力する。
【0056】
最後に合成器123について説明する。
図9は、合成器123の一例を示すブロック図である。この合成器123は、積算器301とシフタ302とアキュームレータ303からなり、各3つずつ配置された構造である。この合成器に、各サブピクセルのブレンディングモード125が2ビットのデータとして入力される。上位1ビットは積算器301のon/offを切替える。下位1ビットはシフタ302のon/offを切替える。
【0057】
以下、ブレンディングモード125と描画ピクセルの特性について記述する。まず、ブレンディングモード125の説明を行う。
ブレンディングモード0(00):使用しない
ブレンディングモード1(01):off
ブレンディングモード2(10):A値に従ってA値、R値、G値、B値をスケールし、サブピクセル分割数回加算を行う
ブレンディングモード3(11):A値に従ってA値、R値、G値、B値をスケールし、サブピクセル分割数だけ加算を行った後平均化する
【0058】
1のモードは不透明の物体の描画に使用する。2のモードはライト等の明るい物体の描画に使用する。3のモードは通常の半透明物体の描画に使用する。
各サブピクセルの色データ値115は、A値、R値、G値、B値の4つのパラメータで構成される。ARGB値は通常0から255の整数である。
【0059】
次に、合成器の動作について説明する。
積算器301は、各サブピクセルのブレンディングモード125の上位が1の時は、各サブピクセルの色データ値115を入力し、各パラメータに対しA値を積算し、シフタ302に対し出力する。0の時はA値の代わりに255を積算する。
シフタ302は、各パラメータをサブピクセルの分割数で割って平均を求める。すなわち、各サブピクセルのブレンディングモード125の下位が1の時は、積算器301が出力した値を右に2ビットシフトする。0の時はそのまま出力する。
これまでの処理をサブピクセルの分割個数の回数だけ行う。本合成器ではサブピクセルの分割数が4であるので、処理は4回である。
【0060】
アキュムレータ303は、シフタ302から出力されるデータを4サブピクセル分加算する。4ピクセル目のデータの加算後、以下の処理を行う。データの値をDとする。
・D=D+D/256
・Dを右に8ビットシフトする。
・Dが255より大きかったらD=255とする。
・Dを合成色データ値121として出力する。
【0061】
図10は、合成器123の他の例を示すブロック図である。
この合成器において、各サブピクセルのブレンディングモード125は1ビットのデータであり、補間器311のon/offを切替える。
以下はブレンディングモード125の説明である。
ブレンディングモード1:アルファブレンディングON
ブレンディングモード0:アルファブレンディングOFF
【0062】
半透明の物体には1を使用し、不透明の物体には0を使用する。
各サブピクセルの色データ値115はA値、R値、G値、B値の4つのパラメータで構成される。ARGB値は通常0から255の整数である。
【0063】
次に、合成器の動作について説明する。
補間器311に、出力レジスタ312からの色データ値と各サブピクセルの色データ値115を入力し、各パラメータに対し、以下の演算を行い、生成した色データ値を出力レジスタ312に対し出力する。
Rout=A(n)*R(n)+(256−A(n))*R(n−1)
Gout=A(n)*G(n)+(256−A(n))*G(n−1)
Bout=A(n)*B(n)+(256−A(n))*B(n−1)
A(n),R(n),G(n),B(n)は各サブピクセルの色データ値115を示す。R(n−1),G(n−1),B(n−1)は、出力レジスタ312から出力されるR(n),G(n),B(n)の直前の色データ値を示す。
A(n)はブレンディングモード125によって以下のように変化する。
1:各サブピクセルの色データ値のA値
0:255
こうして、ブレンディングモード125により変化するA値に基づいて、色データとその直前の色データとを内分する。
【0064】
出力レジスタ312は、各サブピクセルのブレンディングモード125の下位が1の時は、補間器311が出力した値を右に2ビットシフトする。0の時はそのまま出力する。これまでの処理をサブピクセルの分割数回行うが、この合成器では4回である。
【0065】
ディスプレイ・コントローラ107は合成器123から合成色121を入力し、画像信号120に変換しディスプレイに対し出力する。
以上が画面上の1ピクセルの表示処理である。この処理をディスプレイの画素数分繰り返し1画面の表示処理が終了する。
【0066】
<実施形態2>
以下、本発明に係る実施形態2について説明する。
1秒間に60回画面を表示するインターレースのラスタースキャン方式のディスプレイを用いると、ピクセル数は640×480のVGA(Video Graphics Array)相当となる。この場合、1ピクセルの処理に許容される時間は、80nsである。本実施形態は、1ピクセルを2×2のサブピクセルに分割するので、1つのサブピクセルの処理に許される時間は20nsとなる。この時間内に処理を行うため、内分値発生器105およびレンダラ106では、パイプライン方式にて、複数の処理を並列して行う。以下に、内分値発生器およびレンダラにおけるパイプライン処理について具体例を用いて説明する。
【0067】
まず、内分値発生器105における内分値算出処理について説明する。
内分値発生器105は、画面の2次元座標上の所定位置(m,n)に、3次元座標上の3頂点にて定義されるポリゴン面上のどの位置(x,y,z)が投影されるかを算出する。この内分値算出方法では、ポリゴン面上の位置は三つの内分比および頂点順序で表される。すなわち、3頂点の座標P0(x0,y0,z0)、P1(x1,y1,z1)、P2(x2,y2,z2)および画面座標(m,n)を入力し、内分比α,β,γおよび頂点順序δを生成する。内分比は、3頂点の座標で定義されるポリゴンを二つの平面にて順次切断することによって生成する。また頂点順序は、最初の平面による切断の際に決定する。
【0068】
内分比の算出法について、図11および図12を用いて説明する。図11は、XYZの3次元座標における頂点座標P0,P1,P2にて定義された三角形が、XZ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断している様子を示し、10Aは、投影面上に三角形P0,P1,P2を正規化して投影した様子を示す。図12は、上記の三角形が、YZ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断している様子を示し、11Aは、投影面上に三角形P0,P1,P2を正規化して投影した様子を示す。図11、図12において、視点は原点と一致する。
【0069】
また図11及び図12において、点Q0,Q1は三角形P0,P1,P2とx=mzの条件の平面との交点である。すなわち線分Q0,Q1が、x=mzの条件の平面による三角形P0,P1,P2の切断線である。
【0070】
図11において、点A0は、点P0を通るx軸に平行な直線とx=mzの条件の平面との交点である。同様に点A1は、点P1を通るx軸に平行な直線とx=mzの条件の平面との交点、点A2は、点P2を通るx軸に平行な直線とx=mzの条件の平面との交点である。そして点Q0が、線分P0,P1を内分する比は、線分P0,A0の長さと線分P1,A1の長さとの比に等しい。また点Q1が、線分P0,P2を内分する比は、線分P0,A0の長さと線分P2,A2の長さとの比に等しい。
【0071】
ここでP0(x0,y0,z0)、P1(x1,y1,z1)、P2(x2,y2,z2)であり、A0(mx0,y0,z0)、A1(mx1,y1,z1)、A2(mx2,y2,z2)とする。
【0072】
また三角形P0,Q0,A0と三角形P1,Q0,A1とは、相似であるから、
P0,Q0:Q0,P1=P0,A0:P1,A1=(mz0−x0):(x1−mz1)
となる。その結果、点Q0が、線分P0,P1を内分する比は、
α=|mz0−x0|/(|mz0−x0|+|mz1−x1|)
となる。
【0073】
同様に、三角形P0,Q1,A0と三角形P2,Q1,A2とは、相似であるから、点Q1が、線分P0,P2を内分する比は、
β=|mz0−x0|/(|mz0−x0|+|mz2−x2|)
となる。
【0074】
次に図12において、点Rは、線分Q0,Q1とYZ平面との交点である。点B0は、点Q0を通るy軸に平行な直線とy=nzの条件の平面との交点である。同様に点B1は、点Q1を通るy軸に平行な直線とy=nzの条件の平面との交点である。
【0075】
ここでQ0(x3,y3,z3)、Q1(x4,y4,z4)とすると、B0(x3,ny3,z3)、B1(x4,ny4,z4)となる。
このため、y3,z3,y4,z4は、
y3=y0+(y1−y0)×α
z3=z0+(z1−z0)×α
y4=y0+(y2−y0)×β
z4=z0+(z2−z0)×β
として、求まる。また、三角形Q0,R,B0と三角形Q1,R,B1とは、相似であるから、
Q0,R:R,Q1=Q0,B0:Q1,B1=(nz3−y3):(y4−nz4)
となるので、点Q0が、線分P0,P1を内分する比は、
γ=|nz3−y3|/(|nz3−y3|+|y4−nz4|)
となる。
【0076】
次に頂点順序の算出について説明する。
まず、点P0から点A0までの距離x0−mz0,点P1から点A1までの距離x1−mz1,点P2から点A2までの距離x2−mz2を演算し、符号を調べる。その結果、一つだけ異符号のものがあり、これが先頭にくるように並べ替える。例えば、x0−mz0が負で、x1−mz1,x2−mz2が正ならば、頂点順序はP0,P1,P2となる。また、x1−mz1が負で、x0−mz0,x2−mz2が正ならば、頂点順序はP1,P0,P2となる。以上の演算で内分値が求まる。
【0077】
上述の例では、まずXZ平面に垂直な平面にて切断した後、YZ平面に垂直な平面にて切断した場合について説明したが、先にYZ平面に垂直な平面にて切断した後、XZ平面に垂直な平面にて切断した場合は、上述の説明におけるポリゴン座標のxとyを入れ替え、また画面座標のmとnを入れ替えて、その他の処理は同様である。
【0078】
次に、図11における、x−mzをX方向透視距離、y−nzをY方向透視距離と呼び、このX方向およびY方向透視距離を用いた内分値算出方法について説明する。
【0079】
内分値発生器105は、画面座標(m,n)およびポリゴンの三つの頂点座標P0(x0,y0,z0)、P1(x1,y1,z1)、P2(x2,y2,z2)の入力を受けて、X方向透視距離、内分比α,βおよび頂点順序δを算出し、次にY方向透視距離、内分比γを算出し、内分比α,β,γおよび頂点順序δを出力する。
【0080】
図13は、内分値発生器におけるパイプライン処理の説明図である。ここで、A〜Fは、画面の左上から(i,j)番目のピクセルにおける以下の処理A〜処理Fを表す。
【0081】
まず処理Aは、各ピクセルにおける、
Figure 0003556517
を求める。
【0082】
処理Bは、各ピクセルにおける、
dx0,dx1,dx2の並べ替えと、
dy0,dy1,dy2の並べ替えと、
頂点順序δの遅延を行う。
【0083】
処理Cは、各ピクセルにおける、
内分比α,βの算出と、
dy0,dy1,dy2および頂点順序δの遅延を行う。
【0084】
処理Dは、各ピクセルにおける、
d=dy0+(dy1−dy0)×α
e=dy0+(dy2−dy0)×β
を求め、
α,βおよび頂点順序δの遅延を行う。
【0085】
処理Eは、各ピクセルにおける、
内分比γの算出と、
内分比α,βおよび頂点順序δの遅延を行う。
【0086】
処理Fは、各ピクセルにおける、
内分比α,β,γおよび頂点順序δを出力する。
【0087】
上記各処理は、ピクセル表示周期のT1サイクルでは1段目で処理Aを行う。次に、T2サイクルでは2段目で処理Bを行うと共に、1段目で処理Aを行う。次に、T3サイクルでは3段目で処理Cを行うと共に、2段目で処理Bを行うと共に、1段目で処理Aを行う。こうして、T4,T5サイクルにおいて、順次処理D,Eを行うとともに、それぞれの前段の処理も同時に行う。そして、T6サイクルでは6段目で処理Fが行われ、1段目〜5段目で処理A〜処理Eが並列して行われる。
【0088】
図14は、レンダラにおけるパイプライン処理の説明図である。レンダラは、レンダリングパラメータとして、マテリアル色c0,c1,c2とテクスチャ座標(s,t,r)およびテクスチャIDとを用いる。ここで、G〜Lは、画面の左上から(i,j)番目のピクセルにおける以下の処理G〜処理Lを表す。レンダラは、内分値発生器から内分比α,β,γおよび頂点順序δを受けて以下の処理を行う。
【0089】
まず処理Gでは、頂点順序δに対応して、各頂点のテクスチャID0,ID1,ID2とテクスチャ座標(s0,t0,r0)(s1,t1,r1)(s2,t2,r2)およびマテリアル色c0,c1,c2を並べ替える。図15は、s0,s1,s2の並べ替え例を示し、他のパラメータについても同様に並べ替える。
【0090】
処理Hは、内分値にて表される位置のレンダリングパラメータsを
sa=s0+(s1−s0)×α
sb=s0+(s2−s0)×β
s=sa+(sb−sa)×γ
として求める。さらにt,r,cについても同様に求める。
【0091】
処理Iは、マテリアルデータを読み出す。
【0092】
処理Jは、内分値にて表される位置のテクスチャ色を読み出し、マテリアル色cの遅延を行う。
【0093】
処理Kは、内分値にて表される位置のテクスチャ色とマテリアル色とを混合する。
【0094】
処理Lは、混合色を出力する。
【0095】
上記各処理は、ピクセル表示周期のT7サイクルでは1段目で処理Gを行う。次に、T8サイクルでは2段目で処理Hを行うと共に、1段目で処理Gを行う。次に、T9サイクルでは3段目で処理Iを行うと共に、二段目で処理Hを行うと共に、1段目で処理Gを行う。こうして、T10,T11サイクルにおいて、順次処理J,Kを行うとともに、それぞれの前段の処理も同時に行う。そして、以降、同様にして、T12サイクルでは6段目で処理Lが行われ、1段目〜4段目で処理G〜処理Kが並列して行われる。
【0096】
図16は、本発明に係る3次元画像処理装置の実施形態2を示すブロック図である。この3次元画像処理装置の基本構成は、実施形態1と変わらないが、異なる点はポリゴン・キャシュと内分値発生器とレンダラの直列接続したものが、複数並列接続された構造である。CPU401は、サブピクセル・ポリゴン・コード411、描画頂点座標417および座標変換マトリクス416を座標変換回路402に対し出力する。
同様に、レンダリング・パラメータ409をポリゴン・キャシュ404に対し出力する。また、制御信号424によってポリゴン・コード・メモリ403およびポリゴン・キャシュ404を制御する。またディザデータ427をディザ回路426に対し出力する。
【0097】
座標変換回路402は、入力された描画頂点座標417を頂点座標410に座標変換し、サブピクセル・ポリゴン・コード411でアドレスされるポリゴン・キャシュ404のエントリに書き込む。また、サブピクセル画面アドレス418及びサブピクセル・ポリゴン・コード411をディザ回路426に与える。
ディザ回路426は、サブピクセル画面アドレス418にしたがってディザデータ427を評価し、描画を行う場合はサブピクセルの位置をサブピクセル画面アドレス418で与え、サブピクセル・ポリゴン・コード411をポリゴン・コード・メモリ403に書き込む。
【0098】
並列ポリゴン・キャシュ404は、座標変換回路402からポリゴン・コード411によって示される領域に頂点座標410が書き込まれる。同時にCPU401からのレンダリング・パラメータ409も同じ領域に書き込まれる。また、ポリゴン・キャシュ404は、ポリゴン・コード・メモリ403から出力された1ピクセルを構成する全サブピクセルのサブピクセル・ポリゴン・コード422のうち、自分の担当するサブピクセルのポリゴン・コードで示される領域の内容である頂点座標410およびレンダリング・パラメータ409を読み出し並列内分値発生器405へ各々送る。
【0099】
並列内分値発生器405は、頂点座標412および画面座標419を与えられ、内分値413をレンダラ406に対して出力する。
並列レンダラ406は、内分値413およびレンダリング・パラメータ414から、サブピクセル色415を生成し、合成器423に対し出力する。合成器425は、並列レンダラ406からサブピクセル色データ値415を入力し、合成を行ない合成色データ値421を出力する。
ディスプレイ・コントローラ407は、その合成色データ値421に従った画像信号420をディスプレイ408に対し出力しディスプレイ408がその画像を表示する。
【0100】
並列ポリゴン・キャシュ404、並列内分値発生器405、並列レンダラ406をあわせて並列回路と呼ぶ。図17は並列回路の各回路が担当するサブピクセルを示している。図は2×2のサブピクセルの例を示す。本例で並列回路の並列数は4であり、1番目の回路が左上のサブピクセルを担当する。以下2番目が右上、3番目が左下、4番目が右下を各々担当する。
【0101】
図18は、実施形態2の並列ポリゴン・キャシュ404及び並列内分値発生器405のブロック図である。並列ポリゴン・キャシュ404はセレクタ503とポリゴン・キャシュ104とからなる。並列内分値発生器405はサブピクセル画面座標発生器505と内分値発生器105からなる。
【0102】
セレクタ503は、1ピクセルを構成する全サブピクセルのポリゴン・コード422が入力され、自分が担当するサブピクセルのポリゴン・コードを1つ選択し担当サブピクセルポリゴン・コード504として出力する。
サブピクセル画面座標発生器505は、画面座標419が入力され、自分が担当するサブピクセルの画面座標を算出し、担当サブピクセル画面座標506として出力する。1番目の並列回路の場合、担当サブピクセルポリゴン・コード504は左上のサブピクセルのポリゴン・コードを選択する。また担当サブピクセル画面座標506は左上のサブピクセルの画面座標を算出し出力する。それ以外の回路は実施形態1の内分値発生器105およびポリゴン・キャシュ104と同様である。並列回路および合成器423を除く各回路の構成および動作は実施形態1と同様である。
【0103】
最後に合成器423について説明する。
図19は、実施形態2の合成器の一例を示すブロック図である。
この合成器は、図10の合成器が複数並列に接続された構造である。ブレンディングモードは実施形態1と同じである。合成器423は、各並列レンダラ406からの各サブピクセルの色データ値415が同時に入力される。各サブピクセルの色データ値415はA値、R値、G値、B値の4つのパラメータで構成され、このARGB値は通常0から255の整数である。
【0104】
並列積算器601には、各サブピクセルのブレンディングモード425の上位が1の時は、各サブピクセルの色データ値415を入力し、各パラメータに対しA値を積算し、並列シフタ602に対し出力する。0の時はA値の代わりに255を積算する。本実施例においてサブピクセルの分割数は2×2の4である。
602は並列シフタである。各サブピクセルのブレンディングモード425の下位が1の時は、並列積算器601が出力した値を右に2ビットシフトする。0の時はそのまま出力する。こうして、平均化する。
603は加算器である。並列シフタ602から出力されるデータを加算する。
【0105】
また以下の処理を行なう。データの値をDとする。
・D=D+D/256
・Dを右に8ビットシフトする。
・Dが255より大きかったらD=255とする。
・Dを合成色データ値421として出力する。
【0106】
図20は合成器423の他の例である。
本実施例において各サブピクセルのブレンディングモード425は1ビットのデータであり、補間器のon/offを切替える。以下はブレンディングモード421の説明である。
ブレンディングモード1:アルファブレンディングON
ブレンディングモード0:アルファブレンディングOFF
半透明の物体には1を使用し、不透明の物体には0を使用する。
【0107】
各サブピクセルの色データ値415はA値、R値、G値、B値の4つのパラメータで構成される。ARGB値は通常0から255の整数である。
601は多段補間器である。多段補間器601の補間器はサブピクセルの分割数段ある。各々の補間器は前段からの色データ値および各サブピクセルの色データ値415を入力し、各パラメータに対し以下の補間演算を行う。
Rout=A(n)*R(n)+(256−A(n))*R(n−1)
Gout=A(n)*G(n)+(256−A(n))*G(n−1)
Bout=A(n)*B(n)+(256−A(n))*B(n−1)
R(n),G(n),B(n)は各々格段が入力する各サブピクセルの色データ値415を示す。A(n−1),R(n−1),G(n−1),B(n−1)は各々格段が入力する前段からの色データ値である。
【0108】
A(n)はブレンディングモード425によって以下のように変化する。
1:各サブピクセルの色データ値のA値
0:255
第一段の補間器は前段からの色データ値の代わりに0を入力する。
最終段の補間器で生成される色データ値を合成色データ値421として出力する。レンダラ406は、前述のものと同様である。
【0109】
図21は、レンダラのさらに他の例を示すブロック図である。この構成は、図8のレンダラに対し、ミキサ223の公団にセレクタ241を追加したものである。このセレクタ241に、ミキサ色115およびサブピクセル・ポリゴン・コード122を入力している。サブピクセル・ポリゴン・コード122の最上位ビットが0の場合は、ミキサ色115を出力する。また、1の場合は、サブピクセル・ポリゴン・コード122を各サブピクセルの色データ値242として出力する。
サブピクセル・ポリゴン・コード122を各サブピクセルの色データ値422に変換する方法について説明する。サブピクセル・ポリゴン・コード122が16ビットであるとすると、1ビットをA値の最上位、残りのeビットずつをRGB値の上位5ビットに各々割り当て、余ったビットは0とする。こうして、サブピクセルの色データ値422として出力する。
【0110】
【発明の効果】
本発明によれば、色ではなくコードを描画しなおかつ複数の色を合成して表示を行なうため、アルファブレンディングとオーバーサンプリングによるレンダリング処理が可能になり、高画質な3次元グラフィクスを非常に軽い負荷で実現できる。
【0111】
さらに、発明によれば、パイプライン方式で複数の処理を並列に行うので、処理が高速で、またより小さい回路規模で実現できる。
【0112】
また、発明によれば、マテリアルIDを利用することにより様々なマテリアルを切替えることが可能になり、多様な色生成機能をVRAM型3D画像処理装置に付加することができる。
【0113】
また、発明によれば、セレクタを備えることにより、サブピクセル・ポリゴン・コードの内容を色情報としても使用することができる。
【図面の簡単な説明】
【図1】本発明に係る3次元画像形成装置の実施形態1を示すブロック図である。
【図2】画面座標と3次元座標の関係を表している説明図である。
【図3】描画処理後のポリゴン・コード・メモリの状態図である。
【図4】描画処理後のポリゴン・キャシュの状態図である。
【図5】実施形態1における内分値413の説明図である。
【図6】レンダリング・パラメータの補間の説明図である。
【図7】実施形態1のレンダラの一例を示すブロック図である。
【図8】実施形態1のレンダラの他の例を示すブロック図である。
【図9】実施形態1の合成器の一例を示すブロック図である。
【図10】実施形態1の合成器の他の例を示すブロック図である。
【図11】三角形が、XZ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断されている説明図である。
【図12】三角形が、YZ平面に垂直で原点と投影面の画面座標を結んだ平面によって切断されている説明図である。
【図13】実施形態2の内分値発生器の処理の説明図である。
【図14】実施形態2のレンダラの処理の説明図である。
【図15】テクスチャ座標のs0,s1,s2の並べ替えを示す説明図である。
【図16】本発明に係る3次元画像形成装置の実施形態2を示すブロック図である。
【図17】実施形態2の並列回路のブロック図である。
【図18】実施形態2の並列ポリゴン・キャシュ及び並列内分値発生器のブロック図である。
【図19】実施形態2の合成器の一例を示すブロック図である。
【図20】実施形態2の合成器の他の例を示すブロック図である。
【図21】図8のレンダラのさらに他の例を示すブロック図である。
【図22】従来のビットマップ・ディスプレイ装置のブロック図である。
【図23】従来のグラフィック・ディスプレイ装置のブロック図である。
【図24】従来のVRAM型3次元画像表示装置のブロック図である。
【符号の説明】
101 CPU
102 座標変換回路
103 ポリゴン・コード・メモリ
104 ポリゴン・キャシュ
105 内分値発生器
106 レンダラ
107 ディスプレイ・コントローラ
108 ディスプレイ
109 レンダリング・パラメータ
110,112 頂点座標
111 サブピクセル・ポリゴン・コード
113 内分値
114 レンダリング・パラメータ
115 各サブピクセルの色データ値
116 座標変換マトリクス
117 描画頂点座標
118 サブピクセル画面アドレス
119 画面座標
120 画像信号
121 合成色データ値
122 各サブピクセルのポリゴン・コード
123 合成器
125 各サブピクセルのブレンディングモード
126 ディザ回路
127 ディザデータ

Claims (3)

  1. ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、
    前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、
    前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、
    前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、
    前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、
    前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、
    前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、
    を備え
    前記レンダラは、
    マテリアルデータを選択するアドレスであるマテリアルIDを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルIDと色データ値を出力する補間手段と、
    前記マテリアルIDから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャIDを出力するマテリアル・メモリと、
    前記テクスチャ座標値で示される位置の前記テクスチャIDに選択されたテクスチャ色を出力するテクスチャ・メモリと、
    前記テクスチャ色と前記色データ値を混合する混合手段と、
    からなることを特徴とする3次元画像処理装置。
  2. ピクセルを構成する各サブピクセルのポリゴン・コード、描画頂点座標、及び座標変換マトリクスが与えられ、該描画頂点座標と座標変換マトリクスにより座標変換した頂点座標と、それに対応するサブピクセル画面アドレス及びサブピクセル・ポリゴン・コードを出力する座標変換手段と、
    前記サブピクセル画面アドレスの示す位置に対応する前記サブピクセル・ポリゴン・コードの書き込みを制御するディザ発生回路と、
    前記ディザ発生回路の指示に基づいて、前記サブピクセル画面アドレスに前記サブピクセル・ポリゴン・コードを格納するポリゴン・コード・メモリと、
    前記ポリゴン・コード・メモリに格納された前記サブピクセル・ポリゴン・コードをアドレスとする位置に、頂点座標及びレンダリング・パラメータを格納するポリゴン・キャシュと、
    前記頂点座標に基づいて、表示する画面座標のポリゴン内分値を求める内分値発生手段と、
    前記ポリゴン内分値によって頂点座標に対応するレンダリング・パラメータを補間して、前記画面座標の色データ値とアルファブレンディングモードを出力するレンダラと、
    前記アルファブレンディングモードに基づいてアルファブレンディング処理を行い、各サブピクセルの色データ値を合成する合成手段と、
    を備え、
    前記ポリゴン・キャシュと内分値発生手段とレンダラは、直列接続され、この直列接続されたものが複数並列接続されて、
    前記レンダラは、
    マテリアルデータを選択するアドレスであるマテリアルIDを含むテクスチャ座標と頂点色からなるレンダリング・パラメータを補間して内分値で示される位置のテクスチャ座標値とマテリアルIDと色データ値を出力する補間手段と、
    前記マテリアルIDから選択されたマテリアルデータに基づいてアルファブレンディングモードとテクスチャ色を選択するアドレスであるテクスチャIDを出力するマテリアル・メモリと、
    前記テクスチャ座標値で示される位置の前記テクスチャIDに選択されたテクスチャ色を出力するテクスチャ・メモリと、
    前記テクスチャ色と前記色データ値を混合する混合手段と、
    からなることを特徴とする3次元画像処理装置。
  3. 前記レンダラは、さらに、前記サブピクセル・ポリゴン・コードにより、前記混合手段からの色データを出力するか、サブピクセルの色データ値に変換して出力するかを選択するセレクタを備えたことを特徴とする請求項1又は2記載の3次元画像処理装置。
JP9340699A 1999-03-31 1999-03-31 3次元画像処理装置 Expired - Fee Related JP3556517B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9340699A JP3556517B2 (ja) 1999-03-31 1999-03-31 3次元画像処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9340699A JP3556517B2 (ja) 1999-03-31 1999-03-31 3次元画像処理装置

Publications (2)

Publication Number Publication Date
JP2000285256A JP2000285256A (ja) 2000-10-13
JP3556517B2 true JP3556517B2 (ja) 2004-08-18

Family

ID=14081429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9340699A Expired - Fee Related JP3556517B2 (ja) 1999-03-31 1999-03-31 3次元画像処理装置

Country Status (1)

Country Link
JP (1) JP3556517B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003091737A (ja) 2001-07-13 2003-03-28 Sony Computer Entertainment Inc 描画処理装置、描画処理プログラムを記録した記録媒体、描画処理プログラム、描画処理方法
KR101716278B1 (ko) 2010-09-14 2017-03-27 에스프린팅솔루션 주식회사 화상형성장치, 인쇄제어단말장치 및 그 화상형성방법
DE102014113957A1 (de) 2014-09-26 2016-03-31 Connaught Electronics Ltd. Verfahren zum Konvertieren eines Bilds, Fahrerassistenzsystem und Kraftfahrzeug

Also Published As

Publication number Publication date
JP2000285256A (ja) 2000-10-13

Similar Documents

Publication Publication Date Title
JP4725741B2 (ja) 描画装置及び描画方法
JP3107452B2 (ja) テクスチャマッピング方法およびその装置
JP4713591B2 (ja) 画素サンプリングによるアンチエイリアシングのための方法及びシステム
JP2637920B2 (ja) コンピュータ・グラフィック・システム及びフレーム・バッファ使用方法
WO1991011799A1 (fr) Unite d'affichage d'images d'animation et memoire externe utilisee avec une telle unite
JPH0535913B2 (ja)
JP2003228733A (ja) 画像処理装置及びその構成部品、レンダリング処理方法
JPH0916806A (ja) 立体画像処理装置
JPH09319891A (ja) 画像処理装置及びその処理方法
JP4456003B2 (ja) 低コスト・スーパーサンプリング・ラスタライゼーション
JP3556517B2 (ja) 3次元画像処理装置
JP2005077522A (ja) 画像処理装置および画像処理方法
JP3903557B2 (ja) データ変換装置および画像生成装置
JP3979162B2 (ja) 画像処理装置およびその方法
JPH11331700A (ja) 画像処理装置および画像処理方法
JP3409987B2 (ja) 3次元画像生成方法および装置とこの方法および装置を用いた3次元画像処理装置
JP3741053B2 (ja) 画像処理装置
JP4069486B2 (ja) 記憶回路制御装置およびグラフィック演算装置
JPH08212377A (ja) 画像情報生成装置及び方法、画像情報処理装置及び方法、並びに記録媒体
JP3910259B2 (ja) 画像処理装置および方法、並びにレンダリング装置および方法
JPH11306366A (ja) グラフィック演算装置およびその方法
US6624820B2 (en) Graphic processing method for determining representative texture data for a plurality of pixels and apparatus for same
JPH05298455A (ja) テクスチャマッピング装置
JP2011028641A (ja) 画像処理装置及び画像処理方法
JPH11272548A (ja) 記憶回路制御装置およびグラフィック演算装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040512

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080521

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090521

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100521

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110521

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120521

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130521

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140521

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees