• 締切済み

GPUのパイプラインについて

PlayStation2などのゲーム機に搭載されているGPUのアーキテクチャについて詳しい方、参考文献やURLなどありましたら、教えてください。 具体的には、 1.CPU(PS2ではEE)からGPU(GS)に渡されるデータは何? 2.ラスタ処理とは? 3.パイプラインにおける処理 4.ピクセルシェーディングとは?nVIDIAのGPUについて 色々知りたいのですが…。よろしくお願いします。

みんなの回答

  • parts
  • ベストアンサー率62% (6366/10151)
回答No.3

ちょっと回答が遅くなりました。 ちょっと、誤解が生じたようですね。 以後気をつけたいと思います。これからはもっと考えて回答しますから、もし間違いとかあればどんどんつっこんでください。 ただ、私が述べた RISC-CPUにおいてというのは、CISCの原型はパイプライン処理との違い(高級言語処理を優先する)から生じたものですから述べただけです。現CISC-CPUは内部的にRISCを格納(吸収)しているというのが正式な言い方かと思いますし・・・ (もともとのRISCの定義は命令を簡略化したパイプライン処理のことです。高速化のためにCISCがそれを加えたのであって、この場合特定の簡易命令を下すグラフィックスチップという点などを考えてRISC-CPUにおいて、と述べたのです。まあ、屁理屈かもしれませんね) 本当に質問者の方にも難しい回答になってしまったかも・・・すみません。 本題です。 まず、PS2の簡易仕様サイトを見てくださいな http://www.watch.impress.co.jp/mobile/column/ps2/2000/03/24/ GS側はvertexシェーダー(以下VSD)やpixel シェーダー(以下PSD、こちらは最近のものなので当時は組み込めなかった)自体は含まれませんが、高度なポリゴン処理を可能にしています。 基本的にpixelシェーダーはGSではGF3のようなネイティブなハードウェアサポートではありません。 そのため、いずれもPS2ではEEが基本処理することになるでしょう。逆にGF3は両方をnfiniteFX Engine(いわゆるGPU)が行うことになります。 ついでにnfiniteFX EngineのVSDとPSD機能についても簡易的に、 http://www.vwalker.com/news/0102/25_/25_213601.html これをそのまま、転載しないでね。 私は、保証できませんよ。 既に、前の方がほぼ回答されているので、私はこのぐらいですかね。もし、3Dプログラマーでもお探しなら、参考のリンクを見ても良いかも・・・

参考URL:
http://homepage2.nifty.com/tenk/prog/plink.htm
  • alfeim
  • ベストアンサー率58% (114/195)
回答No.2

確か復刊後のOh!Xの4号目ぐらいにPSのアーキテクチャについて解説してあったと思います。 その他ではOpenGLやDirectXの解説書あたりでしょうか? OpenGLでは ・OpenGLプログラミングガイド第2版  ピアソン・エデュケーション発行 星雲社発売 定価12000円  通称赤本と呼ばれるOpenGLの解説書です。3Dの基礎的なシステムはこの本で分かるかと思います。 DirectXでは ・MSDN Online - DirectX Developer Center http://www.microsoft.com/japan/developer/directx/default.asp  Microsoftのwebサイトです。  DirectXの技術情報が解説されています。 ・DirectX 8.0のプログラマブルシェーダ http://www.microsoft.com/japan/developer/directx/welcome/dsmsdn/directx01152001.asp  DirectX Developer Center内のドキュメントです。 ・DirectX 8 SDK  Microsoft発行 http://www.microsoft.com/downloads/release.asp?ReleaseID=26072 にてダウンロード可。書籍として出ているもの(アスキー刊)も多分同内容だと思います。 んでpartsさんの回答にちょっとしたツッコミ。 >3.パイプライン処理とはRISC-CPUにおいて 別にRISC-CPUである必要はありません。 Intelのx86シリーズはCISCタイプのCPUですが(PentiumProからはそうとも言えないですが・・・)8086の時代から命令デコード用のパイプラインを持ってます。ただ書籍などでは RISC CPUで・・・といったくだりが多いようですが。 ピクセルシェーディングについて  ピクセルシェーダは3D処理のステージの片割れであるラスタライズ処理をプログラマブルにしたものです。今まではラスタライズ処理の高速化のため専用のハードウェアを使ってラスタライズがされてきていました。しかし、近年さまざまなエフェクトが施された3D映像が必要になり、固定化されたハードウェアではその要求にこたえる事ができません。確かにラスタライズ処理自体をソフトウェアにすれば可能ですが、ラスタライズ処理はとんでもない計算コストがかかるため、汎用に設計されたCPUとメモリでは処理速度やメモリバンドなどの面で問題が出ます。  そこで出てきたのがPixelShaderです。PixelShaderは今までハードウェア固定であったラスタライズ処理ハードウェアをいくつかの命令セットとレジスタを用意し、ラスタライズ処理をプログラマに任せています。これによって今まではハードウェアラスタライズ後に画素情報にアクセスしなければ実現できなかった処理などもラスタライズ処理中で実現できるようになります。  PixelShaderの考え方自体はCPUにおけるマイクロコードの考え方に近いですね。確かNintendo64はラスタライズユニットにマイクロコードをセットしていろいろできたらしいです。  あと >汎用に設計されたCPUとメモリでは処理速度やメモリバンドなどの面で問題が出ます。 とかいてますが、実際にはSGIからOpenGL ShaderというまんまSoftwareで実現されてるPixelShaderがあったり・・・。 5について 考えられるのはViewやModel変換後の頂点座標、色情報、法線、あとはテクスチャ座標でしょうか? 6について DDAが何の事か・・・前後の文が無いとDDAが何を指しているのか分からないです。PS2ハードウェアに関するものでしょうか? 7について PS2ではEE内のVU0、VU1がジオメトリエンジンであり、各種操作はプログラムがVU0,1を叩いて操作するため、VertexShader相当の処理はここで実現できるでしょう。 GSのアーキテクチャについてはあまり知りませんが、PS2のVRAM容量がたった4MBと考えると、PixelShader相当の機能はあると考えるのが妥当でしょう。 なお、nVidiaのGPUでは両方ともGPU内部で処理されます。 8について Oh!XとかC Magazine・・・ぐらいしか思い付きませんね。というより最新情報はnet上のプログラマに聞いた方が早いです。プログラマが集まる掲示板やMailingListを当たる方が良いでしょう。 >nVIDIAのGeForce3とATIのSmartShaderのpixelpipeまわりの性能についての比較をレビューすることになりまして…(しかも〆切が来週の水曜)。 来週の水曜日ですか・・・前提知識があるならともかく・・・ 一番いいのは近くにいる3Dプログラムのできる人を捕まえて聞く事でしょう。 自身で覚える事自体は悪くは無いですが、期間が短すぎるかと。

  • parts
  • ベストアンサー率62% (6366/10151)
