JPWO2007132746A1 - 処理装置 - Google Patents
処理装置 Download PDFInfo
- Publication number
- JPWO2007132746A1 JPWO2007132746A1 JP2008515521A JP2008515521A JPWO2007132746A1 JP WO2007132746 A1 JPWO2007132746 A1 JP WO2007132746A1 JP 2008515521 A JP2008515521 A JP 2008515521A JP 2008515521 A JP2008515521 A JP 2008515521A JP WO2007132746 A1 JPWO2007132746 A1 JP WO2007132746A1
- Authority
- JP
- Japan
- Prior art keywords
- processor
- processing
- polygon
- vertex
- input
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 766
- 238000000034 method Methods 0.000 claims description 118
- 238000006243 chemical reaction Methods 0.000 claims description 55
- 230000009466 transformation Effects 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 32
- 239000007787 solid Substances 0.000 description 9
- 241000270666 Testudines Species 0.000 description 8
- 238000012546 transfer Methods 0.000 description 6
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000001788 irregular Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
Description
本発明の目的は、上記のようなアンバランスを解消し、プロセッサをより効率的に利用する処理装置を提供することである。
ここで、前記供給手段は、各プロセッサごとに入出力部を有し、各入出力部は、当該入出力部が帰属するプロセッサと異なるプロセッサに帰属している複数個のレジスタから変換済み座標を受け取り、当該入出力部が帰属するプロセッサと同じプロセッサに帰属している演算部に送り込むとしてもよい。
演算部における頂点処理で得られる変換済み座標は、その変換済み座標を用いてポリゴン処理ガ行われる演算部が属するプロセッサと同じプロセッサに属するレジスタに格納されるので、どのプロセッサの演算部においても、頂点処理のあとにポリゴン処理を連続して行うことができ、頂点処理とポリゴン処理のアンバランスが発生しにくくなる。
クロスバスを使って、プロセッサ間での処理済み頂点データの送受信を行うので、変換済み頂点データの送り込み先が特定のプロセッサに固定されていなくても、クロスバスを制御することで、送り込み先のプロセッサを変更することができる。
各プロセッサの演算部において、頂点処理が終了するとすぐにポリゴン処理を開始するので、無駄な遊び時間ができにくくなる。
ここで、前記供給手段は、隣接する一組のプロセッサのうち、一方のプロセッサ内にある演算部の出力段と、他方のプロセッサ内にあるレジスタの入力段とを結ぶ接続線、及び、両端に位置する一組のプロセッサのうち、一方のプロセッサ内にある演算部の出力段と、他方のプロセッサ内にあるレジスタの入力段とを結ぶ接続線にて構成されるとしてもよい。
処理装置内部でのプロセッサが並列的に構成されているため、各プロセッサで同一のプログラムを動かしておきながら、相互に連携してポリゴン処理を行うことができる。プログラムがプロセッサの数に依らないので、プロセッサの数を増減させる拡張が容易にできる。
本処理装置を携帯電話に内蔵することにより、モバイルゲーム等におけるグラフィックス描画処理を高速化できる。
ここで、前記プログラム、および、ポリゴンを規定する頂点の座標と辺に関する情報は、ネットワークから携帯電話のメモリにダウンロードされたものであるとしてもよい。
ここで、前記処理装置は、携帯電話のメモリ上のプログラム、および、ポリゴンを規定する頂点の座標と辺に関する情報を格納した領域のアドレスを携帯電話のメインプロセッサから通知されるとしてもよい。
ここで、前記処理装置は浮動小数点演算器を備え、前記頂点の座標は、浮動小数点型に変換された座標であるとしてもよい。
座標データを浮動小数点型で扱うので、丸め誤差等によっていびつなポリゴンが描画されてしまうことを防ぐことができる。
各プロセッサにおける座標変換処理の開始タイミングをずらすことにより、ポリゴンを構成する最後の頂点の座標変換が終了した時点で、既に変換済みの他の頂点座標を使って、勾配算出処理を開始することができる。
最も単純なポリゴンである三角形ポリゴンを用いることで、勾配計算処理が簡単になる。頂点の数とポリゴンの数との比が1に近いので、頂点処理とポリゴン処理のアンバランスを抑制することができる。
ここで、前記各演算部は、各ポリゴンを規定する複数の頂点の照度をもとに、ポリゴンの辺上および内部の照度を算出するとしてもよい。
110:CPU
120:メモリ
130:送受信部
140:操作入力部
150:ディスプレイ
200a,200b,200c,200d:プロセッサ
210a,210b,210c,210d:レジスタ
210a',210b',210c',210d':レジスタ
210a",210b",210c",210d":レジスタ
220a,220b,220c,220d:演算部
230a,230b,230c,230d:入出力部
240:クロック
250:分配部
260:割当部
300:座標変換部
310:視野変換部
320:照度計算部
330:ビューポート変換部
340:勾配計算部
350:内部領域計算部
本発明の実施形態1における処理装置は、図1のような携帯電話に内蔵され、メモリ上に記録されたゲームプログラムおよびゲームデータを元に、ディスプレイに立体物の投影像を描画するためのセットアップデータを生成する。
ここで、立体物とはゲームに登場するキャラクターや構造物のことであり、ゲームデータは、これらの立体物をポリゴンを用いてモデリングしたときの頂点の座標を含んだ頂点データ、および、どの頂点を結んでポリゴンが構成されるかを示す情報を含んだポリゴンデータである。また、ゲームプログラムは、これらの頂点データとポリゴンデータからセットアップデータを算出するためのマイクロコードを含んでいる。セットアップデータとは、ディスプレイの画素ごとに照度等の画素情報を対応させたデータ列である。
上記のように、対象物に固定された個々のローカル座標系でモデリングされた各立体物は、ワールド座標系で定義される仮想空間に配置することで、相互の位置関係が決定される。図3(b)、図4(b)、図5(b)は、ローカル座標Li(xi,yi,zi)がワールド座標Wi(Xi,Yi,Zi)に変換されることを示している。
〈携帯電話の構成〉
図6は、本発明の実施形態1における処理装置100を内蔵した携帯電話の構成図である。ゲームプログラムおよびゲームデータはネットワークで配信されているものをダウンロードできるようになっており、操作入力部140から入力されるユーザの指示に従って、送受信部130から受信され、メモリ120に記録される。ゲームプログラムが実行されると、CPU 110は、ジオメトリ処理を行うマイクロコードと、ジオメトリ処理で用いられる頂点データとポリゴンデータとを記憶した領域、演算に必要な種々のパラメータを記憶した領域のメモリ上でのアドレスを処理装置100に通知する。処理装置100は、通知されたアドレスからマイクロコードを読み込み、メモリ上の頂点データとポリゴンデータとに対してマイクロコードを実行することで、セットアップデータを生成する。生成されたセットアップデータは、ディスプレイ150に転送され描画がなされる。
〈処理装置の構成〉
次に、本発明の実施形態1における処理装置の構成について説明する。図7は、本発明の実施形態1における処理装置の構成図である。本発明の実施形態1における処理装置は、4つのプロセッサ200a,b,c,dと、それらを駆動するクロック240、頂点データを各プロセッサに分配する分配部250、及び、ポリゴン処理を実行するプロセッサを割り当てる割当部260とから構成される。各プロセッサ200a,b,c,dは、レジスタ210a,b,c,d、演算部220a,b,c,d、および、入出力部230a,b,c,dをそれぞれ有している。
(分配部250)
分配部250は、頂点の座標変換を並列化して実行させるために、ポリゴンを規定する頂点を、各々のプロセッサに分配する。プロセッサの数をMとすると、座標変換は並列度Mで行われることになる。ここで、分配とは、ポリゴンメッシュを構成するすべてのポリゴンに関して、ポリゴンを規定する頂点の座標をメモリから読み出して、各頂点に対して1つのプロセッサを対応させ、対応するそれぞれのプロセッサ内の演算部に読み出した頂点の座標を引き渡すことである。ポリゴンを規定する頂点の数をKとすると、プロセッサ数Mと頂点数Kの大小関係によって、分配部250による分配には、次の3つのパターンがある。
M>Kの場合、プロセッサ側には、1つのポリゴンの全ての頂点の座標変換を同時に実行すると共に、他のポリゴンの頂点の座標変換を実行する余力がある。この場合、ポリゴンを構成するK個の頂点と、次のポリゴンを構成するK個の頂点のうちの(M-K)個の頂点とをメモリから読み出して、合計M個の頂点をM個の各プロセッサに出力することで分配はなされる。但し、K<(M-K)の場合は、次のポリゴンを構成するK個の頂点全てを読み出しても、(M-K)個にならないので、更に次以降のポリゴンを構成する頂点も読み出し、ポリゴンメッシュの最後の頂点まで読み出してしまわない限りは、合計M個の頂点がプロセッサに同時に出力されるようにする。
なお、分配がなされたあとプロセッサにおいて実行される処理は、上述の座標変換に限らず照度計算等も含み、実際には頂点処理が行われる。また、上では頂点がM個のプロセッサに同時に出力されると述べたが、実際にはメモリから読み出された頂点は、逐次プロセッサに出力される。上でいう同時とは、分配部250がメモリから合計M個の頂点を読み出すまでを1周期としたとき、同じ周期内でという意味である。
上記の分配処理の具体的な手順を、図8のフローチャートを参照しながら説明する。分配部250は、まず、固定値N、Mの初期化を行う。分配部250は、メモリからポリゴンデータを読み出し、ジオメトリ処理の対象となるポリゴンメッシュの頂点の数をNとする。また、メモリからパラメータを読み出し、処理装置に含まれるプロセッサの数をMとする(ステップ3001)。すなわち、ポリゴンメッシュを構成する頂点には1からNまでのインデックスが付与され、プロセッサには1からMまでのインデックスが付与されている。分配部250は、読み出す頂点のインデックスをn=1と初期化し(ステップ3002)、頂点nの分配先となるプロセッサのインデックスをm=1と初期化する(ステップ3003)。分配部250は、頂点nをメモリから読み出し、プロセッサmに分配する(ステップ3004)。次に、頂点を指すインデックスn、及び、プロセッサを指すインデックスmを1ずつ増加させ(ステップ3005)、頂点を指すインデックスnが全頂点の数Nより大きくなれば(ステップ3006 Y)、終了する。頂点を指すインデックスnが全頂点の数Nより大きくなければ(ステップ3006 N)、プロセッサを指すインデックスmと全プロセッサの数Mとを比較し、mがMより大きくなれば(ステップ3007 Y)、ステップ3003に戻り、分配先のプロセッサをm=1に戻す。mがMより大きくなければ(ステップ3007 N)、ステップ3004に戻り、分配処理を継続する。
以上が分配部250の説明である。
割当部260は、あるポリゴンの勾配算出を行うにあたって、勾配算出を担当することになるプロセッサを、当該ポリゴンに割り当てる。ここで、割当とは、1からMまであるプロセッサに対して、ある与えられたポリゴンpに関する勾配算出を行うプロセッサmを決定し、プロセッサmにおいて勾配算出を行わせることである。このような割当が必要であるのは以下の理由による。つまり、座標変換は、並列度Mの並列計算が可能であったが、勾配算出は、そのような並列計算はできない。なぜなら、複数のポリゴンの変換後の頂点座標が一度に揃わないからである。そうすると、本来、座標変換が任務であるはずのプロセッサのどれかに勾配算出を割り当て、このプロセッサに勾配算出をさせることが理想的である。このように、勾配算出は並列計算に不向きであるため、これに割り当てるべきプロセッサを動的に決定するというのが、割当部260の役割である。この割当は、勾配算出を行うべきポリゴンを構成する頂点のうち、最後の頂点に付与された連番であるインデックスを、プロセッサ数Mで割り、そのとき得られる剰余を、出力先のプロセッサ番号として採用することでなされる。これは、各ポリゴンを複数のプロセッサが交代で処理するための配慮である。分配処理においてプロセッサに分配された頂点座標が、ポリゴンを構成する頂点のうちの最後の頂点であるかどうかを判定するために、ポリゴンメッシュが三角形ストリップかどうか等を示す形状の特性が考慮される。
上記の割当処理の具体的な手順を、図9のフローチャートを参照しながら説明する。図9では、演算がしやすいために実際によく採用される三角形ポリゴンの場合での処理を示している。割当部260は、まず、固定値N、Mの初期化を行う。割当部260は、メモリからポリゴンデータを読み出し、ジオメトリ処理の対象となるポリゴンメッシュの頂点の数をNとする。また、メモリからパラメータを読み出し、処理装置に含まれるプロセッサの数をMとする(ステップ3101)。割当部260は、処理中のポリゴンメッシュの種類に関する情報を得るために、メモリからポリゴンデータを読み出す(ステップ3102)。割当部260は、頂点のインデックスをn=3、割当対象となるポリゴンのインデックスをp=1と初期化する(ステップ3103)。割当部260は、頂点nの頂点処理を行うプロセッサを指すインデックスmを、頂点を指すインデックスnを、プロセッサの数Mで割った余りとして算出する(ステップ3104)。割当部260は、ポリゴンpのポリゴン処理をプロセッサmで行うように割り当てる(ステップ3105)。次に、処理中のポリゴンメッシュの種類が、三角形ストリップである場合は(ステップ3106 Y)、頂点を指すインデックスn、及び、割当対象となるポリゴンを指すインデックスpを、それぞれ1ずつ増加させる(ステップ3107)。処理中のポリゴンメッシュの種類が、三角形ストリップでない場合は(ステップ3106 N)、処理中のポリゴンメッシュは独立三角形とみなされるので、頂点を指すインデックスnを3だけ増加し、割当対象となるポリゴンを指すインデックスpは1だけ増加させる(ステップ3108)。頂点を指すインデックスnが、全頂点の数Nよりも大きければ(ステップ3109 Y)、割当処理を終了し、全頂点の数Nよりも大きくなければ(ステップ3109 N)、ステップ3104に戻り、割当処理を継続する。
演算部は、乗算器や加算器で構成されるALU(Arithmetic and Logic Unit)であり、分配部250により分配された頂点データに対して頂点処理を行い、処理済み頂点データを同じプロセッサ内のレジスタに出力する。また、演算部は、割当部260によりポリゴン処理を行うように割り当てられている場合は、同じプロセッサの入出力部から与えられた処理済み頂点データに対してポリゴン処理を行い、セットアップデータを出力する。
入出力部は、同じプロセッサの演算部における三角形ポリゴンのポリゴン処理に必要な処理済み頂点データ3つのうち、別のプロセッサの演算部で頂点処理された2つを、それらのプロセッサ内のレジスタから読み出し、入出力部と同じプロセッサ内の演算部に転送する。
〈頂点処理〉
ここで、頂点処理の内容について説明する。図10は、頂点処理で行われる内部処理の流れを示した図である。演算部は、モデリングされた立体物のローカル座標L(x,y,z)を含む頂点データを取得すると、まず、座標変換部300でワールド座標W(x,y,z)に変換する。この座標変換は、図11(a)のように、カメがモデリングされたローカル座標系x1y1z1と、図11(b)のように、角錐がモデリングされたローカル座標系x2y2z2とは、互いに独立であり、図11(c)のように、1つのワールド座標系XY Zの所定の位置に、これらの立体物を配置するときのローカル座標系からワールド座標系への座標変換である。座標変換において、立体物の向き指定する回転角、位置を指定する並進ベクトル、大きさを指定するスケール比等のパラメータがメモリから読み出される。
次に、照度計算部320では、光源位置から照射される光を立体物に当てたときの各頂点における照度fの計算を行う。ここでは一例として照度を取り上げているが、頂点の色など他の特性であっても同様である。
上記のように、ローカル座標系で定義された頂点データを、スクリーン平面上の2次元座標と照度等の頂点の特性を示す情報を含んだ頂点データに変換にすることが頂点処理であり、頂点処理された頂点データを処理済み頂点データと呼ぶ。
〈ポリゴン処理〉
次に、ポリゴン処理の内容について説明する。
図12は、ポリゴン処理で行われる内部処理の流れを示した図である。上述したように、まず、勾配計算部340が頂点処理で得られた処理済み頂点データを3つ取得する。勾配計算部340は、これらの3頂点がスクリーン上に形成する三角形ポリゴンの辺の勾配を計算することで、三角形ポリゴンの内部と外部との境界を決定する。また、勾配計算部340は、三角形ポリゴンの辺上における照度を、頂点における照度を内挿することで算出する。
以上のようにして決定された三角形ポリゴンの内部および辺上の画素数がNであったとすると、N個のスクリーン座標(ξi,ηi)と照度fiの組(i=1,2,…,N)としてセットアップデータが生成される。
〈動作〉
次に、本処理装置の動作を、図14を参照しながら説明する。図14は、本発明の実施形態1における処理装置において、図3の三角形ストリップが処理される様子を順を追って示した図である。図14の各ステップは、図7の構成図を簡略化して描いたものであり、ALUはそれぞれ演算部220a,b,c,d、Rはそれぞれレジスタ210a,b,c,dであり、ALUとRの組が処理装置中に4つあるプロセッサ200a,b,c,dに対応している。図14では、入出力部230a,b,c,dは省略している。図14では、明記していないが、4つずつあるプロセッサ等は、図7と同様に左から順にa,b,c,dに対応する。
図14(b)では、プロセッサ200aの演算部220aに入力された頂点データL1が頂点処理されて、処理済み頂点データP1に変換される。処理済み頂点データP1は、同じプロセッサ200aのレジスタ210aに出力される。また、次の頂点データL2は、プロセッサ200bの演算部220bに入力される。
図14(d)では、プロセッサ200cの演算部220cに入力された頂点データL3が頂点処理されて、処理済み頂点データP3に変換される。この段階で、三角形ポリゴンΔ1を構成する3頂点の頂点処理が終了するので、プロセッサ200cの入出力部230cは、プロセッサ200aのレジスタ210a、および、プロセッサ200bのレジスタ210bから処理済み頂点データP1、P2を取得し、同じプロセッサ200cの演算部220cに出力する。また、前の段階と同様に、処理済み頂点データP3は、同じプロセッサ200cのレジスタ210cに出力され、頂点データL4は、プロセッサ200dの演算部220dに入力される。
以上のようにして、図3の三角形ストリップのジオメトリ処理が終了し、処理装置は、三角形ポリゴンΔ1、Δ2、Δ3、Δ4のセットアップデータを出力する。
〈タイミングチャート〉
次に、上記のようにジオメトリ処理が行われる場合に、頂点処理およびポリゴン処理が各プロセッサ200a,b,c,dにおいてどのようなタイミングで行われるかを、図15を参照しながら説明する。
まず、図15(a)の三角形ストリップを処理する場合について説明する。
時刻t=8に、頂点P3の頂点処理が終了すると、頂点P1とP2の頂点処理も終了しているので、演算部220cは、処理済み頂点データP1、P2、P3を用いて、三角形ポリゴンΔ1のポリゴン処理を開始する。この例では、ポリゴン処理にはクロック2周期分の時間がかかるとする。
時刻t=12に、演算部220aにおける頂点P5の頂点処理と、演算部220cにおける三角形ポリゴンΔ1のポリゴン処理が終了すると、演算部220aは処理済み頂点データP3、P4、P5を用いて、三角形ポリゴンΔ3のポリゴン処理を開始し、演算部220cは、三角形ストリップの最初の頂点P1の頂点処理に戻る。
以上のようにして、本処理装置は、複数のプロセッサに頂点処理を分担して行わせ、ポリゴン処理に必要な処理済み頂点データの計算が終了するごとに、ポリゴンを構成する最後の頂点を処理したプロセッサにおいてポリゴン処理を行う。これによって、プロセッサの遊び時間を極力短くし、頂点処理およびポリゴン処理を時間的に密に行うことができる。
独立三角形の場合、2番目の三角形ポリゴンΔ2は、頂点P4、P5、P6で構成されるので、時刻t=13になって初めて開始できる。時刻t=9で、演算部220dは頂点P4の頂点処理を終了するが、演算部220cにおける三角形ポリゴンΔ1のポリゴン処理が終了しておらず、頂点P1の頂点処理が開始していないため、演算部220dは頂点P2の頂点処理を開始できない。従って、演算部220dにおいて、時刻t=9から時刻t=12まで、遊び時間ができてしまう。
このような事情のため、独立三角形を処理する場合は、三角形ストリップを処理する場合に比べて、図15(b)の空白部分で示すように、プロセッサの遊び時間が所々にできてしまうが、これは許容の範囲内である。従来のように頂点処理とポリゴン処理を別々のプロセッサに分担させた場合は、頂点処理に重点を置くと、ポリゴン処理が追いつかず処理済み頂点データが貯まってしまい、逆に、ポリゴン処理に重点を置くと、頂点処理がついていけなくなるというジレンマのため、三角形ストリップもしくは独立三角形のいずれか一方に処理装置を最適化すると、他方ではどうしてもプロセッサの使用効率が悪くなってしまうという問題があった。しかし、本発明の処理装置では、三角形ストリップであっても独立三角形であっても、同程度に効率良く演算を行うことができる。
〈フローチャート〉
最後に、本発明の実施形態1における処理装置の動作の流れを図16のフローチャートに示す。
頂点処理の最初のステップとして、浮動小数点型に変換された頂点座標に対して、ローカル座標系からワールド座標系への座標変換を行い、それぞれ独立にモデリングされた立体物を1つの仮想空間上に配置する(ステップ1002)。更に、カメラ視点の座標系へと視野変換を行い、立体物を投影するスクリーンの向きや大きさを決める(ステップ1003)。次に、各頂点における照度計算を行う(ステップ1004)。頂点処理の最終段階としてビューポート変換を行い、仮想空間上の3次元座標から、スクリーン平面上の2次元座標への変換を行う(ステップ1005)。このとき、クリッピングが必要かどうか、すなわち、スクリーンからはみ出た座標があるかどうかを判定し(ステップ1006)、必要であればクリッピング処理を行う(ステップ1007)。
最後に処理装置は、セットアップデータにおける座標を浮動小数点型から整数型に戻して(ステップ1010)、ディスプレイに描画する(ステップ1011)。
〈各プロセッサにおける処理のフローチャート〉
次に、各プロセッサにおける頂点処理およびポリゴン処理の流れを、図17を参照しながら説明する。
まだ処理すべき頂点があれば(ステップ2001 N)、頂点Lnを取得する(ステップ2002)。頂点Lnは、他のプロセッサでもまだ頂点処理されていない頂点で、最もインデックスが若い頂点であり、座標変換前のローカル座標を含んでいる。
次に、演算部がポリゴン処理を行うかどうかの判定を、割当部が行う。処理中のポリゴンメッシュが三角形ストリップである場合は(ステップ2005 Y)、処理した頂点のインデックスnが3以上であれば(ステップ2006 Y)、ステップ2009に進み、nが3以上でないなら(ステップ2006 N)、ステップ2001に戻る。処理中のポリゴンメッシュが三角形ストリップでない場合は(ステップ2005 N)、それは独立三角形とみなされるので(ステップ2007)、この場合nが3の倍数なら(ステップ2008 Y)、ステップ2009に進み、nが3の倍数でないなら(ステップ2008 N)、ステップ2001に戻る。
演算部は、入出力部から得た処理済み頂点データP(n-2)、P(n-1)と、自身で処理した処理済み頂点データPnを用いてポリゴン処理を行う(ステップ2010)。ポリゴン処理でセットアップデータを算出すると、ステップ2001に戻る。以上の処理を、ポリゴンメッシュを構成するすべての頂点に関して頂点処理が終わるまで繰り返す。
〈クリッピング処理〉
次に、クリッピング処理について説明する。クリッピング処理とは、立体物のスクーンへの投影像がスクリーンからはみ出した場合に、はみ出した部分をカットし、新しくポリゴンメッシュを構成し直すことをいう。スクリーンからはみ出した部分はディスプレイに描画する必要がないので、クリッピング処理を行うことで、無駄なポリゴン処理をしなくてすむようになる。例えば、図3の三角形スプリットをスクリーンに投影したとき、図18(a)のようになっていたとする。このとき、図18(a)の頂点P4、P5、P6で構成される三角形ポリゴンΔ4の一部はスクリーンをはみ出している。このような場合には、はみ出し部分をもつ三角形ポリゴンΔ4とスクリーン枠との交点を、図18(a)の点P7、P8のように算出し、スクリーン内部に収まっている4点P4、P5、P7、P8を頂点として、図18(b)のように三角形ポリゴンを構成し直す。交点P7、P8における照度等は、ポリゴン処理の場合と同様に頂点間を内挿することで算出される。
〈表裏判定およびバックフェイスカリング〉
図16における、クリッピングの判定とクリッピング処理のステップは、三角形ポリゴンを構成する3頂点に関する頂点処理が終了して初めてできる処理であれば他の処理であってもよい。クリッピング以外には、例えば、バックフェイスカリングがある。これは、立体物のスクリーンへの投影像から、表裏判定で裏向きと判定される三角形ポリゴンを選択し描画対象から省くことである。
〔実施形態2〕
本発明の実施形態2では、処理装置における複数のプロセッサの構成が、実施形態1とは異なる例について説明する。実施形態1では、処理済み頂点データは、その頂点処理を行った演算部が帰属するプロセッサと同じプロセッサに帰属するレジスタに格納され、入出力部が各プロセッサ内のレジスタから処理済み頂点データを取得するという方式であった。実施形態2では、処理済み頂点データは、演算部において頂点処理が行われるプロセッサに帰属するレジスタに格納され、入出力部は各プロセッサ内のレジスタへと処理済み頂点データを送り出す。
〈構成〉
図20は、本発明の実施形態2における処理装置の構成図である。本発明の実施形態2における処理装置は、4つのプロセッサ200a,b,c,dと、それらを駆動するクロック240、頂点データを分配する分配部250、ポリゴン処理を行うプロセッサを割り当てる割当部260とから構成され、各プロセッサ200a,b,c,dが、レジスタ210a,b,c,d、演算部220a,b,c,d、および、入出力部230a,b,c,dをそれぞれ有している点は、実施形態1と同じである。しかし、実施形態2における処理装置に含まれるプロセッサは、更にレジスタ210a',b',c',d'を有し、それぞれ2つのレジスタをもつ。また、入出力部による処理済み頂点データの受け渡し方が実施形態1とは異なっている。
レジスタは、入出力部から送り込まれた処理済み頂点データを格納する。
〈動作〉
次に、本発明の実施形態2における処理装置の動作を、図21を参照しながら説明する。図21は、図14と同様に、本発明の実施形態2における処理装置が、図3の三角形ストリップを処理する場合の例である。図21におけるALUおよびRがそれぞれ演算部220a,b,c,dおよびレジスタ210a,a',b,b',c,c',d,d'を表し、本発明の実施形態2における処理装置は、1つの演算部と2つのレジスタの組で示されるプロセッサを4つ内蔵している。図21では、明記していないが、4つずつあるプロセッサ等は、図20と同様に左から順にa,b,c,dに対応し、各プロセッサに2つあるレジスタは左からa,a'などと対応している。
図21(b)は、プロセッサ200aの演算部220aで頂点処理された処理済み頂点データP1は、プロセッサ200b,c内のレジスタ210b',cへと送り込まれる。また、次に処理される頂点データL2は、プロセッサ200bの演算部220bへと入力される。
図21(d)において、プロセッサ200cの演算部220cで頂点処理が終了すると、プロセッサ200cには、三角形ポリゴンΔ1を構成する3つの頂点に関する処理済み頂点データP1、P2、P3がそろうので、プロセッサ200cの演算部220cは、同じプロセッサ200cのレジスタ210c,c'から処理済み頂点データP1、P2を取得して、三角形ポリゴンΔ1のポリゴン処理を行う。このとき、レジスタ210c,c'から、処理済み頂点データP1、P2は消去される。また、プロセッサ200cの演算部220cで頂点処理された頂点データP3は、プロセッサ200d,aのレジスタ210d',aへと送り込まれる。次に処理される頂点データL4は、プロセッサ200dの演算部220dへと入力される。
以上のようにして、本発明の実施形態2における処理装置は、ジオメトリ処理を行う。
なお、実施形態1でも述べた通り、三角形ストリップの最後の点P6の頂点処理が終了したあと、引き続いて最初の点P1の頂点処理を開始してもよい。
〔実施形態3〕
本発明の実施形態3では、処理装置における複数のプロセッサが、処理済み頂点データの受け渡しを循環的に行う例について説明する。実施形態1および実施形態2では、入出力部は複数のレジスタとの間で処理済み頂点データの受け渡しを行ったが、実施形態3では、入出力部は、送り先となるただ1つの入出力部が決まっている。
〈構成〉
図22は、本発明の実施形態3における処理装置の構成図である。本発明の実施形態3における処理装置は4つのプロセッサ200a,b,c,dと、それらを駆動するクロック240、頂点データを分配する分配部250、ポリゴン処理を行うプロセッサを割り当てる割当部260とから構成され、各プロセッサ200a,b,c,dが、レジスタ210a,b,c,d、演算部220a,b,c,d、および、入出力部230a,b,c,dをそれぞれ有している点は、実施形態1や実施形態2と同じである。しかし、実施形態3における処理装置に含まれるプロセッサは、それぞれ3つのレジスタを有し、入出力部による処理済み頂点データの受け渡し方が、循環的になっているという点で、前述の例とは異なっている。
演算部は、与えられた頂点データに対して頂点処理を行い、処理済み頂点データを他のプロセッサへ送り込むために入出力部に転送する。また、レジスタから送り込まれる処理済み頂点データに対してポリゴン処理を行う。
〈動作〉
次に、本発明の実施形態3における処理装置の動作を図23を参照しながら説明する。図23は、本発明の実施形態3における処理装置が、図4の三角形ファンを処理する場合の例である。図23におけるALUおよびRがそれぞれ演算部220a,b,c,dおよびレジスタ210a,a',a",b,b',b",c,c',c",d,d',d"を表し、本発明の実施形態3における処理装置は、1つの演算部と3つのレジスタの組で表されるプロセッサを4つ内蔵している。レジスタは上から順にa,a',a"などのように、図22に対応している。
図23(b)において、プロセッサ200aの演算部220aで頂点処理された処理済み頂点データP1は、まず、同じプロセッサ200aのレジスタ210aに送り込まれる。次に処理される頂点データL2は、プロセッサ200bの演算部220bに入力される。
以上のようにして、本発明の実施形態3における処理装置は、ジオメトリ処理を行う。
〔その他の実施形態〕
上では、4つのプロセッサの間で処理済み頂点データを通知し合う方法についていくつかの例を示したが、プロセッサの数は4つに限らない。また、各プロセッサが有するレジスタも上記で指定した数に限るものではない。本発明の本質は、異なるプロセッサで演算された処理済み頂点データを、互いに通知し合うことで、どのプロセッサにおいてもポリゴン処理を実行可能にすることにあり、その通知方法は上記の例に限るものではない。例えば、処理済み頂点データをクロスバスを経由して通知し合うようにしてもよい。
が、上記のような遊び時間は、計算資源を無駄にしてしまうという問題がある。
[0008]
また、描画のフレームレイトは、例えば、10fpsと決まっているので、一定の時間内に一定量の計算を行う必要がある。プロセッサに遊び時間ができてしまう可能性があれば、それを考慮して、残りの時間で計算が完了できるように、プロセッサの動作クロックを上げておく必要があるが、これは消費電力やコストを増大させるという問題がある。
本発明の目的は、上記のようなアンバランスを解消し、プロセッサをより効率的に利用する処理装置を提供することである。
課題を解決するための手段
[0009]
上記の課題を解決するために、本発明に係る処理装置は、多角形近似された立体形状を示すポリゴンメッシュを処理する処理装置であって、ポリゴンメッシュは、複数のポリゴンから構成され、ポリゴンメッシュの処理は、ポリゴンメッシュ毎の形状を規定する各頂点のローカル座標を、ポリゴンメッシュ間の位置関係を規定するグローバル座標に変換する座標変換、及び、グローバル座標系におけるポリゴンメッシュの勾配を算出する勾配算出を含み、複数のプロセッサと、ポリゴンを規定する各頂点を、複数プロセッサのそれぞれに分配して、各プロセッサ内の演算部に各頂点の座標変換を行わせる分配手段と、前記頂点が分配されたプロセッサの中から、前記ポリゴンに対して勾配算出処理を行うべき1つのプロセッサを割り当てる割当手段と、前記ポリゴンを規定する各頂点の座標変換が行われれば、各プロセッサ内の演算部により得られた変換済み座標を、当該ポリゴンが前記割当手段により割り当てられたプロセッサ内の演算部に供給する供給手段とを備えることを特徴とする処理装置である。
発明の効果
[0010]
上記の構成の処理装置によると、立体物をモデリングしたポリゴンメッシュの描画において、ポリゴンを構成する個々の頂点に対して演算を行う頂点処理を、複数のプロセッサに分担して行わせ、その結果得られる処理済み頂点データをプロセッサ間で通知し合って互いに供給することで、どのプロセッサにおいてもポリゴン処理をすることが可能となる。複数のプロセッサに処理を分担させ、かつ、個々のプロセッサで頂点処理とポリゴン処理とを連続して行うことができるため、頂点処理とポリゴン処理の
本発明の目的は、上記のようなアンバランスを解消し、プロセッサをより効率的に利用する処理装置を提供することである。
ここで、前記供給手段は、各プロセッサごとに入出力部を有し、各入出力部は、当該入出力部が帰属するプロセッサと異なるプロセッサに帰属している複数個のレジスタから変換済み座標を受け取り、当該入出力部が帰属するプロセッサと同じプロセッサに帰属している演算部に送り込むとしてもよい。
演算部における頂点処理で得られる変換済み座標は、その変換済み座標を用いてポリゴン処理ガ行われる演算部が属するプロセッサと同じプロセッサに属するレジスタに格納されるので、どのプロセッサの演算部においても、頂点処理のあとにポリゴン処理を連続して行うことができ、頂点処理とポリゴン処理のアンバランスが発生しにくくなる。
クロスバスを使って、プロセッサ間での処理済み頂点データの送受信を行うので、変換済み頂点データの送り込み先が特定のプロセッサに固定されていなくても、クロスバスを制御することで、送り込み先のプロセッサを変更することができる。
各プロセッサの演算部において、頂点処理が終了するとすぐにポリゴン処理を開始するので、無駄な遊び時間ができにくくなる。
ここで、前記供給手段は、隣接する一組のプロセッサのうち、一方のプロセッサ内にある演算部の出力段と、他方のプロセッサ内にあるレジスタの入力段とを結ぶ接続線、及び、両端に位置する一組のプロセッサのうち、一方のプロセッサ内にある演算部の出力段と、他方のプロセッサ内にあるレジスタの入力段とを結ぶ接続線にて構成されるとしてもよい。
処理装置内部でのプロセッサが並列的に構成されているため、各プロセッサで同一のプログラムを動かしておきながら、相互に連携してポリゴン処理を行うことができる。プログラムがプロセッサの数に依らないので、プロセッサの数を増減させる拡張が容易にできる。
本処理装置を携帯電話に内蔵することにより、モバイルゲーム等におけるグラフィックス描画処理を高速化できる。
ここで、前記プログラム、および、ポリゴンを規定する頂点の座標と辺に関する情報は、ネットワークから携帯電話のメモリにダウンロードされたものであるとしてもよい。
ここで、前記処理装置は、携帯電話のメモリ上のプログラム、および、ポリゴンを規定する頂点の座標と辺に関する情報を格納した領域のアドレスを携帯電話のメインプロセッサから通知されるとしてもよい。
ここで、前記処理装置は浮動小数点演算器を備え、前記頂点の座標は、浮動小数点型に変換された座標であるとしてもよい。
座標データを浮動小数点型で扱うので、丸め誤差等によっていびつなポリゴンが描画されてしまうことを防ぐことができる。
各プロセッサにおける座標変換処理の開始タイミングをずらすことにより、ポリゴンを構成する最後の頂点の座標変換が終了した時点で、既に変換済みの他の頂点座標を使って、勾配算出処理を開始することができる。
最も単純なポリゴンである三角形ポリゴンを用いることで、勾配計算処理が簡単になる。頂点の数とポリゴンの数との比が1に近いので、頂点処理とポリゴン処理のアンバランスを抑制することができる。
ここで、前記各演算部は、各ポリゴンを規定する複数の頂点の照度をもとに、ポリゴンの辺上および内部の照度を算出するとしてもよい。
本発明の実施形態1における処理装置は、図1のような携帯電話に内蔵され、メモリ上に記録されたゲームプログラムおよびゲームデータを元に、ディスプレイに立体物の投影像を描画するためのセットアップデータを生成する。
ここで、立体物とはゲームに登場するキャラクターや構造物のことであり、ゲームデータは、これらの立体物をポリゴンを用いてモデリングしたときの頂点の座標を含んだ頂点データ、および、どの頂点を結んでポリゴンが構成されるかを示す情報を含んだポリゴンデータである。また、ゲームプログラムは、これらの頂点データとポリゴンデータからセットアップデータを算出するためのマイクロコードを含んでいる。セットアップデータとは、ディスプレイの画素ごとに照度等の画素情報を対応させたデータ列である。
上記のように、対象物に固定された個々のローカル座標系でモデリングされた各立体物は、ワールド座標系で定義される仮想空間に配置することで、相互の位置関係が決定される。図3(b)、図4(b)、図5(b)は、ローカル座標Li(xi,yi,zi)がワールド座標Wi(Xi,Yi,Zi)に変換されることを示している。
〈携帯電話の構成〉
図6は、本発明の実施形態1における処理装置100を内蔵した携帯電話の構成図である。ゲームプログラムおよびゲームデータはネットワークで配信されているものをダウンロードできるようになっており、操作入力部140から入力されるユーザの指示に従って、送受信部130から受信され、メモリ120に記録される。ゲームプログラムが実行されると、CPU110は、ジオメトリ処理を行うマイクロコードと、ジオメトリ処理で用いられる頂点データとポリゴンデータとを記憶した領域、演算に必要な種々のパラメータを記憶した領域のメモリ上でのアドレスを処理装置100に通知する。処理装置100は、通知されたアドレスからマイクロコードを読み込み、メモリ上の頂点データとポリゴンデータとに対してマイクロコードを実行することで、セットアップデータを生成する。生成されたセットアップデータは、ディスプレイ150に転送され描画がなされる。
〈処理装置の構成〉
次に、本発明の実施形態1における処理装置の構成について説明する。図7は、本発明の実施形態1における処理装置の構成図である。本発明の実施形態1における処理装置は、4つのプロセッサ200a,b,c,dと、それらを駆動するクロック240、頂点データを各プロセッサに分配する分配部250、及び、ポリゴン処理を実行するプロセッサを割り当てる割当部260とから構成される。各プロセッサ200a,b,c,dは、レジスタ210a,b,c,d、演算部220a,b,c,d、および、入出力部230a,b,c,dをそれぞれ有している。
(分配部250)
分配部250は、頂点の座標変換を並列化して実行させるために、ポリゴンを規定する頂点を、各々のプロセッサに分配する。プロセッサの数をMとすると、座標変換は並列度Mで行われることになる。ここで、分配とは、ポリゴンメッシュを構成するすべてのポリゴンに関して、ポリゴンを規定する頂点の座標をメモリから読み出して、各頂点に対して1つのプロセッサを対応させ、対応するそれぞれのプロセッサ内の演算部に読み出した頂点の座標を引き渡すことである。ポリゴンを規定する頂点の数をKとすると、プロセッサ数Mと頂点数Kの大小関係によって、分配部250による分配には、次の3つのパターンがある。
M>Kの場合、プロセッサ側には、1つのポリゴンの全ての頂点の座標変換を同時に実行すると共に、他のポリゴンの頂点の座標変換を実行する余力がある。この場合、ポリゴンを構成するK個の頂点と、次のポリゴンを構成するK個の頂点のうちの(M-K)個の頂点とをメモリから読み出して、合計M個の頂点をM個の各プロセッサに出力することで分配はなされる。但し、K<(M-K)の場合は、次のポリゴンを構成するK個の頂点全てを読み出しても、(M-K)個にならないので、更に次以降のポリゴンを構成する頂点も読み出し、ポリゴンメッシュの最後の頂点まで読み出してしまわない限りは、合計M個の頂点がプロセッサに同時に出力されるようにする。
なお、分配がなされたあとプロセッサにおいて実行される処理は、上述の座標変換に限らず照度計算等も含み、実際には頂点処理が行われる。また、上では頂点がM個のプロセッサに同時に出力されると述べたが、実際にはメモリから読み出された頂点は、逐次プロセッサに出力される。上でいう同時とは、分配部250がメモリから合計M個の頂点を読み出すまでを1周期としたとき、同じ周期内でという意味である。
上記の分配処理の具体的な手順を、図8のフローチャートを参照しながら説明する。分配部250は、まず、固定値N、Mの初期化を行う。分配部250は、メモリからポリゴンデータを読み出し、ジオメトリ処理の対象となるポリゴンメッシュの頂点の数をNとする。また、メモリからパラメータを読み出し、処理装置に含まれるプロセッサの数をMとする(ステップ3001)。すなわち、ポリゴンメッシュを構成する頂点には1からNまでのインデックスが付与され、プロセッサには1からMまでのインデックスが付与されている。分配部250は、読み出す頂点のインデックスをn=1と初期化し(ステップ3002)、頂点nの分配先となるプロセッサのインデックスをm=1と初期化する(ステップ3003)。分配部250は、頂点nをメモリから読み出し、プロセッサmに分配する(ステップ3004)。次に、頂点を指すインデックスn、及び、プロセッサを指すインデックスmを1ずつ増加させ(ステップ3005)、頂点を指すインデックスnが全頂点の数Nより大きくなれば(ステップ3006Y)、終了する。頂点を指すインデックスnが全頂点の数Nより大きくなければ(ステップ3006 N)、プロセッサを指すインデックスmと全プロセッサの数Mとを比較し、mがMより大きくなれば(ステップ3007Y)、ステップ3003に戻り、分配先のプロセッサをm=1に戻す。mがMより大きくなければ(ステップ3007 N)、ステップ3004に戻り、分配処理を継続する。
以上が分配部250の説明である。
割当部260は、あるポリゴンの勾配算出を行うにあたって、勾配算出を担当することになるプロセッサを、当該ポリゴンに割り当てる。ここで、割当とは、1からMまであるプロセッサに対して、ある与えられたポリゴンpに関する勾配算出を行うプロセッサmを決定し、プロセッサmにおいて勾配算出を行わせることである。このような割当が必要であるのは以下の理由による。つまり、座標変換は、並列度Mの並列計算が可能であったが、勾配算出は、そのような並列計算はできない。なぜなら、複数のポリゴンの変換後の頂点座標が一度に揃わないからである。そうすると、本来、座標変換が任務であるはずのプロセッサのどれかに勾配算出を割り当て、このプロセッサに勾配算出をさせることが理想的である。このように、勾配算出は並列計算に不向きであるため、これに割り当てるべきプロセッサを動的に決定するというのが、割当部260の役割である。この割当は、勾配算出を行うべきポリゴンを構成する頂点のうち、最後の頂点に付与された連番であるインデックスを、プロセッサ数Mで割り、そのとき得られる剰余を、出力先のプロセッサ番号として採用することでなされる。これは、各ポリゴンを複数のプロセッサが交代で処理するための配慮である。分配処理においてプロセッサに分配された頂点座標が、ポリゴンを構成する頂点のうちの最後の頂点であるかどうかを判定するために、ポリゴンメッシュが三角形ストリップかどうか等を示す形状の特性が考慮される。
上記の割当処理の具体的な手順を、図9のフローチャートを参照しながら説明する。図9では、演算がしやすいために実際によく採用される三角形ポリゴンの場合での処理を示している。割当部260は、まず、固定値N、Mの初期化を行う。割当部260は、メモリからポリゴンデータを読み出し、ジオメトリ処理の対象となるポリゴンメッシュの頂点の数をNとする。また、メモリからパラメータを読み出し、処理装置に含まれるプロセッサの数をMとする(ステップ3101)。割当部260は、処理中のポリゴンメッシュの種類に関する情報を得るために、メモリからポリゴンデータを読み出す(ステップ3102)。割当部260は、頂点のインデックスをn=3、割当対象となるポリゴンのインデックスをp=1と初期化する(ステップ3103)。割当部260は、頂点nの頂点処理を行うプロセッサを指すインデックスmを、頂点を指すインデックスnを、プロセッサの数Mで割った余りとして算出する(ステップ3104)。割当部260は、ポリゴンpのポリゴン処理をプロセッサmで行うように割り当てる(ステップ3105)。次に、処理中のポリゴンメッシュの種類が、三角形ストリップである場合は(ステップ3106Y)、頂点を指すインデックスn、及び、割当対象となるポリゴンを指すインデックスpを、それぞれ1ずつ増加させる(ステップ3107)。処理中のポリゴンメッシュの種類が、三角形ストリップでない場合は(ステップ3106N)、処理中のポリゴンメッシュは独立三角形とみなされるので、頂点を指すインデックスnを3だけ増加し、割当対象となるポリゴンを指すインデックスpは1だけ増加させる(ステップ3108)。頂点を指すインデックスnが、全頂点の数Nよりも大きければ(ステップ3109Y)、割当処理を終了し、全頂点の数Nよりも大きくなければ(ステップ3109 N)、ステップ3104に戻り、割当処理を継続する。
演算部は、乗算器や加算器で構成されるALU(Arithmetic and LogicUnit)であり、分配部250により分配された頂点データに対して頂点処理を行い、処理済み頂点データを同じプロセッサ内のレジスタに出力する。また、演算部は、割当部260によりポリゴン処理を行うように割り当てられている場合は、同じプロセッサの入出力部から与えられた処理済み頂点データに対してポリゴン処理を行い、セットアップデータを出力する。
入出力部は、同じプロセッサの演算部における三角形ポリゴンのポリゴン処理に必要な処理済み頂点データ3つのうち、別のプロセッサの演算部で頂点処理された2つを、それらのプロセッサ内のレジスタから読み出し、入出力部と同じプロセッサ内の演算部に転送する。
〈頂点処理〉
ここで、頂点処理の内容について説明する。図10は、頂点処理で行われる内部処理の流れを示した図である。演算部は、モデリングされた立体物のローカル座標L(x,y,z)を含む頂点データを取得すると、まず、座標変換部300でワールド座標W(x,y,z)に変換する。この座標変換は、図11(a)のように、カメがモデリングされたローカル座標系x1y1z1と、図11(b)のように、角錐がモデリングされたローカル座標系x2y2z2とは、互いに独立であり、図11(c)のように、1つのワールド座標系XYZの所定の位置に、これらの立体物を配置するときのローカル座標系からワールド座標系への座標変換である。座標変換において、立体物の向き指定する回転角、位置を指定する並進ベクトル、大きさを指定するスケール比等のパラメータがメモリから読み出される。
次に、照度計算部320では、光源位置から照射される光を立体物に当てたときの各頂点における照度fの計算を行う。ここでは一例として照度を取り上げているが、頂点の色など他の特性であっても同様である。
上記のように、ローカル座標系で定義された頂点データを、スクリーン平面上の2次元座標と照度等の頂点の特性を示す情報を含んだ頂点データに変換にすることが頂点処理であり、頂点処理された頂点データを処理済み頂点データと呼ぶ。
〈ポリゴン処理〉
次に、ポリゴン処理の内容について説明する。
図12は、ポリゴン処理で行われる内部処理の流れを示した図である。上述したように、まず、勾配計算部340が頂点処理で得られた処理済み頂点データを3つ取得する。勾配計算部340は、これらの3頂点がスクリーン上に形成する三角形ポリゴンの辺の勾配を計算することで、三角形ポリゴンの内部と外部との境界を決定する。また、勾配計算部340は、三角形ポリゴンの辺上における照度を、頂点における照度を内挿することで算出する。
以上のようにして決定された三角形ポリゴンの内部および辺上の画素数がNであったとすると、N個のスクリーン座標(ξi,ηi)と照度fiの組(i=1,2,…,N)としてセットアップデータが生成される。
〈動作〉
次に、本処理装置の動作を、図14を参照しながら説明する。図14は、本発明の実施形態1における処理装置において、図3の三角形ストリップが処理される様子を順を追って示した図である。図14の各ステップは、図7の構成図を簡略化して描いたものであり、ALUはそれぞれ演算部220a,b,c,d、Rはそれぞれレジスタ210a,b,c,dであり、ALUとRの組が処理装置中に4つあるプロセッサ200a,b,c,dに対応している。図14では、入出力部230a,b,c,dは省略している。図14では、明記していないが、4つずつあるプロセッサ等は、図7と同様に左から順にa,b,c,dに対応する。
図14(b)では、プロセッサ200aの演算部220aに入力された頂点データL1が頂点処理されて、処理済み頂点データP1に変換される。処理済み頂点データP1は、同じプロセッサ200aのレジスタ210aに出力される。また、次の頂点データL2は、プロセッサ200bの演算部220bに入力される。
図14(d)では、プロセッサ200cの演算部220cに入力された頂点データL3が頂点処理されて、処理済み頂点データP3に変換される。この段階で、三角形ポリゴンΔ1を構成する3頂点の頂点処理が終了するので、プロセッサ200cの入出力部230cは、プロセッサ200aのレジスタ210a、および、プロセッサ200bのレジスタ210bから処理済み頂点データP1、P2を取得し、同じプロセッサ200cの演算部220cに出力する。また、前の段階と同様に、処理済み頂点データP3は、同じプロセッサ200cのレジスタ210cに出力され、頂点データL4は、プロセッサ200dの演算部220dに入力される。
以上のようにして、図3の三角形ストリップのジオメトリ処理が終了し、処理装置は、三角形ポリゴンΔ1、Δ2、Δ3、Δ4のセットアップデータを出力する。
〈タイミングチャート〉
次に、上記のようにジオメトリ処理が行われる場合に、頂点処理およびポリゴン処理が各プロセッサ200a,b,c,dにおいてどのようなタイミングで行われるかを、図15を参照しながら説明する。
まず、図15(a)の三角形ストリップを処理する場合について説明する。
時刻t=8に、頂点P3の頂点処理が終了すると、頂点P1とP2の頂点処理も終了しているので、演算部220cは、処理済み頂点データP1、P2、P3を用いて、三角形ポリゴンΔ1のポリゴン処理を開始する。この例では、ポリゴン処理にはクロック2周期分の時間がかかるとする。
時刻t=12に、演算部220aにおける頂点P5の頂点処理と、演算部220cにおける三角形ポリゴンΔ1のポリゴン処理が終了すると、演算部220aは処理済み頂点データP3、P4、P5を用いて、三角形ポリゴンΔ3のポリゴン処理を開始し、演算部220cは、三角形ストリップの最初の頂点P1の頂点処理に戻る。
以上のようにして、本処理装置は、複数のプロセッサに頂点処理を分担して行わせ、ポリゴン処理に必要な処理済み頂点データの計算が終了するごとに、ポリゴンを構成する最後の頂点を処理したプロセッサにおいてポリゴン処理を行う。これによって、プロセッサの遊び時間を極力短くし、頂点処理およびポリゴン処理を時間的に密に行うことができる。
独立三角形の場合、2番目の三角形ポリゴンΔ2は、頂点P4、P5、P6で構成されるので、時刻t=13になって初めて開始できる。時刻t=9で、演算部220dは頂点P4の頂点処理を終了するが、演算部220cにおける三角形ポリゴンΔ1のポリゴン処理が終了しておらず、頂点P1の頂点処理が開始していないため、演算部220dは頂点P2の頂点処理を開始できない。従って、演算部220dにおいて、時刻t=9から時刻t=12まで、遊び時間ができてしまう。
このような事情のため、独立三角形を処理する場合は、三角形ストリップを処理する場合に比べて、図15(b)の空白部分で示すように、プロセッサの遊び時間が所々にできてしまうが、これは許容の範囲内である。従来のように頂点処理とポリゴン処理を別々のプロセッサに分担させた場合は、頂点処理に重点を置くと、ポリゴン処理が追いつかず処理済み頂点データが貯まってしまい、逆に、ポリゴン処理に重点を置くと、頂点処理がついていけなくなるというジレンマのため、三角形ストリップもしくは独立三角形のいずれか一方に処理装置を最適化すると、他方ではどうしてもプロセッサの使用効率が悪くなってしまうという問題があった。しかし、本発明の処理装置では、三角形ストリップであっても独立三角形であっても、同程度に効率良く演算を行うことができる。
〈フローチャート〉
最後に、本発明の実施形態1における処理装置の動作の流れを図16のフローチャートに示す。
頂点処理の最初のステップとして、浮動小数点型に変換された頂点座標に対して、ローカル座標系からワールド座標系への座標変換を行い、それぞれ独立にモデリングされた立体物を1つの仮想空間上に配置する(ステップ1002)。更に、カメラ視点の座標系へと視野変換を行い、立体物を投影するスクリーンの向きや大きさを決める(ステップ1003)。次に、各頂点における照度計算を行う(ステップ1004)。頂点処理の最終段階としてビューポート変換を行い、仮想空間上の3次元座標から、スクリーン平面上の2次元座標への変換を行う(ステップ1005)。このとき、クリッピングが必要かどうか、すなわち、スクリーンからはみ出た座標があるかどうかを判定し(ステップ1006)、必要であればクリッピング処理を行う(ステップ1007)。
最後に処理装置は、セットアップデータにおける座標を浮動小数点型から整数型に戻して(ステップ1010)、ディスプレイに描画する(ステップ1011)。
〈各プロセッサにおける処理のフローチャート〉
次に、各プロセッサにおける頂点処理およびポリゴン処理の流れを、図17を参照しながら説明する。
まだ処理すべき頂点があれば(ステップ2001 N)、頂点Lnを取得する(ステップ2002)。頂点Lnは、他のプロセッサでもまだ頂点処理されていない頂点で、最もインデックスが若い頂点であり、座標変換前のローカル座標を含んでいる。
次に、演算部がポリゴン処理を行うかどうかの判定を、割当部が行う。処理中のポリゴンメッシュが三角形ストリップである場合は(ステップ2005 Y)、処理した頂点のインデックスnが3以上であれば(ステップ2006 Y)、ステップ2009に進み、nが3以上でないなら(ステップ2006N)、ステップ2001に戻る。処理中のポリゴンメッシュが三角形ストリップでない場合は(ステップ2005 N)、それは独立三角形とみなされるので(ステップ2007)、この場合nが3の倍数なら(ステップ2008Y)、ステップ2009に進み、nが3の倍数でないなら(ステップ2008 N)、ステップ2001に戻る。
演算部は、入出力部から得た処理済み頂点データP(n-2)、P(n-1)と、自身で処理した処理済み頂点データPnを用いてポリゴン処理を行う(ステップ2010)。ポリゴン処理でセットアップデータを算出すると、ステップ2001に戻る。以上の処理を、ポリゴンメッシュを構成するすべての頂点に関して頂点処理が終わるまで繰り返す。
〈クリッピング処理〉
次に、クリッピング処理について説明する。クリッピング処理とは、立体物のスクーンへの投影像がスクリーンからはみ出した場合に、はみ出した部分をカットし、新しくポリゴンメッシュを構成し直すことをいう。スクリーンからはみ出した部分はディスプレイに描画する必要がないので、クリッピング処理を行うことで、無駄なポリゴン処理をしなくてすむようになる。例えば、図3の三角形スプリットをスクリーンに投影したとき、図18(a)のようになっていたとする。このとき、図18(a)の頂点P4、P5、P6で構成される三角形ポリゴンΔ4の一部はスクリーンをはみ出している。このような場合には、はみ出し部分をもつ三角形ポリゴンΔ4とスクリーン枠との交点を、図18(a)の点P7、P8のように算出し、スクリーン内部に収まっている4点P4、P5、P7、P8を頂点として、図18(b)のように三角形ポリゴンを構成し直す。交点P7、P8における照度等は、ポリゴン処理の場合と同様に頂点間を内挿することで算出される。
〈表裏判定およびバックフェイスカリング〉
図16における、クリッピングの判定とクリッピング処理のステップは、三角形ポリゴンを構成する3頂点に関する頂点処理が終了して初めてできる処理であれば他の処理であってもよい。クリッピング以外には、例えば、バックフェイスカリングがある。これは、立体物のスクリーンへの投影像から、表裏判定で裏向きと判定される三角形ポリゴンを選択し描画対象から省くことである。
〔実施形態2〕
本発明の実施形態2では、処理装置における複数のプロセッサの構成が、実施形態1とは異なる例について説明する。実施形態1では、処理済み頂点データは、その頂点処理を行った演算部が帰属するプロセッサと同じプロセッサに帰属するレジスタに格納され、入出力部が各プロセッサ内のレジスタから処理済み頂点データを取得するという方式であった。実施形態2では、処理済み頂点データは、演算部において頂点処理が行われるプロセッサに帰属するレジスタに格納され、入出力部は各プロセッサ内のレジスタへと処理済み頂点データを送り出す。
〈構成〉
図20は、本発明の実施形態2における処理装置の構成図である。本発明の実施形態2における処理装置は、4つのプロセッサ200a,b,c,dと、それらを駆動するクロック240、頂点データを分配する分配部250、ポリゴン処理を行うプロセッサを割り当てる割当部260とから構成され、各プロセッサ200a,b,c,dが、レジスタ210a,b,c,d、演算部220a,b,c,d、および、入出力部230a,b,c,dをそれぞれ有している点は、実施形態1と同じである。しかし、実施形態2における処理装置に含まれるプロセッサは、更にレジスタ210a',b',c',d'を有し、それぞれ2つのレジスタをもつ。また、入出力部による処理済み頂点データの受け渡し方が実施形態1とは異なっている。
レジスタは、入出力部から送り込まれた処理済み頂点データを格納する。
〈動作〉
次に、本発明の実施形態2における処理装置の動作を、図21を参照しながら説明する。図21は、図14と同様に、本発明の実施形態2における処理装置が、図3の三角形ストリップを処理する場合の例である。図21におけるALUおよびRがそれぞれ演算部220a,b,c,dおよびレジスタ210a,a',b,b',c,c',d,d'を表し、本発明の実施形態2における処理装置は、1つの演算部と2つのレジスタの組で示されるプロセッサを4つ内蔵している。図21では、明記していないが、4つずつあるプロセッサ等は、図20と同様に左から順にa,b,c,dに対応し、各プロセッサに2つあるレジスタは左からa,a'などと対応している。
図21(b)は、プロセッサ200aの演算部220aで頂点処理された処理済み頂点データP1は、プロセッサ200b,c内のレジスタ210b',cへと送り込まれる。また、次に処理される頂点データL2は、プロセッサ200bの演算部220bへと入力される。
図21(d)において、プロセッサ200cの演算部220cで頂点処理が終了すると、プロセッサ200cには、三角形ポリゴンΔ1を構成する3つの頂点に関する処理済み頂点データP1、P2、P3がそろうので、プロセッサ200cの演算部220cは、同じプロセッサ200cのレジスタ210c,c'から処理済み頂点データP1、P2を取得して、三角形ポリゴンΔ1のポリゴン処理を行う。このとき、レジスタ210c,c'から、処理済み頂点データP1、P2は消去される。また、プロセッサ200cの演算部220cで頂点処理された頂点データP3は、プロセッサ200d,aのレジスタ210d',aへと送り込まれる。次に処理される頂点データL4は、プロセッサ200dの演算部220dへと入力される。
以上のようにして、本発明の実施形態2における処理装置は、ジオメトリ処理を行う。
なお、実施形態1でも述べた通り、三角形ストリップの最後の点P6の頂点処理が終了したあと、引き続いて最初の点P1の頂点処理を開始してもよい。
〔実施形態3〕
本発明の実施形態3では、処理装置における複数のプロセッサが、処理済み頂点データの受け渡しを循環的に行う例について説明する。実施形態1および実施形態2では、入出力部は複数のレジスタとの間で処理済み頂点データの受け渡しを行ったが、実施形態3では、入出力部は、送り先となるただ1つの入出力部が決まっている。
〈構成〉
図22は、本発明の実施形態3における処理装置の構成図である。本発明の実施形態3における処理装置は4つのプロセッサ200a,b,c,dと、それらを駆動するクロック240、頂点データを分配する分配部250、ポリゴン処理を行うプロセッサを割り当てる割当部260とから構成され、各プロセッサ200a,b,c,dが、レジスタ210a,b,c,d、演算部220a,b,c,d、および、入出力部230a,b,c,dをそれぞれ有している点は、実施形態1や実施形態2と同じである。しかし、実施形態3における処理装置に含まれるプロセッサは、それぞれ3つのレジスタを有し、入出力部による処理済み頂点データの受け渡し方が、循環的になっているという点で、前述の例とは異なっている。
演算部は、与えられた頂点データに対して頂点処理を行い、処理済み頂点データを他のプロセッサへ送り込むために入出力部に転送する。また、レジスタから送り込まれる処理済み頂点データに対してポリゴン処理を行う。
〈動作〉
次に、本発明の実施形態3における処理装置の動作を図23を参照しながら説明する。図23は、本発明の実施形態3における処理装置が、図4の三角形ファンを処理する場合の例である。図23におけるALUおよびRがそれぞれ演算部220a,b,c,dおよびレジスタ210a,a',a",b,b',b",c,c',c",d,d',d"を表し、本発明の実施形態3における処理装置は、1つの演算部と3つのレジスタの組で表されるプロセッサを4つ内蔵している。レジスタは上から順にa,a',a"などのように、図22に対応している。
図23(b)において、プロセッサ200aの演算部220aで頂点処理された処理済み頂点データP1は、まず、同じプロセッサ200aのレジスタ210aに送り込まれる。次に処理される頂点データL2は、プロセッサ200bの演算部220bに入力される。
以上のようにして、本発明の実施形態3における処理装置は、ジオメトリ処理を行う。
〔その他の実施形態〕
上では、4つのプロセッサの間で処理済み頂点データを通知し合う方法についていくつかの例を示したが、プロセッサの数は4つに限らない。また、各プロセッサが有するレジスタも上記で指定した数に限るものではない。本発明の本質は、異なるプロセッサで演算された処理済み頂点データを、互いに通知し合うことで、どのプロセッサにおいてもポリゴン処理を実行可能にすることにあり、その通知方法は上記の例に限るものではない。例えば、処理済み頂点データをクロスバスを経由して通知し合うようにしてもよい。
110:CPU
120:メモリ
130:送受信部
140:操作入力部
150:ディスプレイ
200a,200b,200c,200d:プロセッサ
210a,210b,210c,210d:レジスタ
210a',210b',210c',210d':レジスタ
210a",210b",210c",210d":レジスタ
220a,220b,220c,220d:演算部
230a,230b,230c,230d:入出力部
240:クロック
250:分配部
260:割当部
300:座標変換部
310:視野変換部
320:照度計算部
330:ビューポート変換部
340:勾配計算部
350:内部領域計算部
Claims (15)
- 多角形近似された立体形状を示すポリゴンメッシュを処理する処理装置であって、
ポリゴンメッシュは、複数のポリゴンから構成され、
ポリゴンメッシュの処理は、
ポリゴンメッシュ毎の形状を規定する各頂点のローカル座標を、ポリゴンメッシュ間の位置関係を規定するグローバル座標に変換する座標変換、及び、グローバル座標系におけるポリゴンメッシュの勾配を算出する勾配算出を含み、
複数のプロセッサと、
ポリゴンを規定する座標を、複数プロセッサのそれぞれに分配して、各プロセッサ内の演算部に座標変換を行わせる分配手段と、
座標分配がなされたポリゴンに対して、勾配算出処理を行うべき1つのプロセッサを割り当てる割当手段と、
前記ポリゴンを規定する各頂点の座標変換が行われれば、各プロセッサ内の演算部により得られた変換済み座標を、当該ポリゴンが割り当てられたプロセッサ内の演算部に供給する供給手段と
を備えることを特徴とする処理装置。 - 前記供給手段は、各プロセッサごとに入出力部を有し、
各入出力部は、
当該入出力部が帰属するプロセッサと異なるプロセッサに帰属している複数個のレジスタから変換済み座標を受け取り、当該入出力部が帰属するプロセッサと同じプロセッサに帰属している演算部に送り込む
ことを特徴とする請求項1記載の処理装置。 - 前記供給手段は、各プロセッサごとに入出力部を有し、
各入出力部は、
当該入出力部が帰属するプロセッサと同じプロセッサに帰属している演算部で変換された変換済み座標を受け取り、当該入出力部が帰属するプロセッサと異なるプロセッサに帰属している複数個のレジスタに送り込む
ことを特徴とする請求項1記載の処理装置。 - 前記供給手段は、各プロセッサごとに入出力部を有し、
各入出力部は、
当該入出力部が帰属するプロセッサと同じプロセッサに帰属している演算部で変換された変換済み座標、もしくは、当該入出力部が帰属するプロセッサと同じプロセッサに帰属しているレジスタから変換済み座標を受け取り、当該入出力部が帰属するプロセッサと異なるプロセッサに帰属している入出力部に送り込み、
複数のプロセッサにおける個々の入出力部は、変換済み座標の送受信において循環的に連結されている
ことを特徴とする請求項1記載の処理装置。 - 前記供給手段は、
各プロセッサ内にある演算部の出力段と、各プロセッサ内にあるレジスタの入力段とに介在するクロスバススイッチを含む
ことを特徴とする請求項1記載の処理装置。 - 前記各演算部は、
前記頂点処理を行った直後に前記勾配処理を行う
ことを特徴とする請求項1記載の処理装置。 - 前記供給手段は、
隣接する一組のプロセッサのうち、一方のプロセッサ内にある演算部の出力段と、他方のプロセッサ内にあるレジスタの入力段とを結ぶ接続線、及び、
両端に位置する一組のプロセッサのうち、一方のプロセッサ内にある演算部の出力段と、他方のプロセッサ内にあるレジスタの入力段とを結ぶ接続線にて構成される
ことを特徴とする請求項1記載の処理装置。 - 前記プロセッサ間の構成は処理装置内で並列的であり、
各プロセッサでは同一のプログラムが実行される
ことを特徴とする請求項7記載の処理装置。 - 前記処理装置は、携帯電話に内蔵され、
モバイルゲームにおけるポリゴンメッシュの処理を行う
ことを特徴とする請求項1記載の処理装置。 - 前記プログラム、および、ポリゴンを規定する頂点の座標と辺に関する情報は、ネットワークから携帯電話のメモリにダウンロードされたものである
ことを特徴とする請求項9記載の処理装置。 - 前記処理装置は、
携帯電話のメモリ上のプログラム、および、ポリゴンを規定する頂点の座標と辺に関する情報を格納した領域のアドレスを携帯電話のメインプロセッサから通知される
ことを特徴とする請求項9記載の処理装置。 - 前記処理装置は浮動小数点演算器を備え、
前記頂点の座標は、浮動小数点型に変換された座標である
ことを特徴とする請求項1記載の処理装置。 - 前記座標変換処理は、
他のプロセッサにおける座標変換処理とはタイミングをずらして開始される
ことを特徴とする請求項1記載の処理装置。 - 前記ポリゴンは三角形ポリゴンである
ことを特徴とする請求項1記載の処理装置。 - 前記各演算部は、
各ポリゴンを規定する複数の頂点の照度をもとに、ポリゴンの辺上および内部の照度を算出する
ことを特徴とする請求項1記載の処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008515521A JP4759614B2 (ja) | 2006-05-11 | 2007-05-11 | 処理装置 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006132164 | 2006-05-11 | ||
JP2006132164 | 2006-05-11 | ||
PCT/JP2007/059698 WO2007132746A1 (ja) | 2006-05-11 | 2007-05-11 | 処理装置 |
JP2008515521A JP4759614B2 (ja) | 2006-05-11 | 2007-05-11 | 処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011082455A Division JP5020393B2 (ja) | 2006-05-11 | 2011-04-04 | 処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007132746A1 true JPWO2007132746A1 (ja) | 2009-09-24 |
JP4759614B2 JP4759614B2 (ja) | 2011-08-31 |
Family
ID=38693840
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008515521A Active JP4759614B2 (ja) | 2006-05-11 | 2007-05-11 | 処理装置 |
JP2011082455A Active JP5020393B2 (ja) | 2006-05-11 | 2011-04-04 | 処理装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011082455A Active JP5020393B2 (ja) | 2006-05-11 | 2011-04-04 | 処理装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8180182B2 (ja) |
EP (1) | EP2023292B1 (ja) |
JP (2) | JP4759614B2 (ja) |
WO (1) | WO2007132746A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9429983B1 (en) | 2013-09-12 | 2016-08-30 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US9645603B1 (en) * | 2013-09-12 | 2017-05-09 | Advanced Processor Architectures, Llc | System clock distribution in a distributed computing environment |
US11042211B2 (en) | 2009-08-07 | 2021-06-22 | Advanced Processor Architectures, Llc | Serially connected computing nodes in a distributed computing system |
US8555096B2 (en) | 2009-08-07 | 2013-10-08 | Advanced Processor Architectures, Llc | Method and apparatus for selectively placing components into a sleep mode in response to loss of one or more clock signals or receiving a command to enter sleep mode |
US8175734B2 (en) * | 2009-10-08 | 2012-05-08 | 3D M. T. P. Ltd. | Methods and system for enabling printing three-dimensional object models |
JP5311491B2 (ja) * | 2009-11-17 | 2013-10-09 | Necシステムテクノロジー株式会社 | グラフィクス頂点処理装置およびグラフィクス頂点処理方法 |
EP2400410B1 (en) * | 2010-05-25 | 2014-01-08 | Dassault Systèmes | Computing of a resulting closed triangulated polyhedral surface from a first and a second modeled object |
US9892546B2 (en) | 2010-06-30 | 2018-02-13 | Primal Space Systems, Inc. | Pursuit path camera model method and system |
US9171396B2 (en) * | 2010-06-30 | 2015-10-27 | Primal Space Systems Inc. | System and method of procedural visibility for interactive and broadcast streaming of entertainment, advertising, and tactical 3D graphical information using a visibility event codec |
US9916763B2 (en) | 2010-06-30 | 2018-03-13 | Primal Space Systems, Inc. | Visibility event navigation method and system |
CN103080984B (zh) | 2010-06-30 | 2017-04-12 | 巴里·林恩·詹金斯 | 确定从视区看去可见的网格多边形或所述网格多边形的分段的集合的方法及系统 |
US9207986B2 (en) | 2013-04-11 | 2015-12-08 | Facebook, Inc. | Identifying a next window of idle time to perform pre-generation tasks of content portions outside of the displayable region stored in a message queue |
US9760964B2 (en) | 2013-04-11 | 2017-09-12 | Facebook, Inc. | Application-tailored object re-use and recycling |
US10126903B2 (en) | 2013-04-15 | 2018-11-13 | Facebook, Inc. | Application-tailored object pre-inflation |
USD776258S1 (en) | 2013-09-24 | 2017-01-10 | 3M Innovative Properties Company | Respirator with face seal multiple flexing region |
US20150170315A1 (en) * | 2013-12-17 | 2015-06-18 | Eric C. Samson | Controlling Frame Display Rate |
US20150310647A1 (en) | 2014-04-24 | 2015-10-29 | Sas Institute Inc. | Techniques for Visualization of Data |
USD787660S1 (en) | 2014-05-22 | 2017-05-23 | 3M Innovative Properties Company | Respirator mask having a face seal flexing region |
USD741475S1 (en) | 2015-02-27 | 2015-10-20 | 3M Innovation Properties Company | Respirator mask having a communication grille |
USD743536S1 (en) | 2015-02-27 | 2015-11-17 | 3M Innovative Properties Company | Respirator mask having a circular button |
USD795416S1 (en) | 2015-02-27 | 2017-08-22 | 3M Innovative Properties Company | Respirator mask |
USD767116S1 (en) | 2015-02-27 | 2016-09-20 | 3M Innovative Properties Company | Respirator mask having an exhalation port |
USD742504S1 (en) | 2015-02-27 | 2015-11-03 | 3M Innovative Properties Company | Respirator mask |
USD747795S1 (en) | 2015-02-27 | 2016-01-19 | 3M Innovative Properties Company | Respirator mask body |
CN109588055A (zh) * | 2016-07-29 | 2019-04-05 | 索尼公司 | 图像处理设备和图像处理方法 |
CN108255123B (zh) * | 2018-01-16 | 2021-08-24 | 广州地铁集团有限公司 | 基于三取二软硬件表决的列车lcu控制设备 |
KR102110760B1 (ko) * | 2018-08-07 | 2020-05-15 | 매트릭스테크 주식회사 | 멀티 쓰레드 기반의 3차원 모델링 데이터 처리 장치 및 이의 동작 방법 |
GB2593518B (en) | 2020-03-26 | 2023-01-04 | Sony Interactive Entertainment Inc | Image coding system and method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353291A (ja) * | 1998-06-11 | 1999-12-24 | Nec Corp | マルチプロセッサシステム及びタスク交換プログラムを記録した媒体 |
JP2001118082A (ja) * | 1999-10-15 | 2001-04-27 | Toshiba Corp | 描画演算処理装置 |
JP2004110330A (ja) * | 2002-09-18 | 2004-04-08 | Victor Co Of Japan Ltd | 画像生成装置及びコンピュータプログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01132843A (ja) * | 1987-11-10 | 1989-05-25 | Toray Ind Inc | 仮撚り複合糸の製造方法および装置 |
JP3306139B2 (ja) * | 1992-11-24 | 2002-07-24 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理装置およびゲーム機 |
JPH06251166A (ja) * | 1993-02-25 | 1994-09-09 | Toshiba Corp | 画像処理装置 |
JPH08106521A (ja) * | 1994-10-05 | 1996-04-23 | Fujitsu Ltd | 図形データ処理方法及び図形データ処理装置 |
US5714997A (en) * | 1995-01-06 | 1998-02-03 | Anderson; David P. | Virtual reality television system |
JPH10171766A (ja) * | 1996-12-09 | 1998-06-26 | Nec Corp | グラフィックアクセラレータ |
JPH11149569A (ja) * | 1997-11-17 | 1999-06-02 | Nec Corp | 3次元画像処理装置および3次元画像処理システム |
JPH11328436A (ja) * | 1998-05-20 | 1999-11-30 | Fujitsu Ltd | 図形処理方法、図形処理装置、この装置を有する図形描画ユニットおよびデータ処理装置 |
JP3102421B2 (ja) * | 1998-12-04 | 2000-10-23 | 日本電気株式会社 | 画像処理装置及び方法 |
US6919896B2 (en) * | 2002-03-11 | 2005-07-19 | Sony Computer Entertainment Inc. | System and method of optimizing graphics processing |
WO2004044689A2 (en) * | 2002-11-06 | 2004-05-27 | Geometric Informatics Inc. | Analysis of geometric surfaces by conformal structure |
US7570267B2 (en) * | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7701459B1 (en) * | 2006-11-03 | 2010-04-20 | Nvidia Corporation | Primitive oriented assembly for parallel vertex/geometry processing |
US7843456B2 (en) * | 2007-06-29 | 2010-11-30 | Microsoft Corporation | Gradient domain editing of animated meshes |
-
2007
- 2007-05-11 JP JP2008515521A patent/JP4759614B2/ja active Active
- 2007-05-11 EP EP07743133.6A patent/EP2023292B1/en active Active
- 2007-05-11 US US12/299,518 patent/US8180182B2/en active Active
- 2007-05-11 WO PCT/JP2007/059698 patent/WO2007132746A1/ja active Search and Examination
-
2011
- 2011-04-04 JP JP2011082455A patent/JP5020393B2/ja active Active
-
2012
- 2012-04-10 US US13/443,184 patent/US8331734B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11353291A (ja) * | 1998-06-11 | 1999-12-24 | Nec Corp | マルチプロセッサシステム及びタスク交換プログラムを記録した媒体 |
JP2001118082A (ja) * | 1999-10-15 | 2001-04-27 | Toshiba Corp | 描画演算処理装置 |
JP2004110330A (ja) * | 2002-09-18 | 2004-04-08 | Victor Co Of Japan Ltd | 画像生成装置及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2011175656A (ja) | 2011-09-08 |
US8331734B2 (en) | 2012-12-11 |
US8180182B2 (en) | 2012-05-15 |
WO2007132746A1 (ja) | 2007-11-22 |
EP2023292B1 (en) | 2020-02-26 |
US20120218265A1 (en) | 2012-08-30 |
JP4759614B2 (ja) | 2011-08-31 |
EP2023292A1 (en) | 2009-02-11 |
EP2023292A4 (en) | 2016-10-19 |
US20090207169A1 (en) | 2009-08-20 |
JP5020393B2 (ja) | 2012-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4759614B2 (ja) | 処理装置 | |
CN109978751B (zh) | 多gpu帧渲染 | |
EP3489907B1 (en) | Shader program execution techniques for use in graphics processing | |
US11869140B2 (en) | Combined world-space pipeline shader stages | |
JP2015506036A (ja) | コマンドプロセッサを備えるグラフィックス処理ユニット | |
CN107392836B (zh) | 使用图形处理管线实现的立体多投影 | |
US7747842B1 (en) | Configurable output buffer ganging for a parallel processor | |
CN110807827B (zh) | 系统生成稳定的重心坐标和直接平面方程访问 | |
US9720842B2 (en) | Adaptive multilevel binning to improve hierarchical caching | |
US9558573B2 (en) | Optimizing triangle topology for path rendering | |
US20240257435A1 (en) | Hybrid binning | |
US11741653B2 (en) | Overlapping visibility and render passes for same frame | |
US10832465B2 (en) | Use of workgroups in pixel shader | |
US11880924B2 (en) | Synchronization free cross pass binning through subpass interleaving | |
US20240104685A1 (en) | Device and method of implementing subpass interleaving of tiled image rendering | |
KR20220112710A (ko) | 픽셀 패킹 관련 애플리케이션 데이터를 위한 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100830 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20100830 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20100915 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101125 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110404 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110414 |
|
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: 20110510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110606 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4759614 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140610 Year of fee payment: 3 |