OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

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

  • 困ってます
  • 質問No.106946
  • 閲覧数285
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 33% (1/3)

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

回答 (全3件)

  • 回答No.1
レベル14

ベストアンサー率 62% (6253/9971)

1.演算命令やPS2ではCPUで描画データの作成→モデリング→座標計算→光源計算(CPUによる座標光源計算をソフトウェアT&Lという)→クリッピングが行われ、そのデータをエモーションエンジンからグラフィックシンセサイザーに受け渡します。ということで、クリッピング後のデータが受け渡されるわけです。 ただし、ハードウェアT&L登載GPUでは、座標~クリッピングはGPUが負担しますから、モデリング後の画像がや ...続きを読む
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

お礼率 33% (1/3)

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


  • 回答No.2
レベル11

ベストアンサー率 58% (114/195)

確か復刊後のOh!Xの4号目ぐらいにPSのアーキテクチャについて解説してあったと思います。 その他ではOpenGLやDirectXの解説書あたりでしょうか? OpenGLでは ・OpenGLプログラミングガイド第2版  ピアソン・エデュケーション発行 星雲社発売 定価12000円  通称赤本と呼ばれるOpenGLの解説書です。3Dの基礎的なシステムはこの本で分かるかと思います。 Direc ...続きを読む
確か復刊後の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プログラムのできる人を捕まえて聞く事でしょう。
自身で覚える事自体は悪くは無いですが、期間が短すぎるかと。
  • 回答No.3
レベル14

ベストアンサー率 62% (6253/9971)

ちょっと回答が遅くなりました。 ちょっと、誤解が生じたようですね。 以後気をつけたいと思います。これからはもっと考えて回答しますから、もし間違いとかあればどんどんつっこんでください。 ただ、私が述べた RISC-CPUにおいてというのは、CISCの原型はパイプライン処理との違い(高級言語処理を優先する)から生じたものですから述べただけです。現CISC-CPUは内部的にRISCを格納(吸収)して ...続きを読む
ちょっと回答が遅くなりました。

ちょっと、誤解が生じたようですね。
以後気をつけたいと思います。これからはもっと考えて回答しますから、もし間違いとかあればどんどんつっこんでください。
ただ、私が述べた
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プログラマーでもお探しなら、参考のリンクを見ても良いかも・・・
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