回答No.1

1.演算命令やPS2ではCPUで描画データの作成→モデリング→座標計算→光源計算(CPUによる座標光源計算をソフトウェアT&Lという)→クリッピングが行われ、そのデータをエモーションエンジンからグラフィックシンセサイザーに受け渡します。ということで、クリッピング後のデータが受け渡されるわけです。 ただし、ハードウェアT&L登載GPUでは、座標~クリッピングはGPUが負担しますから、モデリング後の画像がやりとりされます。 2.ラスタ処理ですか上の処理を終えたあとグラフィックアクセラレータ側(GPU)が処理する工程です。 まずラスタ変換→隠面消去→テクスチャー処理までの工程を言います。 3.パイプライン処理とはRISC-CPUにおいて、複数の処理を同時にこなせることです。 GeForce2では、7つのピクセル処理を同時に実行できる能力を持っています。 RADEON256ではレタリングパイプライン1つで3つのテクスチャー処理が可能です。 4.ピクセルシェーダー、ピクセル光源に陰を付ける技術です。GeForce3ではこれとアンチェリアス処理で画像をよりリアルに再現できます。 しかしこんなこと、何で知りたいわけ? 物好きですね! これ以降を本気で知りたいなら、自力で徹底的に探してください。雑誌なんかにも最近は書いてありますよ。 定期購読していれば、分かるはずですけど・・・ (たとえば、DirectX8SDKにはピクセルシェーダーについてのことも書いてあったような?・・・SDKは全て英語のはずです)

ko-mai
質問者

お礼

ご回答ありがとうございます! >しかしこんなこと、何で知りたいわけ? こういったCG関係については全くのど素人なのですが、とあることがきっかけでnVIDIAのGeForce3とATIのSmartShaderのpixelpipeまわりの性能についての比較をレビューすることになりまして…(しかも〆切が来週の水曜)。聞いたこともなかったので、PS2のGS当たりから調べていたのですが、専門用語の連続で…。はっきり言って間に合いませんっ!!救世主になりそうな本やURLもあったらよろしくお願いします。 補足質問になってしまうのですが、 5.EEから渡されるデータというのは、ポリゴンの頂点データですよね?そのデータというのはRBG等の色情報やXYZ等の位置情報のほかにどういったものが渡されるのでしょうか。 6.ラスタライジングについて、「プリミティブを構成するピクセルをDDAによって発生します」という表現で説明しているものがあったのですが、これはどういうことでしょうか? 7.ピクセルシェーダについてなのですが、PS2では頂点シェーダをCPUのEEで行い、GF3ではGPUでピクセル単位のシェーディングを行う、という解釈で間違ってませんでしょうか。 8.この当たりの事が書いてある雑誌とはどういったものでしょうか。ぜひ知りたいです! 以上です。またよろしくお願いします。m(_ _)m

関連するQ&A