Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: "Sugihara Yoshimi" Newsgroups: playstation.ny.program.beginner Subject: Re: 描画ライブラリ関係の質問 Date: 10 Jul 1997 13:56:39 GMT Organization: PlayStation Net Yarouze Lines: 81 Message-ID: <01bc8d37$aa2b1880$5810dbca@default> References: <33C30DD0.4951@sti.softbank.co.jp> <5q24ds$aj2@news1.scei.co.jp> <19970710174454bo0wy@t3.rim.or.jp> NNTP-Posting-Host: 202.219.16.88 X-Newsreader: Microsoft Internet News 4.70.1157 Laboのほうでお世話になっている Sugiharaです。 Hideki Naito(bo0wy) wrote in article <19970710174454bo0wy@t3.rim.or.jp>... > kboさんは書きました。 > >パケットについては詳しく明かされていませんので、アセンブラ常習者など > >  開発ツールフォーラムのTMDデータフォーマット解説に、パケット > に関する解説も一応書かれています。 > 開発ツールフォーラムのTMDデータフォーマット解説に載っているパケットは、 CPU・GPU 間のパケットとは異なります。(解説の方にもそのように記載されています。) > にあります。でも、私にはいま一つ読み方がわかりません(^^; > こんなのとか > ┌────┬────┬────┬────┐ > │0x64│0x01│0x03│0x05│ ←特にこの辺の意味が(^,^; > ├────┴────┼────┴────┤ > │   TSB   │ Vertex0 │ > ├─────────┼────┬────┤ > │   CBA   │ V0 │ U0 │ > ├─────────┼────┴────┤ > │    H    │    W    │ > └─────────┴─────────┘  指定された部分のデータは、このパケットが何のデータなのかを示すためにある データで、先頭からmode・flag・ilen・olenとなっています。( ここら辺までは解説に載っているので理解されていると思います。)で、この内容 がなにを表しているのかが問題なわけです。 例えば、上で示されたデータは、  mode=0x64  flag=0x01  ilen=0x03  olen=0x05 となっています。 これは、3Dスプライトのパケットですね? なぜ分かるかというと、modeの値が0x64となっているからです。 modeの上位3ビットがパケットの構成要素を表していて、ビットで”011” となっており、これは解説の”3.3PRIMITIVE”の”mode”の”C ODE”(解説の図6です。)をみると”スプライト”となっています。次にmo deの上位3ビット以外は、解説の”3.3PRIMITIVE”に”optio n”となっていますね。この”option”の内容は、パケットの構成が記載さ れている”4.6 3Dスプライト”の項目をみると”mode値のbit構成” とあり、ビットの内容が書いてあります。(図23です。)例の0x64を分解し てみると  011  先の”スプライト”を表すビット  00   スプライトサイズ(00はフリーサイズと解説されています。)  1    1固定です。  0    半透明処理(0は半透明処理offと解説されてます。)  0    0固定です。 となることが分かります。 flagは、解説の図7を見てください。ちなみに例の0x01を分解してみると  00000   固定  0       グラデーション(0なので、グラデーション無し)  0       面(0は片面ポリゴン)  1       光源計算(1は光源計算無し) となります。 ilenは、今見ているパケットのmode・flag・ilen・olenをの ぞいた残りのワード数が設定されています。ここで、注意しなければならないのは 1バイトを16ビットとしていることです。通常ワード長と言えば8bit*2で すが、ここでは16bit*2と言うことです。逆に言えば、ここに設定する値は 通常言うダブルワード(8bit*4)を1として計算します。 olenは、これもilenと同じようにパケットの大きさを表しています。ただ しこのパケットの大きさは解説の内容からすると、CPU・GPU間で使用するパ ケットの大きさのようです。(調べたわけではないので間違っていたらごめんなさ い。m(_ _)m )